summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/contrib/samples/RestYahoo
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-23 05:48:11 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-23 05:48:11 +0000
commit1c2df9a2458897ff6c2393913b2723457e42a0da (patch)
tree69652a0305830b4472f39c55ad1168522d8301f1 /sca-cpp/trunk/contrib/samples/RestYahoo
parente5d978186780787e8dad6681cca139486df93643 (diff)
Simplified the automake build using configure options instead of environment variables and cleaned up some of the makefile.am files. Adjusted build instructions. Moved directories that don't yet build or work out of the main build dir and obsolete docs to a contrib dir.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@883254 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/contrib/samples/RestYahoo')
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/Makefile.am23
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/README19
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/README.html202
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.app.composite28
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/Makefile.am23
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/YahooWebSearchClient.rb25
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/runclient.bat50
-rwxr-xr-xsca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/runclient.sh51
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/Makefile.am22
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchImpl.py60
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchResponse.xsd47
-rw-r--r--sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/sample.yahoo.composite33
12 files changed, 583 insertions, 0 deletions
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/Makefile.am b/sca-cpp/trunk/contrib/samples/RestYahoo/Makefile.am
new file mode 100644
index 0000000000..de28cf2d53
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/Makefile.am
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+deploydir=$(prefix)/RestYahoo/deploy
+SUBDIRS = sample.yahoo sample.yahoo.client
+
+EXTRA_DIST = *.composite README.html
+deploy_DATA = *.composite
+
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/README b/sca-cpp/trunk/contrib/samples/RestYahoo/README
new file mode 100644
index 0000000000..79ee6c7813
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/README
@@ -0,0 +1,19 @@
+Tuscany SCA for C++ Samples - REST Yahoo Sample
+===============================================
+
+This is a very simple sample to show how to use the SCA REST binding to
+invoke the Yahoo Web Search REST service.
+
+There are two sub-projects in this workspace:
+ - sample.yahoo
+ This contains the SCDL artifacts and source code for the WebSearch
+ Component which calls a Reference that is configured to call the
+ Yahoo service
+ - sample.yahoo.client
+ A Ruby client which calls the WebSearch component.
+
+Additionally, there is the sample.yahoo.app.composite file. This
+describes the configuration of the SCA Yahoo Search composite deployed to
+the SCA runtime.
+
+See the README.html file for instructions to build and run this sample
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/README.html b/sca-cpp/trunk/contrib/samples/RestYahoo/README.html
new file mode 100644
index 0000000000..967f2c84b1
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/README.html
@@ -0,0 +1,202 @@
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<HTML>
+<HEAD>
+ <META CONTENT="text/html; charset=iso-8859-1" HTTP-EQUIV="Content-Type">
+ <META CONTENT="text/css" HTTP-EQUIV="Content-Style-Type">
+ <STYLE MEDIA="all" TYPE="text/css">
+@import url("../../doc/css/maven-base.css");
+@import url("../../doc/css/maven-theme.css");
+ </STYLE>
+
+ <LINK HREF="../doc/css/maven-theme.css" MEDIA="print" REL="stylesheet"
+ TYPE="text/css">
+ <TITLE>Tuscany SCA Native Samples - REST Yahoo Search Sample</TITLE>
+</HEAD>
+
+<BODY>
+<DIV ID="bodyColumn">
+ <DIV ID="contentBox">
+ <DIV CLASS="section">
+ <H1>Tuscany SCA Native Samples - REST Yahoo Search Sample</H1>
+
+ <P>This is a very simple sample to show how to use the SCA REST binding to
+ invoke the Yahoo Web Search REST service.
+ </P>
+ <P>The REST Yahoo Search sample requires the following extensions:
+ <UL>
+ <LI><A HREF="../../doc/RESTExtension.html">REST Reference Extensions</A></LI>
+ <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI>
+ <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI>
+ </UL>
+ Please follow the documentation to ensure you have these extensions built and installed
+ on your system
+ </P>
+ <P>There are two sub projects in this workspace:</P>
+ <UL>
+ <LI>sample.yahoo<BR/>
+ This contains the SCDL artifacts and Python source code for the WebSearch
+ Component which calls a Reference that is configured to call the
+ Yahoo service
+ </LI>
+ <LI>sample.yahoo.client<BR/>
+ A Ruby client which calls the WebSearch component
+ </LI>
+ </UL>
+ <P>Additionally, there is the sample.yahoo.app.composite file. This
+ describes the configuration of the SCA Yahoo Search composite deployed to
+ the SCA runtime.
+ </P>
+ </DIV>
+
+ <DIV CLASS="section">
+ <H2>Contents</H2>
+ <OL>
+ <LI><A HREF="#linuxbld">Building the REST Yahoo Search sample on Linux and Mac OS X</A></LI>
+ <LI><A HREF="#linuxrun">Running the REST Yahoo Search sample on Linux and Mac OS X</A></LI>
+ <LI><A HREF="#winbld">Building the REST Yahoo Search sample on Windows</A></LI>
+ <LI><A HREF="#winrun">Running the REST Yahoo Search sample on Windows</A></LI>
+ <LI><A HREF="#help">Getting help</A></LI>
+ </OL>
+ </DIV>
+
+
+ <DIV CLASS="section">
+ <A NAME="linuxbld"><H2>Building the Ruby & Python samples on Linux and Mac OS X</H2></A>
+ <P>If using the binary distribution the samples are built and installed in
+ &lt;tuscany_sca_install_dir&gt;/samples - go directly to <A HREF="#linuxrun">Running the samples on Linux and Mac OS X</A>.</P>
+ <OL>
+ <LI>The following environment variables are required:
+ <UL>
+ <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;
+ <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;
+ </UL></LI>
+ </LI>
+ <LI>As the REST Yahoo sample is based on Ruby and Python scripts, a specific compilation step is not necessary -
+ only deployment is required. Deploy the Ruby and Python samples only with the following command sequence:
+ <UL>
+ <LI>cd &lt;tuscany_sca_install_dir&gt;/samples</LI>
+ <LI>./configure --enable-ruby --enable-python --enable-cpp=no --prefix=$TUSCANY_SCACPP/samples</LI>
+ <LI>make install</LI>
+ </UL>
+ NOTE: If you don't provide the --prefix configure option, it will by default install into
+ /usr/local/tuscany/sca/samples/RestYahoo</LI>
+ </OL>
+ </DIV>
+
+ <DIV CLASS="section">
+ <A NAME="linuxrun"><H2>Running the REST Yahoo Search sample on Linux and Mac OS X</H2></A>
+ <OL>
+ <LI>The REST Yahoo Search sample requires the following extensions:
+ <UL>
+ <LI><A HREF="../../doc/RESTExtension.html">REST Reference Extensions</A></LI>
+ <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI>
+ <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI>
+ </UL>
+ Please follow the documentation to ensure you have these extensions built and installed
+ on your system
+ </LI>
+ <LI>The following environment variables are required:
+ <UL>
+ <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;</LI>
+ <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;</LI>
+ </UL>
+ </LI>
+ <LI>Run the sample with the following commands:
+ <UL>
+ <LI>cd &lt;tuscany_sca_install_dir&gt;/samples/RestYahoo/deploy/sample.yahoo.client</LI>
+ <LI>./runclient.sh</LI>
+ </UL>
+ </LI>
+ </OL>
+ </DIV>
+
+ <DIV CLASS="section">
+ <A NAME="winbld"><H2>Building the REST Yahoo Search sample on Windows</H2></A>
+ <P>If using the binary distribution the samples are built and installed in
+ &lt;tuscany_sca_install_dir&gt;\samples - go directly to <A HREF="#winrun">Running the samples on Windows</A>.</P>
+ <OL>
+ <LI>The following environment variables are required:
+ <UL>
+ <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;
+ <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;
+ </UL></LI>
+ </LI>
+ <LI>As this sample is based on Ruby and Python scripts, a specific compilation step is not necessary -
+ only deployment is required. Deploy the sample with the following commands:
+ <UL>
+ <LI>cd &lt;tuscany_sca_install_dir&gt;\samples\RestYahoo</LI>
+ <LI>deploy.bat</LI>
+ </UL>
+ </LI>
+ </OL>
+ </DIV>
+
+ <DIV CLASS="section">
+ <A NAME="winrun"><H2>Running the REST Yahoo Search sample on Windows</H2></A>
+ <OL>
+ <LI>The REST Yahoo Search sample requires the following extensions:
+ <UL>
+ <LI><A HREF="../../doc/RESTExtension.html">REST Reference Extensions</A></LI>
+ <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI>
+ <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI>
+ </UL>
+ Please follow the documentation to ensure you have these extensions built and installed
+ on your system
+ </LI>
+ <LI>The following environment variables are required:
+ <UL>
+ <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;</LI>
+ <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;</LI>
+ <LI>LIBCURL_HOME=&lt;path to libcurl&gt;</LI>
+ </UL>
+ </LI>
+ <LI>Run the sample with the following commands:
+ <UL>
+ <LI>cd &lt;tuscany_sca_install_dir&gt;\samples\RestYahoo\deploy\sample.yahoo.client</LI>
+ <LI>runclient.bat</LI>
+ </UL>
+ </LI>
+ </OL>
+ </DIV>
+
+
+
+ <DIV CLASS="section">
+ <A NAME="help"><H2>Getting Help</H2></A>
+
+ <P>The first place to look is at the Tuscany SCA FAQ at
+ <A HREF="http://cwiki.apache.org/confluence/display/TUSCANY/Tuscany+SCA+-+FAQ"
+ TARGET="_blank">http://cwiki.apache.org/confluence/display/TUSCANY/Tuscany+SCA+-+FAQ</A> </P>
+
+ <P>Any problem with this release can be reported to the Tuscany
+ <A HREF="http://cwiki.apache.org/TUSCANY/mailing-lists.html"
+ TARGET="_blank">mailing lists</A> or create a JIRA issue at&nbsp;<A HREF="http://issues.apache.org/jira/browse/Tuscany"
+ TARGET="_blank">http://issues.apache.org/jira/browse/Tuscany</A>.</P>
+
+ </DIV>
+ </DIV>
+</DIV>
+</BODY>
+
+</HTML>
+
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.app.composite b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.app.composite
new file mode 100644
index 0000000000..eb19962fe3
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.app.composite
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ name="sample.yahoo.app">
+
+ <component name="sample.yahoo.app.WebSearchComponent">
+ <implementation.composite name="sample.yahoo" />
+ </component>
+
+</composite>
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/Makefile.am b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/Makefile.am
new file mode 100644
index 0000000000..4fcbf00e16
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/Makefile.am
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+deploydir=$(prefix)/RestYahoo/deploy
+clientdir=$(deploydir)/sample.yahoo.client
+
+client_DATA = *.rb
+client_SCRIPTS = runclient.sh
+EXTRA_DIST = runclient.sh *.rb
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/YahooWebSearchClient.rb b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/YahooWebSearchClient.rb
new file mode 100644
index 0000000000..0a87ccd815
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/YahooWebSearchClient.rb
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+require("tuscany_sca_ruby")
+
+yahooWebSearch = SCA::locateService("WebSearchComponent")
+
+results = yahooWebSearch.search("Tuscany")
+print results, "\n"
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/runclient.bat b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/runclient.bat
new file mode 100644
index 0000000000..bf95f27738
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/runclient.bat
@@ -0,0 +1,50 @@
+@echo off
+
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+
+setlocal
+
+if "%TUSCANY_SCACPP%" == "" (
+echo TUSCANY_SCACPP not set
+goto end
+)
+echo using SCA installed at %TUSCANY_SCACPP%
+
+if "%TUSCANY_SDOCPP%" == "" (
+echo TUSCANY_SDOCPP not set
+goto end
+)
+echo using SDO installed at %TUSCANY_SDOCPP%
+
+if "%LIBCURL_HOME%" == "" (
+echo LIBCURL_HOME not set
+goto end
+)
+echo using Libcurl installed at %LIBCURL_HOME%
+
+set PATH=%LIBCURL_HOME%\lib;%TUSCANY_SCACPP%\extensions\rest\interface\bin;%TUSCANY_SCACPP%\extensions\ruby\bin;%TUSCANY_SCACPP%\extensions\rest\reference\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%PATH%
+set PYTHONPATH=%TUSCANY_SCACPP%\extensions\python\bin
+
+set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\
+set TUSCANY_SCACPP_COMPONENT=sample.yahoo.app.WebSearchComponent
+
+cd %TUSCANY_SCACPP_ROOT%\sample.yahoo.client
+ruby -I%TUSCANY_SCACPP%\extensions\ruby\bin YahooWebSearchClient.rb
+
+:end
+endlocal
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/runclient.sh b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/runclient.sh
new file mode 100755
index 0000000000..7dbae64748
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/runclient.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+
+APFULLDIR=`pwd`
+
+if [ x$TUSCANY_SCACPP = x ]; then
+echo "TUSCANY_SCACPP not set"
+exit;
+fi
+echo "Using SCA installed at $TUSCANY_SCACPP"
+
+if [ x$TUSCANY_SDOCPP = x ]; then
+echo "TUSCANY_SDOCPP not set"
+exit;
+fi
+echo "Using SDO installed at $TUSCANY_SDOCPP"
+
+export LD_LIBRARY_PATH=$TUSCANY_SCACPP/extensions/ruby/lib:$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$TUSCANY_SCACPP/extensions/python/lib:$LD_LIBRARY_PATH
+export PYTHONPATH=$TUSCANY_SCACPP/extensions/python/lib:$PYTHONPATH
+
+export TUSCANY_SCACPP_ROOT=$APFULLDIR/../
+export TUSCANY_SCACPP_COMPONENT=sample.yahoo.app.WebSearchComponent
+
+cd $TUSCANY_SCACPP_ROOT/sample.yahoo.client
+
+libsuffix=.so
+UNAME=`uname -s`
+if [ "x$UNAME" = "xDarwin" ]; then
+ libsuffix=.dylib
+fi
+# Set LD_PRELOAD to use the expat included in Python to avoid incompatibilities
+export LD_PRELOAD=$TUSCANY_SCACPP/extensions/python/lib/libtuscany_sca_python$libsuffix
+
+ruby -I$TUSCANY_SCACPP/extensions/ruby/lib YahooWebSearchClient.rb
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/Makefile.am b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/Makefile.am
new file mode 100644
index 0000000000..7e330ca7b1
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/Makefile.am
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+deploydir=$(prefix)/RestYahoo/deploy
+compositedir=$(deploydir)/sample.yahoo
+
+composite_DATA = *.composite *.py *.xsd
+EXTRA_DIST = *.composite *.py *.xsd
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchImpl.py b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchImpl.py
new file mode 100644
index 0000000000..7ba6ab80ef
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchImpl.py
@@ -0,0 +1,60 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+
+try:
+ import xml.etree.ElementTree
+except ImportError:
+ # Running under a pre-Python2.5
+ try:
+ import elementtree.ElementTree
+ except ImportError:
+ print "The RestYahoo sample requires the ElementTree package"
+
+
+def search(searchText):
+
+ print "Python - YahooWebSearchImpl.py running Yahoo search for:", searchText, "with ID:", yahooAppID
+
+ # Use the yahooWebSearchService reference to call the Yahoo REST service
+ # also use the yahooAppID property from the composite definition
+ xmlResult = yahooWebSearchService.webSearch(appid = yahooAppID, query = searchText, results = 5)
+
+ print "Python - YahooWebSearchImpl.py formatting result from Yahoo:", xmlResult
+
+ return formatResults(xmlResult, searchText)
+
+
+def formatResults(results, searchText):
+
+ formatted = "Failed to run Yahoo search service for \"" + str(searchText) + "\""
+
+ ns = "{urn:yahoo:srch}"
+ pathAndNS = "./" + ns
+
+ formatted = "\n\nYahoo Web Search Results for \""+ str(searchText) +"\"\n"
+ formatted += results.attrib["totalResultsAvailable"]+ " results available. First "+ results.attrib["totalResultsReturned"]+ " below\n\n"
+ pos = 1
+
+ for node in results.findall(".//"+ns+"Result"):
+ formatted += str(pos) + ". "+ node.findtext(pathAndNS+"Title") +"\n\t"
+ formatted += node.findtext(pathAndNS+"Summary") +"\n\t"
+ formatted += node.findtext(pathAndNS+"Url") +"\n\n"
+ pos += 1
+
+ return formatted
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchResponse.xsd b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchResponse.xsd
new file mode 100644
index 0000000000..210aabcf42
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchResponse.xsd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="urn:yahoo:srch"
+ xmlns="urn:yahoo:srch"
+ elementFormDefault="qualified">
+
+ <xsd:element name="ResultSet">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="Result" type="ResultType" minOccurs="0" maxOccurs="100" />
+ </xsd:sequence>
+ <xsd:attribute name="totalResultsAvailable" type="xsd:integer" />
+ <xsd:attribute name="totalResultsReturned" type="xsd:integer" />
+ <xsd:attribute name="firstResultPosition" type="xsd:integer" />
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:complexType name="ResultType">
+ <xsd:sequence>
+ <xsd:element name="Title" type="xsd:string" />
+ <xsd:element name="Summary" type="xsd:string" />
+ <xsd:element name="Url" type="xsd:string" />
+ <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/sample.yahoo.composite b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/sample.yahoo.composite
new file mode 100644
index 0000000000..a37a9be7c4
--- /dev/null
+++ b/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/sample.yahoo.composite
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" name="sample.yahoo">
+
+ <component name="WebSearchComponent">
+ <implementation.python module="YahooWebSearchImpl"/>
+ <reference name="yahooWebSearchService">YahooWebSearchReference</reference>
+ <property name="yahooAppID">ApacheTuscanyC++SampleRestYahoo</property>
+ </component>
+
+ <reference name="YahooWebSearchReference">
+ <binding.rest uri="http://search.yahooapis.com/WebSearchService/V1"/>
+ </reference>
+
+</composite>