summaryrefslogtreecommitdiffstats
path: root/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo
diff options
context:
space:
mode:
Diffstat (limited to 'sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo')
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/Makefile.am23
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/README19
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/README.html202
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.app.composite28
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/Makefile.am23
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/YahooWebSearchClient.rb25
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/runclient.bat50
-rwxr-xr-xsca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/runclient.sh51
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/Makefile.am22
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchImpl.py60
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchResponse.xsd47
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/sample.yahoo.composite33
12 files changed, 583 insertions, 0 deletions
diff --git a/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/Makefile.am b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/Makefile.am
new file mode 100644
index 0000000000..de28cf2d53
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/README b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/README
new file mode 100644
index 0000000000..79ee6c7813
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/README.html b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/README.html
new file mode 100644
index 0000000000..967f2c84b1
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.app.composite b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.app.composite
new file mode 100644
index 0000000000..eb19962fe3
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/Makefile.am b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/Makefile.am
new file mode 100644
index 0000000000..4fcbf00e16
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/YahooWebSearchClient.rb b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/YahooWebSearchClient.rb
new file mode 100644
index 0000000000..0a87ccd815
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/runclient.bat b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/runclient.bat
new file mode 100644
index 0000000000..bf95f27738
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/runclient.sh b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo.client/runclient.sh
new file mode 100755
index 0000000000..7dbae64748
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/Makefile.am b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/Makefile.am
new file mode 100644
index 0000000000..7e330ca7b1
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchImpl.py b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchImpl.py
new file mode 100644
index 0000000000..7ba6ab80ef
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchResponse.xsd b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchResponse.xsd
new file mode 100644
index 0000000000..210aabcf42
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/sample.yahoo.composite b/sca-cpp/branches/cpp-contrib/contrib/samples/RestYahoo/sample.yahoo/sample.yahoo.composite
new file mode 100644
index 0000000000..a37a9be7c4
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/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>