diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2010-02-28 19:41:51 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2010-02-28 19:41:51 +0000 |
commit | cbe502740bdd6d2a0ae56d113882dd9d6b31c394 (patch) | |
tree | bfb25bbced6038f250e9ea972be35e76f6a200fe /sca-cpp/trunk/contrib | |
parent | e982b4ef38fd043c15e89bdd60763b10434a087e (diff) |
Removed contrib folder now that it's saved in its own branch.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@917274 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/contrib')
875 files changed, 0 insertions, 83489 deletions
diff --git a/sca-cpp/trunk/contrib/doc/Axis2CWSExtension.html b/sca-cpp/trunk/contrib/doc/Axis2CWSExtension.html deleted file mode 100644 index 17b9676650..0000000000 --- a/sca-cpp/trunk/contrib/doc/Axis2CWSExtension.html +++ /dev/null @@ -1,498 +0,0 @@ - -<!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("css/maven-base.css"); -@import url("css/maven-theme.css"); - </STYLE> - - <LINK HREF="css/maven-theme.css" MEDIA="print" REL="stylesheet" - TYPE="text/css"> - <TITLE>Tuscany SCA Native - Axis2/C Web Services Extension</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native - Axis2/C Web Services Extension</H1> - - <P>This document describes the installation, deployment and use of the Axis2/C Web Service - support in the Apache Tuscany SCA Native runtime. - </P> - <P>The WS service code is based on <A HREF="http://ws.apache.org/axis2/c">Apache - Axis2/C version 0.96</A> and allows SCA components to be invoked via Web - Service calls. - </P> - <P>WS service currently supports Document/literal Wrapped style Web Services - only. There are also restrictions about the parameter and return types of the - operations in SCA components that can be exposed as Web Services, see below - for more details. - </P> - <P>See the <A HREF="http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications">SCA - Web Service binding specification</A> for more details about SCA Web - Service support. - </P> - <P>Also, see the <A HREF="../samples/GettingStarted.html">samples</A> for various - demonstrations of the use of the binding.ws service support. - </P> - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#requirements">System Requirements</A></LI> - <LI><A HREF="#install">Installing the Tuscany SCA Axis2/C Web Services Extension..</A> - <UL> - <LI><A HREF="#linuxbin">..from the binary release on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxsrc">..from the source release on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbin">..from the binary release on Windows</A></LI> - <LI><A HREF="#winsrc">..from the source release on Windows</A></LI> - </UL></LI> - <LI><A HREF="#deploy">Deploying the Tuscany Web Service support to Axis2/C..</A> - <UL> - <LI><A HREF="#autodeploy">..automatically via scripts</A></LI> - <LI><A HREF="#mandeploy">..manually</A></LI> - </UL></LI> - <LI><A HREF="#deployhttpd">Deploying Axis2/C to the Apache HTTPD server</A></LI> - <LI><A HREF="#use">Defining an SCA Composite with a WS service</A></LI> - <LI><A HREF="#maptable">XML Schema Type to C++ Type Mapping</A></LI> - <LI><A HREF="#creatingwsdl">Notes on creating WSDL</A></LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="requirements"><H2>System Requirements</H2></A> - - <P>In order to install and use the Tuscany SCA Axis2/C Web Services Extension there are some - extra requirements in addition to the <A HREF="../GettingStarted.html#requirements">Tuscany - SCA requirements</A>:</P> - <TABLE CLASS="bodyTable"> - - <TBODY> - <TR CLASS="a"> - <TD><B>Software</B></TD> - <TD><B>Download Link</B></TD> - </TR> - <TR CLASS="b"> - <TD>Axis2/C version 0.96</TD> - - <TD> - <A HREF="http://ws.apache.org/axis2/c/download.cgi" - TARGET="_blank">http://ws.apache.org/axis2/c/download.cgi</A><BR/> - Please download and follow the installation instructions. Ensure you can run - the Axis2/C samples. - </TD> - </TR> - </TBODY> - </TABLE> - </DIV> - - <DIV CLASS="section"> - <A NAME="install"><H2>Installing the Tuscany SCA Axis2/C Extension</H2></A> - <A NAME="linuxbin"><H3>Getting the Tuscany SCA Axis2/C Extension working with the binary release on Linux and Mac OS X</H3></A> - <OL> - <LI>Ensure the AXIS2C_HOME environment variable is set to the Axis2/C installation</LI> - <LI>Deploy the Axis2/C Web Services extension by following the <A HREF="#deploy">deployment steps</A></LI> - </OL> - <A NAME="linuxsrc"><H3>Getting the Tuscany SCA Axis2/C Extension working with the source release on Linux and Mac OS X</H3></A> - <OL> - <LI>You will need the Tuscany SCA and SDO libraries - follow the instructions - <A HREF="../GettingStarted.html">here</A> to build the SCA libraries and default extensions</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C installation></LI> - </UL></LI> - <LI>Build the Axis2/C source only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir></LI> - <LI>./configure --prefix=$TUSCANY_SCACPP --enable-wsbinding --enable-cpp=no</LI> - <LI>make</LI> - <LI>make install</LI> - </UL> - NOTE: If you don't provide a --prefix configure option, it will by default install into - /usr/local/tuscany/sca</LI> - </OL> - - <A NAME="winbin"><H3>Getting the Tuscany SCA Axis2/C Extension working with the binary release on Windows</H3></A> - <OL> - <LI>Ensure the AXIS2C_HOME environment variable is set to the Axis2/C installation</LI> - <LI>Deploy the Axis2/C Web Services extension by following the <A HREF="#deploy">deployment steps</A></LI> - </OL> - <A NAME="winsrc"><H3>Getting the Tuscany SCA Axis2/C Extension working with the source release on Windows</H3></A> - <OL> - <LI>Unzip the supplied source zip file</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C installation></LI> - </UL></LI> - <LI>You must have set up the environment for Microsoft Visual C++ tools. The build command - will call vcvars32 to set the environment. Ensure the directory containing this is on your path. - This will be where you installed the compiler.</LI> - <LI>Build the source: - <UL> - <LI>cd <to where you unzipped the source></LI> - <LI>build</LI> - </UL> - This will build all the projects and put the required output into the 'deploy' directory<BR/><BR/> - Alternatively, open the workspace at <tuscany_sca_install_dir>/projects/tuscany_sca/tuscany_sca.dsw - in Visual Studio 6 or at at <tuscany_sca_install_dir>/projectsvc7/tuscany_sca/tuscany_sca.sln - in Visual Studio 7.1 - you can build projects individually - or build the samples to rebuild all the projects</LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="deploy"><H2>Deploying the Tuscany Web Service support to Axis2/C</H2></A> - <A NAME="autodeploy"><H3>Deploying via scripts</H3></A> - <P>Tuscany provides simple shell scripts to deploy the Web Service support to Axis2/C. - However, the script <STRONG>will overwrite your Axis2/C axis.xml file</STRONG>, so if you - have altered your axis2.xml from the default provided by the Axis2/C distribution, it is - recommended that you follow the <A HREF="#mandeploy">manual deployment</A> steps - outlined below. - </P> - <P>To automatically deploy Tuscany Web Service support to Axis2/C on Linux and Mac OS X: - <OL> - <LI>The AXIS2C_HOME environment variable is required: - <UL> - <LI>set AXIS2C_HOME=<path to axis2c version 0.96></LI> - </UL></LI> - <LI>Use the following command sequence to run the deploy script: - <UL> - <LI>cd <tuscany_sca_install_dir>/extensions/ws/service</LI> - <LI>./deploy.sh</LI> - </UL> - </LI> - </OL> - </P> - <P>To automatically deploy Tuscany Web Service support to Axis2/C on Windows: - <OL> - <LI>The AXIS2C_HOME environment variable is required: - <UL> - <LI>export AXIS2C_HOME=<path to axis2c version 0.96></LI> - </UL></LI> - <LI>Use the following command sequence to run the deploy script: - <UL> - <LI>cd <tuscany_sca_install_dir>\extensions\ws\service</LI> - <LI>deploy.bat</LI> - </UL> - </LI> - </OL> - </P> - - - <A NAME="mandeploy"><H3>Deploying manually</H3></A> - <P>To deploy Tuscany Web Service support to Axis2/C manually, use the following steps: - </P> - <OL> - <LI> - Linux and Mac OS X: - <OL> - <LI>cd <axis2c version 0.96>/services</LI> - <LI>ln -sf <tuscany_sca_install_dir>/extensions/ws/service/services/tuscany</LI> - <LI>cd <axis2c version 0.96>/modules</LI> - <LI>ln -sf <tuscany_sca_install_dir>/extensions/ws/service/modules/tuscany</LI> - </OL> - Windows: - <OL> - <LI>Create a <axis2c version 0.96>\services\tuscany directory - </LI> - <LI>Copy all the files in <tuscany_sca_install_dir>\extensions\ws\service\services\tuscany - to the directory created above - </LI> - <LI>Create a <axis2c version 0.96>\modules\tuscany directory - </LI> - <LI>Copy all the files in <tuscany_sca_install_dir>\extensions\ws\service\modules\tuscany - to the directory created above - </LI> - </OL> - </LI> - <LI>Edit the <axis2c version 0.96>/axis2.xml file to add a <ref module="tuscany"> - element. This will register the above module. E.g.: - <PRE>... - <!-- ================================================= --> - <!-- Global Modules --> - <!-- ================================================= --> - <!-- Comment this to disable Addressing --> - <module ref="addressing"/> - - <module ref="tuscany"/> - -... </PRE> - </LI> - - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="deployhttpd"><H2>Deploying Axis2/C to the Apache HTTPD server</H2></A> - <P>Follow the <A HREF="http://ws.apache.org/axis2/c/docs/installationguide.html#installing-apache2">Axis2/C documentation</A> - to deploy Axis2/C to Apache HTTPD. Also see the <A HREF="../samples/HTTPDBigBank/README.html">HTTPDBigBank</A> - sample, which demonstrates running Axis2/C under Apache HTTPD.</P> - </DIV> - - - <DIV CLASS="section"> - <A NAME="use"><H2>Defining an SCA Composite with a WS service</H2></A> - - <P>In this section we will use the Calculator sample as a worked example. - The Calculator code and files can be found at - <tuscany_sca_install_dir>samples/CppCalculator. - </P> - <P>Pre-requisites: - <UL> - <LI>At least one working component within a composite and solution - composite. The component(s) can be implemented in C++, Ruby or Python. - If this includes C++ components, the SCAGEN generated Proxy and Wrapper - classes and the component class files must have been compiled into a - .dll or .so library. The *.composite and *.componentType files must - also be available and working. - </LI> - </UL> - </P> - <OL> - <LI>Optionally, create the WSDL that defines the interface of your SCA component. See the - table <A HREF="#maptable">XML Schema Type to C++ Type Mapping</A> and - <A HREF="#creatingwsdl">Notes on creating WSDL</A> below - for mapping the parameters and return types of the component operations to XML - schema types in the WSDL. This file will need to be accessible from the component, - so place it in the same directory as the component or in a subdirectory. - <BR/> - See the <tuscany_sca_install_dir>/samples/CppCalculator/sample.calculator/Calculator.wsdl - file as an example. - <BR/> - If you do not provide a WSDL file describing the service interface then the service will - accept any incoming document/literal wrapped XML request that matches an operation on the - target service (the wrapper element name and types of the sub-elements must match the operation - name and its parameter types). Additionally, if the target component is a Python or Ruby - scripting component, it will accept any parameter type so you can pretty much pass whatever - data you want, as long at the incoming XML request matches to an operation name with the - correct number of parameters on the target service. - </LI> - <LI>Add a service definition to the component .composite file. If you have created a WSDL - definition, set the interface.wsdl interface attribute to the namespace and port name - specified in the WSDL, in the form: "<namespace>#wsdl.interface(<port-name>)". - Link a reference from this service definition to your - component, give the service a name and set the multiplicity if required. - <BR/> - E.g. for the Calculator component, based on the Calculator.wsdl file: - <PRE><service name="CalculatorService"> - <interface.wsdl interface="http://sample/calculator#wsdl.interface(Calculator)"/> - <binding.ws/> - <reference>CalculatorComponent/CalculatorService</reference> -</service></PRE> - If the Calculator.wsdl file were not included, the service definition would simply - be as follows: - <PRE><service name="CalculatorService"> - <binding.ws/> - <reference>CalculatorComponent/CalculatorService</reference> -</service></PRE> - </LI> - <LI>You are now ready to start the Axis2/C HTTP server. Remember you will need to have the - TUSCANY_SCACPP, TUSCANY_SDOCPP and AXIS2C_HOME environment variables set, - as well as the SCA and SDO bin directories and the Axis2/C lib directory on - your PATH on Windows or the SCA, SDO and Axis2/C lib directories on - your LD_LIBRARY_PATH on Linux and your DYLD_LIBRARY_PATH on Mac OS X. - You will also need to set the TUSCANY_SCACPP_SYSTEM_ROOT - and TUSCANY_SCACPP_DEFAULT_COMPONENT environment variables to the - path to your SCA component directory structure and the default component respectively. - E.g. on Windows run the following commands: - <UL> - <LI>set TUSCANY_SCACPP=C:/tuscany_sca </LI> - <LI>set TUSCANY_SDOCPP=C:/tuscany_sdo </LI> - <LI>set AXIS2C_HOME=C:/axis2c-bin-0.96-win32 </LI> - <LI>set PATH=%PATH%;C:/tuscany_sca/bin;C:/tuscany_sdo/bin;C:/axis2c-bin-0.96-win32/lib</LI> - <LI>set TUSCANY_SCACPP_SYSTEM_ROOT=C:/tuscany_sca/samples/CppCalculator/deploy </LI> - <LI>set TUSCANY_SCACPP_DEFAULT_COMPONENT=sample.calculator.CalculatorComponent </LI> - <LI>cd %AXIS2C_HOME%/bin/ </LI> - <LI>./axis2_http_server.exe </LI> - </UL> - </LI> - <LI>Optionally, enable Tuscany logging by setting the TUSCANY_SCACPP_LOGGING - environment variable with the level you wish to log at (0 for minimal - logging, up to 9 for more detailed logging) and the TUSCANY_SCACPP_LOG - environment variable to define the file to log to (if this is not set, - logging will go to the console). E.g. on Windows run the following - commands: - <UL> - <LI>set TUSCANY_SCACPP_LOGGING=5 </LI> - <LI>set TUSCANY_SCACPP_LOG=C:/tuscany/mylogfile.txt</LI> - </UL> - </LI> - </OL> - <P>Your component should now be exposed as an Axis2/C Web Service, via the WS - service you created. See the Axis2/C documentation for writing clients to - invoke the Web Service, or you can use any other Web Service client platform - (e.g. <A HREF="http://ws.apache.org/axis2">Axis2 for Java</A>), or you can - invoke your service from another SCA application by using Tuscany's WS - reference support. - </P> - - </DIV> - - <DIV CLASS="section"> - <A name="maptable"><H2>XML Schema Type to C++ Type Mapping</H2></A> - <P>To help define the WSDL that describes the interface of your component, the - table below lists how incoming XML data in Web Service messages is mapped to - C++ types used in the parameters and return types of your component operations. - </P> - <P>This lists the only C++ types that can currently be used on the operations of a - component exposed as a Web Service. For other types, use an SDO DataObject to - wrap the data, and define that wrapping as a complexType in the WSDL. See the - <A HREF="http://www.osoa.org/display/Main/SDO+-+Previously+Published+Specifications">SDO - specifications</A> for the C++ types that SDO supports. - </P> - <TABLE CLASS="bodyTable"> - <TBODY> - <TR CLASS="a"> - <TD><STRONG>XML Schema Type</STRONG></TD> - <TD><STRONG>C++ Type</STRONG></TD> - </TR> - <TR CLASS="b"> - <TD>string</TD> - <TD>std::string</TD> - </TR> - <TR CLASS="a"> - <TD>int</TD> - <TD>long</TD> - </TR> - <TR CLASS="b"> - <TD>integer</TD> - <TD>long</TD> - </TR> - <TR CLASS="a"> - <TD>short</TD> - <TD>short</TD> - </TR> - <TR CLASS="b"> - <TD>float</TD> - <TD>float</TD> - </TR> - <TR CLASS="a"> - <TD>double</TD> - <TD>long double</TD> - </TR> - <TR CLASS="b"> - <TD>boolean</TD> - <TD>bool</TD> - </TR> - <TR CLASS="a"> - <TD>hexBinary</TD> - <TD>char*</TD> - </TR> - <TR CLASS="b"> - <TD>base64Binary</TD> - <TD>char*</TD> - </TR> - <TR CLASS="a"> - <TD>byte</TD> - <TD>char</TD> - </TR> - <TR CLASS="b"> - <TD>complexType</TD> - <TD>commonj::sdo::DataObjectPtr</TD> - </TR> - <TR CLASS="a"> - <TD>any</TD> - <TD>commonj::sdo::DataObjectPtr with OpenDataObjectType</TD> - </TR> - </TBODY> - </TABLE> - </DIV> - - <DIV CLASS="section"> - <A name="creatingwsdl"><H2>Notes on creating WSDL</H2></A> - <P>Currently only Document/literal Wrapped style Web Services are supported by - WS EntryPoint, support for RPC style Web Services is planned for future - releases. - </P> - <P>See <A HREF="http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/">this article</A> - for an explanation of Document/literal Wrapped style WSDL and Web Services - </P> - <P>Document/literal Wrapped services require that the operation name is used as - the name of the incoming element that wraps the operation parameters. Additionally, - operation parameter and return messages that are defined in the WSDL must be - XML Schema elements containing a complexType. - </P> - <P>For example, a component operation defined in C++ as: - <PRE>long myOperation(std::string arg1, short arg2, DataObjectPtr arg3);</PRE> - will need to be described in WSDL with messages like: - <PRE><wsdl:message name="myOperationRequestMsg"> - <wsdl:part element="tns:myOperation" name="myOperationRequestPart"/> -</wsdl:message> -<wsdl:message name="myOperationResponseMsg"> - <wsdl:part element="tns:myOperationResponse" name="myOperationResponsePart"/> -</wsdl:message></PRE> - and will need an XML schema to define the types like: - <PRE><xsd:element name="myOperation"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="arg1" type="xsd:string" minOccurs="1"/> - <xsd:element name="arg2" type="xsd:short" minOccurs="1"/> - <xsd:element name="arg3" minOccurs="1"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="dataObjectFloatData" type="xsd:float"/> - <xsd:element name="dataObjectStringData" type="xsd:string"/> - <xsd:element name="dataObjectIntData" type="xsd:int"/> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - </xsd:sequence> - </xsd:complexType> -</xsd:element> - -<xsd:element name="myOperationResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="result" type="xsd:int" minOccurs="1"/> - </xsd:sequence> - </xsd:complexType> -</xsd:element></PRE> - </DIV> - - <DIV CLASS="section"> - <A NAME="help"><H2>Getting Help</H2></A> - - <P>First place to look is at the Tuscany FAQ at - <A HREF="http://incubator.apache.org/tuscany/faq.html" - TARGET="_blank">http://incubator.apache.org/tuscany/faq.html</A> </P> - - <P>Any problem with this release can be reported to the Tuscany - <A HREF="http://incubator.apache.org/tuscany/mail-lists.html" - TARGET="_blank">mailing lists</A> or create a JIRA issue at <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/doc/CPPGeneratorTool.txt b/sca-cpp/trunk/contrib/doc/CPPGeneratorTool.txt deleted file mode 100644 index c004799791..0000000000 --- a/sca-cpp/trunk/contrib/doc/CPPGeneratorTool.txt +++ /dev/null @@ -1,362 +0,0 @@ - -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. - - - -Tuscany SCA For C++ - scagen C++ generator tool -=============================================== - - -See cpp/build.txt in the parent directory or the cpp/sca/INSTALL file -for build instructions. - -Building the tools ------------------- - -NOTE: this is built and installed by the build step above. - -Currently, there is only one tool: "scagen". It can be built using the -ant build script at \tuscany\cpp\sca\tools\scagen\build.xml. -The default target "all" will build the java jars, documentation, -scripts and a zip file of the whole thing. This is all the ant -build tasks apart from "test" which runs all the junit tests. - -The ant build script can be altered to add the junit tests to the -default target. Replace the line - -<property name="junit.jar.folder" value="${basedir}/lib" /> - -The "test" task was not included in "all" as it requires a -junit jar file to run. This jar is available here: -http://www.junit.org/index.htm testing has been done with -Junit version 3.8.1. - -Running the scagen tool ------------------------ - -The scagen tool user interface is quite basic in this initial release. -It can be run from the scagen.jar file using "java -jar scagen.jar" -or from small scripts - scagen.bat for Windows and scagen.sh for Unix. -The parameters are: - -dir <the path to the sca composite root directory> - -output <the path to an output directory where the generated file will be placed> - -e.g. - scagen -dir c:\mycomposites\composite1 -output c:\mycomposites\bld\composite1 - -What scagen does ----------------- - -The input directory passed to the scagen tools as -the -dir parameter method is taken to be the SCA -composite root directory. All the sca.composite and .fragment -files in that directory are inspected to resolve all -the <component/> elements within them. - -Each <component/> element found is inspected -to see if it has a <implementation.cpp/> element within it. - -Each <implementation.cpp/> element should have a -header attribute that represents a C++ header file -that contains function prototypes for the C++ -implementation of the service. An optional class -attribute can be used to select one class if more than -one that is present in the header file. The default -class is the one with the same name as the header file. -The tool will verify that the implementation header -contains an appropriate class prototype. - -The directory that contains the implementation header -should also contain a matching .componentType file for -the equivalent SCA component. So for example, a -MyServiceImpl.h file would have a corresponding -MyServiceImpl.componentType file in the same directory. - -Each componentType file is inspected for <service/> -and <reference/> elements. For each <service/> element -that is found that contains a <interface.cpp/> element -within it, - -the header attribute of the <interface.cpp/> is taken -as the filename of the C++ interface header for the -SCA service. This C++ header file is opened and used -as a means for specifying the SCA service resulting -in an appropriate wrapper and proxy being generated -for this service interface. Both method bodies and h -eaders are generated in the given output directory. -The processing of a <reference/> element is the same -except that only a proxy header and implementation -re generated. - - -Getting started with the code ------------------------------ - -The following is a list of tasks that are performed by the scagen tool -for each task we will describe technically how it is accomplished and -the location of the code that can be inspected/changed to alter the -behaviour. - -Here are the tasks listed, below is a paragraph for each one: - - o (Overall structure of the code) - o Walking the input directory - o Scanning the .composite and .fragment files - o finding the C++ implementation headers - o finding/checking the classname in the C++ implementation headers - o find the matching .componentTemplate files - o going into the componentTemplate files to extract the interface header filenames - o going into the interface header files and parsing them to extract the method signatures - into a network of objects we can inspect. - o taking all the meta data stored as objects and building a DOM for XSLT processing - o using XSLT to produce a proxy header - o using XSLT to produce a proxy implementation - o using XSLT to produce a wrapper header - o using XSLT to produce a wrapper implementation - - -Overall structure of the code ------------------------------ - -There are two packages org.apache.tuscany.sca.cpp.tools.common and -org.apache.tuscany.sca.cpp.tools.services. The ...common package is -taken from some existing code that was also contributed to axis that -was used to parse C++ code and do various tasks like insert trace. -This code was repackaged and shipped as a tuscany package but there -has been a desire not to change it significantly from the equivalent -org.apache.axis.tools.common package to leave the door open for -future convergence. - -Where the ...common package has been amended (for example to cope with -namespaces better or the provision of an Options.reset method to reset a static -variable and enable the tuscany junit tests to run independently) these -have been flagged with a "Tuscany" comment. The ...common package basically -provides two functions - 1) the ability to go into a directory (see DirectoryTree.java) -and process files that fit a particular filter (e.g. "*.hpp") by passing them to -implementer of the FileActor Interface (see the classes "Headers" for the -actor that processes C++ headers and "XMLFileActor" for the file actor that -processes the .componentType and sca.composite/fragment files.) - -The ...services package contains the majority of code written afresh for the -scagen tool including the subclasses of XMLFileActor (see ComponentTypeFileHandler.java -and CompositeOrFragmentFileHandler.java) that are the classes that tie this -package to the ...common package and which are called by the -DirectoryTree walker. - -Walking the composite root input directory ---------------------------------------- - -The main method of the scagen class creates an instance of -"DirectoryScanner" and registers with it a file handler of -type "CompositeOrFragmentFileHandler" for all files that end -in ".composite" or ".fragment". On calling the "walkTree" method -on the scanner it will in turn call the actOnFile method on the -CompositeOrFragmentFileHandler for appropriate files. - -Scanning the .composite and .fragment files ----------------------------------------- - -The scanning of these files by the respective "CompositeOrFragmentFileHandler" -and "ComponentTypeFileHandler" is mostly handled by the superclass -"XMLFileActor". This class will recursively goes through the whole -XML file and considers the name of the XML element it finds. -"XMLFileActor" contains a map of element names to element handlers -that will "flatten out" the structure of the XML file "above" the -level of node we are interested in. - -So for example the ComponentTypeFile handler sets up the handlers -map as follows: - - GenericDomNodeHandler gdnh = new GenericDomNodeHandler(); - handlers.put("componentType", gdnh); - handlers.put("interface.cpp", gdnh); - ServiceDomNodeHandler sdnh = new ServiceDomNodeHandler(); - handlers.put("service", sdnh); - - ReferenceDomNodeHandler rdnh = new ReferenceDomNodeHandler(); - handlers.put("reference", rdnh); - -The majority of processing done by these DomNOdeHandlers is to -place the attributes and values discovered into another map that -maps an (static version of) the XPath of a value to the value itself. -So for example "/componentType/service/interface.cpp/@header" might contain -the current ("root to here") value of the header attribute of the current -interface. - -Particular handlers for the "leaves" of this tree -such as ServiceDomNodeHandler and ReferenceDomNodeHandler -can then consume these values from the map without having -to be concerned with the actual names of things, -like the service name, appearing in the key. It should be -understood though that there are multiple values placed in the map -for one "key" as the processing works its way through the -XML tree. For example the processing of a second component will -overlay its data over the same keys as the first component. -(After "wiping" the appropriate subtree.) - -Finding the C++ implementation headers --------------------------------------- - -The "/composite/component/implementation.cpp/@header" and -is used to key into the name of the implementation header -and this is opened directly and passed to the -actOnFileMethod of a Headers object from the ...common package -bypassing the DirectoryScanner code. The path is relative to -the given (-dir option) composite root directory. - -Finding/checking the classname in the C++ implementation headers ------------------------------------------------------------------ - -This implementation header is not used to define the -methods of the SCA service but rather is opened to check - any given implementation.cpp/@class attribute -(or find out the name of the implementation class -in the header if this is not specified in the XML. This -is done using the same method that later parses the interface -C++ headers into java objects - we just them inspect the -class attribute of the "Signature" objects that represent the methods -we find in the header. - -Find the matching .componentType files ------------------------------------------- - -By SCA convention we go to the same directory as the implementation -files and look for the XXX.componentType files with the same name. -A instance of the ComponentDOMNodeHandler handles the data in the -Component Element and pre-creates a ComponentTypeFileHandler that -will eventually be called to process the .componentType file. This -object receives a number of "setParameter" calls to poke into it -matadata that is available prior/outside the the actual .componentType -file it will read. - -Go into the componentType files to extract the interface header filenames ------------------------------------------------------------------------------ - -We open up the .componentTemplateFiles with exactly the same -mechanism as we read the sca.composite/fragment file (by creating -a DOM and descending through it this time using a ComponentTypeFileHandler that it -has had various data values ( e.g. the implementation class and namespace used later) -poked into it. The ComponentTypeFileHandler itself has individual -handlers for the service and reference XML/DOM element/nodes -that is comes across (ServiceDomNodeHandler and ReferenceDomNodeHandler -respectively). Each these handlers will pull out the name of -a C++ interface header and use it to resolve the interface of the -SCA Service. - -Parsing the interface header files for signatures -------------------------------------------------- - -The Service/Reference DOM Node hander both call the - ServicesGenerator.handleInterfaceHeader(parameters, true); -method, the second parameter is used to differentiate -the call source as we don't need wrapper files for -SCA references (just proxies). - -The ServicesGenerator uses the Headers file actor from -the ...common package to create a List of Signature -objects that describe the interface methods in the C++ -header. - -Take all the meta data stored as objects and build a DOM --------------------------------------------------------- -We now have a List of Signature objects and a map that -represents the flattened information that we have pulled -from the XML files in the ServiceGenerator class. -We call a "createDOMofMethods" method -to consolidate all this information into one DOM -(this task should be split into more than one method as the -signature/parameter list of the method is too large). - -Use XSLT to produce the output files (Proxy/Wrapper headers and Implementations) --------------------------------------------------------------------------------- - -The ServicesGenerator.handleInterfaceHeader(parameters, forReference); -method closes of with the code: - - createProxyCPPFromDom(outputDir, dom); - createProxyHeaderFromDom(outputDir, dom); - - if (!forReference) { - createWrapperCPPFromDom(outputDir, dom); - createWrapperHeaderFromDom(outputDir, dom); - } - - -Each of the create methods sets up the output -file name and a different XSLT transform and calls -"createOutputFromDom" to transform/filter the data in the -"model" that is held in our DOM of the data to a particular -"view" as expressed in the C++ output file. - -The four XSLT style sheets are in rough order of the output -file and this corresponds very roughly to a depth first descent -of the DOM tree so, for example, we could have in a stylesheet: - -... - void* </xsl:text> - <xsl:value-of select="$class"/><xsl:text>::newImplementation() - { - return new </xsl:text><xsl:value-of select="../@implClass"/><xsl:text><xsl:text>(target); - } - -which would be output as: - - void* MyClassImpl_MyClass_Proxy::newImplementation() - { - return new MyClassImpl(target) - } - -given appropriate valies for $class and "../@implClass" and -$class might be defined to be: -xsl:variable name="clazz"> - <xsl:value-of select="../@implClass"/> - <xsl:text>_</xsl:text> - <xsl:value-of select="../@nameOfServiceOrReference"/> - <xsl:text>_Proxy</xsl:text> -</xsl:variable> - -giving "MyClassImpl_MyClass_Proxy" - -The stylesheets can be found in the xsl subdirectory of the -org.apache.tuscany.sca.cpp.tools.services package. - -Unit Testing Scagen Code Changes --------------------------------- - -The junit unit test - /tuscany/cpp/sca/tools/scagen/ - junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllCompositesTest.java - -will dynamically look for all the subdirectores of the directory -path given by TuscanyTestCase.junit_composites and run the scagen -tool on them as if they were composites roots. - -By convention an "expected_output" directory is located -(see the CVS tree or the test program) and the actual -and expected results compared. This testcase is thus a -good first/basic regression test for any changes. - -New test cases can thus be added without having to write -any new junit java code by by creating new SCA composites and -the associated expected Scagen output - perhaps by using the tool -initially and checking the output is satisfactory before copying -it to the expected output directory at: - -/tuscany/cpp/sca/tools/scagen/junit/testoutput/<composite>/expected_output -where input data is taken from -/tuscany/cpp/sca/tools/scagen/junit/testinput/composites/<composite> diff --git a/sca-cpp/trunk/contrib/doc/CppExtension.html b/sca-cpp/trunk/contrib/doc/CppExtension.html deleted file mode 100644 index 6e7420a9d4..0000000000 --- a/sca-cpp/trunk/contrib/doc/CppExtension.html +++ /dev/null @@ -1,430 +0,0 @@ - -<!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("css/maven-base.css"); -@import url("css/maven-theme.css"); - </STYLE> - - <LINK HREF="css/maven-theme.css" MEDIA="print" REL="stylesheet" - TYPE="text/css"> - <TITLE>Tuscany SCA Native - Creating C++ SCA Components</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native - C++ Extension</H1> - <P>The Tuscany C++ extension allows C++ classes to be used as components in - SCA composites and as clients that can invoke SCA services. - </P> - <P>This document describes how to build and install the C++ extension and create and run SCA - components in Tuscany SCA Native milestone release 3. - </P> - <P>See the <A HREF="http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications">SCA - C++ Client and Implementation specification</A> for more details about the SCA C++ - programming model. - </P> - <P>See <A HREF="../samples/CppCalculator/README.html">CppCalculator</A> or - <A HREF="../samples/CppBigBank/README.html">CppBigBank</A> for samples that - demonstrate the use of C++ components - </P> - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#requirements">System Requirements</A></LI> - <LI><A HREF="#install">Installing the Tuscany SCA C++ Extension..</A> - <UL> - <LI><A HREF="#linuxbin">..from the binary release on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxsrc">..from the source release on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbin">..from the binary release on Windows</A></LI> - <LI><A HREF="#winsrc">..from the source release on Windows</A></LI> - </UL></LI> - <LI><A HREF="#components">Creating and deploying an SCA C++ Component</A></LI> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - <DIV CLASS="section"> - <A NAME="requirements"><H2>System Requirements</H2></A> - - <P>In order to install and use the Tuscany SCA C++ Extension there are some - extra requirements in addition to the <A HREF="../GettingStarted.html#requirements">Tuscany - SCA requirements</A>:</P> - <TABLE CLASS="bodyTable"> - - <TBODY> - <TR CLASS="a"> - <TD><B>Software</B></TD> - <TD><B>Download Link</B></TD> - </TR> - <TR CLASS="b"> - <TD>Java SDK 1.4 or later</TD> - <TD><A HREF="http://java.sun.com/javase/downloads/index.jsp" - TARGET="_blank">http://java.sun.com/javase/downloads</A><BR/> - For building and running the SCAGEN code generation tool, which is used when developing - Tuscany SCA C++ components. Please download and follow the installation instructions</TD> - </TR> - <TR CLASS="a"> - <TD>Apache Ant 1.6 or later</TD> - <TD><A HREF="http://ant.apache.org" TARGET="_blank">http://ant.apache.org</A><BR/> - For building the SCAGEN code generation tool. This is only required when building - the C++ extension from a source distribution of Tuscany SCA Native. - Please download and follow the installation instructions</TD> - </TR> - </TBODY> - </TABLE> - </DIV> - - <DIV CLASS="section"> - <A NAME="install"><H2>Installing the Tuscany SCA C++ Extension</H2></A> - <A NAME="linuxbin"><H3>Getting the Tuscany SCA C++ Extension working with the binary release on Linux and Mac OS X</H3></A> - <OL> - <LI>Add the <tuscany_sca_install_dir>/extensions/cpp/lib directory to the PATH environment variable</LI> - </OL> - <A NAME="linuxsrc"><H3>Getting the Tuscany SCA C++ Extension working with the source release on Linux and Mac OS X</H3></A> - <OL> - <LI>You will need the Tuscany SCA kernel and SDO libraries - follow the instructions - <A HREF="../GettingStarted.html">here</A> to build the SCA libraries and default extensions</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL></LI> - <LI>Build the C++ source only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir></LI> - <LI>./configure --prefix=$TUSCANY_SCACPP --enable-cpp --enable-wsbinding=no</LI> - <LI>make</LI> - <LI>make install</LI> - </UL> - NOTE: If you don't provide a --prefix configure option, it will by default install into - /usr/local/tuscany/sca</LI> - </OL> - - <A NAME="winbin"><H3>Getting the Tuscany SCA C++ Extension working with the binary release on Windows</H3></A> - <OL> - <LI>Add the <tuscany_sca_install_dir>/extensions/cpp/lib directory to the PATH environment variable</LI> - </OL> - <A NAME="winsrc"><H3>Getting the Tuscany SCA C++ Extension working with the source release on Windows</H3></A> - <OL> - <LI>Unzip the supplied source zip file</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - <LI>You must have set up the environment for Microsoft Visual C++ tools. The build command - will call vcvars32 to set the environment. Ensure the directory containing this is on your path. - This will be where you installed the compiler.</LI> - <LI>Build the source: - <UL> - <LI>cd <to where you unzipped the source></LI> - <LI>build</LI> - </UL> - This will build all the projects and put the required output into the 'deploy' directory<BR/><BR/> - Alternatively, open the workspace at <tuscany_sca_install_dir>/projects/tuscany_sca/tuscany_sca.dsw - in Visual Studio 6 or at at <tuscany_sca_install_dir>/projectsvc7/tuscany_sca/tuscany_sca.sln - in Visual Studio 7.1 - you can build projects individually - <LI>Set the TUSCANY_SCACPP environment variable to point to the 'deploy' directory that was just created</LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="components"><H2>Creating and deploying an SCA C++ Component</H2></A> - <P>Each SCA C++ component needs: - </P> - <UL> - <LI>A service header file that defines the operations that can be invoked on the - component - </LI> - <LI>An implementation header file that defines the implementation and extends - the service header file - </LI> - <LI>A C++ implementation of the service that implements the operations defined - in the service header file - </LI> - <LI>Proxy and wrapper header and implementation files generated by the Tuscany - C++ SCAGEN tool - </LI> - <LI>A service definition in a .componentType file - </LI> - <LI>An SCDL component definition within an SCDL composite file. Usually this - composite file will contain multiple components configured and assembled together. - </LI> - </UL> - <P>Once these items are in place for each component in your composite, you will need to - deploy this composite to your SCA system. In this release we are - using the SCA recursive composition model to do this. You simply create another - SCDL component definition in a separate composite file that will represent the composite - you created above in the SCA system. Follow the steps below to see each of these items - being created and used. - </P> - <P>In this section we will use the Calculator sample as a worked example. - The Calculator code and files can be found at samples/CppCalculator and has been - developed further than the details specified below. In the interests of - readability, the example used below takes the simplest path. - </P> - <OL> - <LI>Create the service header file that defines the operations your component - will implement. E.g. Calculator.h contains the following:<BR/> - <PRE>#ifndef CALCULATOR_H -#define CALCULATOR_H -class Calculator -{ -public: - virtual float add(float arg1, float arg2) = 0; - virtual float sub(float arg1, float arg2) = 0; - virtual float mul(float arg1, float arg2) = 0; - virtual float div(float arg1, float arg2) = 0; -}; - -#endif</PRE> - </LI> - <LI>Create the implementation header file that extends the service header file. - E.g. CalculatorImpl.h contains the following:<BR/> - <PRE>#ifndef CALCULATORIMPL_H -#define CALCULATORIMPL_H - -#include "Calculator.h" - -class CalculatorImpl : public Calculator -{ -public: - CalculatorImpl(); - virtual ~CalculatorImpl(); - - // Calculator interface - virtual float add(float arg1, float arg2); - virtual float sub(float arg1, float arg2); - virtual float mul(float arg1, float arg2); - virtual float div(float arg1, float arg2); -}; - -#endif</PRE> - </LI> - <LI>Create the implementation for the component based on the implementation - header file. E.g. CalculatorImpl.cpp contains the following code:<BR/> - <PRE>#include "CalculatorImpl.h" -#include <stdio.h> - -CalculatorImpl::CalculatorImpl() -{ -} - -CalculatorImpl::~CalculatorImpl() -{ -} - -// Calculator interface -float CalculatorImpl::add(float arg1, float arg2) -{ - float result = arg1 + arg2; - - printf("CalculatorImpl::add %f + %f = %f\n", arg1, arg2, result); - return result; -} - -float CalculatorImpl::sub(float arg1, float arg2) -{ - float result = arg1 - arg2; - printf("CalculatorImpl::sub %f - %f = %f\n", arg1, arg2, result); - return result; -} - -float CalculatorImpl::div(float arg1, float arg2) -{ - float result = arg1 / arg2; - printf("CalculatorImpl::div %f / %f = %f\n", arg1, arg2, result); - return result; -} - -float CalculatorImpl::mul(float arg1, float arg2) -{ - float result = arg1 * arg2; - printf("CalculatorImpl::mul %f * %f = %f\n", arg1, arg2, result); - return result; -}</PRE> - </LI> - <LI>Create the componentType file for your component to define the service that - your component provides. The file must be named after your implementation - class and specifies the name of the service and the service header file - (which describes the service operations). E.g. CalculatorImpl.componentType - contains the following XML:<BR/> - <PRE><componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - - <service name="CalculatorService"> - <interface.cpp header="Calculator.h"/> - </service> - -</componentType></PRE> - </LI> - <LI>Create a sample.calculator.composite file for your composite and define your - component within it. The component definition specifies the implementation - library to use (a .dll file on Windows, a .so file on Linux and a .dylib file on Mac OS X) and the - implementation header file (which describes the implementation class). Component - properties and references to other services can also be specified here. E.g. the - Calculator sample.calculator.composite file contains the following XML:<BR/> - <PRE><composite xmlns="http://www.osoa.org/xmlns/sca/1.0" - name="sample.calculator"> - - <component name="CalculatorComponent"> - <implementation.cpp library="Calculator" header="CalculatorImpl.h"/> - </component> - -</composite></PRE> - </LI> - <LI>Generate the proxy and wrapper classes and header files using the SCAGEN - tool. These classes are used by the Tuscany SCA C++ runtime to enable - service implementations to be invoked from a client or another component. - Run the SCAGEN tool, specifying the directory where your header files, - sca.composite and componentType file are and the directory where you - want the generated files to be placed. E.g. on Windows, the - following command is run from the directory where Tuscany SCA is deployed:<BR/> - <PRE>./extensions/cpp/bin/scagen.bat -dir ./samples/CppCalculator/sample.calculator -output ./samples/CppCalculator/sample.calculator</PRE> - which produces the following files: - <UL> - <LI>CalculatorImpl_CalculatorService_Proxy.h</LI> - <LI>CalculatorImpl_CalculatorService_Proxy.cpp</LI> - <LI>CalculatorImpl_CalculatorService_Wrapper.h</LI> - <LI>CalculatorImpl_CalculatorService_Wrapper.cpp</LI> - </UL> - </LI> - <LI>Compile and link the code that has been written and generated. This will - produce a .dll or .so library file. The name should match the library name - specified in the sample.calculator.composite file. - </LI> - <LI>Create the sample.calculator.solution.composite file and define the Calculator composite - as a component within it. This is used to include the Calculator composite in the SCA system - and should specify the composite name used in the sample.calculator.composite file. - E.g. the Calculator sample.calculator.solution.composite - file contains the following XML:<BR/> - <PRE><composite xmlns="http://www.osoa.org/xmlns/sca/1.0" - name="sample.calculator.solution"> - - <component name="sample.calculator.CalculatorComponent"> - <implementation.composite name="sample.calculator" /> - </component> - -</composite></PRE> - </LI> - <LI>Deploy the various files into the SCA directory structure, as follows: - <UL> - <LI><deploy_root>/CompositeName/CompositeName.composite </LI> - <LI><deploy_root>/CompositeName/Implementation.componentType </LI> - <LI><deploy_root>/CompositeName/Implementation.dll (or .so on Linux and .dylib on Mac OS X) </LI> - <LI><deploy_root>/SolutionName.composite </LI> - </UL> - E.g. for the Calculator sample the structure is: - <UL> - <LI>samples/CppCalculator/deploy/sample.calculator/Calculator.h </LI> - <LI>samples/CppCalculator/deploy/sample.calculator/CalculatorImpl.h </LI> - <LI>samples/CppCalculator/deploy/sample.calculator/sample.calculator.composite </LI> - <LI>samples/CppCalculator/deploy/sample.calculator/CalculatorImpl.componentType</LI> - <LI>samples/CppCalculator/deploy/sample.calculator/Calculator.dll </LI> - <LI>samples/CppCalculator/deploy/sample.calculator.solution.composite</LI> - </UL> - </LI> - <LI>Your component, composite and subsystem are now ready to be invoked. Create a - client that will call the service. E.g. the Calculator client (in the - CalculatorClient.cpp file) contains code similar to the following:<BR/> - <PRE>try -{ - // Locate the service - CompositeContext myContext = CompositeContext::getCurrent(); - Calculator *calcService = (Calculator*) myContext.locateService("CalculatorComponent/CalculatorService"); - if (calcService == 0) - { - cout << "calculator_client: Unable to find Calculator service" << endl; - } - else - { - float result = calcService->add(arg1, arg2); - cout << "calculator_client add(" << arg1 << "," << arg2 << ") = " << result << endl; - } -} -catch (ServiceRuntimeException& ex) -{ - cout << "calculator_client: Error whilst invoking Tuscany: " << - ex.getMessageText() << endl; -} -</PRE> - </LI> - <LI>Compile, link and run the client that has been created. You should - (hopefully!) see your component invoked. Remember you will need to have the - TUSCANY_SCACPP and TUSCANY_SDOCPP environment variables set, - as well as the SCA and SDO bin directories on - your PATH on Windows or the SCA and SDO lib directories on your LD_LIBRARY_PATH on Linux - and your DYLD_LIBRARY_PATH on Mac OS X. You will also need to set the TUSCANY_SCACPP_SYSTEM_ROOT - and TUSCANY_SCACPP_DEFAULT_COMPONENT environment variables to the - path to your SCA component directory structure and the default component respectively. - TUSCANY_SCACPP_SYSTEM_ROOT is the directory where the SCA runtime will look for any - .composite files and TUSCANY_SCACPP_DEFAULT_COMPONENT is the name of the base component - to be used by SCA clients or containers when finding services - this component must be - an instance of a composite (i.e. contain an <implementation.composite> element). - <BR/> - E.g. on Windows run the following commands: - <UL> - <LI>set TUSCANY_SCACPP=C:/tuscany_sca </LI> - <LI>set TUSCANY_SDOCPP=C:/tuscany_sdo </LI> - <LI>set PATH=%PATH%;C:/tuscany_sca/bin;C:/tuscany_sdo/bin </LI> - <LI>set TUSCANY_SCACPP_SYSTEM_ROOT=C:/tuscany_sca/samples/CppCalculator/deploy</LI> - <LI>set TUSCANY_SCACPP_DEFAULT_COMPONENT=sample.calculator.CalculatorComponent</LI> - <LI>./calculator_client.exe </LI> - </UL> - </LI> - <LI>Optionally, enable Tuscany logging by setting the TUSCANY_SCACPP_LOGGING - environment variable with the level you wish to log at (0 for minimal - logging, up to 9 for more detailed logging) and the TUSCANY_SCACPP_LOG - environment variable to define the file to log to (if this is not set, - logging will go to the console). E.g. on Windows run the following - commands: - <UL> - <LI>set TUSCANY_SCACPP_LOGGING=5 </LI> - <LI>set TUSCANY_SCACPP_LOG=C:/tuscany/mylogfile.txt</LI> - </UL> - </LI> - </OL> - </DIV> - <DIV CLASS="section"> - <A NAME="help"><H2>Getting Help</H2></A> - - <P>First place to look is at the Tuscany FAQ at - <A HREF="http://incubator.apache.org/tuscany/faq.html" - TARGET="_blank">http://incubator.apache.org/tuscany/faq.html</A> </P> - - <P>Any problem with this release can be reported to the Tuscany - <A HREF="http://incubator.apache.org/tuscany/mail-lists.html" - TARGET="_blank">mailing lists</A> or create a JIRA issue at <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/doc/PythonExtension.html b/sca-cpp/trunk/contrib/doc/PythonExtension.html deleted file mode 100644 index f51af0d6c9..0000000000 --- a/sca-cpp/trunk/contrib/doc/PythonExtension.html +++ /dev/null @@ -1,281 +0,0 @@ -<!-- - 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. ---> - - -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<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("css/maven-base.css"); -@import url("css/maven-theme.css"); - </STYLE> - - <LINK HREF="css/maven-theme.css" MEDIA="print" REL="stylesheet" - TYPE="text/css"> - <TITLE>Tuscany SCA Native - Python Extension</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native - Python Extension</H1> - - <P>The Tuscany Python extension allows Python scripts to be used as components in - SCA composites and as clients that can invoke SCA services. - </P> - <P>The following samples demonstrate use of the Python extension:</P> - <UL> - <LI><A HREF="../samples/PythonCalculator/README.html">PythonCalculator</A></LI> - <LI><A HREF="../samples/PythonWeatherForecast/README.html">PythonWeatherForecast</A></LI> - <LI><A HREF="../samples/RestCustomer/README.html">RestCustomer</A></LI> - <LI><A HREF="../samples/RestYahoo/README.html">RestYahoo</A></LI> - <LI><A HREF="../samples/AlertAggregator/README.html">AlertAggregator</A></LI> - </UL> - - </DIV> - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#requirements">System Requirements</A></LI> - <LI><A HREF="#install">Installing the Tuscany SCA Python Extension..</A> - <UL> - <LI><A HREF="#linuxbin">..from the binary release on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxsrc">..from the source release on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbin">..from the binary release on Windows</A></LI> - <LI><A HREF="#winsrc">..from the source release on Windows</A></LI> - </UL></LI> - <LI><A HREF="#pm">The Tuscany Python Programming Model</A></LI> - <UL> - <LI><A HREF="#clients">Clients</A></LI> - <LI><A HREF="#components">SCA Components</A></LI> - <LI><A HREF="#references">Component references</A></LI> - <LI><A HREF="#properties">Component properties</A></LI> - </UL> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - <DIV CLASS="section"> - <A NAME="requirements"><H2>System Requirements</H2></A> - - <P>In order to install and use the Tuscany SCA Python Extension there are some - extra requirements in addition to the <A HREF="../GettingStarted.html#requirements">Tuscany - SCA requirements</A>:</P> - <TABLE CLASS="bodyTable"> - - <TBODY> - <TR CLASS="a"> - <TD><B>Software</B></TD> - <TD><B>Download Link</B></TD> - </TR> - <TR CLASS="b"> - <TD>Python version 2.5</TD> - - <TD> - <A HREF="http://www.python.org/download/" - TARGET="_blank">http://www.python.org/download/</A><BR/> - Please download and follow the installation instructions. - </TD> - </TR> - </TBODY> - </TABLE> - </DIV> - - <DIV CLASS="section"> - <A NAME="install"><H2>Installing the Tuscany SCA Python Extension</H2></A> - <A NAME="linuxbin"><H3>Getting the Tuscany SCA Python Extension working with the binary release on Linux and Mac OS X</H3></A> - <OL> - <LI>Ensure the Python libraries are available on the PATH environment variable</LI> - <LI>Add the <tuscany_sca_install_dir>/extensions/python/lib directory to the PYTHONPATH environment variable</LI> - </OL> - <A NAME="linuxsrc"><H3>Getting the Tuscany SCA Python Extension working with the source release on Linux and Mac OS X</H3></A> - <OL> - <LI>You will need the Tuscany SCA and SDO libraries - follow the instructions - <A HREF="../GettingStarted.html">here</A> to build the SCA libraries and default extensions</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - <LI>PYTHON_LIB=<path to Python libraries></LI> - <LI>PYTHON_INCLUDE=<path to Python includes></LI> - <LI>PYTHON_VERSION=<name of the Python version><BR/> - Note: If you are using a default installation of Python 2.5 these are usually:<BR/> - PYTHON_LIB=/usr/lib<BR/> - PYTHON_INCLUDE=/usr/include/python2.5<BR/> - PYTHON_VERSION=python2.5<BR/></LI> - </UL></LI> - <LI>Build the Python source only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir></LI> - <LI>./configure --prefix=$TUSCANY_SCACPP --enable-python --enable-cpp=no --enable-wsbinding=no</LI> - <LI>make</LI> - <LI>make install</LI> - </UL> - NOTE: If you don't provide a --prefix configure option, it will by default install into - /usr/local/tuscany/sca</LI> - </OL> - - <A NAME="winbin"><H3>Getting the Tuscany SCA Python Extension working with the binary release on Windows</H3></A> - <OL> - <LI>Ensure the Python libraries are available on the PATH environment variable</LI> - <LI>Add the <tuscany_sca_install_dir>\extensions\python\bin directory to the PYTHONPATH environment variable</LI> - </OL> - <A NAME="winsrc"><H3>Getting the Tuscany SCA Python Extension working with the source release on Windows</H3></A> - <OL> - <LI>Unzip the supplied source zip file</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - <LI>PYTHON_HOME=<path to installed Python> - </UL></LI> - <LI>You must have set up the environment for Microsoft Visual C++ tools. The build command - will call vcvars32 to set the environment. Ensure the directory containing this is on your path. - This will be where you installed the compiler.</LI> - <LI>Build the source: - <UL> - <LI>cd <to where you unzipped the source></LI> - <LI>build</LI> - </UL> - This will build all the projects and put the required output into the 'deploy' directory<BR/><BR/> - Alternatively, open the workspace at <tuscany_sca_install_dir>/projects/tuscany_sca/tuscany_sca.dsw - in Visual Studio 6 or at at <tuscany_sca_install_dir>/projectsvc7/tuscany_sca/tuscany_sca.sln - in Visual Studio 7.1 - you can build projects individually - <LI>Set the TUSCANY_SCACPP environment variable to point to the 'deploy' directory that was just created</LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="pm"><H2>The Tuscany Python Programming Model</H2></A> - <P>This section will explain - the Tuscany Python programming model to help you to write your own Python - components and clients. - </P> - <P>The Tuscany Python component and client support comes from a Python extension - package that is built in the <tuscany_sca_install_dir>/extensions/python/bin - directory on Windows and <tuscany_sca_install_dir>/extensions/python/lib on - Linux and Mac OS X. This package must be made available to your Python environment by - adding this directory to your PYTHONPATH environment variable. This makes the sca - module available for use by clients and allows references and properties to be - used in your Python components - </P> - <A NAME="clients"><H3>Clients</H3></A> - <P>Using the sca module, a Python client can search for an SCA service with: - </P> -<PRE>import sca - -calculator = sca.locateservice("CalculatorComponent/CalculatorService") -</PRE> - <P>This finds the component and service as defined in the composite and componentType - side files and returns a proxy object that can call the SCA service. You can then - simply call a business method on "calculator", like this: - </P> -<PRE>result = calculator.add(12.3, 45.6)</PRE> - </P> - <A NAME="components"><H3>Components</H3></A> - <P>Python component implementations are standard Python scripts, where class-level - functions or module-level functions can be invoked by the Tuscany runtime. To - use a Python component implementation, use the implementation.python element in - your .composite file. For example, the following snippet will use the Python script - at path/to/module/PythonModuleName.py, where the path is relative to the location of - the composite file: - </P> -<PRE><implementation.python module="PythonModuleName" path="path/to/module"/> -</PRE> - <P>To instantiate a class instance and use a class-level function, the Python class must - have a default constructor (an __init__ method that takes no arguments besides - 'self') and the class attribute must be defined in the implementation.python element - in your composite, like so: - </P> -<PRE><implementation.python module="PythonModuleName" path="path/to/module" class="PythonClassName"/> -</PRE> - <P>Tuscany currently supports passing simple types (strings, ints, floats, etc) as well - as Service Data Objects into and out of Ruby components. Service Data Objects are represented - in Python as xml.etree.ElementTree Element objects (see the <A HREF="../samples/PythonWeatherForecast/README.html"> - PythonWeatherForecast sample</A> for a demonstration). - </P> - <P>You can write a componentType file for your Python component, but you don't have to - the Python - extension automatically exposes a service and adds references and properties to your Python component - implementation classes based on the information in the composite file. - </P> - - <A NAME="references"><H3>References</H3></A> - <P>References are automatically added to your Python component implementation when - the runtime loads the implementation script, so they can be used like so: - </P> -<PRE># The module-level div function -def div(val1, val2): - # Use the divideService reference - result = divideService.divide(val1, val2) - return result -</PRE> - <P>and in your composite file: - </P> -<PRE><component name="CalculatorComponent"> - <implementation.python module="CalculatorImpl"/> - <reference name="divideService">DivideComponent/DivideService</reference> -</component> -</PRE> - <A NAME="properties"><H3>Properties</H3></A> - <P>A composite with a property defined for a component like so: - </P> -<PRE><component name="DivideComponent"> - <implementation.python module="DivideImpl"/> - <property name="doRounding">true</property> -</component> -</PRE> - <P>means the property is automatically instantiated and assigned the - property value in the Python component implementation, so it can be - used like so: - </P> -<PRE>def divide(val1, val2): - result = float(val1) / float(val2) - print "Python - DivideImpl.divide " + str(val1) + " / " + str(val2) + " = " + str(result) - - # Use the doRounding property - if doRounding: - result = round(result) - print "Python - DivideImpl.divide is rounding the result to " + str(result) - - return result -</PRE> -</P> - </DIV> - - <DIV CLASS="section"> - <A NAME="help"><H2>Getting Help</H2></A> - - <P>First place to look is at the Tuscany FAQ at - <A HREF="http://incubator.apache.org/tuscany/faq.html" - TARGET="_blank">http://incubator.apache.org/tuscany/faq.html</A> </P> - - <P>Any problem with this release can be reported to the Tuscany - <A HREF="http://incubator.apache.org/tuscany/mail-lists.html" - TARGET="_blank">mailing lists</A> or create a JIRA issue at <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/doc/RESTExtension.html b/sca-cpp/trunk/contrib/doc/RESTExtension.html deleted file mode 100644 index 71482d43ec..0000000000 --- a/sca-cpp/trunk/contrib/doc/RESTExtension.html +++ /dev/null @@ -1,291 +0,0 @@ - -<!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("css/maven-base.css"); -@import url("css/maven-theme.css"); - </STYLE> - - <LINK HREF="css/maven-theme.css" MEDIA="print" REL="stylesheet" - TYPE="text/css"> - <TITLE>Tuscany SCA Native - REST Extension</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native - REST Extension</H1> - - <P>This document describes the deployment and use of the REST - binding support in the Apache Tuscany SCA Native runtime. - </P> - <P>The Tuscany REST extension allows SCA services and references to be invoked - via HTTP REST calls - </P> - <P>The following samples demonstrate use of the REST extension:</P> - <UL> - <LI><A HREF="../samples/RestCalculator/README.html">RestCalculator</A></LI> - <LI><A HREF="../samples/RestCustomer/README.html">RestCustomer</A></LI> - <LI><A HREF="../samples/RestYahoo/README.html">RestYahoo</A></LI> - <LI><A HREF="../samples/AlertAggregator/README.html">AlertAggregator</A></LI> - </UL> - </DIV> - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#requirements">System Requirements</A></LI> - <LI><A HREF="#install">Installing the Tuscany SCA REST Extension..</A> - <UL> - <LI><A HREF="#linuxbin">..from the binary release on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxsrc">..from the source release on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbin">..from the binary release on Windows</A></LI> - <LI><A HREF="#winsrc">..from the source release on Windows</A></LI> - </UL></LI> - <LI><A HREF="#deploy">Deploying the Tuscany REST Service extension to the HTTPD server</A></LI> - <LI><A HREF="#resource">The Tuscany REST extension resource pattern</A></LI> - <LI><A HREF="#rpc">The Tuscany REST extension RPC pattern</A></LI> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - <DIV CLASS="section"> - <A NAME="requirements"><H2>System Requirements</H2></A> - - <P>In order to install and use the Tuscany SCA REST Extension there are some - extra requirements in addition to the <A HREF="../GettingStarted.html#requirements">Tuscany - SCA requirements</A>:</P> - <TABLE CLASS="bodyTable"> - - <TBODY> - <TR CLASS="a"> - <TD><B>Software</B></TD> - <TD><B>Download Link</B></TD> - </TR> - <TR CLASS="b"> - <TD>Apache HTTPD version 2.2</TD> - <TD> - <A HREF="http://httpd.apache.org" - TARGET="_blank">http://httpd.apache.org</A><BR/> - Please download and follow the installation instructions. This is required - for building the REST Service extension and for hosting and running REST services. - </TD> - </TR> - <TR CLASS="a"> - <TD>libcurl version 7.15 or higher</TD> - <TD> - <A HREF="http://curl.haxx.se/download.html" - TARGET="_blank">http://curl.haxx.se/download.html</A><BR/> - Please download and follow the installation instructions. This is required - for building the REST Reference extension and for calling REST references.<BR/> - On Windows, the extension was developed and tested against the "Win32 - MSVC 7.15.1 devel" - library provided by Chris Drake. On Linux the libcurl libraries were built from - the 7.16.1 source. On Mac OS X the library was downloaded, built and installed via the - standard "port" command. - </TD> - </TR> - </TBODY> - </TABLE> - </DIV> - - <DIV CLASS="section"> - <A NAME="install"><H2>Installing the Tuscany SCA REST Extension</H2></A> - <A NAME="linuxbin"><H3>Getting the Tuscany SCA REST Extension working with the binary release on Linux and Mac OS X</H3></A> - <OL> - <LI>Follow the <A HREF="#deploy">deployment steps</A> below to ensure the HTTPD server - invokes Tuscany when it receives an appropriate HTTP request</LI> - <LI>Ensure the libcurl and HTTPD libraries are available on the LD_LIBRARY_PATH environment variable on Linux and - the DYLD_LIBRARY_PATH environment variable on Mac OS X</LI> - </OL> - <A NAME="linuxsrc"><H3>Getting the Tuscany SCA REST Extension working with the source release on Linux and Mac OS X</H3></A> - <OL> - <LI>You will need the Tuscany SCA and SDO libraries - follow the instructions - <A HREF="../GettingStarted.html">here</A> to build the SCA libraries and default extensions</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - <LI>APR_INCLUDE=<path to APR includes></LI> - <LI>HTTPD_INCLUDE=<path to HTTPD includes><BR/> - Note: If you are using a default installation of HTTPD these are usually:<BR/> - APR_INCLUDE=/usr/include/apr-1<BR/> - HTTPD_INCLUDE=/usr/include/httpd</LI> - <LI>CURL_INCLUDE=<path to libcurl includes></LI> - <LI>CURL_LIB<path to libcurl libraries><BR/> - Note: If you are using a default installation of libcurl these are usually:<BR/> - CURL_INCLUDE=/usr/include/curl<BR/> - CURL_LIB=/usr/lib</LI> - </UL></LI> - <LI>Build the REST source only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir></LI> - <LI>./configure --prefix=$TUSCANY_SCACPP --enable-restbinding --enable-cpp=no --enable-wsbinding=no</LI> - <LI>make</LI> - <LI>make install</LI> - </UL> - NOTE: If you don't provide a --prefix configure option, it will by default install into - /usr/local/tuscany/sca</LI> - </OL> - - <A NAME="winbin"><H3>Getting the Tuscany SCA REST Extension working with the binary release on Windows</H3></A> - <OL> - <LI>Follow the <A HREF="#deploy">deployment steps</A> below to ensure the HTTPD server - invokes Tuscany when it receives an appropriate HTTP request</LI> - <LI>Ensure the libcurl and HTTPD libraries are available on the PATH environment variable</LI> - </OL> - <A NAME="winsrc"><H3>Getting the Tuscany SCA REST Extension working with the source release on Windows</H3></A> - <OL> - <LI>Unzip the supplied source zip file</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - <LI>HTTPD_HOME=<path to installed HTTPD server> - <LI>LIBCURL_HOME=<path to installed libcurl libraries> - </UL></LI> - <LI>You must have set up the environment for Microsoft Visual C++ tools. The build command - will call vcvars32 to set the environment. Ensure the directory containing this is on your path. - This will be where you installed the compiler.</LI> - <LI>Build the source: - <UL> - <LI>cd <to where you unzipped the source></LI> - <LI>build</LI> - </UL> - This will build all the projects and put the required output into the 'deploy' directory<BR/><BR/> - Alternatively, open the workspace at <tuscany_sca_install_dir>/projects/tuscany_sca/tuscany_sca.dsw - in Visual Studio 6 or at at <tuscany_sca_install_dir>/projectsvc7/tuscany_sca/tuscany_sca.sln - in Visual Studio 7.1 - you can build projects individually - or build the samples to rebuild all the projects</LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="deploy"><H2>Deploying the Tuscany REST Service extension to the HTTPD server</H2></A> - <P>The following samples demonstrate use of the REST extension:</P> - <UL> - <LI><A HREF="../samples/RestCalculator/README.html">RestCalculator</A></LI> - <LI><A HREF="../samples/RestCustomer/README.html">RestCustomer</A></LI> - <LI><A HREF="../samples/RestYahoo/README.html">RestYahoo</A></LI> - <LI><A HREF="../samples/AlertAggregator/README.html">AlertAggregator</A></LI> - </UL> - <P>Each of these samples generate a set of configuration files for the HTTPD server. Use the startserver - script that comes with each sample to generate the files and start the server with the REST Service - extension enabled. The instructions below detail the information that is provided in these configuration - files.</P> - <OL> - <LI>On Windows, load the sca_rest_module into HTTPD by adding the following line to the conf/httpd.conf file: -<PRE>LoadModule sca_rest_module <path to installed Tuscany SCA>/extensions/rest/service/bin/tuscany_sca_mod_rest.dll</PRE> - On Linux, use the following line: -<PRE>LoadModule sca_rest_module <path to installed Tuscany SCA>/extensions/rest/service/lib/libtuscany_sca_mod_rest.so</PRE> - On Mac OS X, use the following line: -<PRE>LoadModule sca_rest_module <path to installed Tuscany SCA>/extensions/rest/service/lib/libtuscany_sca_mod_rest.dylib</PRE> - </LI> - <LI>Set a TuscanyHome directive to the installation of Tuscany SCA Native: -<PRE>TuscanyHome <path to installed Tuscany SCA></PRE> - </LI> - <LI>Create a Location directive for the URL to be used and set the sca_rest_module as the handler to - be invoked when requests for the location are received. Also set the TuscanyRoot directive for - this Location, set to the location of the SCA application to be invoked: -<PRE> -<Location /rest> - SetHandler sca_rest_module - TuscanyRoot <path to installed Tuscany SCA>/samples/RestCalculator/deploy/ -</Location> -</PRE> - The above example will mean that calls to http://myserver/rest will be handled by Tuscany SCA Native - and configured to invoke the RestCalculator sample application. - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="resource"><H2>Tuscany REST Extension Resource Pattern</H2></A> - <P>If the SCA service or reference uses an <interface.rest> interface, CRUD - (Create, Retrieve, Update, Delete) methods are mapped to HTTP verbs to access resource - representations as follows:</P> - <UL> - <LI>uri = create(resource)<BR/> - HTTP POST <binding-uri> + an XML element representing the resource to create<BR/> - Returns Location header containing the uri of the created resource</LI> - <LI>resource = retrieve()<BR/> - HTTP GET <binding-uri><BR/> - Returns an XML element representing the REST resource</LI> - <LI>resource = retrieve(uri, parm-value-1, parm-value-n)<BR/> - HTTP GET uri/parm-value-1/parm-value-n<BR/> - or if uri ends with a '?':<BR/> - HTTP GET uri?parm-name-1=parm-value1&parm-name-n=parm-value-n<BR/> - Returns an XML element representing the REST resource</LI> - <LI>update(resource)<BR/> - HTTP PUT <binding-uri> + an XML element representing the updated resource</LI> - <LI>update(uri, parm-1, parm-n, resource)<BR/> - HTTP PUT uri/parm-value-1/parm-value-n + an XML element representing the updated resource<BR/> - or if uri ends with a '?':<BR/> - HTTP PUT uri?parm-name-1=parm-value1&parm-name-n=parm-value-n + an XML element representing the updated resource</LI> - <LI>delete()<BR/> - HTTP DELETE <binding-uri></LI> - <LI>delete(uri, parm-1, parm-n)<BR/> - HTTP DELETE uri/parm-value-1/parm-value-n<BR/> - or if uri ends with a '?':<BR/> - HTTP DELETE uri?parm-name-1=parm-value1&parm-name-n=parm-value-n</LI> - </UL> - <P>In this mode, HTTP return codes are used almost as described in the Atom spec. Also - GET returns etags with the retrieved resource representations to help caching by clients.</P> - </DIV> - - <DIV CLASS="section"> - <A NAME="rpc"><H2>Tuscany REST Extension RPC Pattern</H2></A> - <P>If the SCA service/reference does not use an <interface.rest> interface, then this is - not a real REST pattern, we simply flow method calls over XML / HTTP as follows:</P> - <UL><LI>result = method-abc(parm-1, parm-n) - <UL> - <LI>if single input parameter of complex type:<BR/> - HTTP POST <binding-uri>/method-abc + XML element representing the complex parameter</LI> - <LI>or if multiple parameters including parameters of complex types:<BR/> - HTTP POST <binding-uri>/method-abc + Mime multipart/form-data body containing one parameter per part</LI> - <LI>or if multiple parameters all of simple types:<BR/> - HTTP GET <binding-uri>/method-abc?parm-1-name=parm-1-value&parm-n-name=parm-n-value</LI> - </UL> - Returns an XML element representing the result</LI> - </UL> - </DIV> - - <DIV CLASS="section"> - <A NAME="help"><H2>Getting Help</H2></A> - - <P>First place to look is at the Tuscany FAQ at - <A HREF="http://incubator.apache.org/tuscany/faq.html" - TARGET="_blank">http://incubator.apache.org/tuscany/faq.html</A> </P> - - <P>Any problem with this release can be reported to the Tuscany - <A HREF="http://incubator.apache.org/tuscany/mail-lists.html" - TARGET="_blank">mailing lists</A> or create a JIRA issue at <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/doc/RubyExtension.html b/sca-cpp/trunk/contrib/doc/RubyExtension.html deleted file mode 100644 index 96a4ad2b82..0000000000 --- a/sca-cpp/trunk/contrib/doc/RubyExtension.html +++ /dev/null @@ -1,292 +0,0 @@ -<!-- - 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. ---> - - -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<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("css/maven-base.css"); -@import url("css/maven-theme.css"); - </STYLE> - - <LINK HREF="css/maven-theme.css" MEDIA="print" REL="stylesheet" - TYPE="text/css"> - <TITLE>Tuscany SCA Native - Ruby Extension</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native - Ruby Extension</H1> - - <P>The Tuscany Ruby extension allows Ruby scripts to be used as components in - SCA composites and as clients that can invoke SCA services. - </P> - <P>The following samples demonstrate use of the Ruby extension:</P> - <UL> - <LI><A HREF="../samples/RubyCalculator/README.html">RubyCalculator</A></LI> - <LI><A HREF="../samples/RubyBigBank/README.html">RubyBigBank</A></LI> - <LI><A HREF="../samples/RestCalculator/README.html">RestCalculator</A></LI> - <LI><A HREF="../samples/RestYahoo/README.html">RestYahoo</A></LI> - <LI><A HREF="../samples/HTTPDBigBank/README.html">HTTPDBigBank</A></LI> - </UL> - </DIV> - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#requirements">System Requirements</A></LI> - <LI><A HREF="#install">Installing the Tuscany SCA Ruby Extension..</A> - <UL> - <LI><A HREF="#linuxbin">..from the binary release on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxsrc">..from the source release on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbin">..from the binary release on Windows</A></LI> - <LI><A HREF="#winsrc">..from the source release on Windows</A></LI> - </UL></LI> - <LI><A HREF="#pm">The Tuscany Ruby Programming Model</A></LI> - <UL> - <LI><A HREF="#clients">Clients</A></LI> - <LI><A HREF="#components">SCA Components</A></LI> - <LI><A HREF="#references">Component references</A></LI> - <LI><A HREF="#properties">Component properties</A></LI> - </UL> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - <DIV CLASS="section"> - <A NAME="requirements"><H2>System Requirements</H2></A> - - <P>In order to install and use the Tuscany SCA Ruby Extension there are some - extra requirements in addition to the <A HREF="../GettingStarted.html#requirements">Tuscany - SCA requirements</A>:</P> - <TABLE CLASS="bodyTable"> - - <TBODY> - <TR CLASS="a"> - <TD><B>Software</B></TD> - <TD><B>Download Link</B></TD> - </TR> - <TR CLASS="b"> - <TD>Ruby version 1.8.x</TD> - - <TD> - <A HREF="http://www.ruby-lang.org" - TARGET="_blank">http://www.ruby-lang.org</A><BR/> - Please download and follow the installation instructions. You should - be able to build the Tuscany SCA Ruby Extension with other versions of Ruby. - The extension has been tested with the - <A HREF="http://rubyforge.org/frs/download.php/12751/ruby185-21.exe">Ruby 1.8.5 One-Click Installer</A> - on Windows and the <A HREF="ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.5-p12.tar.gz">1.8.5 source code</A> - (compiled locally) on Linux. - </TD> - </TR> - </TBODY> - </TABLE> - </DIV> - - <DIV CLASS="section"> - <A NAME="install"><H2>Installing the Tuscany SCA Ruby Extension</H2></A> - <A NAME="linuxbin"><H3>Getting the Tuscany SCA Ruby Extension working with the binary release on Linux and Mac OS X</H3></A> - <OL> - <LI>Ensure the Ruby libraries are available on the PATH environment variable</LI> - </OL> - <A NAME="linuxsrc"><H3>Getting the Tuscany SCA Ruby Extension working with the source release on Linux and Mac OS X</H3></A> - <OL> - <LI>You will need the Tuscany SCA and SDO libraries - follow the instructions - <A HREF="../GettingStarted.html">here</A> to build the SCA libraries and default extensions</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - <LI>RUBY_LIB=<path to Ruby libraries></LI> - <LI>RUBY_INCLUDE=<path to Ruby includes><BR/> - Note: If you are using a default installation of Ruby these are usually:<BR/> - RUBY_LIB=/usr/lib<BR/> - RUBY_INCLUDE=/usr/lib/ruby/1.8/i386-linux</LI> - </UL></LI> - <LI>Build the Ruby source only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir></LI> - <LI>./configure --prefix=$TUSCANY_SCACPP --enable-ruby --enable-cpp=no --enable-wsbinding=no</LI> - <LI>make</LI> - <LI>make install</LI> - </UL> - NOTE: If you don't provide a --prefix configure option, it will by default install into - /usr/local/tuscany/sca</LI> - </OL> - - <A NAME="winbin"><H3>Getting the Tuscany SCA Ruby Extension working with the binary release on Windows</H3></A> - <OL> - <LI>Ensure the Ruby libraries are available on the PATH environment variable</LI> - </OL> - <A NAME="winsrc"><H3>Getting the Tuscany SCA Ruby Extension working with the source release on Windows</H3></A> - <OL> - <LI>Unzip the supplied source zip file</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - <LI>RUBY_HOME=<path to installed Ruby> - </UL></LI> - <LI>You must have set up the environment for Microsoft Visual C++ tools. The build command - will call vcvars32 to set the environment. Ensure the directory containing this is on your path. - This will be where you installed the compiler.</LI> - <LI>Build the source: - <UL> - <LI>cd <to where you unzipped the source></LI> - <LI>build</LI> - </UL> - This will build all the projects and put the required output into the 'deploy' directory<BR/><BR/> - Alternatively, open the workspace at <tuscany_sca_install_dir>/projects/tuscany_sca/tuscany_sca.dsw - in Visual Studio 6 or at at <tuscany_sca_install_dir>/projectsvc7/tuscany_sca/tuscany_sca.sln - in Visual Studio 7.1 - you can build projects individually - or build the samples to rebuild all the projects</LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="pm"><H2>The Tuscany Ruby Programming Model</H2></A> - <P>This section will explain the Tuscany Ruby programming model to help you to - write your own Ruby components and clients. - </P> - <P>The Tuscany Ruby component and client support comes from a Ruby extension - library that is built in the <tuscany_sca_install_dir>/extensions/ruby/bin - directory on Windows and <tuscany_sca_install_dir>/extensions/ruby/lib on - Linux and Mac OS X. - </P> - <A NAME="clients"><H3>Clients</H3></A> - <P>Using the Ruby SCA extension library, a Ruby client can search for an SCA service with: - </P> -<PRE>require("libtuscany_sca_ruby") - -calculator = SCA::locateService("CalculatorComponent/CalculatorService") -</PRE> - <P>This finds the component and service as defined in the composite and componentType - side files and returns a proxy object that can call the SCA service. You can then - simply call a business method on "calculator", like this: - </P> -<PRE>result = calculator.add(12.3, 45.6)</PRE> - </P> - <A NAME="components"><H3>Components</H3></A> - <P>Ruby component implementations are standard Ruby scripts, where class-level - functions or module-level functions can be invoked by the Tuscany runtime. To - use a Ruby component implementation, use the implementation.ruby element in - your .composite file. For example: - </P> -<PRE><implementation.ruby script="CalculatorImpl.rb"/> -</PRE> - <P>To instantiate a class instance and use a class-level function, the Ruby class must - have a default constructor (an initialize() method that takes no arguments) and the - class attribute must be definde in the implementation.ruby element - in your composite, like so: - </P> -<PRE><implementation.ruby script="CalculatorImpl.rb" class="CalculatorImpl"/> -</PRE> - <P>Tuscany currently supports passing simple types (strings, ints, floats, etc) as well - as Service Data Objects into and out of Ruby components. Service Data Objects are represented - in Ruby as REXML Document objects (see the <A HREF="../samples/RubyBigBank/README.html"> - Ruby BigBank sample</A> for a demonstration). - </P> - <P>You can write a componentType file for your Ruby component, but you don't have to - the Ruby - extension introspects Ruby component implementation classes for you and binds public - attributes to references and properties. - </P> - <A NAME="references"><H3>References</H3></A> - <P>References can be invoked from Ruby component implementations by the use of public - attributes in the component implementation classes, like this: - </P> -<PRE>class CalculatorImpl - - # Define the public attribute that corresponds to the divideService reference - attr_writer :divideService - -... - - def div(arg1, arg2) - print "Ruby - CalculatorImpl.div\n" - # Invoke the divideService reference - @divideService.divide(arg1.to_f, arg2.to_f) - end - -... -end -</PRE> - <P>and in your composite file: - </P> -<PRE><component name="CalculatorComponent"> - <implementation.ruby script="CalculatorImpl.rb"/> - <reference name="divideService">DivideComponent/DivideService</reference> -</component> -</PRE> - <A NAME="properties"><H3>Properties</H3></A> - <P>A composite with a property defined for a component like so: - </P> -<PRE><component name="DivideComponent"> - <implementation.ruby script="DivideImpl.rb" class="DivideImpl"/> - <property name="round">true</property> -</component> -</PRE> - <P>allows a public attribute of a Ruby component implementation class to be - assigned the property value, so it can be used like so: - </P> -<PRE>class DivideImpl - - # Define the public attribute that corresponds to the round property - attr_writer :round - -... - - def divide(arg1, arg2) - print "Ruby - DivideImpl.divide ", arg1, " / ", arg2, "\n" - res = arg1.to_f / arg2.to_f - # Use the round property - if @round then - res = res.round - print "DivideImpl.divide rounding\n" - end - print "DivideImpl.divide ", res, "\n" - res - end -end -</PRE> -</P> - </DIV> - - <DIV CLASS="section"> - <A NAME="help"><H2>Getting Help</H2></A> - - <P>First place to look is at the Tuscany FAQ at - <A HREF="http://incubator.apache.org/tuscany/faq.html" - TARGET="_blank">http://incubator.apache.org/tuscany/faq.html</A> </P> - - <P>Any problem with this release can be reported to the Tuscany - <A HREF="http://incubator.apache.org/tuscany/mail-lists.html" - TARGET="_blank">mailing lists</A> or create a JIRA issue at <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/doc/SCAExtension.html b/sca-cpp/trunk/contrib/doc/SCAExtension.html deleted file mode 100644 index 63157dc9bf..0000000000 --- a/sca-cpp/trunk/contrib/doc/SCAExtension.html +++ /dev/null @@ -1,173 +0,0 @@ - -<!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("css/maven-base.css"); -@import url("css/maven-theme.css"); - </STYLE> - - <LINK HREF="css/maven-theme.css" MEDIA="print" REL="stylesheet" - TYPE="text/css"> - <TITLE>Tuscany SCA Native - SCA Binding Extension</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native - SCA Binding Extension</H1> - - <P>This document describes the deployment and use of the SCA - binding support in the Apache Tuscany SCA Native runtime. - </P> - <P>The SCA binding allows components to be invoked via an - implementation specific protocol. Currently, in the Tuscany SCA binding - extension, the <A HREF="Axis2CWSExtension.html">Axis2/C Web Service binding extension</A> - is used to provide the implementaion, so calls use the SOAP protocol - </P> - <P>The <A HREF="../samples/HTTPDBigBank/README.html">HTTPDBigBank</A> sample demonstrates the - use of the SCA binding extension. - </P> - </DIV> - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#requirements">System Requirements</A></LI> - <LI><A HREF="#install">Installing the Tuscany SCA Binding Extension..</A> - <UL> - <LI><A HREF="#linuxbin">..from the binary release on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxsrc">..from the source release on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbin">..from the binary release on Windows</A></LI> - <LI><A HREF="#winsrc">..from the source release on Windows</A></LI> - </UL></LI> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - <DIV CLASS="section"> - <A NAME="requirements"><H2>System Requirements</H2></A> - - <P>In order to install and use the Tuscany SCA Binding Extension there are some - extra requirements in addition to the <A HREF="../GettingStarted.html#requirements">Tuscany - SCA requirements</A>:</P> - <TABLE CLASS="bodyTable"> - - <TBODY> - <TR CLASS="a"> - <TD><B>Software</B></TD> - <TD><B>Details</B></TD> - </TR> - <TR CLASS="b"> - <TD><A HREF="Axis2CWSExtension.html">Tuscany Axis2/C Web Service binding extension</A></TD> - - <TD> - Please follow the installation instructions. The Axis2/C Web Service extension requires - <A HREF="http://ws.apache.org/axis2/c">Axis2/C version 0.96</A>. - </TD> - </TR> - </TBODY> - </TABLE> - </DIV> - - <DIV CLASS="section"> - <A NAME="install"><H2>Installing the Tuscany SCA Binding Extension</H2></A> - <A NAME="linuxbin"><H3>Getting the Tuscany SCA Binding Extension working with the binary release on Linux and Mac OS X</H3></A> - <OL> - <LI>Ensure the AXIS2C_HOME environment variable is set to the Axis2/C installation</LI> - <LI>Deploy the Axis2/C Web Services extension by following the <A HREF="Axis2CWSExtension.html#deploy">deployment steps</A></LI> - <LI>Ensure the Axis2/C Web Service extension and SCA Binding extension libraries are available - on the LD_LIBRARY_PATH environment variable on Linux and the DYLD_LIBRARY_PATH environment variable on Mac OS X</LI> - </OL> - <A NAME="linuxsrc"><H3>Getting the Tuscany SCA Binding Extension working with the source release on Linux and Mac OS X</H3></A> - <OL> - <LI>You will need the Tuscany SCA and SDO libraries - follow the instructions - <A HREF="../GettingStarted.html">here</A> to build the SCA libraries and default extensions</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL></LI> - <LI>Build the SCA Binding source only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir></LI> - <LI>./configure --prefix=$TUSCANY_SCACPP --enable-scabinding --enable-cpp=no --enable-wsbinding=no</LI> - <LI>make</LI> - <LI>make install</LI> - </UL> - NOTE: If you don't provide a --prefix configure option, it will by default install into - /usr/local/tuscany/sca</LI> - </OL> - - <A NAME="winbin"><H3>Getting the Tuscany SCA Binding Extension working with the binary release on Windows</H3></A> - <OL> - <LI>Ensure the AXIS2C_HOME environment variable is set to the Axis2/C installation</LI> - <LI>Deploy the Axis2/C Web Services extension by following the <A HREF="Axis2CWSExtension.html#deploy">deployment steps</A></LI> - <LI>Ensure the Axis2/C Web Services extension and SCA Binding extension libraries are available - on the PATH environment variable</LI> - </OL> - <A NAME="winsrc"><H3>Getting the Tuscany SCA Binding Extension working with the source release on Windows</H3></A> - <OL> - <LI>Unzip the supplied source zip file</LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to built Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - <LI>You must have set up the environment for Microsoft Visual C++ tools. The build command - will call vcvars32 to set the environment. Ensure the directory containing this is on your path. - This will be where you installed the compiler.</LI> - <LI>Build the source: - <UL> - <LI>cd <to where you unzipped the source></LI> - <LI>build</LI> - </UL> - This will build all the projects and put the required output into the 'deploy' directory<BR/><BR/> - Alternatively, open the workspace at <tuscany_sca_install_dir>/projects/tuscany_sca/tuscany_sca.dsw - in Visual Studio 6 or at at <tuscany_sca_install_dir>/projectsvc7/tuscany_sca/tuscany_sca.sln - in Visual Studio 7.1 - you can build projects individually - or build the samples to rebuild all the projects</LI> - </OL> - </DIV> - - <DIV CLASS="section"> - </DIV> - - <DIV CLASS="section"> - <A NAME="help"><H2>Getting Help</H2></A> - - <P>First place to look is at the Tuscany FAQ at - <A HREF="http://incubator.apache.org/tuscany/faq.html" - TARGET="_blank">http://incubator.apache.org/tuscany/faq.html</A> </P> - - <P>Any problem with this release can be reported to the Tuscany - <A HREF="http://incubator.apache.org/tuscany/mail-lists.html" - TARGET="_blank">mailing lists</A> or create a JIRA issue at <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/doc/css/maven-base.css b/sca-cpp/trunk/contrib/doc/css/maven-base.css deleted file mode 100644 index e23caf04e5..0000000000 --- a/sca-cpp/trunk/contrib/doc/css/maven-base.css +++ /dev/null @@ -1,168 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -body { - margin: 0px; - padding: 0px; -} -img { - border:none; -} -table { - padding:0px; - width: 100%; - margin-left: -2px; - margin-right: -2px; -} -acronym { - cursor: help; - border-bottom: 1px dotted #feb; -} -table.bodyTable th, table.bodyTable td { - padding: 2px 4px 2px 4px; - vertical-align: top; -} -div.clear{ - clear:both; - visibility: hidden; -} -div.clear hr{ - display: none; -} -#bannerLeft, #bannerRight { - font-size: xx-large; - font-weight: bold; -} -#bannerLeft img, #bannerRight img { - margin: 0px; -} -.xleft, #bannerLeft img { - float:left; - text-shadow: #7CFC00; -} -.xright, #bannerRight img { - float:right; - text-shadow: #7CFC00; -} -#banner { - padding: 0px; -} -#banner img { - border: none; -} -#breadcrumbs { - padding: 3px 10px 3px 10px; -} -#leftColumn { - width: 150px; - float:left; -} -#bodyColumn { - margin-right: 1.5em; - margin-left: 30px; -} -#legend { - padding: 8px 0 8px 0; -} -#navcolumn { - padding: 8px 4px 0 8px; -} -#navcolumn h5 { - margin: 0; - padding: 0; - font-size: small; -} -#navcolumn ul { - margin: 0; - padding: 0; - font-size: small; -} -#navcolumn li { - list-style-type: none; - background-image: none; - background-repeat: no-repeat; - background-position: 0 0.4em; - padding-left: 16px; - list-style-position: ouside; - line-height: 1.2em; - font-size: smaller; -} -#navcolumn li.expanded { - background-image: url(../images/expanded.gif); -} -#navcolumn li.collapsed { - background-image: url(../images/collapsed.gif); -} -#poweredBy { - text-align: center; -} -#navcolumn img { - margin-top: 10px; - margin-bottom: 3px; -} -#poweredBy img { - display:block; - margin: 20px 0 20px 17px; - border: 1px solid black; - width: 90px; - height: 30px; -} -#search img { - margin: 0px; - display: block; -} -#search #q, #search #btnG { - border: 1px solid #999; - margin-bottom:10px; -} -#search form { - margin: 0px; -} -#lastPublished { - font-size: x-small; -} -.navSection { - margin-bottom: 2px; - padding: 8px; -} -.navSectionHead { - font-weight: bold; - font-size: x-small; -} -.section { - padding: 4px; -} -#footer { - padding: 3px 10px 3px 10px; - font-size: x-small; -} -#breadcrumbs { - font-size: x-small; - margin: 0pt; -} -.source { - padding: 12px; - margin: 1em 7px 1em 7px; -} -.source pre { - margin: 0px; - padding: 0px; -} diff --git a/sca-cpp/trunk/contrib/doc/css/maven-theme.css b/sca-cpp/trunk/contrib/doc/css/maven-theme.css deleted file mode 100644 index 91cf29cda2..0000000000 --- a/sca-cpp/trunk/contrib/doc/css/maven-theme.css +++ /dev/null @@ -1,173 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -body { - padding: 0px 0px 10px 0px; -} -body, td, select, input, li{ - font-family: Verdana, Helvetica, Arial, sans-serif; - #font-size: 13px; - padding: 4px 4px 4px 4px; - line-height: 1.5em; - font-size: small; -} -code{ - font-family: Courier, monospace; - font-size: 13px; -} -a { - text-decoration: none; -} -a:link { - color:#36a; -} -a:visited { - color:#47a; -} -a:active, a:hover { - color:#69c; -} -#legend li.externalLink { - background: url(../images/external.png) left top no-repeat; - padding-left: 18px; -} -a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover { - background: url(../images/external.png) right center no-repeat; - padding-right: 18px; -} -#legend li.newWindow { - background: url(../images/newwindow.png) left top no-repeat; - padding-left: 18px; -} -a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover { - background: url(../images/newwindow.png) right center no-repeat; - padding-right: 18px; -} -h1 { - font-size: x-large; - line-height: 1em; -} - - -h2 { - padding: 4px 4px 4px 6px; - border: 1px solid #999; - color: #900; - background-color: #ddd; - - font-size: large; -} -h3 { - padding: 4px 4px 4px 6px; - border: 1px solid #aaa; - color: #900; - background-color: #eee; - font-weight: normal; - font-size: large; -} -h4 { - padding: 4px 4px 4px 6px; - border: 1px solid #bbb; - color: #900; - background-color: #fff; - font-weight: normal; - font-size: large; -} -h5 { - padding: 4px 4px 4px 6px; - color: #900; - font-size: normal; -} -p { - line-height: 1.5em; - font-size: small; -} -#breadcrumbs { - border-top: 1px solid #aaa; - border-bottom: 1px solid #aaa; - background-color: #ccc; -} -#leftColumn { - margin: 10px 0 0 5px; - border: 1px solid #999; - background-color: #eee; -} -#navcolumn h5 { - font-size: smaller; - border-bottom: 1px solid #aaaaaa; - padding-top: 2px; - color: #000; -} - -table.bodyTable th { - color: white; - background-color: #bbb; - text-align: left; - font-weight: bold; -} - -table.bodyTable th, table.bodyTable td { - font-size: small; -} - -table.bodyTable tr.a { - background-color: #ddd; -} - -table.bodyTable tr.b { - background-color: #eee; -} - -.source { - border: 1px solid #999; -} -dl { - padding: 4px 4px 4px 6px; - border: 1px solid #aaa; - background-color: #ffc; -} -dt { - color: #900; -} -#organizationLogo img, #projectLogo img, #projectLogo span{ - margin: 8px; -} -#banner { - border-bottom: 1px solid #fff; -} -.sourcecode { - border: 1px solid #999; - font-family: Courier, monospace; - font-size: 13px; - white-space: pre; - padding: 4px 4px 4px 6px; - margin: 4px 4px 4px 6px; -} -pre { - border: 1px solid #999; - font-family: Courier, monospace; - font-size: 13px; - white-space: pre; - padding: 4px 4px 4px 6px; - margin: 4px 4px 4px 6px; -} - - diff --git a/sca-cpp/trunk/contrib/runtime/Makefile.am b/sca-cpp/trunk/contrib/runtime/Makefile.am deleted file mode 100644 index a03650cd83..0000000000 --- a/sca-cpp/trunk/contrib/runtime/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -# 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. - -SUBDIRS = core extensions - diff --git a/sca-cpp/trunk/contrib/runtime/core/Makefile.am b/sca-cpp/trunk/contrib/runtime/core/Makefile.am deleted file mode 100644 index f833a2cb08..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# 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. - -SUBDIRS = src test -nobase_data_DATA = xsd/*.* - -EXTRA_DIST = xsd - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/core/src/Makefile.am deleted file mode 100644 index ebba243583..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/Makefile.am +++ /dev/null @@ -1,78 +0,0 @@ -# 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. - -lib_LTLIBRARIES = libtuscany_sca.la - -nobase_include_HEADERS = \ -tuscany/sca/*.h \ -tuscany/sca/core/*.h \ -tuscany/sca/model/*.h \ -tuscany/sca/util/*.h \ -tuscany/sca/extension/*.h - -## To list the source files execute the following: -## ls -1 tuscany/sca/util/*.cpp tuscany/sca/extension/*.cpp tuscany/sca/model/*.cpp tuscany/sca/core/*.cpp tuscany/sca/cpp/*.cpp tuscany/sca/ws/*.cpp | awk '{ print $1 " \\" }' -## and copy/paste the output below -libtuscany_sca_la_SOURCES = \ -tuscany/sca/core/Exceptions.cpp \ -tuscany/sca/core/Operation.cpp \ -tuscany/sca/core/SCARuntime.cpp \ -tuscany/sca/core/ServiceProxy.cpp \ -tuscany/sca/core/ServiceWrapper.cpp \ -tuscany/sca/extension/ImplementationExtension.cpp \ -tuscany/sca/extension/InterfaceExtension.cpp \ -tuscany/sca/extension/ReferenceBindingExtension.cpp \ -tuscany/sca/extension/ServiceBindingExtension.cpp \ -tuscany/sca/model/Binding.cpp \ -tuscany/sca/model/Component.cpp \ -tuscany/sca/model/ComponentType.cpp \ -tuscany/sca/model/Composite.cpp \ -tuscany/sca/model/CompositeReference.cpp \ -tuscany/sca/model/CompositeReferenceBinding.cpp \ -tuscany/sca/model/CompositeService.cpp \ -tuscany/sca/model/Contract.cpp \ -tuscany/sca/model/Interface.cpp \ -tuscany/sca/model/ModelLoader.cpp \ -tuscany/sca/model/ReferenceBinding.cpp \ -tuscany/sca/model/Reference.cpp \ -tuscany/sca/model/ReferenceType.cpp \ -tuscany/sca/model/ServiceBinding.cpp \ -tuscany/sca/model/Service.cpp \ -tuscany/sca/model/ServiceType.cpp \ -tuscany/sca/model/Wire.cpp \ -tuscany/sca/model/WSDLDefinition.cpp \ -tuscany/sca/model/WSDLInterface.cpp \ -tuscany/sca/model/WSDLMessagePart.cpp \ -tuscany/sca/model/WSDLOperation.cpp \ -tuscany/sca/util/DefaultLogWriter.cpp \ -tuscany/sca/util/File.cpp \ -tuscany/sca/util/FileLogWriter.cpp \ -tuscany/sca/util/Library.cpp \ -tuscany/sca/util/Logger.cpp \ -tuscany/sca/util/LogWriter.cpp \ -tuscany/sca/util/Mutex.cpp \ -tuscany/sca/util/Queue.cpp \ -tuscany/sca/util/SDOUtils.cpp \ -tuscany/sca/util/Thread.cpp \ -tuscany/sca/util/ThreadLocal.cpp \ -tuscany/sca/util/Utils.cpp - -libtuscany_sca_la_LIBADD = -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo -lpthread - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Exceptions.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Exceptions.cpp deleted file mode 100644 index 7fa9c5e6b9..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Exceptions.cpp +++ /dev/null @@ -1,285 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <sstream> -#if defined(WIN32) || defined (_WINDOWS) || defined (IS_DARWIN) -#else -#include <execinfo.h> -#endif - -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Logging.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - - // ======================================================================== - // Constructor - // ======================================================================== - TuscanyRuntimeException :: TuscanyRuntimeException(const char* name, - severity_level sev, - const char* msg_text) - { - severity = sev; - location_set = 0; - class_name = new char[strlen(name) + 1]; - strcpy(class_name,name); - message_text = new char[strlen(msg_text)+1]; - strcpy(message_text,msg_text); - -#if defined(WIN32) || defined (_WINDOWS) || defined (IS_DARWIN) -#else - void* array[25]; - stacktrace_size = backtrace(array, 25); - stacktrace_symbols = backtrace_symbols(array, stacktrace_size); -#endif - - logwarning("%s raised: %s", class_name, message_text); - - } // end TuscanyRuntimeException constuctor - - // ======================================================================== - // Constructor - // ======================================================================== - TuscanyRuntimeException :: TuscanyRuntimeException(const TuscanyRuntimeException& c) - { - severity = c.getSeverity(); - location_set = c.location_set; - class_name = new char[strlen(c.getEClassName()) + 1]; - strcpy(class_name, c.getEClassName()); - message_text = new char[strlen(c.getMessageText())+1]; - strcpy(message_text,c.getMessageText()); - - for (int i=0; i < location_set; i++) - { - locations[i].file = new char[strlen(c.locations[i].file) + 1]; - strcpy(locations[i].file,c.locations[i].file); - locations[i].line = c.locations[i].line; - locations[i].function = new char[strlen(c.locations[i].function) + 1]; - strcpy(locations[i].function, c.locations[i].function); - } - -#if defined(WIN32) || defined (_WINDOWS) || defined (IS_DARWIN) -#else - void* array[25]; - stacktrace_size = backtrace(array, 25); - stacktrace_symbols = backtrace_symbols(array, stacktrace_size); -#endif - - logwarning("%s raised: %s", class_name, message_text); - } - - // ======================================================================== - // Constructor - // ======================================================================== - TuscanyRuntimeException :: TuscanyRuntimeException(const commonj::sdo::SDORuntimeException& c) - { - class_name = new char[strlen(c.getEClassName()) + 1]; - strcpy(class_name, c.getEClassName()); - message_text = new char[strlen(c.getMessageText())+1]; - strcpy(message_text,c.getMessageText()); - severity = Warning; - const char* file = c.getFileName(); - unsigned long line = c.getLineNumber(); - const char* function = c.getFunctionName(); - location_set = 0; - if (file) - { - setLocation(file, line, function); - } - -#if defined(WIN32) || defined (_WINDOWS) || defined (IS_DARWIN) -#else - void* array[25]; - stacktrace_size = backtrace(array, 25); - stacktrace_symbols = backtrace_symbols(array, stacktrace_size); -#endif - - logwarning("%s raised: %s", class_name, message_text); - } - - // ======================================================================== - // Destructor - // ======================================================================== - TuscanyRuntimeException :: ~TuscanyRuntimeException() - { - if (class_name) delete class_name; - if (message_text) delete message_text; - for (int i=0;i<location_set;i++) - { - if (locations[i].file) delete locations[i].file; - if (locations[i].function) delete locations[i].function; - } - -#if defined(WIN32) || defined (_WINDOWS) || defined (IS_DARWIN) -#else - free(stacktrace_symbols); -#endif - - } // end TuscanyRuntimeException destructor - - // ======================================================================== - // Return class name of this exception - // ======================================================================== - const char* TuscanyRuntimeException :: getEClassName() const - { - return class_name; - } // end getClassName() - - // ======================================================================== - // Return severity - // ======================================================================== - TuscanyRuntimeException::severity_level TuscanyRuntimeException :: getSeverity() const - { - return severity; - } // end getSeverity() - - // ======================================================================== - // Return message text associated with exception - // ======================================================================== - const char* TuscanyRuntimeException :: getMessageText() const - { - return message_text; - } // end getMessageText() - - // ======================================================================== - // Return file name where exception was raised - // ======================================================================== - const char* TuscanyRuntimeException :: getFileName() const - { - return locations[0].file; - } // end getFileName() - - // ======================================================================== - // Return line number where exception was raised - // ======================================================================== - unsigned long TuscanyRuntimeException :: getLineNumber() const - { - return locations[0].line; - } // end getLineNumber() - - // ======================================================================== - // Return function name where exception was raised - // ======================================================================== - const char* TuscanyRuntimeException :: getFunctionName() const - { - return locations[0].function; - } // end getFunctionName() - - - // ======================================================================== - // set severity of exception - // ======================================================================== - void TuscanyRuntimeException :: setSeverity(severity_level sev) - { - severity = sev; - } // end setSeverity(severity_level sev) const - - // ======================================================================== - // set message text associated with exception - // ======================================================================== - void TuscanyRuntimeException :: setMessageText(const char* msg_text) - { - if (message_text != 0) delete message_text; - message_text = new char[strlen(msg_text) + 1]; - strcpy(message_text,msg_text); - } // end setMessageText(const string &msg_text) const - - // ======================================================================== - // set location of most recent handling of the exception - // ======================================================================== - void TuscanyRuntimeException :: setLocation(const char* file, - unsigned long line, - const char* function) - { - if (location_set < num_locations) - { - locations[location_set].file = new char[strlen(file) + 1]; - strcpy(locations[location_set].file,file); - locations[location_set].line = line; - locations[location_set].function = new char[strlen(function) + 1]; - strcpy(locations[location_set].function,function); - - location_set++; - } - } // end setLocation() - - - // ======================================================================== - // print self - // ======================================================================== - ostream& TuscanyRuntimeException :: PrintSelf(ostream &os) const - { - - os << "Exception" << endl; - os << " Class: " << class_name << endl; - os << " Description: " << message_text << endl; - if (location_set != 0) - { - os << " Origin:" << endl; - os << " File: " << locations[0].file << endl; - char lineNumber[100]; - sprintf(lineNumber, "%lu",locations[0].line); - os << " Line: " << lineNumber << endl; - os << " Function: " << locations[0].function << endl; - - if (location_set >1) - { - os << " Path:" << endl; - int i=1; - while (i < location_set) - { - os << " File: " << locations[i].file << endl; - os << " Line: " << locations[i].line << endl; - os << " Function: " << locations[i].function << endl; - i++; - } - } - } -#if defined(WIN32) || defined (_WINDOWS) || defined (IS_DARWIN) -#else - if (stacktrace_size != 0) - { - os << " Backtrace:" << endl; - for (int j = 0; j < stacktrace_size; j++) - { - os << " " << stacktrace_symbols[j] << endl; - } - } -#endif - return os; - } // end ostream operator << - - - // ======================================================================== - // ostream operator << - // ======================================================================== - SCA_API ostream& operator<< (ostream &os, const TuscanyRuntimeException &except) - { - return except.PrintSelf(os); - } // end ostream operator << - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Exceptions.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Exceptions.h deleted file mode 100644 index 50cf91f7d4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Exceptions.h +++ /dev/null @@ -1,346 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_core_exceptions_h -#define tuscany_sca_core_exceptions_h - -#include <ostream> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" - - -namespace tuscany -{ - namespace sca - { - /** - * Top level exception to represent all the exceptions that may be - * thrown by an SCA runtime implementation. - */ - class SCA_API TuscanyRuntimeException - { - public: - /** - * Represents the possible severity levels for an exception. - */ - enum severity_level - { - Normal, - Warning, - Error, - Severe - }; - - /** - * Constructor. - * @param name Class name of the exception. - * @param sev Severity level. - * @param msg_text Detailed description of the exception. - */ - TuscanyRuntimeException( - const char *name = "TuscanyRuntimeException", - severity_level sev = Severe, - const char* msg_text = ""); - - TuscanyRuntimeException(const TuscanyRuntimeException& c); - TuscanyRuntimeException(const commonj::sdo::SDORuntimeException& c); - - // Destructor - virtual ~TuscanyRuntimeException(); - - /** - * Return class name of this exception. - */ - const char* getEClassName() const; - - /** - * Return severity. - */ - severity_level getSeverity() const; - - /** - * Return message text associated with exception. - */ - const char* getMessageText() const; - - /* - * Return file name where the exception was raised. - */ - const char* getFileName() const; - - /** - * Return line number where the exception was raised. - */ - unsigned long getLineNumber() const; - - /** - * Return function name where the exception was raised. - */ - const char* getFunctionName() const; - - /** - * Set the exception severity. - */ - void setSeverity(severity_level sev); - - /** - * Set the message text associated with exception. - */ - void setMessageText(const char* msg_text); - - /** - * Set the location where the exception was raised. - * @param file Name of the file. - * @param line Line number in the file. - * @param function Name of the function. - */ - void setLocation(const char* file, - unsigned long line, - const char* function=""); - - /** - * Append exception details to ostream. - */ - virtual std::ostream& PrintSelf(std::ostream &os) const; - - /** - * Operator to send exceptions details to a stream. - */ - SCA_API friend std::ostream& operator<< (std::ostream &os, const TuscanyRuntimeException &except); - - protected: - - private: - /** - * Class name of the exception. - */ - char* class_name; - - /** - * Severity level of the exception. - */ - severity_level severity; - - /** - * Description of the exception. - */ - char* message_text; // Description of exception - - /** - * Location where the exception was thrown or handled and thrown. - */ - class location - { - public: - char* file; // File name (from __FILE__) - unsigned long line; // Line number (from __LINE__) - char* function; // Function name - }; - - - enum {num_locations=5}; - /** - * Array of locations where the exception has been handled and thrown. - */ - location locations[num_locations]; - - /** - * The current location (index into TuscanyRuntimeException#location). - */ - int location_set; - - /** - * A snapshot of the stack when the exception was constructed - */ -#if defined(WIN32) || defined (_WINDOWS) -#else - int stacktrace_size; - char** stacktrace_symbols; -#endif - - }; // End TuscanyRuntimeException class definition - - - /** - * Indicates a problem in the consistency of the SCA model provided to the - * Tuscany runtime. - */ - class SCA_API SystemConfigurationException: public TuscanyRuntimeException - { - public: - SystemConfigurationException(const char* msg) - : TuscanyRuntimeException("SystemConfigurationException", Severe, - msg) - { - } - - SystemConfigurationException( - const char *name, - severity_level sev, - const char* msg_text) - : TuscanyRuntimeException(name, sev, msg_text) - { - } - - SystemConfigurationException(const commonj::sdo::SDORuntimeException& c) - : TuscanyRuntimeException(c) - { - } - private: - }; - - /** - * Indicates a problem while invoking a service. - */ - class SCA_API ServiceInvocationException: public TuscanyRuntimeException - { - public: - ServiceInvocationException(const char* msg) - : TuscanyRuntimeException("ServiceInvocationException", Severe, msg) - { - } - - ServiceInvocationException( - const char *name, - severity_level sev, - const char* msg_text) - : TuscanyRuntimeException(name, sev, msg_text) - { - } - - ServiceInvocationException(const commonj::sdo::SDORuntimeException& c) - : TuscanyRuntimeException(c) - { - } - - private: - }; - - /** - * Indicates a problem while working with service data. - */ - class SCA_API ServiceDataException: public TuscanyRuntimeException - { - public: - ServiceDataException(const char* msg) - : TuscanyRuntimeException("ServiceDataException", Severe, - msg) - { - } - - ServiceDataException( - const char *name, - severity_level sev, - const char* msg_text) - : TuscanyRuntimeException(name, sev, msg_text) - { - } - - ServiceDataException(const commonj::sdo::SDORuntimeException& c) - : TuscanyRuntimeException(c) - { - } - private: - }; - - } // End namespace sca -} // End namespace tuscany - - -/** - * ========================================================================= - * Macro - throwException - * - * adds the current file name, line number and function name to the exception. - * then throws the exception. - * The parameter 'function_name' should be the name of the function throwing - * this exception. - * The parameter 'type' is the class of exception to throw and must be a - * SDORuntimeException or a class derived from SDORuntimeException. - * The parameter 'parameter' is the construction parameter for the exception - * ========================================================================= -*/ - -#if defined(WIN32) || defined (_WINDOWS) -#define throwException(type, parameter) \ -{\ - type __TuscanyThrownException__(parameter); \ - __TuscanyThrownException__.setLocation(__FILE__,__LINE__,__FUNCTION__); \ - throw __TuscanyThrownException__;\ -} -#else -#define throwException(type, parameter) \ -{\ - type __TuscanyThrownException__(parameter); \ - __TuscanyThrownException__.setLocation(__FILE__,__LINE__,__PRETTY_FUNCTION__); \ - throw __TuscanyThrownException__;\ -} -#endif - -/** - ========================================================================= - * Macro - rethrowException - * - * adds the current file name, line number and function name to the exception. - * then re-throws the exception. - * The parameter 'function_name' should be the name of the function throwing - * this exception. - * ========================================================================= -*/ -#if defined(WIN32) || defined (_WINDOWS) -#define rethrowException(exception) \ -{\ - (exception).setLocation(__FILE__,__LINE__,__FUNCTION__); \ - throw (exception);\ -} -#else -#define rethrowException(exception) \ -{\ - (exception).setLocation(__FILE__,__LINE__,__PRETTY_FUNCTION__); \ - throw (exception);\ -} -#endif - -/** - * ========================================================================= - * Macro - handleException - * - * adds the current file name, line number and function name to the exception. - * Writes an exception trace entry then continues. - * The parameter 'function_name' should be the name of the function handling - * this exception. - * ========================================================================= -*/ -#if defined(WIN32) || defined (_WINDOWS) -#define handleException(__PRETTY_FUNCTION__, exception) \ -{\ - (exception).setLocation(__FILE__,__LINE__,__FUNCTION__); \ -} -#else -#define handleException(__PRETTY_FUNCTION__, exception) \ -{\ - (exception).setLocation(__FILE__,__LINE__,__PRETTY_FUNCTION__); \ -} -#endif - -#endif // tuscany_sca_core_exceptions_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Operation.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Operation.cpp deleted file mode 100644 index 335ed5d369..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Operation.cpp +++ /dev/null @@ -1,578 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <stdarg.h> -#include <sstream> - -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace std; -using namespace commonj::sdo; - - -namespace tuscany -{ - namespace sca - { - // =========== - // Constructor - // =========== - Operation::Operation(const char* operationName) - { - logentry(); - if (operationName != 0) - { - name = operationName; - } - } - - // ========== - // Destructor - // ========== - Operation::~Operation() - { - logentry(); - clean(); - } - - // ========== - // Copy Constructor - // ========== - Operation::Operation(const Operation& op) - { - logentry(); - copy(op); - } - - // ========== - // operator= - // ========== - Operation& Operation::operator=(const Operation& op) - { - logentry(); - if (&op != this) - { - copy(op); - } - return *this; - } - - // ========== - // Clean - // ========== - void Operation::clean() - { - logentry(); - for (unsigned int i = 0; i < getNParms(); i++) - { - const Parameter& parm = getParameter(i); - if (parm.getType() == DATAOBJECT) - { - delete (DataObjectPtr*)parm.getValue(); - } - } - - parameters.empty(); - - if (getReturnType() == DATAOBJECT) - { - delete (DataObjectPtr*)getReturnValue(); - } - } - - // ========== - // Copy - // ========== - void Operation::copy(const Operation& op) - { - logentry(); - clean(); - for (unsigned int i = 0; i < op.getNParms(); i++) - { - const Parameter& parm = op.getParameter(i); - if (parm.getType() == DATAOBJECT) - { - addParameter((const DataObject*)parm.getValue()); - } - else - { - parameters.insert(parameters.end(), parm); - } - } - - if (getReturnType() == DATAOBJECT) - { - setReturnValue((const DataObjectPtr*)op.getReturnValue()); - } - else - { - returnValue = op.returnValue; - } - } - - // ============================================== - // getParameter: return parameter at position pos - // ============================================== - void* Operation::getParameterValue(unsigned int pos) const - { - logentry(); - if (pos < parameters.size()) - { - return parameters[pos].getValue(); - } - - return 0; - } - - // ================================================== - // getParameter: return parameter value based on name - // ================================================== - void* Operation::getParameterValue(const string& name) const - { - logentry(); - try - { - return getParameter(name).getValue(); - } - catch(ServiceInvocationException) - {} - - return 0; - } - - // ====================================================== - // getParameter: return parameter based on index position - // ====================================================== - const Operation::Parameter& Operation::getParameter(unsigned int pos) const - { - logentry(); - if (pos < parameters.size()) - { - return parameters[pos]; - } - - throwException(ServiceInvocationException, "Index out of range"); - } - - // =============================================== - // getParameter: return of parameter based on name - // =============================================== - const Operation::Parameter& Operation::getParameter(const string& name) const - { - logentry(); - for(unsigned int pos=0; pos < parameters.size(); pos++) - { - if(parameters[pos].getName() == name) - { - return parameters[pos]; - } - } - - throwException(ServiceInvocationException, "Parameter name not found"); - } - - - // ============================================================ - // getParameterType: return type of parameter based on position - // ============================================================ - Operation::ParameterType Operation::getParameterType(unsigned int pos) const - { - logentry(); - if (pos < parameters.size()) - { - return parameters[pos].getType(); - } - - return VOID_TYPE; - } - - // ======================================================== - // getParameterType: return type of parameter based on name - // ======================================================== - Operation::ParameterType Operation::getParameterType(const string& name) const - { - logentry(); - try - { - return getParameter(name).getType(); - } - catch(ServiceInvocationException) - {} - - return VOID_TYPE; - } - - const string emptyString = string(); - - // ============================================== - // getParameterName: return name of parameter - // ============================================== - const string& Operation::getParameterName(unsigned int pos) const - { - logentry(); - if (pos < parameters.size()) - { - return parameters[pos].getName(); - } - - return emptyString; - } - - // =========================================== - // addParameter: set parameter at position pos - // =========================================== - void Operation::addParameter(const void *parm) - { - logentry(); - loginfo("Adding operation parameter, type: void, value: %p", parm); - parameters.insert(parameters.end(), Parameter((void*)parm, VOID_TYPE)); - } - - void Operation::addParameter(const bool *parm) - { - logentry(); - loginfo("Adding operation parameter, type: bool, value: %d", (int)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, BOOL)); - } - - void Operation::addParameter(const short *parm) - { - logentry(); - loginfo("Adding operation parameter, type: short, value: %hd", (short)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, SHORT)); - } - - void Operation::addParameter(const int *parm) - { - logentry(); - loginfo("Adding operation parameter, type: int, value: %d", (int)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, INT)); - } - - void Operation::addParameter(const long *parm) - { - logentry(); - loginfo("Adding operation parameter, type: long, value: %ld", (long)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, LONG)); - } - - void Operation::addParameter(const unsigned short *parm) - { - logentry(); - loginfo("Adding operation parameter, type: unsigned short, value: %hu", (unsigned short)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, USHORT)); - } - - void Operation::addParameter(const unsigned int *parm) - { - logentry(); - loginfo("Adding operation parameter, type: unsigned int, value: %u", (unsigned int)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, UINT)); - } - - void Operation::addParameter(const unsigned long *parm) - { - logentry(); - loginfo("Adding operation parameter, type: unsigned long, value: %lu", (unsigned long)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, ULONG)); - } - - void Operation::addParameter(const float *parm) - { - logentry(); - loginfo("Adding operation parameter, type: float, value: %f", (float)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, FLOAT)); - } - - void Operation::addParameter(const double *parm) - { - logentry(); - loginfo("Adding operation parameter, type: double, value: %lf", (double)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, DOUBLE)); - } - - void Operation::addParameter(const long double *parm) - { - logentry(); - loginfo("Adding operation parameter, type: long double, value: %Lf", (long double)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, LONGDOUBLE)); - } - - void Operation::addParameter(const char* *parm) - { - logentry(); - loginfo("Adding operation parameter, type: char*, value: %s", (const char*)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, CHARS)); - } - - void Operation::addParameter(const char *parm) - { - logentry(); - loginfo("Adding operation parameter, type: char, value: %d", (int)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, CHAR)); - } - - void Operation::addParameter(const string *parm) - { - logentry(); - loginfo("Adding operation parameter, type: string, value: %s", (const char*)(*parm).c_str()); - parameters.insert(parameters.end(), Parameter((void*)parm, STRING)); - } - - void Operation::addParameter(const DataObjectPtr *parm) - { - logentry(); - ostringstream os; - os << *parm; - loginfo("Adding operation parameter, type: DataObject, value: %s", os.str().c_str()); - parameters.insert(parameters.end(), Parameter((void*)new DataObjectPtr(*parm), DATAOBJECT)); - } - - // ======================================================= - // addParameter: set parameter at position pos with a name - // ======================================================= - void Operation::addParameter(const string& name, const void *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: void, value: %p", name.c_str(), parm); - parameters.insert(parameters.end(), Parameter((void*)parm, VOID_TYPE, (string&) name)); - } - - void Operation::addParameter(const string& name, const bool *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: bool, value: %d", name.c_str(), (int)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, BOOL, (string&) name)); - } - - void Operation::addParameter(const string& name, const short *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: short, value: %hd", name.c_str(), (short)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, SHORT, (string&) name)); - } - - void Operation::addParameter(const string& name, const int *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: int, value: %d", name.c_str(), (int)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, INT, (string&) name)); - } - - void Operation::addParameter(const string& name, const long *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: long, value: %ld", name.c_str(), (long)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, LONG, (string&) name)); - } - - void Operation::addParameter(const string& name, const unsigned short *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: unsigned short, value: %hu", (unsigned short)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, USHORT, (string&) name)); - } - - void Operation::addParameter(const string& name, const unsigned int *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: unsigned int, value: %u", name.c_str(), (unsigned int)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, UINT, (string&) name)); - } - - void Operation::addParameter(const string& name, const unsigned long *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: unsigned long, value: %lu", name.c_str(), (unsigned long)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, ULONG, (string&) name)); - } - - void Operation::addParameter(const string& name, const float *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: float, value: %f", name.c_str(), (float)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, FLOAT, (string&) name)); - } - - void Operation::addParameter(const string& name, const double *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: double, value: %lf", name.c_str(), (double)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, DOUBLE, (string&) name)); - } - - void Operation::addParameter(const string& name, const long double *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: long double, value: %Lf", name.c_str(), (long double)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, LONGDOUBLE, (string&) name)); - } - - void Operation::addParameter(const string& name, const char* *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: char*, value: %s", name.c_str(), (const char*)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, CHARS, (string&) name)); - } - - void Operation::addParameter(const string& name, const char *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: char, value: %d", name.c_str(), (int)*parm); - parameters.insert(parameters.end(), Parameter((void*)parm, CHAR, (string&) name)); - } - - void Operation::addParameter(const string& name, const string *parm) - { - logentry(); - loginfo("Adding operation parameter, name: %s, type: string, value: %s", name.c_str(), (const char*)(*parm).c_str()); - parameters.insert(parameters.end(), Parameter((void*)parm, STRING, (string&) name)); - } - - void Operation::addParameter(const string& name, const DataObjectPtr *parm) - { - logentry(); - ostringstream os; - os << *parm; - loginfo("Adding operation parameter, name: %s, type: DataObject, value: %s", name.c_str(), os.str().c_str()); - parameters.insert(parameters.end(), Parameter((void*)new DataObjectPtr(*parm), DATAOBJECT, (string&) name)); - } - - Operation::Parameter::Parameter(void* val, Operation::ParameterType typ, const string& nam) - : value(val), type(typ), name(nam) - { - } - - // =========================================== - // setReturnValue - // =========================================== - void Operation::setReturnValue(const void *parm) - { - logentry(); - loginfo("Setting operation return value, type: void, value: %p", parm); - returnValue = Parameter((void*)parm, VOID_TYPE); - } - - void Operation::setReturnValue(const bool *parm) - { - logentry(); - loginfo("Setting operation return value, type: bool, value: %d", (bool)*parm); - returnValue = Parameter((void*)parm, BOOL); - } - - void Operation::setReturnValue(const short *parm) - { - logentry(); - loginfo("Setting operation return value, type: short, value: %h", (short)*parm); - returnValue = Parameter((void*)parm, SHORT); - } - - void Operation::setReturnValue(const int *parm) - { - logentry(); - loginfo("Setting operation return value, type: int, value: %d", (int)*parm); - returnValue = Parameter((void*)parm, INT); - } - - void Operation::setReturnValue(const long *parm) - { - logentry(); - loginfo("Setting operation return value, type: long, value: %l", (long)*parm); - returnValue = Parameter((void*)parm, LONG); - } - - void Operation::setReturnValue(const unsigned short *parm) - { - logentry(); - loginfo("Setting operation return value, type: unsigned short, value: %hu", (unsigned short)*parm); - returnValue = Parameter((void*)parm, USHORT); - } - - void Operation::setReturnValue(const unsigned int *parm) - { - logentry(); - loginfo("Setting operation return value, type: unsigned short, value: %u", (unsigned int)*parm); - returnValue = Parameter((void*)parm, UINT); - } - - void Operation::setReturnValue(const unsigned long *parm) - { - logentry(); - loginfo("Setting operation return value, type: unsigned long, value: %lu", (unsigned long)*parm); - returnValue = Parameter((void*)parm, ULONG); - } - - void Operation::setReturnValue(const float *parm) - { - logentry(); - loginfo("Setting operation return value, type: float, value: %f", (float)*parm); - returnValue = Parameter((void*)parm, FLOAT); - } - - void Operation::setReturnValue(const double *parm) - { - logentry(); - loginfo("Setting operation return value, type: double, value: %lf", (double)*parm); - returnValue = Parameter((void*)parm, DOUBLE); - } - - void Operation::setReturnValue(const long double *parm) - { - logentry(); - loginfo("Setting operation return value, type: long double, value: %Lf", (long double)*parm); - returnValue = Parameter((void*)parm, LONGDOUBLE); - } - - void Operation::setReturnValue(const char *parm) - { - logentry(); - loginfo("Setting operation return value, type: char, value: %d", (char)*parm); - returnValue = Parameter((void*)parm, CHAR); - } - - void Operation::setReturnValue(const char* *parm) - { - logentry(); - loginfo("Setting operation return value, type: char*, value: %s", (char*)*parm); - returnValue = Parameter((void*)parm, CHARS); - } - - void Operation::setReturnValue(const string *parm) - { - logentry(); - loginfo("Setting operation return value, type: string, value: %s", (*parm).c_str()); - returnValue = Parameter((void*)parm, STRING); - } - - void Operation::setReturnValue(const DataObjectPtr *parm) - { - logentry(); - ostringstream os; - os << *parm; - loginfo("Setting operation return value, type: DataObject, value: %s", os.str().c_str()); - returnValue = Parameter((void*)new DataObjectPtr(*parm), DATAOBJECT); - } - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Operation.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Operation.h deleted file mode 100644 index 89cf0b63b7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/Operation.h +++ /dev/null @@ -1,251 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_core_operation_h -#define tuscany_sca_core_operation_h - -#include <string> -#include <vector> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" - - -namespace tuscany -{ - namespace sca - { - /** - * Holds the details of a single invocation of a business method. - * This class is used to pass the parameters and operation name from the - * client to a service. It will also hold the return value on the - * return from the business method. - */ - class Operation - { - public: - /** - * Create a new operation. - * @param operationName The method name of the business method to be invoked. - * @param numParameters The number of parameters to be passed. - */ - SCA_API Operation(const char* operationName = 0); - - /** - * Destructor. - */ - SCA_API virtual ~Operation(); - - /** - * Copy constructor. - */ - SCA_API Operation(const Operation& op); - - /** - * Assignment operator. - */ - SCA_API Operation& operator=(const Operation& op); - - /** - * Return the operation name. - * @return The name of the operation. - */ - SCA_API const std::string& getName() const {return name;} - - - enum ParameterType - { - UNSET = 0, - VOID_TYPE, - BOOL, - SHORT, - INT, - LONG, - USHORT, - UINT, - ULONG, - FLOAT, - DOUBLE, - LONGDOUBLE, - CHARS, - CHAR, - STRING, - DATAOBJECT - }; - - class Parameter - { - public: - SCA_API Parameter(void* value = NULL, ParameterType type = VOID_TYPE, const std::string& name = ""); - SCA_API void* getValue() const {return value;} - SCA_API ParameterType getType() const {return type;} - SCA_API const std::string& getName() const {return name;} - SCA_API bool hasName() const {return (name.length() > 0);} - - private: - std::string name; - void* value; - ParameterType type; - }; - - /** - * Set a return value for the operation. - * @param retVal Pointer to the return value. - */ - SCA_API void setReturnValue(const void *retVal); - SCA_API void setReturnValue(const bool *retVal); - SCA_API void setReturnValue(const short *retVal); - SCA_API void setReturnValue(const int *retVal); - SCA_API void setReturnValue(const long *retVal); - SCA_API void setReturnValue(const unsigned short *retVal); - SCA_API void setReturnValue(const unsigned int *retVal); - SCA_API void setReturnValue(const unsigned long *retVal); - SCA_API void setReturnValue(const float *retVal); - SCA_API void setReturnValue(const double *retVal); - SCA_API void setReturnValue(const long double *retVal); - SCA_API void setReturnValue(const char *retVal); - SCA_API void setReturnValue(const char* *retVal); - SCA_API void setReturnValue(const std::string *retVal); - SCA_API void setReturnValue(const commonj::sdo::DataObjectPtr *retVal); - - /** - * Set a parameter on the operation. - * @param parm Pointer to the parameter to be passed. - */ - SCA_API void addParameter(const void *parm); - SCA_API void addParameter(const bool *parm); - SCA_API void addParameter(const short *parm); - SCA_API void addParameter(const int *parm); - SCA_API void addParameter(const long *parm); - SCA_API void addParameter(const unsigned short *parm); - SCA_API void addParameter(const unsigned int *parm); - SCA_API void addParameter(const unsigned long *parm); - SCA_API void addParameter(const float *parm); - SCA_API void addParameter(const double *parm); - SCA_API void addParameter(const long double *parm); - SCA_API void addParameter(const char *parm); - SCA_API void addParameter(const char* *parm); - SCA_API void addParameter(const std::string *parm); - SCA_API void addParameter(const commonj::sdo::DataObjectPtr *parm); - - /** - * Set a parameter on the operation. - * @param name The name of the parameter in the parameter list. - * @param parm Pointer to the parameter to be passed. - */ - SCA_API void addParameter(const std::string& name, const void *parm); - SCA_API void addParameter(const std::string& name, const bool *parm); - SCA_API void addParameter(const std::string& name, const short *parm); - SCA_API void addParameter(const std::string& name, const int *parm); - SCA_API void addParameter(const std::string& name, const long *parm); - SCA_API void addParameter(const std::string& name, const unsigned short *parm); - SCA_API void addParameter(const std::string& name, const unsigned int *parm); - SCA_API void addParameter(const std::string& name, const unsigned long *parm); - SCA_API void addParameter(const std::string& name, const float *parm); - SCA_API void addParameter(const std::string& name, const double *parm); - SCA_API void addParameter(const std::string& name, const long double *parm); - SCA_API void addParameter(const std::string& name, const char *parm); - SCA_API void addParameter(const std::string& name, const char* *parm); - SCA_API void addParameter(const std::string& name, const std::string *parm); - SCA_API void addParameter(const std::string& name, const commonj::sdo::DataObjectPtr *parm); - - SCA_API unsigned int getNParms() const {return parameters.size();} - - /** - * Get a parameter from the operation. - * @param pos The position of the parameter in the parameter list. - * @return Pointer to the paramter at the given postion. Should be - * cast to the appropriate type. - */ - SCA_API const Parameter& getParameter(unsigned int pos) const; - - /** - * Get a parameter from the operation. - * @param name The name of the parameter in the parameter list. - * @return Pointer to the paramter with the given name. Should be - * cast to the appropriate type. - */ - SCA_API const Parameter& getParameter(const std::string& name) const; - - /** - * Get a parameter type from the operation. - * @param pos The position of the parameter in the parameter list. - * @return Type of the parameter at the given position. - */ - SCA_API ParameterType getParameterType(unsigned int pos) const; - - /** - * Get a parameter type from the operation. - * @param name The name of the parameter in the parameter list. - * @return Type of the parameter with the given name. - */ - SCA_API ParameterType getParameterType(const std::string& name) const; - - /** - * Get a parameter name from the operation. - * @param pos The position of the parameter in the parameter list. - * @return Name of the parameter at the given position. - */ - SCA_API const std::string& getParameterName(unsigned int pos) const; - - /** - * Get the parameter value from the operation. - * @param pos The position of the parameter in the parameter list. - * @return Pointer to the value of the parameter at the given postion. Should be - * cast to the appropriate type. - */ - SCA_API void* getParameterValue(unsigned int pos) const; - - /** - * Get the parameter value from the operation. - * @param name The name of the parameter in the parameter list. - * @return Pointer to the value of the parameter with the given name. Should be - * cast to the appropriate type. - */ - SCA_API void* getParameterValue(const std::string& name) const; - - SCA_API ParameterType getReturnType() const {return returnValue.getType();} - SCA_API void* getReturnValue() const {return returnValue.getValue();} - - private: - /** - * Operation name (method name). - */ - std::string name; - - /** - * Array of parameters. - */ - typedef std::vector<Parameter> PARAMETER_VECTOR; - - PARAMETER_VECTOR parameters; - - Parameter returnValue; - - void clean(); - void copy(const Operation& op); - - }; - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_core_operation_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/SCARuntime.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/SCARuntime.cpp deleted file mode 100644 index d605f37f95..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/SCARuntime.cpp +++ /dev/null @@ -1,616 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/ModelLoader.h" -#include "tuscany/sca/util/File.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Component.h" - -using namespace std; -using namespace tuscany::sca::model; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - /** - * Environment variable names - */ - static const char* TUSCANY_SCACPP = "TUSCANY_SCACPP"; - static const char* TUSCANY_SCACPP_SYSTEM_ROOT = "TUSCANY_SCACPP_SYSTEM_ROOT"; - static const char* TUSCANY_SCACPP_DEFAULT_COMPONENT = "TUSCANY_SCACPP_DEFAULT_COMPONENT"; - - static const char* TUSCANY_SCACPP_ROOT = "TUSCANY_SCACPP_ROOT"; - static const char* TUSCANY_SCACPP_COMPONENT = "TUSCANY_SCACPP_COMPONENT"; - static const char* TUSCANY_SCACPP_PATH = "TUSCANY_SCACPP_PATH"; - static const char* TUSCANY_SCACPP_BASE_URI = "TUSCANY_SCACPP_BASE_URI"; - - // Initialize statics - SCARuntime* SCARuntime::sharedRuntime = NULL; - Mutex SCARuntime::sharedRuntimeLock; - ThreadLocal SCARuntime::current; - - - // =================================================================== - // Constructor for the SCARuntime class. This will - // hold all the information about the current runtime. - // =================================================================== - SCARuntime::SCARuntime(const string& insRoot, - const string& sysRoot, const string& sysPath, - const string& base, const string& defName) - : system(0), - installRoot(insRoot), systemRoot(sysRoot), systemPath(sysPath), - defaultBaseURI(base), defaultComponentName(defName) - { - logentry(); - - if (installRoot == "") - { - // Get install dir from environment variable TUSCANY_SCACPP - const char* root = getenv(TUSCANY_SCACPP); - if (root != NULL) - { - installRoot = root; - } - else - { - string msg = TUSCANY_SCACPP; - msg += " environment variable not set"; - throwException(SystemConfigurationException, msg.c_str()); - } - } - loginfo("SCA runtime install root: %s", installRoot.c_str()); - - if (systemRoot == "") - { - // Get root from environment variable TUSCANY_SCACPP_ROOT - char* systemRootEnv = getenv(TUSCANY_SCACPP_ROOT); - if (systemRootEnv == 0) - { - // Get root from environment variable TUSCANY_SCACPP_SYSTEM_ROOT - systemRootEnv = getenv(TUSCANY_SCACPP_SYSTEM_ROOT); - } - if (systemRootEnv == 0) - { - string msg = TUSCANY_SCACPP_ROOT; - msg += " environment variable not set"; - throwException(SystemConfigurationException, msg.c_str()); - } - - systemRoot = systemRootEnv; - } - else - { - loginfo("System root: %s", systemRoot.c_str()); - } - - if (systemPath == "") - { - - // Get system path from environment variable TUSCANY_SCACPP_PATH - char* systemPathEnv = getenv(TUSCANY_SCACPP_PATH); - if (systemPathEnv != 0) - { - systemPath = systemPathEnv; - } - } - else - { - loginfo("System path: %s", systemPath.c_str()); - } - - if (defaultBaseURI == "") - { - - // Get default base URI from environment variable TUSCANY_SCACPP_BASE_URI - char* baseURI = getenv(TUSCANY_SCACPP_BASE_URI); - if (baseURI != 0) - { - defaultBaseURI = baseURI; - } - } - else - { - loginfo("Default base URI: %s", defaultBaseURI.c_str()); - } - - if (defaultComponentName == "") - { - const char* defComp = getenv(TUSCANY_SCACPP_COMPONENT); - if (!defComp) - { - defComp = getenv(TUSCANY_SCACPP_DEFAULT_COMPONENT); - } - if (defComp) - { - defaultComponentName = defComp; - } - } - loginfo("Default component: %s", defaultComponentName.c_str()); - - SCARuntime* currentRuntime = (SCARuntime*)current.getValue(); - current.setValue(this); - try - { - - // Load the runtime extensions - loadExtensions(); - - // Load the system composite - loadSystem(); - } - catch (...) - { - current.setValue(currentRuntime); - throw; - } - current.setValue(currentRuntime); - - // Find the default component - if (defaultComponentName != "") - { - Component* comp = system->findComponent(defaultComponentName); - if (!comp) - { - string message = "Component \'" + defaultComponentName + "\' not found"; - throwException(SystemConfigurationException, message.c_str()); - } - defaultComponent.setValue(comp); - } - - } - - // =================================================================== - // Destructor for the SCARuntime class. - // =================================================================== - SCARuntime::~SCARuntime() - { - logentry(); - - if (system) - { - delete system; - } - } - - // ========================================================== - // Returns the system configuration root - // ========================================================== - const string& SCARuntime::getSystemRoot() - { - return systemRoot; - } - - // ========================================================== - // Returns the system path - // ========================================================== - const string& SCARuntime::getSystemPath() - { - return systemPath; - } - - // ========================================================== - // Returns the default component name - // ========================================================== - const string& SCARuntime::getDefaultComponentName() - { - return defaultComponentName ; - } - - // ========================================================== - // Returns the default base URI - // ========================================================== - const string& SCARuntime::getDefaultBaseURI() - { - return defaultBaseURI; - } - - // ========================================================== - // Returns the install root - // ========================================================== - const string& SCARuntime::getInstallRoot() - { - return installRoot; - } - - // ============================================================= - // Get the runtime associated with the current thread. - // ============================================================= - SCARuntime* SCARuntime::getCurrentRuntime() - { - logentry(); - - SCARuntime* runtime = (SCARuntime*)current.getValue(); - if (runtime == NULL) - { - runtime = getSharedRuntime(); - if (runtime != NULL) - { - setCurrentRuntime(runtime); - } - else - { - runtime = new SCARuntime(); - setCurrentRuntime(runtime); - } - } - loginfo("Runtime: %p", runtime); - return runtime; - } - - // ============================================================= - // Set the runtime associated with the current thread. - // ============================================================= - void SCARuntime::setCurrentRuntime(SCARuntime* runtime) - { - logentry(); - - loginfo("Runtime: %p", runtime); - current.setValue(runtime); - } - - // ============================================================= - // Get the runtime associated with the current process. - // ============================================================= - SCARuntime* SCARuntime::getSharedRuntime() - { - logentry(); - - sharedRuntimeLock.lock(); - SCARuntime* runtime = sharedRuntime; - sharedRuntimeLock.unlock(); - - return runtime; - } - - // ============================================================= - // Initialize the runtime associated with the current process. - // ============================================================= - SCARuntime* SCARuntime::initializeSharedRuntime(const string& installRoot, const string& systemRoot, - const string& systemPath, const string& baseURI, const string& defaultComponentName) - { - logentry(); - - SCARuntime* runtime; - - sharedRuntimeLock.lock(); - try - { - if (sharedRuntime == NULL) - { - sharedRuntime = new SCARuntime(installRoot, systemRoot, systemPath, baseURI, defaultComponentName); - } - else - { - if (installRoot.size() != 0 && sharedRuntime->getInstallRoot() != installRoot) - { - string msg = "Cannot reconfigure runtime installation directory: " + string(installRoot); - throwException(SystemConfigurationException, msg.c_str()); - } - if (systemRoot.size() != 0 && sharedRuntime->getSystemRoot() != systemRoot) - { - string msg = "Cannot reconfigure SCA system root: " + string(systemRoot); - throwException(SystemConfigurationException, msg.c_str()); - } - if (systemPath.size() != 0 && sharedRuntime->getSystemPath() != systemPath) - { - string msg = "Cannot reconfigure SCA system path: " + string(systemPath); - throwException(SystemConfigurationException, msg.c_str()); - } - if (baseURI.size() != 0 && sharedRuntime->getDefaultBaseURI() != baseURI) - { - string msg = "Cannot reconfigure SCA system URI: " + string(baseURI); - throwException(SystemConfigurationException, msg.c_str()); - } - if (defaultComponentName.size() != 0 && sharedRuntime->getDefaultComponentName() != defaultComponentName) - { - string msg = "Cannot reconfigure main SCA component: " + string(baseURI); - throwException(SystemConfigurationException, msg.c_str()); - } - } - - runtime = sharedRuntime; - } - catch (...) - { - sharedRuntimeLock.unlock(); - throw; - } - sharedRuntimeLock.unlock(); - - return runtime; - } - - // ====================================== - // Load the system composite - // ====================================== - void SCARuntime::loadSystem() - { - logentry(); - - system = new Composite("tuscany/sca/system", ""); - ModelLoader loader(this, system); - loader.load(systemRoot, systemPath); - } - - // ====================================== - // Load up extensions to the runtime - // ====================================== - void SCARuntime::loadExtensions() - { - logentry(); - - string extensionsRoot = installRoot + "/extensions"; - -#if defined(WIN32) || defined (_WINDOWS) - string libraryExtension = ".dll"; -#else -#if defined(IS_DARWIN) - string libraryExtension = ".dylib"; -#else - string libraryExtension = ".so"; -#endif -#endif - string pattern = "*" + libraryExtension; - - // Get list of all directories named "module" - Files extensionModules(extensionsRoot, "module", true, true); - loginfo("Found %i extension modules", extensionModules.size() ); - for (unsigned int emI=0; emI < extensionModules.size(); emI++) - { - string extensionRoot = extensionModules[emI].getDirectory().c_str(); - extensionRoot += "/module"; - loginfo("Loading extension module: %s", extensionRoot.c_str() ); - - Files files(extensionRoot, pattern, true); - loginfo("Found %i extension libraries", files.size() ); - for (unsigned int i=0; i < files.size(); i++) - { - try - { - string filename = files[i].getFileName(); - loginfo("Loading extension library: %s", filename ); - Library lib = Library( files[i].getDirectory() + "/" + filename); - - // Determine the name of the initialize method - // 1) strip the .dll/.so/.dylib suffix - // 2) for non-Windows strip any lib prefix - string initializeMethod; - #if defined(WIN32) || defined (_WINDOWS) - #else - if (filename.substr(0,3) == "lib") - { - initializeMethod = filename.substr(3, filename.size()-libraryExtension.size() - 3); - } - else - #endif - { - initializeMethod = filename.substr(0, filename.size()-libraryExtension.size()); - } - initializeMethod += "_initialize"; - TUSCANY_IMPLEMENTATION_EXTENSION_INITIALIZE extension = - (TUSCANY_IMPLEMENTATION_EXTENSION_INITIALIZE)lib.getSymbol(initializeMethod); - if (extension) - { - extension(); - extensionsList.push_back(lib); - } - } - catch (TuscanyRuntimeException& ex) - { - logwarning("Failed to load extension library: %s: %s: %s", - files[i].getFileName().c_str(), ex.getEClassName(), ex.getMessageText()); - } - } - } - } - - - // ====================================== - // register an interfaceExtension - // ====================================== - void SCARuntime::registerInterfaceExtension(InterfaceExtension* extension) - { - logentry(); - if (extension) - { - loginfo("Registering interface: %s", extension->getExtensionTypeQName().c_str()); - interfaceExtensions[extension->getExtensionTypeQName()] = extension; - } - } - - // ====================================== - // find an InterfaceExtension - // ====================================== - InterfaceExtension* SCARuntime::getInterfaceExtension(const string& extensionTypeQName) - { - return interfaceExtensions[extensionTypeQName]; - } - - // ====================================== - // register an implementationExtension - // ====================================== - void SCARuntime::registerImplementationExtension(ImplementationExtension* extension) - { - logentry(); - if (extension) - { - loginfo("Registering implementation: %s", extension->getExtensionTypeQName().c_str()); - implementationExtensions[extension->getExtensionTypeQName()] = extension; - } - } - - // ====================================== - // find an implementationExtension - // ====================================== - ImplementationExtension* SCARuntime::getImplementationExtension(const string& extensionTypeQName) - { - return implementationExtensions[extensionTypeQName]; - } - - // ====================================== - // register a referenceBindingExtension - // ====================================== - void SCARuntime::registerReferenceBindingExtension(ReferenceBindingExtension* extension) - { - logentry(); - if (extension) - { - loginfo("Registering reference binding: %s", extension->getExtensionTypeQName().c_str()); - referenceBindingExtensions[extension->getExtensionTypeQName()] = extension; - } - } - - // ====================================== - // find a referenceBindingExtension - // ====================================== - ReferenceBindingExtension* SCARuntime::getReferenceBindingExtension(const string& extensionTypeQName) - { - return referenceBindingExtensions[extensionTypeQName]; - } - - // ====================================== - // register a serviceBindingExtension - // ====================================== - void SCARuntime::registerServiceBindingExtension(ServiceBindingExtension* extension) - { - logentry(); - if (extension) - { - loginfo("Registering service binding: %s", extension->getExtensionTypeQName().c_str()); - serviceBindingExtensions[extension->getExtensionTypeQName()] = extension; - } - } - - // ====================================== - // find a serviceBindingExtension - // ====================================== - ServiceBindingExtension* SCARuntime::getServiceBindingExtension(const string& extensionTypeQName) - { - return serviceBindingExtensions[extensionTypeQName]; - } - - - // =================================== - // Return the top of the runtime model - // =================================== - Composite* SCARuntime::getSystem() - { - logentry(); - - return system; - } - - - // =================================================== - // setCurrentComponent: push component for this thread - // =================================================== - void SCARuntime::setCurrentComponent(Component* component) - { - logentry(); - - COMPONENT_STACK* compStack = (COMPONENT_STACK*)componentStack.getValue(); - if (compStack == NULL) - { - compStack = new COMPONENT_STACK(); - componentStack.setValue(compStack); - } - compStack->push(component); - } - - // ==================================================== - // unsetCurrentComponent: pop component for this thread - // ==================================================== - Component* SCARuntime::unsetCurrentComponent() - { - logentry(); - - COMPONENT_STACK* compStack = (COMPONENT_STACK*)componentStack.getValue(); - if (compStack != NULL) - { - if (compStack->size() > 0) - { - Component* component = compStack->top(); - compStack->pop(); - return component; - } - } - - return NULL; - } - - // ============================================================= - // getCurrentComponent: return current component for this thread - // ============================================================= - Component* SCARuntime::getCurrentComponent() - { - logentry(); - - COMPONENT_STACK* compStack = (COMPONENT_STACK*)componentStack.getValue(); - if (compStack != NULL) - { - if (compStack->size() > 0) - { - return compStack->top(); - } - } - - return NULL; - } - - // =========================================== - // getDefaultComponent: return the default composite component - // =========================================== - Component* SCARuntime::getDefaultComponent() - { - logentry(); - - Component* comp = (Component*)defaultComponent.getValue(); - if (comp == NULL && defaultComponentName != "") - { - comp = system->findComponent(defaultComponentName); - if (!comp) - { - string message = "Component \'" + defaultComponentName + "\' not found"; - throwException(SystemConfigurationException, message.c_str()); - } - defaultComponent.setValue(comp); - } - return comp; - } - - // =========================================== - // Set the default composite component - // =========================================== - void SCARuntime::setDefaultComponent(Component* component) - { - logentry(); - - return defaultComponent.setValue(component); - } - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/SCARuntime.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/SCARuntime.h deleted file mode 100644 index ff93bd5005..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/SCARuntime.h +++ /dev/null @@ -1,295 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_core_scaruntime_h -#define tuscany_sca_core_scaruntime_h - -#if defined(WIN32) || defined (_WINDOWS) -#include <windows.h> -#else -#include <pthread.h> -#endif - -#include <stack> -#include <string> -#include <map> -#include <list> - -#include "tuscany/sca/export.h" -#include "tuscany/sca/extension/InterfaceExtension.h" -#include "tuscany/sca/extension/ImplementationExtension.h" -#include "tuscany/sca/extension/ReferenceBindingExtension.h" -#include "tuscany/sca/extension/ServiceBindingExtension.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/util/Library.h" -#include "tuscany/sca/util/ThreadLocal.h" -#include "tuscany/sca/util/Mutex.h" - - -namespace tuscany -{ - namespace sca - { - - /** - * Represents an executing SCA runtime. - */ - class SCARuntime { - public: - - /** - * Constructor - */ - SCA_API SCARuntime(const std::string& installRoot = "", - const std::string& systemRoot = "", const std::string& systemPath = "", - const std::string& baseURI = "", const std::string& defaultComponentName = ""); - - /** - * Destructor - */ - SCA_API virtual ~SCARuntime(); - - /** - * Get the runtime associated with the current thread. - * @return The runtime associated with the current thread. - */ - SCA_API static SCARuntime* getCurrentRuntime(); - - /** - * Get the runtime associated with the current thread. - * @return The runtime associated with the current thread. - */ - SCA_API static void setCurrentRuntime(SCARuntime* runtime); - - /** - * Get the runtime associated with the current process. - * @return The runtime associated with the current process. - */ - SCA_API static SCARuntime* getSharedRuntime(); - - /** - * Initialize the runtime associated with the current process. - * @return The runtime associated with the current process. - */ - SCA_API static SCARuntime* initializeSharedRuntime(const std::string& installRoot = "", - const std::string& systemRoot = "", const std::string& systemPath = "", - const std::string& baseURI = "", const std::string& defaultComponentName = ""); - - /** - * Returns the directory in which the Tuscany runtime has been installed. - */ - SCA_API const std::string& getInstallRoot(); - - /** - * Returns the system root - */ - SCA_API const std::string& getSystemRoot(); - - /** - * Returns the search path for composites. - */ - SCA_API const std::string& getSystemPath(); - - /** - * Returns the default component name. - */ - SCA_API const std::string& getDefaultComponentName(); - - /** - * Returns the default base URI for the system - */ - SCA_API const std::string& getDefaultBaseURI(); - - /** - * Set the current component for the current thread. - * @param component The current component. - */ - SCA_API void setCurrentComponent(tuscany::sca::model::Component* component); - - /** - * Remove the current component from this thread, and return - * to the previous component (if there was one). - * @return The previous component. - */ - SCA_API tuscany::sca::model::Component* unsetCurrentComponent(); - - /** - * Get a pointer to the configured SCA system which this - * SCA runtime represents. - * The rest of the SCA configuration can be navigated from - * the System. - * @return The configured SCA system. - */ - SCA_API tuscany::sca::model::Composite* getSystem(); - - /** - * Return the current component for this thread. - * @return The current component for this thread. - */ - SCA_API tuscany::sca::model::Component* getCurrentComponent(); - - /** - * Get the default component set for the current thread. - * @return The default composite. - */ - SCA_API tuscany::sca::model::Component* getDefaultComponent(); - - /** - * Set the default component for the current thread. - * @return The default component. - */ - SCA_API void setDefaultComponent(tuscany::sca::model::Component* component); - - /** - * Register an implementation extension - */ - SCA_API void registerImplementationExtension(ImplementationExtension* extension); - - /** - * Returns the implementation extension associated with - * the specified qname - */ - SCA_API ImplementationExtension* getImplementationExtension(const std::string& typeQname); - - /** - * Register a reference binding extension - */ - SCA_API void registerReferenceBindingExtension(ReferenceBindingExtension* extension); - - /** - * Returns the reference binding extension associated with - * the specified qname - */ - SCA_API ReferenceBindingExtension* getReferenceBindingExtension(const std::string& typeQname); - - /** - * Register a service binding extension - */ - SCA_API void registerServiceBindingExtension(ServiceBindingExtension* extension); - - /** - * Returns the service binding extension associated with - * the specified qname - */ - SCA_API ServiceBindingExtension* getServiceBindingExtension(const std::string& typeQname); - - /** - * Register an interface extension - */ - SCA_API void registerInterfaceExtension(InterfaceExtension* extension); - - /** - * Returns the interface extension associated with - * the specified qname - */ - SCA_API InterfaceExtension* getInterfaceExtension(const std::string& typeQname); - - private: - - /** - * The runtime associated with the current thread. - */ - static tuscany::sca::util::ThreadLocal current; - - /** - * The runtime shared by all threads of the current process. - */ - static tuscany::sca::util::Mutex sharedRuntimeLock; - static SCARuntime* sharedRuntime; - - /** - * Pointer to the top of the runtime model. - */ - tuscany::sca::model::Composite* system; - - /** - * The installed path of the Tuscany runtime. - */ - std::string installRoot; - - /** - * The path to the system configuration - */ - std::string systemRoot; - - /** - * The search path for composites. - */ - std::string systemPath; - - /** - * The default base URI. - */ - std::string defaultBaseURI; - - /** - * The default CompositeComponent name. - */ - std::string defaultComponentName; - - /** - * Load the SCA configuration from the scdl files (sca.composite, - * *.fragment, etc). - * This will create the runtime model from which the SCA runtime - * will operate. - */ - void loadSystem(); - - /** - * Component stack for the current thread. - */ - typedef std::stack<tuscany::sca::model::Component*> COMPONENT_STACK; - tuscany::sca::util::ThreadLocal componentStack; - - /** - * The default component for the current thread. - */ - tuscany::sca::util::ThreadLocal defaultComponent; - - /** - * Runtime Extensions - */ - typedef std::map<std::string, ImplementationExtension*> IMPLEMENTATION_EXTENSIONS_MAP; - IMPLEMENTATION_EXTENSIONS_MAP implementationExtensions; - - typedef std::map<std::string, ReferenceBindingExtension*> REFERENCE_BINDING_EXTENSIONS_MAP; - REFERENCE_BINDING_EXTENSIONS_MAP referenceBindingExtensions; - - typedef std::map<std::string, ServiceBindingExtension*> SERVICE_BINDING_EXTENSIONS_MAP; - SERVICE_BINDING_EXTENSIONS_MAP serviceBindingExtensions; - - typedef std::map<std::string, InterfaceExtension*> INTERFACE_EXTENSIONS_MAP; - INTERFACE_EXTENSIONS_MAP interfaceExtensions; - - void loadExtensions(); - - typedef std::list<tuscany::sca::util::Library> EXTENSIONS_LIST; - EXTENSIONS_LIST extensionsList; - - }; - - } // End namespace sca -} // End namespace tuscany - -typedef void (* TUSCANY_IMPLEMENTATION_EXTENSION_INITIALIZE) (); - -#endif // tuscany_sca_core_scaruntime_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp deleted file mode 100644 index c54d7648e3..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceProxy.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" - -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - // ============================ - // Constructor: Create a proxy - // ============================ - ServiceProxy::ServiceProxy(Reference* reference) - : reference(reference) - { - logentry(); - } - - // ========== - // Destructor - // ========== - ServiceProxy::~ServiceProxy() - { - logentry(); - } - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceProxy.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceProxy.h deleted file mode 100644 index f1a0309be1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceProxy.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_core_serviceproxy_h -#define tuscany_sca_core_serviceproxy_h - -#include "tuscany/sca/export.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" - - -namespace tuscany -{ - namespace sca - { - - /** - * Holds a proxy for a given component and reference. - * The proxy which is held inside a ServiceProxy will be specific to the component - * and reference and will have been code generated and be contained in a dll - * created by a developer of an SCA application. - */ - class SCA_API ServiceProxy - { - public: - /** - * Create a new service proxy for a reference. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The reference on the source component. - * @param target The wrapper of the service which is wired to this reference. - */ - ServiceProxy(tuscany::sca::model::Reference* reference); - - /** - * Destructor. - */ - virtual ~ServiceProxy(); - - /** - * Returns the reference represented by this proxy. - * @return The Reference represented by this proxy. - */ - tuscany::sca::model::Reference* getReference() const { return reference; }; - - private: - - /** - * The reference represented by this proxy. - */ - tuscany::sca::model::Reference* reference; - - }; - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_core_serviceproxy_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp deleted file mode 100644 index 17666a5bb7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceWrapper.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/util/Logging.h" - -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - - // =========== - // Constructor - // =========== - ServiceWrapper::ServiceWrapper(Service* service) - : service(service) - { - logentry(); - } - - // ========== - // Destructor - // ========== - ServiceWrapper::~ServiceWrapper() - { - logentry(); - } - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceWrapper.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceWrapper.h deleted file mode 100644 index 6a44c57675..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/core/ServiceWrapper.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_core_servicewrapper_h -#define tuscany_sca_core_servicewrapper_h - -#include "tuscany/sca/export.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/Service.h" - - -namespace tuscany -{ - namespace sca - { - - /** - * An abstract class that wraps a component implementation or an external - * service. - */ - class SCA_API ServiceWrapper - { - public: - /** - * Constructor. - * @param target The service wrapper wraps the target of a wire. - */ - ServiceWrapper(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~ServiceWrapper(); - - /** - * Get the service represented by this wrapper. - * @return The service represented by this wrapper. - */ - tuscany::sca::model::Service* getService() const { return service; } - - /** - * All business method calls on the target service are performed through - * this invoke method. - * @param operation The details of the method, paramaters and return value for the - * business method to be called on the target service. - */ - virtual void invoke(Operation& operation) = 0; - - private: - /** - * The target represented by this wrapper. - */ - tuscany::sca::model::Service* service; - - }; - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_core_servicewrapper_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/export.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/export.h deleted file mode 100644 index 79b02fe4cf..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/export.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_export_h -#define tuscany_sca_export_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) - -#ifdef SCA_EXPORTS -#define SCA_API __declspec(dllexport) -#else -#define SCA_API __declspec(dllimport) -#endif - -#else -#include <sys/time.h> -#include <inttypes.h> -#include <stdlib.h> -#define SCA_API -#endif - -#endif // tuscany_sca_export_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ImplementationExtension.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ImplementationExtension.cpp deleted file mode 100644 index a20cf1f6da..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ImplementationExtension.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/extension/ImplementationExtension.h" -#include "tuscany/sca/util/Logging.h" - -namespace tuscany -{ - namespace sca - { - // =================================================================== - // Constructor for the ImplementationExtension class. - // =================================================================== - ImplementationExtension::ImplementationExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the ImplementationExtension class. - // =================================================================== - ImplementationExtension::~ImplementationExtension() - { - logentry(); - } - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ImplementationExtension.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ImplementationExtension.h deleted file mode 100644 index 524af2df77..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ImplementationExtension.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_implementationextension_h -#define tuscany_sca_extension_implementationextension_h - -#include <string> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Composite.h" - -namespace tuscany -{ - namespace sca - { - class SCA_API ImplementationExtension - { - public: - /** - * Default constructor - */ - ImplementationExtension(); - - /** - * Destructor - */ - virtual ~ImplementationExtension(); - - /** - * return the name of the extension (e.g. "cpp" "php") - */ - virtual const std::string& getExtensionName() = 0; - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#implementation.cpp") - */ - virtual const std::string& getExtensionTypeQName() = 0; - - /** - * Get an implementation from a DataObject representing - * an SCDL implementation element - */ - virtual tuscany::sca::model::ComponentType* getImplementation( - tuscany::sca::model::Composite* composite, - commonj::sdo::DataObjectPtr scdlImplementation) = 0; - - }; - - - } // End namespace sca -} // End namespace tuscany - - -#endif // tuscany_sca_extension_implementationextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/InterfaceExtension.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/InterfaceExtension.cpp deleted file mode 100644 index 584945344b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/InterfaceExtension.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/extension/InterfaceExtension.h" -#include "tuscany/sca/util/Logging.h" - -namespace tuscany -{ - namespace sca - { - // =================================================================== - // Constructor for the InterfaceExtension class. - // =================================================================== - InterfaceExtension::InterfaceExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the InterfaceExtension class. - // =================================================================== - InterfaceExtension::~InterfaceExtension() - { - logentry(); - } - - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/InterfaceExtension.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/InterfaceExtension.h deleted file mode 100644 index 5329104c77..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/InterfaceExtension.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_interfaceextension_h -#define tuscany_sca_extension_interfaceextension_h - -#include <string> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/model/Composite.h" - - -namespace tuscany -{ - namespace sca - { - class SCA_API InterfaceExtension - { - public: - /** - * Default constructor - */ - InterfaceExtension(); - - /** - * Destructor - */ - virtual ~InterfaceExtension(); - - /** - * return the name of the extension (e.g. "cpp" "php") - */ - virtual const std::string& getExtensionName() = 0; - - /** - * return the QName of schema elemant for this interface extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#interface.cpp") - */ - virtual const std::string& getExtensionTypeQName() = 0; - - /** - * Get an interface from a DataObject representing an - * SCDL interface - */ - virtual tuscany::sca::model::Interface* getInterface( - tuscany::sca::model::Composite *composite, - commonj::sdo::DataObjectPtr scdlInterface) = 0; - - }; - - - } // End namespace sca -} // End namespace tuscany - - -#endif // tuscany_sca_extension_interfaceextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ReferenceBindingExtension.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ReferenceBindingExtension.cpp deleted file mode 100644 index a7f60dcbec..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ReferenceBindingExtension.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/extension/ReferenceBindingExtension.h" -#include "tuscany/sca/util/Logging.h" - -namespace tuscany -{ - namespace sca - { - // =================================================================== - // Constructor for the ReferenceBindingExtension class. - // =================================================================== - ReferenceBindingExtension::ReferenceBindingExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the ReferenceBindingExtension class. - // =================================================================== - ReferenceBindingExtension::~ReferenceBindingExtension() - { - logentry(); - } - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ReferenceBindingExtension.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ReferenceBindingExtension.h deleted file mode 100644 index c3d1e97c9e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ReferenceBindingExtension.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_referencebindingextension_h -#define tuscany_sca_extension_referencebindingextension_h - -#include <string> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ReferenceBinding.h" - - -namespace tuscany -{ - namespace sca - { - class SCA_API ReferenceBindingExtension - { - public: - /** - * Default constructor - */ - ReferenceBindingExtension(); - - /** - * Destructor - */ - virtual ~ReferenceBindingExtension(); - - /** - * return the name of the extension (e.g. "cpp" "php") - */ - virtual const std::string& getExtensionName() = 0; - - /** - * return the QName of schema elemant for this binding extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#binding.ws") - */ - virtual const std::string& getExtensionTypeQName() = 0; - - /** - * Get a reference binding from a DataObject representing - * an SCDL binding element - */ - virtual tuscany::sca::model::ReferenceBinding* getReferenceBinding( - tuscany::sca::model::Composite* composite, - tuscany::sca::model::Reference* reference, - commonj::sdo::DataObjectPtr scdlBinding) = 0; - - }; - - - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_referencebindingextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ServiceBindingExtension.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ServiceBindingExtension.cpp deleted file mode 100644 index f5fe361d36..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ServiceBindingExtension.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/extension/ServiceBindingExtension.h" -#include "tuscany/sca/util/Logging.h" - -namespace tuscany -{ - namespace sca - { - // =================================================================== - // Constructor for the ServiceBindingExtension class. - // =================================================================== - ServiceBindingExtension::ServiceBindingExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the ServiceBindingExtension class. - // =================================================================== - ServiceBindingExtension::~ServiceBindingExtension() - { - logentry(); - } - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ServiceBindingExtension.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ServiceBindingExtension.h deleted file mode 100644 index d2f7e72ed0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/extension/ServiceBindingExtension.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_servicebindingextension_h -#define tuscany_sca_extension_servicebindingextension_h - -#include <string> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ServiceBinding.h" - - -namespace tuscany -{ - namespace sca - { - class SCA_API ServiceBindingExtension - { - public: - /** - * Default constructor - */ - ServiceBindingExtension(); - - /** - * Destructor - */ - virtual ~ServiceBindingExtension(); - - /** - * return the name of the extension (e.g. "cpp" "php") - */ - virtual const std::string& getExtensionName() = 0; - - /** - * return the QName of schema elemant for this binding extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#binding.ws") - */ - virtual const std::string& getExtensionTypeQName() = 0; - - /** - * Get a reference binding from a DataObject representing - * an SCDL binding element - */ - virtual tuscany::sca::model::ServiceBinding* getServiceBinding( - tuscany::sca::model::Composite* composite, - tuscany::sca::model::Service* service, - commonj::sdo::DataObjectPtr scdlBinding) = 0; - - }; - - - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_servicebindingextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Binding.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Binding.cpp deleted file mode 100644 index a654b9f0f7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Binding.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Binding.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Binding::Binding(const string& uri) : uri(uri) - { - logentry(); - } - - // Destructor - Binding::~Binding() - { - logentry(); - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Binding.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Binding.h deleted file mode 100644 index 66dc66e853..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Binding.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_binding_h -#define tuscany_sca_model_binding_h - -#include <string> - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Represents a binding. - * Bindings are used by services and references. References use bindings - * to describe the access mechanism used to call an external service (which can - * be a service provided by another SCA composite). Services use bindings to describe - * the access mechanism that clients (which can be a client from another SCA composite) - * have to use to call the service. - * This interface will typically be extended by binding implementations to allow - * specification of binding/transport specific information. - */ - class Binding - { - - public: - - /** - * Constructor to create a new binding. - * @param uri The binding URI. - */ - SCA_API Binding(const std::string& uri); - - /** - * Destructor. - */ - SCA_API virtual ~Binding(); - - /** - * Returns the binding type - * @return The binding type. - */ - SCA_API virtual std::string getType() = 0; - - /** - * Returns the binding URI. - * @return The binding URI. - */ - SCA_API virtual const std::string& getURI() const { return uri; }; - - private: - - /** - * The binding URI. - */ - std::string uri; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_binding_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Component.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Component.cpp deleted file mode 100644 index 37bf381811..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Component.cpp +++ /dev/null @@ -1,148 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <iostream> - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/ComponentType.h" - -using namespace std; -using namespace commonj::sdo; - -namespace tuscany -{ - namespace sca - { - namespace model - { - // Constructor - Component::Component(Composite* composite, const std::string& componentName, ComponentType *componentType) - : name(componentName), composite(composite), type(componentType) - { - logentry(); - loginfo("Component name: %s", name.c_str()); - - // Initialize the component from its component type - componentType->initializeComponent(this); - - } - - Component::~Component() - { - logentry(); - } - - void Component::addService(Service* service) - { - logentry(); - services[service->getType()->getName()] = service; - } - - Service* Component::findService(const string& serviceName) - { - logentry(); - - // If serviceName is empty then return the ONLY service - if (serviceName == "" - && services.size() == 1) - { - return services.begin()->second; - } - else - { - Service* service = services[serviceName]; - if (service == NULL) - { - // A service with an empty name will match any service name - service = services[""]; - } - return service; - } - } - - void Component::addReference(Reference* reference) - { - logentry(); - references[reference->getType()->getName()] = reference; - } - - Reference* Component::findReference(const std::string& referenceName) - { - logentry(); - return references[referenceName]; - } - - DataObjectPtr Component::getProperties() - { - logentry(); - - if (!properties) - { - properties = type->getPropertyDataFactory()->create("org/osoa/sca", "Properties"); - } - return properties; - } - - void Component::setProperty(const string& name, DataObjectPtr value) - { - logentry(); - - DataObjectPtr props = getProperties(); - - // Get the property's type - PropertyPtr propProperty = props->getInstanceProperty(name); - if (!propProperty) { - std::string msg("Property not found: "); - msg += name; - throwException(SystemConfigurationException, msg.c_str()); - } - const Type& propType = propProperty->getType(); - if (propType.isDataType()) - { - if (propProperty->isMany()) - { - DataObjectList& dol = props->getList(*propProperty); - dol.append(value->getCString("")); - } - else - { - props->setCString(*propProperty, value->getCString("")); - } - } - else - { - // Create a new instance of the DO - // iterate over properties setting each one - // for now: - props->setDataObject(*propProperty, value); - } - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Component.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Component.h deleted file mode 100644 index 882d79a94c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Component.h +++ /dev/null @@ -1,183 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_component_h -#define tuscany_sca_model_component_h - -#include <string> -#include <map> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" - - -namespace tuscany -{ - namespace sca - { - namespace model - { - - class Composite; - class ComponentType; - class Reference; - class ReferenceType; - class Service; - class ServiceType; - - /** - * A component is a configured instance of an implementation. Components provide - * and consume services. More than one component can use and configure the same - * implementation, where each component configures the implementation differently. - * For example each component may configure a reference of the same implementation - * to consume a different service. - */ - class Component - { - public: - - /** - * Constructor - * @param composite The composite containing the component. - * @param name The name of the component. - */ - SCA_API Component(Composite *composite, const std::string& name, ComponentType *type); - - /** - * Destructor. - */ - SCA_API virtual ~Component(); - - /** - * Returns the name of this component. - * @return the name of this component - */ - SCA_API const std::string& getName() const { return name; } - - /** - * Returns the composite containing this component. - * @return The composite containing this component. - */ - SCA_API Composite* getComposite() const { return composite; } - - /** - * Returns the type of this component. - * @return The type of this component. - */ - SCA_API ComponentType* getType() const { return type; } - - /** - * Add a new service to this component. - * @param service The service to add. - */ - SCA_API void addService(Service* service); - - /** - * Find an existing service on this component. - * @param serviceName The name of the service to find. - * If the serviceName is the zero length string then if there is - * only one service it will be returned. - * @return The found service, or 0 if not found. - */ - SCA_API Service* findService(const std::string& serviceName); - - /** - * Add a new reference to this component. - * @param reference The reference to add. - */ - SCA_API void addReference(Reference* reference); - - /** - * Find an existing reference on this component. - * @param referenceName The name of the reference to find. - * @return The found reference, or 0 if not found. - */ - SCA_API Reference* findReference(const std::string& referenceName); - - /** - * Returns all the services defined on this component. - * @return All the services defined on this component. - */ - typedef std::map<std::string, Service*> SERVICE_MAP; - SCA_API const SERVICE_MAP& getServices() const { return services; }; - - /** - * Returns all the references defined on this component. - * @return All the references defined on this component. - */ - typedef std::map<std::string, Reference*> REFERENCE_MAP; - SCA_API const REFERENCE_MAP& getReferences() const { return references; }; - - /** - * Set the value of a property defined on this component. The values - * will usually come from a component declaration in a composite file. - * @param name The name of the property. - * @param value The value of the property. - */ - SCA_API void setProperty(const std::string& name, commonj::sdo::DataObjectPtr value); - - /** - * Returns a data object from which all the properties of the component - * and their values can be accessed. - * @return A data object holding the property values. - */ - SCA_API commonj::sdo::DataObjectPtr getProperties(); - - private: - - /** - * Name of the component. - */ - std::string name; - - /** - * Composite containing the component. - */ - Composite* composite; - - /** - * Type of the component. - */ - ComponentType* type; - - /** - * Map of all the services defined on this component. - */ - SERVICE_MAP services; - - /** - * Map of all the references defined on this component. - */ - REFERENCE_MAP references; - - /** - * The properties and their values for this component. - */ - commonj::sdo::DataObjectPtr properties; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_component_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ComponentType.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ComponentType.cpp deleted file mode 100644 index 20e70ede20..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ComponentType.cpp +++ /dev/null @@ -1,294 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <iostream> - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/ComponentType.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/Reference.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - ComponentType::ComponentType(Composite* composite, const string& name) - : composite(composite), name(name) - { - logentry(); - } - - // Destructor - ComponentType::~ComponentType() - { - logentry(); - } - - void ComponentType::addServiceType(ServiceType* serviceType) - { - logentry(); - serviceTypes[serviceType->getName()] = serviceType; - } - - ServiceType* ComponentType::findServiceType(const string& serviceName) - { - logentry(); - - // If serviceName is empty then return the ONLY service - if (serviceName == "" - && serviceTypes.size() == 1) - { - return serviceTypes.begin()->second; - } - else - { - return serviceTypes[serviceName]; - } - } - - void ComponentType::addReferenceType(ReferenceType* referenceType) - { - logentry(); - - referenceTypes[referenceType->getName()] = referenceType; - } - - ReferenceType* ComponentType::findReferenceType(const string& referenceName) - { - logentry(); - - return referenceTypes[referenceName]; - } - - void ComponentType::addPropertyType(const string& name, - const string& type, - bool many, - DataObjectPtr* defaultValue) - { - logentry(); - - // Create a Type in the Properties dataFactory - DataFactoryPtr factory = getPropertyDataFactory(); - - string typeUri, typeName; - Utils::tokeniseQName(type, typeUri, typeName); - - if (typeUri == "http://www.w3.org/2001/XMLSchema") - { - typeUri = "commonj.sdo"; - if (typeName == "string") - { - typeName = "String"; - } - else if (typeName == "anyType") - { - typeName = "DataObject"; - } - else if (typeName == "int") - { - typeName = "Int"; - } - else if (typeName == "integer") - { - typeName = "Integer"; - } - else if (typeName == "negativeInteger") - { - typeName = "Integer"; - } - else if (typeName == "nonNegativeInteger") - { - typeName = "Integer"; - } - else if (typeName == "positiveInteger") - { - typeName = "Integer"; - } - else if (typeName == "nonPositiveInteger") - { - typeName = "Integer"; - } - else if (typeName == "unsignedLong") - { - typeName = "Integer"; - } - else if (typeName == "unsignedShort") - { - typeName = "Integer"; - } - else if (typeName == "unsignedInt") - { - typeName = "Long"; - } - else if (typeName == "long") - { - typeName = "Long"; - } - else if (typeName == "double") - { - typeName = "Double"; - } - else if (typeName == "short") - { - typeName = "Short"; - } - else if (typeName == "unsignedByte") - { - typeName = "Short"; - } - else if (typeName == "float") - { - typeName = "Float"; - } - else if (typeName == "boolean") - { - typeName = "Boolean"; - } - else if (typeName == "byte") - { - typeName = "Byte"; - } - else if (typeName == "base64Binary") - { - typeName = "Bytes"; - } - else if (typeName == "hexBinary") - { - typeName = "Bytes"; - } - else if (typeName == "anyURI") - { - typeName = "URI"; - } - else if (typeName == "QName") - { - typeName = "URI"; - } - else - { - // Default unknown xs: types to string?? - typeName = "String"; - } - } - else - { - // It's not an XML type - } - - factory->addPropertyToType( - "org/osoa/sca", - "Properties", - name.c_str(), - typeUri.c_str(), - typeName.c_str(), - many, - false, - true); - - // Set the default for a dataType - if (defaultValue!=NULL) - { - try - { - const Type& propType = factory->getType(typeUri.c_str(), typeName.c_str()); - if (propType.isDataType()) - { - factory->setDefault("org/osoa/sca", "Properties", - name.c_str(), - (char*)(*defaultValue)->getCString("")); - } - } - catch (SDOTypeNotFoundException&) - { - } - } - } - - const Property* ComponentType::findPropertyType(const string& propertyName) - { - logentry(); - const Property* property = NULL; - - DataFactoryPtr dataFactory = getPropertyDataFactory(); - const Type& propertiesType = dataFactory->getType("org/osoa/sca", "Properties"); - - try - { - const Property& prop = propertiesType.getProperty(propertyName); - property = ∝ - } - catch(SDOPropertyNotFoundException) - { - loginfo("Property named %s not found, returning null", propertyName.c_str()); - } - return property; - } - - DataFactoryPtr ComponentType::getPropertyDataFactory() - { - logentry(); - - if (!propertyFactory) - { - propertyFactory = DataFactory::getDataFactory(); - // Add the root type - propertyFactory->addType("org/osoa/sca", "Properties", false, false, false, false); - } - return propertyFactory; - } - - void ComponentType::initializeComponent(Component* component) - { - logentry(); - - for (SERVICETYPE_MAP::iterator iter = serviceTypes.begin(); - iter != serviceTypes.end(); - iter++) - { - Service* service = new Service(component, iter->second); - component->addService(service); - } - for (REFERENCETYPE_MAP::iterator refiter = referenceTypes.begin(); - refiter != referenceTypes.end(); - refiter++) - { - Reference* reference = new Reference(component, refiter->second); - component->addReference(reference); - } - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ComponentType.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ComponentType.h deleted file mode 100644 index 86f17890e9..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ComponentType.h +++ /dev/null @@ -1,186 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_componenttype_h -#define tuscany_sca_model_componenttype_h - -#include <string> -#include <map> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/model/ReferenceType.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - class ServiceType; - class ReferenceType; - class Interface; - class Component; - class Composite; - - /** - * Component type represents the configurable aspects of an implementation. - * A component type consists of services that are offered, references to other services - * that can be wired and properties that can be set. The settable properties and the settable - * references to services are configured by a component which uses the implementation. - * The component type can be thought of as the contract which is honoured by an implementation. - */ - class ComponentType - { - public: - - /** - * Constructor - */ - SCA_API ComponentType(Composite* composite, const std::string& name); - - /** - * Destructor. - */ - SCA_API virtual ~ComponentType(); - - /** - * Returns the name of the component type - */ - SCA_API const std::string& getName() const { return name; }; - - /** - * Returns the composite containing this component type - */ - SCA_API Composite* getComposite() const { return composite; }; - - /** - * Add a new service type to this component type. - * @param serviceType The service type to add. - */ - SCA_API virtual void addServiceType(ServiceType* serviceType); - - /** - * Find an existing service type on this component type. - * @param serviceName The name of the service type to find. - * If the serviceName is the zero length string then if there is - * only one service type it will be returned. - * @return The found service, or 0 if not found. - */ - SCA_API virtual ServiceType* findServiceType(const std::string& serviceName); - - /** - * Add a new reference type to this component type. - * @param referenceType The reference type to add. - */ - SCA_API virtual void addReferenceType(ReferenceType* referenceType); - - /** - * Find an existing reference type on this component type. - * @param referenceName The name of the reference type to find. - * @return The found reference type, or 0 if not found. - */ - SCA_API virtual ReferenceType* findReferenceType(const std::string& referenceName); - - /** - * Returns the service types defined on this component. - * @return The service types defined on this component. - */ - typedef std::map<std::string, ServiceType*> SERVICETYPE_MAP; - SERVICETYPE_MAP getServiceTypes() const { return serviceTypes; }; - - /** - * Returns the reference types defined on this component. - * @return The reference types defined on this component. - */ - typedef std::map<std::string, ReferenceType*> REFERENCETYPE_MAP; - REFERENCETYPE_MAP getReferenceTypes() const { return referenceTypes; }; - - /** - * Add a new property type to this component type. Property types are added - * one at a time. The property definitions usually come from a component type file. - * @param name The name of the property type. - * @param type The full name of the property data type (including uri and local name). - * @param many True if this is a many valued property. - * @param defaultValue The default value if the property does not have a - * value set. - */ - SCA_API virtual void addPropertyType(const std::string& name, - const std::string& type, - bool many, - commonj::sdo::DataObjectPtr* defaultValue); - - /** - * Find an existing property type on this component type. - * @param propertyName The name of the property type to find. - * @return The found property, or 0 if not found. - */ - SCA_API virtual const commonj::sdo::Property* findPropertyType(const std::string& propertyName); - - /** - * Return the SDO data factory which has the types of the properties defined - * in this component type. - * @return The data factory. - */ - SCA_API virtual commonj::sdo::DataFactoryPtr getPropertyDataFactory(); - - /** - * Initialize a component of this type. - * @param component The component to initialize. - */ - SCA_API virtual void initializeComponent(Component* component); - - private: - - /** - * The name of the component type - */ - std::string name; - - /** - * The composite containing this component type - */ - Composite* composite; - - /** - * Map of all the service types defined on this component. - */ - SERVICETYPE_MAP serviceTypes; - - /** - * Map of all the reference types defined on this component. - */ - REFERENCETYPE_MAP referenceTypes; - - /** - * SDO data factory which has all the types of the properties defined in - * this component type - */ - commonj::sdo::DataFactoryPtr propertyFactory; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_componenttype_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Composite.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Composite.cpp deleted file mode 100644 index 6456b0cede..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Composite.cpp +++ /dev/null @@ -1,427 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/CompositeReference.h" -#include "tuscany/sca/model/CompositeReferenceBinding.h" -#include "tuscany/sca/model/CompositeService.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/Wire.h" -#include "tuscany/sca/model/WSDLDefinition.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/model/ReferenceBinding.h" - -using namespace std; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Composite::Composite(const string& name, const string& root) - : ComponentType(0, name), root(root) - { - logentry(); - } - -#if defined(COPY_COMPOSITES_ON_INSTANCIATION) - // Constructor - Composite::Composite(Composite* templateComposite, Composite* containerComposite) - : ComponentType(containerComposite, templateComposite->getName()), root(templateComposite->root) - { - logentry(); - components = templateComposite->components; - includes = templateComposite->includes; - wires = templateComposite->wires; - wsdlDefinitions = templateComposite->wsdlDefinitions; - // Copy all services from the cloned template - SERVICETYPE_MAP serviceTypeMap = templateComposite->getServiceTypes(); - for (SERVICETYPE_MAP::iterator serviter = serviceTypeMap.begin(); - serviter != serviceTypeMap.end(); - ++serviter) - { - addServiceType(serviter->second); - } - // Copy all references from the cloned template - REFERENCETYPE_MAP referenceTypeMap = templateComposite->getReferenceTypes(); - for (REFERENCETYPE_MAP::iterator refiter = referenceTypeMap.begin(); - refiter != referenceTypeMap.end(); - refiter++) - { - addReferenceType(refiter->second); - } - // Copy the dataFactory from the cloned template - commonj::sdo::DataFactoryPtr propertyFactory = getPropertyDataFactory(); - commonj::sdo::DataFactoryPtr dataFactory = templateComposite->getPropertyDataFactory(); - commonj::sdo::TypeList typeList = dataFactory->getTypes(); - for (int typeiter1=0; - typeiter1 < typeList.size(); - ++typeiter1) - { - const commonj::sdo::Type& type = typeList[typeiter1]; - propertyFactory->addType( - type.getURI(), - type.getName(), - type.isSequencedType(), - type.isOpenType(), - type.isAbstractType(), - type.isDataType()); - } - for (int typeiter2=0; - typeiter2 < typeList.size(); - ++typeiter2) - { - const commonj::sdo::Type& type = typeList[typeiter2]; - commonj::sdo::PropertyList propertyList = type.getProperties(); - for (int propertyiter=0; - propertyiter < propertyList.size(); - ++propertyiter) - { - const commonj::sdo::Property& property = propertyList[propertyiter]; - propertyFactory->addPropertyToType( - type.getURI(), - type.getName(), - property.getName(), - property.getType().getURI(), - property.getType().getName(), - property.isMany(), - property.isReadOnly(), - property.isContainment()); - } - for (int propertyiter=0; - propertyiter < propertyList.size(); - ++propertyiter) - { - const commonj::sdo::Property& property = propertyList[propertyiter]; - for (int aliasiter = 0; - aliasiter < property.getAliasCount(); - ++aliasiter) - { - propertyFactory->setAlias( - type.getURI(), - type.getName(), - property.getName(), - property.getAlias(aliasiter)); - } - } - for (int aliasiter = 0; - aliasiter < type.getAliasCount(); - ++aliasiter) - { - propertyFactory->setAlias( - type.getURI(), - type.getName(), - type.getAlias(aliasiter)); - } - if ( type.getBaseType() ) - { - propertyFactory->setBaseType( - type.getURI(), - type.getName(), - type.getBaseType()->getURI(), - type.getBaseType()->getName(), - false); //TODO: Where do we know if the cloned Type is a restriction ??? - } - } - - } -#endif - - // Destructor - Composite::~Composite() - { - logentry(); - } - - void Composite::addComponent(Component* component) - { - logentry(); - components[component->getName()] = component; - } - - void Composite::addCompositeReference(CompositeReference* compositeReference) - { - logentry(); - components[compositeReference->getName()] = compositeReference; - - // Create a reference type describing the composite reference - ServiceType* serviceType = compositeReference->getType()->findServiceType(""); - ReferenceType* referenceType = new ReferenceType( - this, compositeReference->getName(), - serviceType->getInterface(), - serviceType->getCallbackInterface(), - compositeReference->getMultiplicity()); - addReferenceType(referenceType); - } - - void Composite::addCompositeService(CompositeService* compositeService) - { - logentry(); - components[compositeService->getName()] = compositeService; - - // Create a service type describing the composite service - ReferenceType* referenceType = compositeService->getType()->findReferenceType(""); - ServiceType* serviceType = new ServiceType( - this, compositeService->getName(), - referenceType->getInterface(), - referenceType->getCallbackInterface()); - addServiceType(serviceType); - } - - void Composite::initializeComponent(Component* component) - { - ComponentType::initializeComponent(component); - - // Create bindings for all the services - const Component::SERVICE_MAP& services = component->getServices(); - Component::SERVICE_MAP::const_iterator iter = services.begin(); - for (unsigned int i=0; i< services.size(); i++) - { - Service *service = iter->second; - //CompositeServiceBinding* binding = new CompositeServiceBinding(service); - //service->setBinding(binding); - iter++; - } - - // Create bindings for all the references - const Component::REFERENCE_MAP& references = component->getReferences(); - Component::REFERENCE_MAP::const_iterator refiter = references.begin(); - for (unsigned int ri=0; ri< references.size(); ri++) - { - Reference *reference = refiter->second; - CompositeReferenceBinding* binding = new CompositeReferenceBinding(reference); - reference->setBinding(binding); - refiter++; - } - } - - Component* Composite::findComponent(const std::string& name) - { - logentry(); - Component* component = components[name]; - return component; - } - - std::list<std::string> Composite::getComponents() const - { - logentry(); - - std::list<std::string> componentList; - COMPONENT_MAP::const_iterator iter = components.begin(); - COMPONENT_MAP::const_iterator iterEnd = components.end(); - - for( ; iter != iterEnd; ++iter ) - { - componentList.push_back( iter->first ); - } - - return componentList; - } - - Service* Composite::findComponentService(const std::string& name) - { - logentry(); - - Service* service = 0; - - string componentName; - string serviceName; - Utils::tokeniseUri(name, componentName, serviceName); - - // Locate the component - Component* component = findComponent(componentName); - if (component) - { - // Locate the service - service = component->findService(serviceName); - } - return service; - } - - void Composite::addWire(const std::string& source, const std::string& target) - { - logentry(); - Wire* wire=new Wire(source, target); - wires.push_back(wire); - } - - void Composite::addInclude(Composite* composite) - { - logentry(); - includes[composite->getName()] = composite; - - for (COMPONENT_MAP::iterator iter = composite->components.begin(); - iter != composite->components.end(); - iter++) - { - components[iter->first] = iter->second; - } - } - - void Composite::resolveWires() - { - logentry(); - - for (WIRES::iterator iter = wires.begin(); - iter != wires.end(); - iter++) - { - Wire* wire = *iter; - - // Find the source component and reference - Component* component = findComponent(wire->getSourceComponent()); - Reference* reference; - if (component) - { - reference = component->findReference(wire->getSourceReference()); - if (!reference) - { - logerror("Wire source reference %s not found", wire->getSourceReference().c_str()); - } - } - else - { - reference = NULL; - logerror("Wire source %s not found", wire->getSourceComponent().c_str()); - } - - // Configure the reference binding with the wire target URI - if (reference) - { - reference->getBinding()->configure(wire->getTarget()); - } - } - } - - void Composite::addWSDLDefinition(commonj::sdo::DataObjectPtr wsdlModel) - { - logentry(); - WSDLDefinition* wsdlDefinition = new WSDLDefinition(wsdlModel); - - WSDLDefinition* existingDefinition = wsdlDefinitions[wsdlDefinition->getNamespace()]; - if (existingDefinition == NULL) - { - wsdlDefinitions[wsdlDefinition->getNamespace()] = wsdlDefinition; - } - else{ - existingDefinition->addWSDLModel(wsdlModel); - } - } - - WSDLDefinition* Composite::findWSDLDefinition(const std::string& wsdlNamespace ) - { - logentry(); - // remember the map operator[] inserts a blank object if key not found - WSDL_MAP::iterator iter = wsdlDefinitions.find( wsdlNamespace ); - if( iter == wsdlDefinitions.end() ) - { - return NULL; - } - - return iter->second; - } - - std::list<std::string> Composite::getWSDLNamespaces() const - { - logentry(); - std::list<std::string> namespaceList; - WSDL_MAP::const_iterator iter = wsdlDefinitions.begin(); - WSDL_MAP::const_iterator iterEnd = wsdlDefinitions.end(); - - for( ; iter != iterEnd; ++iter ) - { - namespaceList.push_back( iter->first ); - } - - return namespaceList; - } - - Composite* Composite::findIncludedComposite(const std::string& compositeName) - { - logentry(); - - // remember the map operator[] inserts a blank object if key not found - INCLUDES::iterator iter = includes.find( compositeName ); - if( iter == includes.end() ) - { - return NULL; - } - - return iter->second; - } - - std::list<std::string> Composite::getIncludedComposites() const - { - logentry(); - std::list<std::string> compositeList; - INCLUDES::const_iterator iter = includes.begin(); - INCLUDES::const_iterator iterEnd = includes.end(); - - for( ; iter != iterEnd; ++iter ) - { - compositeList.push_back( iter->first ); - } - - return compositeList; - } - - commonj::sdo::XSDHelperPtr Composite::getXSDHelper() - { - logentry(); - if (xsdHelper == 0) - { - xsdHelper = commonj::sdo::HelperProvider::getXSDHelper(); - } - - return xsdHelper; - } - - commonj::sdo::XMLHelperPtr Composite::getXMLHelper() - { - logentry(); - if (xmlHelper == 0) - { - xmlHelper = commonj::sdo::HelperProvider::getXMLHelper(getXSDHelper()->getDataFactory()); - } - - return xmlHelper; - } - - commonj::sdo::DataFactoryPtr Composite::getDataFactory() - { - logentry(); - return getXSDHelper()->getDataFactory(); - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Composite.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Composite.h deleted file mode 100644 index 40626feb14..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Composite.h +++ /dev/null @@ -1,250 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_composite_h -#define tuscany_sca_model_composite_h - -#include <string> -#include <map> -#include <vector> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" -#include "tuscany/sca/model/ComponentType.h" - -#define COPY_COMPOSITES_ON_INSTANCIATION - -namespace tuscany -{ - namespace sca - { - - namespace model - { - class Component; - class ComponentType; - class CompositeReference; - class CompositeService; - class Service; - class WSDLDefinition; - class Wire; - - /** - * Represents a composite. - * A composite is used to assemble SCA elements in logical groupings. - * It is the basic unit of composition within an SCA System. An SCA composite contains a - * set of components, services, references and the wires that interconnect them, plus a set - * of properties which can be used to configure components. - */ - class Composite : public ComponentType - { - public: - - /** - * Constructor. - * @param name the name of the composite. - * @param root the root of the composite in the file system. - */ - SCA_API Composite(const std::string& name, const std::string& root); - -#if defined(COPY_COMPOSITES_ON_INSTANCIATION) - /** - * Constructor to create a composite representing an instance by copying a template. - * @param templateComposite the template copmosite that will be copied. - * @param containerComposite the container of the instance. - */ - SCA_API Composite(Composite* templateComposite, Composite* containerComposite); -#endif - - /** - * Destructor. - */ - SCA_API virtual ~Composite(); - - /** - * Returns the root directory of the composite. - * @return The root of the composite in the file system. - */ - SCA_API const std::string& getRoot() const { return root; } - - /** - * Add a new component to the composite. - * @param component The component to add. - */ - SCA_API void addComponent(Component* component); - - /** - * Add a new composite reference to the composite. - * @param compositeReference The composite reference to add. - */ - SCA_API void addCompositeReference(CompositeReference* compositeReference); - - /** - * Add a new composite service to the composite. - * @param compositeService The composite service to add. - */ - SCA_API void addCompositeService(CompositeService* compositeService); - - /** - * Add/include a composite in this composite. - * @param composite The composite included in this composite. - */ - SCA_API void addInclude(Composite* composite); - - /** - * Add a wire to the model. - * @param source The source location. Either the source component and - * reference (optional), or an entry point. - * @param target The target location. Either the target component and - * service (optional), or an external service. - */ - SCA_API void addWire(const std::string& source, const std::string& target); - - /** - * Find a component by name. - * @param componentName The name of the component to be found. - * @return The component that was found, or 0 if not found. - */ - SCA_API Component* findComponent(const std::string& componentName); - - /** - * Get all included components - * @return A list of Component name strings - */ - SCA_API std::list<std::string> getComponents() const; - - /** - * Find a component and service by name. - * @param componentServiceName A string of the form - * "componentName"/"serviceName" where the service name is optional - * if there is only one service on the component. - * @return The Service that was found, or 0 if not found. - */ - SCA_API Service* findComponentService(const std::string& componentServiceName); - - /** - * Add a WSDL definition to the composite. - * @param wsdlModel A data object holding all the information about - * the WSDL definition from a WSDL file. - */ - SCA_API void addWSDLDefinition(commonj::sdo::DataObjectPtr wsdlModel); - - /** - * Find a WSDL definition by target namespace. - * @param wsdlNamespace The namespace of the WSDL definitions to find. - */ - SCA_API WSDLDefinition* findWSDLDefinition(const std::string& wsdlNamespace); - - /** - * Get all loaded WSDL namespaces - * @return A list of strings, each of which is a different project namespace - */ - SCA_API std::list<std::string> getWSDLNamespaces() const; - - /** - * Find an Included Composite by its name - * @param compositeName The name of the included composite to find. - */ - SCA_API Composite* findIncludedComposite(const std::string& compositeName); - - /** - * Get all included composites - * @return A list of Composite name strings - */ - SCA_API std::list<std::string> getIncludedComposites() const; - - /** - * Initialize a component of this type. - * @param component The component to initialize. - */ - virtual void initializeComponent(Component* component); - - /** - * Return a cached SDO XSDHelper. - */ - SCA_API commonj::sdo::XSDHelperPtr getXSDHelper(void); - - /** - * Return a cached SDO XMLHelper. - */ - SCA_API commonj::sdo::XMLHelperPtr getXMLHelper(void); - - /** - * Return a data factory which has all the types defined in XSDs and - * WSDL files configured for this composite. - * @return The data factory for this composite. - */ - SCA_API commonj::sdo::DataFactoryPtr getDataFactory(void); - - /** - * Work through the list of wires and connect the source and target uris. - */ - SCA_API void resolveWires(); - - private: - - /** - * Directory of the root of the composite. - */ - std::string root; - - /** - * Cached XSDHelper. - */ - commonj::sdo::XSDHelperPtr xsdHelper; - - /** - * Cached XMLHelper. - */ - commonj::sdo::XMLHelperPtr xmlHelper; - - /** - * Map (by name) of all the components in this composite. - */ - typedef std::map<std::string, Component*> COMPONENT_MAP; - COMPONENT_MAP components; - - /** - * Map of all the composites included by this composite. - * Map the Composite name to the Composite - */ - typedef std::map<std::string, Composite*> INCLUDES; - INCLUDES includes; - - /** - * Vector of all the wires in this composite. - */ - typedef std::vector<Wire*> WIRES; - WIRES wires; - - /** - * Map by namespace of all the wsdl definitions in this composite. - */ - typedef std::map<std::string, WSDLDefinition*> WSDL_MAP; - WSDL_MAP wsdlDefinitions; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_composite_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReference.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReference.cpp deleted file mode 100644 index be0bf71a17..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReference.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/CompositeReference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ComponentType.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Service.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - CompositeReference::CompositeReference(Composite* composite, const string& name, - Interface* intface, Interface* callbackInterface, bool conversational, ReferenceType::Multiplicity multiplicity) : - Component(composite, name, new ComponentType(composite, name)) - { - logentry(); - loginfo("Composite reference name: %s", name.c_str()); - - // Initialize the component type, service type and service - ComponentType* componentType = getType(); - ServiceType* serviceType = new ServiceType( - componentType, "", intface, callbackInterface); - componentType->addServiceType(serviceType); - - service = new Service(this, serviceType); - addService(service); - } - - // Destructor - CompositeReference::~CompositeReference() - { - logentry(); - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReference.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReference.h deleted file mode 100644 index f5e2166e06..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReference.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_compositereferencetype_h -#define tuscany_sca_model_compositereferencetype_h - -#include <string> - -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ReferenceType.h" - -namespace tuscany -{ - namespace sca - { - - namespace model - { - class ComponentType; - class Composite; - class Interface; - class Service; - - /** - * Represents a reference in a composite. - * Composite references represent dependencies that the composite has on services provided elsewhere, - * outside the composite. - */ - class CompositeReference : public Component - { - public: - - /** - * Constructor. - * @param name The name of the reference. - */ - SCA_API CompositeReference(Composite* composite, const std::string& name, - Interface* intface, Interface* callbackInterface, bool conversational, ReferenceType::Multiplicity multiplicity); - - /** - * Destructor. - */ - SCA_API virtual ~CompositeReference(); - - /** - * Returns the service exposed by this composite reference. - * @return The service exposed by this composite reference. - */ - SCA_API Service* getService() const { return service; }; - - /** - * Returns the multiplicity of this composite reference - * @return The multiplicity of the composite reference - */ - SCA_API ReferenceType::Multiplicity getMultiplicity() { return multiplicity; } - - private: - - /** - * The service exposed by this composite reference. - */ - Service* service; - - /** - * The multiplicity of this reference - */ - ReferenceType::Multiplicity multiplicity; - - }; - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_compositereferencetype_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReferenceBinding.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReferenceBinding.cpp deleted file mode 100644 index 24191285c5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReferenceBinding.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/CompositeReferenceBinding.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - CompositeReferenceBinding::CompositeReferenceBinding(Reference* reference) - : ReferenceBinding(reference, ""), uri("") - { - } - - // Destructor - CompositeReferenceBinding::~CompositeReferenceBinding() - { - } - - void CompositeReferenceBinding::configure(ServiceBinding *binding) - { - setTargetServiceBinding(binding); - } - - ServiceProxy* CompositeReferenceBinding::getServiceProxy() - { - return serviceProxy; - } - - void CompositeReferenceBinding::configure(const string& uri) - { - this->uri = uri; - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReferenceBinding.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReferenceBinding.h deleted file mode 100644 index 5c64c3b657..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeReferenceBinding.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_compositereferencebinding_h -#define tuscany_sca_model_compositereferencebinding_h - -#include <string> - -#include "tuscany/sca/model/ReferenceBinding.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * A default composite reference binding - */ - class CompositeReferenceBinding : public ReferenceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - */ - SCA_API CompositeReferenceBinding(Reference* reference); - - /** - * Destructor. - */ - SCA_API virtual ~CompositeReferenceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#CompositeServiceBinding"; }; - - /** - * Configure this binding from a service binding. - */ - SCA_API virtual void configure(ServiceBinding* serviceBinding); - - /** - * Configure this binding from a URI. - */ - SCA_API virtual void configure(const std::string& uri); - - /** - * Create a proxy representing the reference to the - * client component. - */ - SCA_API virtual ServiceProxy* getServiceProxy(); - - /** - * Returns the binding URI. - * @return The binding URI. - */ - SCA_API virtual const std::string& getURI() const { return uri; }; - - private: - - /** - * The proxy representing the reference to the client - * component. - */ - ServiceProxy* serviceProxy; - - /** - * The binding URI - */ - std::string uri; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_compositereferencebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeService.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeService.cpp deleted file mode 100644 index e06dc548c1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeService.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/CompositeService.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ComponentType.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/ServiceType.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - CompositeService::CompositeService(Composite* composite, const string& name, - Interface* intface, Interface* callbackInterface, bool conversational, - ReferenceType::Multiplicity multiplicity) : - Component(composite, name, new ComponentType(composite, name)) - { - logentry(); - loginfo("Composite service name: %s", name.c_str()); - - // Initialize the component type, reference type and reference - ComponentType* componentType = getType(); - ReferenceType* referenceType = new ReferenceType( - componentType, "", intface, callbackInterface, multiplicity); - componentType->addReferenceType(referenceType); - - reference = new Reference(this, referenceType); - addReference(reference); - } - - // Destructor - CompositeService::~CompositeService() - { - logentry(); - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeService.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeService.h deleted file mode 100644 index 8c626ccac3..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/CompositeService.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_compositeservicetype_h -#define tuscany_sca_model_compositeservicetype_h - -#include <string> - -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ReferenceType.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - class Composite; - class Component; - class Interface; - class Reference; - - /** - * Represents a service in a composite. - * Composite services define the public services provided by the composite, which can be - * accessed from outside the composite. - */ - class CompositeService : public Component - { - - public: - - /** - * Constructor. - * @param componentType The component type on which this service is defined. - * @param name The name of the service. - */ - SCA_API CompositeService(Composite* composite, const std::string& name, - Interface* intface, Interface* callbackInterface, bool conversational, ReferenceType::Multiplicity multiplicity); - - /** - * Destructor. - */ - SCA_API virtual ~CompositeService(); - - /** - * Returns the reference used by this composite service. - * @return The reference used by this composite service. - */ - SCA_API Reference* getReference() const { return reference; }; - - private: - - /** - * The reference used by this composite service. - */ - Reference* reference; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_compositeservicetype_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Contract.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Contract.cpp deleted file mode 100644 index 99a1d04dc2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Contract.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Contract.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Contract::Contract(Interface *intface, Interface* callbackInterface) : - iface(intface), callbackInterface(callbackInterface) - { - logentry(); - } - - // Destructor - Contract::~Contract() - { - logentry(); - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Contract.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Contract.h deleted file mode 100644 index e1d526f842..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Contract.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_contract_h -#define tuscany_sca_model_contract_h - -#include "tuscany/sca/model/Interface.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Interface contracts define one or more business functions. These business functions are - * provided by services and are used by references. Services are defined by the interface which - * they implement. - * This interface will typically be extended to support concrete interface type systems, such as - * CPP classes, Java interfaces, WSDL 1.1 portTypes and WSDL 2.0 interfaces. - */ - class Contract - { - public: - - /** - * Constructor. - */ - SCA_API Contract(Interface* intface, Interface* callbackInterface); - - /** - * Destructor. - */ - SCA_API virtual ~Contract(); - - /** - * Returns the interface for invocations from the requestor to the provider. - * @return The interface for invocations from the requestor to the provider. - */ - SCA_API Interface* getInterface() const { return iface; } - - /** - * Returns the interface for invocations from the provider back to the requestor. - * @return The interface for invocations from the provider back to the requestor. - */ - SCA_API Interface* getCallbackInterface() const { return callbackInterface; } - - private: - - /** - * The interface for invocations from the requestor to the provider. - */ - Interface* iface; - - /** - * The interface for invocations from the provider back to the requestor. - */ - Interface* callbackInterface; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_contract_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Interface.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Interface.cpp deleted file mode 100644 index f8dd02a74a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Interface.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/Interface.h" - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - Interface::Interface(bool remotable, bool conversational) - : remotable(remotable), conversational(conversational) - { - logentry(); - } - - Interface::~Interface() - { - logentry(); - } - - } // End namespace model - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Interface.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Interface.h deleted file mode 100644 index 5ac7736d43..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Interface.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_interface_h -#define tuscany_sca_model_interface_h - -#include <string> - -namespace tuscany -{ - namespace sca - { - namespace model - { - - /** - * Information about an interface. Subtypes will hold information - * specific to a type of interface. - */ - class Interface - { - - public: - - /** - * Constructor - */ - SCA_API Interface(bool remotable, bool conversational); - - /** - * Destructor - */ - SCA_API virtual ~Interface(); - - /** - * Returns true if the interface is remotable. - * @return True if the interface is remotable. - */ - SCA_API bool isRemotable() const { return remotable; }; - - /** - * Returns true if the interface is conversational. - * @return True if the interface is conversational. - */ - SCA_API bool isConversational() const { return conversational; }; - - /** - * return the QName of schema type for this interface type - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#WSDLInterface") - */ - SCA_API virtual const std::string& getInterfaceTypeQName() = 0; - - private: - - /** - * True if the interface is remotable - */ - bool remotable; - - /** - * True if the interface is conversational - */ - bool conversational; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_interface_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ModelLoader.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ModelLoader.cpp deleted file mode 100644 index 549ffcfc7e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ModelLoader.cpp +++ /dev/null @@ -1,939 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/export.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/ModelLoader.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/CompositeService.h" -#include "tuscany/sca/model/CompositeReference.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/WSDLInterface.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/util/File.h" - - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::util; - - -#if defined(WIN32) || defined (_WINDOWS) -#define PATH_SEPARATOR ";" -#else -#define PATH_SEPARATOR ":" -#endif - -namespace tuscany -{ - namespace sca - { - - namespace model - { - // =========== - // Constructor - // =========== - ModelLoader::ModelLoader(SCARuntime* runtime, Composite* system) - : system(system), runtime(runtime) - { - logentry(); - } - - // ========== - // Destructor - // ========== - ModelLoader::~ModelLoader() - { - logentry(); - } - - // ========================================================= - // load: Load the runtime model from the deployed xml files - // This class has the responsibility for translating from - // the SCDL files to the SCA runtime's in memory model. - // ========================================================= - void ModelLoader::load(const string& systemRoot, const string& systemPath) - { - logentry(); - loginfo("System root: %s", systemRoot.c_str()); - loginfo("System path: %s", systemPath.c_str()); - - // Load composite implementations - // Composite implementations can occur anywhere on the given search path - if (systemPath != "") - { - loadComposites(systemRoot + PATH_SEPARATOR + systemPath); - } - else - { - loadComposites(systemRoot); - } - - // Load system composites - // Composites on the the system root path get included - // in the System composite - loadSystem(systemRoot); - - // Resolve the wires in the system composite - system->resolveWires(); - } - - // ======================================================================== - // loadSystem: - // Load all the composite files on the system root path - // Translate the composite information to composite model objects - // ======================================================================== - void ModelLoader::loadSystem(const string& systemRoot) - { - logentry(); - - // Get all the composite files on the system root path - // These composites are included in the system composite - for (string path = systemRoot; path != ""; ) - { - string dir; - Utils::tokeniseString(PATH_SEPARATOR, path, dir, path); - if (dir != "") - { - loginfo("System root directory: %s", dir.c_str()); - Files files(dir, "*.composite", false); - for (unsigned int i=0; i < files.size(); i++) - { - string fileName = files[i].getDirectory() + "/" + files[i].getFileName(); - Composite* composite = compositeFiles[fileName]; - if (composite) - { - // Include the composite in the system composite - system->addInclude(composite); - } - else - { - // We already got an error or warning indicating why the file - // didn't turn into a composite - } - } - } - } - } - - // ===================================================================== - // loadComposites: - // Load all the composites from any directory under the composite search path - // Translate the composite information to composite model objects - // ===================================================================== - void ModelLoader::loadComposites(const string& searchPath) - { - logentry(); - - // Get all the composite files on the composite search path - for (string path = searchPath; path != ""; ) - { - string dir; - Utils::tokeniseString(PATH_SEPARATOR, path, dir, path); - if (dir != "") - { - loginfo("Composite path directory: %s", dir.c_str()); - Files files(dir, "*.composite", true); - for (unsigned int i=0; i < files.size(); i++) - { - loadCompositeFile(files[i]); - } - } - } - - // Complete the mapping of the composites - for (COMPOSITE_DATAOBJECTS::iterator iter = compositeDataObjects.begin(); - iter != compositeDataObjects.end(); - iter++) - { - mapCompositePass2(iter->first, iter->second); - } - } - - // ==================================================================== - // loadCompositeFile: - // This method is called for each .composite file found under the composite search - // path. The location of this composite file will indicate the root of a composite. - // ==================================================================== - Composite* ModelLoader::loadCompositeFile(const File& file) - { - logentry(); - - loginfo("Composite file name: %s", file.getFileName().c_str()); - - Composite* composite = NULL; - try - { - string fileName = file.getDirectory() + "/" + file.getFileName(); - if (compositeFiles[fileName] == NULL) - { - XMLDocumentPtr compositeFile = getXMLHelper()->loadFile(fileName.c_str()); - if (compositeFile->getRootDataObject() == NULL) - { - logerror("Unable to load file: %s", fileName.c_str()); - } - else - { - // Map the SCDL - composite = mapCompositePass1(file, compositeFile->getRootDataObject()); - - // Load the xsd types and wsdl files in the composite - loadTypeMetadata(file.getDirectory(), composite); - } - } - - } catch (SDORuntimeException& ex) - { - logerror("Unable to load composite: %s", ex.getMessageText()); - } - return composite; - } - - // =========== - // mapCompositePass1 - // =========== - Composite* ModelLoader::mapCompositePass1(const File& file, DataObjectPtr root) - { - logentry(); - - const string& compositeRootDir = file.getDirectory(); - const string compositeName = root->getCString("name"); - loginfo("Composite: %s, root directory: %s", compositeName.c_str(), compositeRootDir.c_str()); - - Composite* composite = new Composite(compositeName, compositeRootDir); - compositeModels[compositeName] = composite; - compositeDataObjects[compositeName] = root; - compositeFiles[file.getDirectory() + "/" + file.getFileName()] = composite; - - // ------------ - // Composite services - // ------------ - DataObjectList& compositeServiceList = root->getList("service"); - for (unsigned int i = 0; i < compositeServiceList.size(); i++) - { - addCompositeService(composite, compositeServiceList[i]); - } - - // ----------------- - // Composite references - // ----------------- - DataObjectList& compositeReferenceList = root->getList("reference"); - for (unsigned int cri = 0; cri < compositeReferenceList.size(); cri++) - { - addCompositeReference(composite, compositeReferenceList[cri]); - } - - // ----- - // Wires - // ----- - DataObjectList& wireList = root->getList("wire"); - for (unsigned int l = 0; l < wireList.size(); l++) - { - string source = wireList[l]->getCString("source"); - string target = wireList[l]->getCString("target"); - composite->addWire(source, target); - } - - return composite; - } - - // =========== - // mapCompositePass2 - // =========== - Composite* ModelLoader::mapCompositePass2(const string& compositeName, DataObjectPtr root) - { - logentry(); - loginfo("Composite: %s", compositeName.c_str()); - - Composite* composite = compositeModels[compositeName]; - - // ---------------------------- - // Add components to the composite - // ---------------------------- - DataObjectList& componentList = root->getList("component"); - unsigned int i; - for (i=0; i < componentList.size(); i++) - { - addComponent(composite, componentList[i]); - } - - // Resolve all the wires inside the composite - composite->resolveWires(); - - return composite; - } - - // ================================= - // addComponent: - // ================================= - void ModelLoader::addComponent(Composite* composite, DataObjectPtr componentDO) - { - logentry(); - - // ------------------- - // Get the component implementation - // ------------------- - DataObjectPtr impl = componentDO->getDataObject("implementation"); - if (!impl) - { - string message = "No implementation for component: "; - message = message + componentDO->getCString("name"); - throwException(SystemConfigurationException, message.c_str()); - } - - // Create the component type - ComponentType* componentType; - string componentTypeName; - string componentTypePath; - - string implTypeQname = impl->getType().getURI(); - implTypeQname += "#"; - implTypeQname += impl->getType().getName(); - - if (implTypeQname == "http://www.osoa.org/xmlns/sca/1.0#SCAImplementation") - { - // Handle a composite implementation - Composite* compositeComponentType = compositeModels[impl->getCString("name")]; - if (!compositeComponentType) - { - string message = "Composite not found: "; - message = message + impl->getCString("name"); - throwException(SystemConfigurationException, message.c_str()); - } -#if defined(COPY_COMPOSITES_ON_INSTANCIATION) - componentType = new Composite(compositeComponentType, composite); -#else - componentType = compositeComponentType; -#endif - } - else - { - - // Locate extension that handles this implementation type - ImplementationExtension* implExtension = runtime->getImplementationExtension(implTypeQname); - if (implExtension) - { - componentType = implExtension->getImplementation(composite, impl); - - // ----------------------- - // Load the .componentType - // ----------------------- - string typeFileName = composite->getRoot() + "/" + componentType->getName() + ".componentType"; - - // Check that the component type file exists - //TODO We need a better and portable way to do this - string dirName; - string fileName; - Utils::rTokeniseString("/", typeFileName, dirName, fileName); - Files files(dirName, fileName, false); - if (files.size() !=0) - { - try - { - XMLDocumentPtr componentTypeFile = getXMLHelper()->loadFile(typeFileName.c_str()); - if (!componentTypeFile || componentTypeFile->getRootDataObject() == 0) - { - // Component type files are optional - logerror("Unable to load file: %s", typeFileName.c_str()); - } - else - { - //Utils::printDO(componentTypeFile->getRootDataObject()); - //commonj::sdo::SDOUtils::printDataObject(componentTypeFile->getRootDataObject()); - addServiceTypes(composite, componentType, componentTypeFile->getRootDataObject()); - addReferenceTypes(composite, componentType, componentTypeFile->getRootDataObject()); - addPropertyTypes(componentType, componentTypeFile->getRootDataObject()); - } - } catch (SDORuntimeException& ex) - { - logerror("Unable to load file:%s", typeFileName.c_str()); - throwException(SystemConfigurationException, ex); - } - } - } - else - { - logerror("Unsupported implementation type: %s", implTypeQname.c_str()); - - string message = "Implementation type not supported: "; - message = message + implTypeQname; - throwException(SystemConfigurationException, message.c_str()); - } - } - - // First check that references and properties exist, some component types - // will create all used references & properties automatically - DataObjectList& refs = componentDO->getList("reference"); - for (unsigned int i=0; i<refs.size(); i++) - { - string refName = refs[i]->getCString("name"); - if (!componentType->findReferenceType(refName)) - { - // Configuration error: reference is not defined - string message = "Undefined reference: " + refName; - throwException(SystemConfigurationException, message.c_str()); - } - } - - DataObjectList& props = componentDO->getList("property"); - for (unsigned int pi=0; pi<props.size(); pi++) - { - string propName = props[pi]->getCString("name"); - if (!componentType->findPropertyType(propName)) - { - // Configuration error: property is not defined - string message = "Undefined property: " + propName; - throwException(SystemConfigurationException, message.c_str()); - } - } - - - // Create the component - Component* component = new Component(composite, componentDO->getCString("name"), componentType); - composite->addComponent(component); - - // ---------- - // Properties - // ---------- - for (unsigned int pi=0; pi<props.size(); pi++) - { - string propName = props[pi]->getCString("name"); - DataObjectPtr propValue = props[pi]->getDataObject("value"); - - component->setProperty(propName, propValue); - } - - // ---------- - // References - // ---------- - for (unsigned int ri=0; ri<refs.size(); ri++) - { - // ---------------------------------------------------------- - // Add the reference to the composite wires to be resolved later - // ---------------------------------------------------------- - string refName = refs[ri]->getCString("name"); - if (!component->findReference(refName)) - { - // Configuration error: reference is not defined - string message = "Undefined reference: " + refName; - throwException(SystemConfigurationException, message.c_str()); - } - - string src = component->getName() + "/" + refName; - - // Get the reference value - string refValue = refs[ri]->getCString("value"); - - composite->addWire(src, refValue); - } - } - - // ===================================================================== - // addServiceTypes: add the services to the component type - // ===================================================================== - void ModelLoader::addServiceTypes(Composite* composite, ComponentType* componentType, DataObjectPtr componentTypeDO) - { - logentry(); - - DataObjectList& serviceTypes = componentTypeDO->getList("service"); - for (unsigned int i=0; i<serviceTypes.size(); i++) - { - Interface* iface = getInterface(composite, serviceTypes[i]); - ServiceType* serviceType = new ServiceType( - componentType, serviceTypes[i]->getCString("name"), iface, NULL); - componentType->addServiceType(serviceType); - } - } - - // =================================================== - // addReferenceTypes: add the references to the component type - // =================================================== - void ModelLoader::addReferenceTypes(Composite* composite, ComponentType* componentType, DataObjectPtr componentTypeDO) - { - logentry(); - - DataObjectList& refs = componentTypeDO->getList("reference"); - for (unsigned int i=0; i<refs.size(); i++) - { - ReferenceType::Multiplicity multiplicity; - if (refs[i]->isSet("multiplicity")) - { - string s = refs[i]->getCString("multiplicity"); - multiplicity = ReferenceType::getMultiplicityFromString(s); - } - else - { - multiplicity = ReferenceType::ONE_ONE; - } - - Interface* iface = getInterface(composite, refs[i]); - - ReferenceType* referenceType = new ReferenceType( - componentType, refs[i]->getCString("name"), iface, NULL, multiplicity); - componentType->addReferenceType(referenceType); - - } - } - - - // ============== - // getInterface - // ============== - Interface* ModelLoader::getInterface(Composite* composite, DataObjectPtr obj) - { - logentry(); - - // ----------------- - // get the interface - // ----------------- - DataObjectPtr iface = obj->getDataObject("interface"); - if (!iface) - { - string message = "No interface for: "; - message = message + obj->getCString("name"); - throwException(SystemConfigurationException, message.c_str()); - } - - string typeQname = iface->getType().getURI(); - typeQname += "#"; - typeQname += iface->getType().getName(); - - if (typeQname == WSDLInterface::typeQName) - { - // Load a WSDL interface - string qname = iface->getCString("interface"); - - return new WSDLInterface(qname, true, false); - } - else - { - // Locate extension that handles this interface type - InterfaceExtension* ifaceExtension = runtime->getInterfaceExtension(typeQname); - if (ifaceExtension) - { - return ifaceExtension->getInterface(composite, iface); - } - else - { - // log this for now. - logerror("Unsupported interface type: %s", typeQname.c_str()); - return 0; - } - } - - } - - // ============================================== - // addProperties: add properties to the component type - // ============================================== - void ModelLoader::addPropertyTypes(ComponentType* componentType, DataObjectPtr componentTypeDO) - { - logentry(); - - DataObjectList& props = componentTypeDO->getList("property"); - for (unsigned int i=0; i<props.size(); i++) - { - //cout << "Property " << props[i]; - - string name = props[i]->getCString("name"); - string type = props[i]->getCString("type"); - bool many=false; - if (props[i]->isSet("many")) - { - many = props[i]->getBoolean("many"); - } - - //TODO need to add support for complex properties, need the SDO - // folks to help understand how to do this... - DataObjectPtr defaultValue = props[i]->getDataObject("value"); - - componentType->addPropertyType(name, type, many, &defaultValue); - } - } - - // =============================================== - // addCompositeService: add an CompositeService to the composite - // =============================================== - void ModelLoader::addCompositeService(Composite* composite, DataObjectPtr compositeServiceDO) - { - logentry(); - - string compositeServiceName = compositeServiceDO->getCString("name"); - - Interface* iface; - if (compositeServiceDO->getDataObject("interface")) - { - iface = getInterface(composite, compositeServiceDO); - } - else - { - iface = NULL; - } - - ReferenceType::Multiplicity multiplicity; - if (compositeServiceDO->isSet("multiplicity")) - { - string s = compositeServiceDO->getCString("multiplicity"); - multiplicity = ReferenceType::getMultiplicityFromString(s); - } - else - { - multiplicity = ReferenceType::ONE_ONE; - } - - CompositeService* compositeService = new CompositeService( - composite, compositeServiceName, iface, NULL, false, multiplicity); - - composite->addCompositeService(compositeService); - - DataObjectList& refs = compositeServiceDO->getList("reference"); - for (unsigned int i=0; i<refs.size(); i++) - { - // ---------------------------------------------------------- - // Add the reference to the composite wires to be resolved later - // ---------------------------------------------------------- - string targ = refs.getCString(i); - composite->addWire(compositeServiceName, targ); - } - - // Get binding, it will be the first and only binding - DataObjectList& bindings = compositeServiceDO->getList("binding"); - if (bindings.size()==0) - { - string message = "No binding for compositeService: "; - message = message + compositeServiceDO->getCString("name"); - throwException(SystemConfigurationException, message.c_str()); - } - DataObjectPtr binding = bindings[0]; - - // Determine the binding type - string bindingType = binding->getType().getName(); - string bindingTypeQname = binding->getType().getURI(); - bindingTypeQname += "#"; - bindingTypeQname += binding->getType().getName(); - - // Locate the extension that handles this binding type - ReferenceBindingExtension* bindingExtension = runtime->getReferenceBindingExtension(bindingTypeQname); - if (bindingExtension) - { - Reference* reference = compositeService->getReference(); - ReferenceBinding* referenceBinding = bindingExtension->getReferenceBinding(composite, reference, binding); - reference->setBinding(referenceBinding); - } - else - { - logerror("Unsupported binding type: %s", bindingTypeQname.c_str()); - - string message = "Binding type not supported: "; - message = message + bindingTypeQname; - throwException(SystemConfigurationException, message.c_str()); - } - } - - - // ========================================================= - // addCompositeReference: add a CompositeReference to the composite - // ========================================================= - void ModelLoader::addCompositeReference(Composite* composite, DataObjectPtr compositeReferenceDO) - { - logentry(); - - string compositeReferenceName = compositeReferenceDO->getCString("name"); - - Interface* iface; - if (compositeReferenceDO->getDataObject("interface")) - { - iface = getInterface(composite, compositeReferenceDO); - } - else - { - iface = NULL; - } - - CompositeReference* compositeReference = new CompositeReference( - composite, compositeReferenceName, iface, NULL, false, ReferenceType::ONE_ONE); - - composite->addCompositeReference(compositeReference); - - // Get binding, it will be the first and only binding - DataObjectList& bindings = compositeReferenceDO->getList("binding"); - if (bindings.size()==0) - { - string message = "No binding for compositeReference: "; - message = message + compositeReferenceDO->getCString("name"); - throwException(SystemConfigurationException, message.c_str()); - } - DataObjectPtr binding = bindings[0]; - - // Determine the binding type - string bindingType = binding->getType().getName(); - string bindingTypeQname = binding->getType().getURI(); - bindingTypeQname += "#"; - bindingTypeQname += binding->getType().getName(); - - // Locate the extension that handles this binding type - ServiceBindingExtension* bindingExtension = runtime->getServiceBindingExtension(bindingTypeQname); - if (bindingExtension) - { - Service *service = compositeReference->getService(); - ServiceBinding* serviceBinding = bindingExtension->getServiceBinding(composite, service, binding); - service->setBinding(serviceBinding); - } - else - { - logerror("Unsupported binding type: %s", bindingTypeQname.c_str()); - - string message = "Binding type not supported: "; - message = message + bindingTypeQname; - throwException(SystemConfigurationException, message.c_str()); - } - } - - - /// - /// Use the Tuscany.config file in the composite root directory to - /// determine which xsds and wsdls to load into a dataFactory. - /// - void ModelLoader::loadTypeMetadata(const string &compositeRootDir, Composite* composite) - { - logentry(); - - // Load the "Tuscany.config" file, if it exists - Files files(compositeRootDir, "Tuscany.config", false); - if (files.size() !=0) - { - for (unsigned int i=0; i < files.size(); i++) - { - string filename = compositeRootDir + "/" + files[i].getFileName(); - XMLDocumentPtr compositeConfigFile = getXMLHelper()->loadFile(filename.c_str()); - if (compositeConfigFile->getRootDataObject() == 0) - { - logerror("Unable to load file: %s", filename.c_str()); - } - else - { - loginfo("Composite config for: %s, root directory: %s", composite->getName().c_str(), compositeRootDir.c_str()); - - if(compositeConfigFile->getRootDataObject()->isSet("xsd")) - { - DataObjectList& xsds = compositeConfigFile->getRootDataObject()->getList("xsd/file"); - - for (unsigned int i=0; i<xsds.size(); i++) - { - if(xsds[i]->isSet("name")) - { - // Load a xsd file -> set the types in the compositeComponents data factory file - string xsdName = compositeRootDir + "/" +xsds[i]->getCString("name"); - loadXMLSchema(composite, xsdName.c_str()); - } - } - } - - - if( compositeConfigFile->getRootDataObject()->isSet("wsdl")) - { - DataObjectList& wsdls = compositeConfigFile->getRootDataObject()->getList("wsdl/file"); - for (unsigned int j=0; j<wsdls.size(); j++) - { - if(wsdls[i]->isSet("name")) - { - string wsdlName = compositeRootDir + "/" +wsdls[j]->getCString("name"); - // Load a wsdl file -> get the types, then the contents of the wsdl - loadXMLSchema(composite, wsdlName.c_str()); - - // Load the contents of the wsdl files - loadWSDLDefinition(composite, wsdlName.c_str()); - } - } - } - } - } - } - else - { - // The default scheme is to have no Tuscany.config file, then we simply load all - // WSDLs and XSDs that we find under the composite root - - Files xsdFiles(compositeRootDir, "*.xsd", true); - for (unsigned int i=0; i < xsdFiles.size(); i++) - { - // Load a xsd file -> set the types in the compositeComponents data factory file - string xsdName = xsdFiles[i].getDirectory() + "/" + xsdFiles[i].getFileName(); - loadXMLSchema(composite, xsdName.c_str()); - - } - - Files wsdlFiles(compositeRootDir, "*.wsdl", true); - for (unsigned int wi=0; wi < wsdlFiles.size(); wi++) - { - // Load a wsdl file -> get the types, then the contents of the wsdl - string wsdlName = wsdlFiles[wi].getDirectory() + "/" + wsdlFiles[wi].getFileName(); - loadXMLSchema(composite, wsdlName.c_str()); - - // Load the contents of the wsdl files - loadWSDLDefinition(composite, wsdlName.c_str()); - } - } - } - - - /// - /// Use the types from an xsd or wsdl file - /// - void ModelLoader::loadXMLSchema(Composite* composite, const char *fileName) - { - logentry(); - loginfo("Loading XML schema %s", fileName); - // Load a xsd file -> set the types in the data factory associated with - // the composite - try { - composite->getXSDHelper()->defineFile(fileName); - //Utils::printTypes(composite->getXSDHelper()->getDataFactory()); - - } catch (SDORuntimeException& ex) - { - logerror("Unable to load schema: %s", fileName); - throwException(SystemConfigurationException, ex); - } - } - - /// - /// Load the web services definition from a wsdl - /// - void ModelLoader::loadWSDLDefinition(Composite* composite, const char *fileName) - { - logentry(); - - try { - // Load the wsdl file - XMLDocumentPtr doc = getXMLHelper()->loadFile(fileName); - - if (doc!=0 && doc->getRootDataObject()!=0) - { - //Utils::printDO(doc->getRootDataObject()); - - // Add the root WSDL object to the composite - composite->addWSDLDefinition(doc->getRootDataObject()); - - } - else - { - logerror("Unable to load or parse WSDL: %s", fileName); - } - - } catch (SDORuntimeException& ex) - { - logerror("Unable to load or parse WSDL: %s", fileName); - throwException(SystemConfigurationException, ex); - } - } - - ////////////////////////////////////////////////////////////////////////////// - // Methods used to load the model into memory - ////////////////////////////////////////////////////////////////////////////// - - /// - /// Get an XSDHelper that has the appropriate XSDs already loaded - /// - const XSDHelperPtr ModelLoader::getXSDHelper() - { - logentry(); - - if (myXSDHelper == 0) - { - - // Create an xsd helper - myXSDHelper = HelperProvider::getXSDHelper(); - - try { - - // Load the Assembly model schema - string root = runtime->getInstallRoot(); - string filename = root + "/xsd/sca.xsd"; - - myXSDHelper->defineFile(filename.c_str()); - - // Tuscany specific xsd for config files - filename = root + "/xsd/tuscany.xsd"; - myXSDHelper->defineFile(filename.c_str()); - - filename = root + "/xsd/wsdl_11.xsd"; - myXSDHelper->defineFile(filename.c_str()); - - filename = root + "/xsd/wsdl_11_http.xsd"; - myXSDHelper->defineFile(filename.c_str()); - - filename = root + "/xsd/wsdl_11_mime.xsd"; - myXSDHelper->defineFile(filename.c_str()); - - filename = root + "/xsd/wsdl_11_soap.xsd"; - myXSDHelper->defineFile(filename.c_str()); - - filename = root + "/xsd/wsdl_11_soap12.xsd"; - myXSDHelper->defineFile(filename.c_str()); - - // Load any schema from the extensions directory - string extensionsRoot = root + "/extensions"; - - Files files(extensionsRoot, "*.xsd", true); - for (unsigned int i=0; i < files.size(); i++) - { - string extensionSchema = files[i].getDirectory() + "/" + files[i].getFileName(); - myXSDHelper->defineFile(extensionSchema.c_str()); - } - - - } catch (SDORuntimeException& ex) - { - throwException(SystemConfigurationException, ex); - } - } - - return myXSDHelper; - } - - /// - /// Get an XMLHelper to load files - /// - const XMLHelperPtr ModelLoader::getXMLHelper() - { - logentry(); - - if (myXMLHelper == 0) { - - // Create an xml helper - myXMLHelper = HelperProvider::getXMLHelper(getXSDHelper()->getDataFactory()); - - } - - return myXMLHelper; - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ModelLoader.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ModelLoader.h deleted file mode 100644 index b3b3ec2df6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ModelLoader.h +++ /dev/null @@ -1,122 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_modelloader_h -#define tuscany_sca_model_modelloader_h - -#include <map> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ComponentType.h" -#include "tuscany/sca/util/File.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - /** - * Provides methods to load the runtime model from the SCDL file. - */ - class ModelLoader { - - public: - /** - * Constructor. - * @param system The SCA system to load. - */ - ModelLoader(tuscany::sca::SCARuntime* runtime, Composite* system); - - /** - * Destructor. - */ - virtual ~ModelLoader(); - - /** - * Load the model from the configuration information. - * @param systemRoot The location of the system configuration - * @param systemPath The search path for composites - */ - void load(const std::string& systemRoot, const std::string& systemPath); - - private: - void loadSystem(const std::string& systemRoot); - - void loadComposites(const std::string& searchPath); - Composite* loadCompositeFile(const tuscany::sca::util::File& file); - Composite* mapCompositePass1(const tuscany::sca::util::File& file, commonj::sdo::DataObjectPtr rootDO); - Composite* mapCompositePass2(const std::string& compositeName, commonj::sdo::DataObjectPtr rootDO); - - void addComponent(Composite* composite, commonj::sdo::DataObjectPtr componentDO); - void addCompositeService(Composite* composite, commonj::sdo::DataObjectPtr compositeServiceDO); - void addCompositeReference(Composite* composite, commonj::sdo::DataObjectPtr referenceServiceDO); - - void addServiceTypes(Composite* composite, ComponentType* componentType, commonj::sdo::DataObjectPtr componentTypeDO); - void addReferenceTypes(Composite* composite, ComponentType* componentType, commonj::sdo::DataObjectPtr componentTypeDO); - void addPropertyTypes(ComponentType* componentType, commonj::sdo::DataObjectPtr componentTypeDO); - - void loadTypeMetadata(const std::string &compositeRootDir, Composite* composite); - - void loadXMLSchema(Composite* composite, const char *fileName); - void loadWSDLDefinition(Composite* composite, const char *fileName); - - Interface* getInterface(Composite* composite, commonj::sdo::DataObjectPtr obj); - - SCARuntime* runtime; - - commonj::sdo::XMLHelperPtr myXMLHelper; // Used to load scdl files - commonj::sdo::XSDHelperPtr myXSDHelper; // Used to load xsds - - const commonj::sdo::XSDHelperPtr getXSDHelper(void); - const commonj::sdo::XMLHelperPtr getXMLHelper(void); - - /** - * The composite describing the composition of the system - */ - Composite* system; - - /** - * Maps of all the composites installed on the system. - */ - typedef std::map<std::string, Composite*> COMPOSITE_MODELS; - COMPOSITE_MODELS compositeModels; - - typedef std::map<std::string, commonj::sdo::DataObjectPtr> COMPOSITE_DATAOBJECTS; - COMPOSITE_DATAOBJECTS compositeDataObjects; - - typedef std::map<std::string, Composite*> COMPOSITE_FILES; - COMPOSITE_FILES compositeFiles; - - }; - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_modelloader_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Reference.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Reference.cpp deleted file mode 100644 index 8820379c4e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Reference.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - Reference::Reference(Component* component, ReferenceType* referenceType) - : component(component), type(referenceType), binding(0) - { - logentry(); - } - - // Destructor - Reference::~Reference() - { - logentry(); - } - - void Reference::setBinding(ReferenceBinding* binding) - { - this->binding = binding; - } - - ReferenceBinding* Reference::getBinding() const - { - return binding; - } - - void Reference::addTarget(Service* target) - { - logentry(); - - if (type->getMultiplicity() == ReferenceType::ONE_ONE || type->getMultiplicity() == ReferenceType::ZERO_ONE) - { - if (targets.size() > 0) - { - string message = "Duplicate wire for reference: " + type->getName(); - throwException(SystemConfigurationException, message.c_str()); - } - } - - targets.push_back(target); - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Reference.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Reference.h deleted file mode 100644 index 33413b488f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Reference.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_reference_h -#define tuscany_sca_model_reference_h - -#include <vector> - -namespace tuscany -{ - namespace sca - { - namespace model - { - class Component; - class ReferenceType; - class ReferenceBinding; - class Service; - - /** - * An addressable instance of a reference type associated with a particular component. - * Each reference represents a configured version of a logical - * reference type defined in the component type. If the logical reference - * has a multiplicity greater than 1 (0..n or 1..n) then the configured - * reference many have multiple targets. - */ - class Reference - { - public: - /** - * Constructor. - * @param component The component on which the reference is defined. - * @param referenceType The reference type defining the characteristics of the reference. - */ - SCA_API Reference(Component* component, ReferenceType* referenceType); - - /** - * Destructor. - */ - SCA_API virtual ~Reference(); - - /** - * Returns the component on which this reference is defined. - * @return The component on which this reference is defined. - */ - SCA_API Component* getComponent() const { return component; } - - /** - * Returns the reference type defining the characteristics of the reference. - * @return The reference type defining the characteristics of the reference. - */ - SCA_API ReferenceType* getType() const { return type; } - - /** - * Returns the binding supported by the reference. - * @return The binding supported by the reference. - */ - SCA_API ReferenceBinding* getBinding() const; - - /** - * Sets the binding supported by the reference. - * @param binding The binding supported by the reference. - */ - SCA_API void setBinding(ReferenceBinding* binding); - - /** - * Add a target for this reference. There may be more than - * one if the multiplicity is 0..n or 1..n. - * @param target The target of the reference. - */ - SCA_API void addTarget(Service* target); - - typedef std::vector<Service*> TARGETS; - - /** - * Get a vector of all the targets from this reference. - * @return The targets of this reference. - */ - SCA_API const TARGETS& getTargets() const { return targets; } - - private: - - /** - * The component on which this reference is defined. - */ - Component* component; - - /** - * The reference type defining the characteristics of the reference. - */ - ReferenceType* type; - - /** - * The binding supported by this reference - */ - ReferenceBinding* binding; - - /** - * Vector of all the targets wired from this reference. - */ - TARGETS targets; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_reference_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceBinding.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceBinding.cpp deleted file mode 100644 index c4e9d875b6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceBinding.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/ReferenceBinding.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Service.h" - - -using namespace std; - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - ReferenceBinding::ReferenceBinding(Reference *reference, const string& uri) : - Binding(uri), reference(reference), targetServiceBinding(0) - { - logentry(); - } - - // Destructor - ReferenceBinding::~ReferenceBinding() - { - logentry(); - } - - void ReferenceBinding::configure(const string& uri) - { - logentry(); - - // Find the target service - Component* component = reference->getComponent(); - Composite* composite = component->getComposite(); - Service* service; - service = composite->findComponentService(uri); - if (!service) - { - logerror("Wire target %s not found", uri.c_str()); - } - else - { - // Configure this binding from the target service binding - configure(service->getBinding()); - } - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceBinding.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceBinding.h deleted file mode 100644 index 197d40aabf..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceBinding.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_referencebinding_h -#define tuscany_sca_model_referencebinding_h - -#include <string> - -#include "tuscany/sca/model/Binding.h" - -namespace tuscany -{ - namespace sca - { - class ServiceProxy; - - - namespace model - { - class Reference; - class ServiceBinding; - - /** - * Represents a reference binding. - * Bindings are used by services and references. References use bindings - * to describe the access mechanism used to call an external service (which can - * be a service provided by another SCA composite). Services use bindings to describe - * the access mechanism that clients (which can be a client from another SCA composite) - * have to use to call the service. - * This interface will typically be extended by binding implementations to allow - * specification of binding/transport specific information. - */ - class ReferenceBinding : public Binding - { - public: - - /** - * Constructor to create a new binding. - */ - SCA_API ReferenceBinding(Reference* reference, const std::string& uri); - - /** - * Destructor. - */ - SCA_API virtual ~ReferenceBinding(); - - /** - * Create a proxy representing the reference to the - * client component. - */ - SCA_API virtual ServiceProxy* getServiceProxy() = 0; - - /** - * Configure this binding from a service binding. - */ - SCA_API virtual void configure(ServiceBinding* serviceBinding) = 0; - - /** - * Configure this binding from a URI. - */ - SCA_API virtual void configure(const std::string& uri); - - /** - * Returns the reference. - * @return The reference. - */ - SCA_API Reference* getReference() const { return reference; }; - - /** - * Returns the target service binding. - */ - SCA_API ServiceBinding* getTargetServiceBinding() const { return targetServiceBinding; }; - - protected: - - /** - * Sets the target service binding. - */ - SCA_API void setTargetServiceBinding(ServiceBinding* binding) { targetServiceBinding = binding; }; - - private: - - /** - * The reference configured with the binding. - */ - Reference* reference; - - /** - * The service binding of the target - */ - ServiceBinding* targetServiceBinding; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_referencebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceType.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceType.cpp deleted file mode 100644 index 732a14cace..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceType.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/model/ReferenceType.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - ReferenceType::ReferenceType(ComponentType* componentType, const string& name, - Interface* intface, Interface* callbackInterface, Multiplicity multiplicity) - : Contract(intface, callbackInterface), - componentType(componentType), name(name), multiplicity(multiplicity) - { - logentry(); - } - - ReferenceType::~ReferenceType() - { - logentry(); - } - - ReferenceType::Multiplicity ReferenceType::getMultiplicityFromString(const string& multip) - { - logentry(); - - if (multip == "0..1") - { - return ReferenceType::ZERO_ONE; - } - else if (multip == "1..1") - { - return ReferenceType::ONE_ONE; - } - else if (multip == "0..n") - { - return ReferenceType::ZERO_MANY; - } - else if (multip == "1..n") - { - return ReferenceType::ONE_MANY; - } - else - { - return ReferenceType::UNKNOWN; - } - } - - void ReferenceType::setBinding(Binding* binding) - { - this->binding = binding; - } - - Binding* ReferenceType::getBinding() const - { - return binding; - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceType.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceType.h deleted file mode 100644 index 87d38ab330..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ReferenceType.h +++ /dev/null @@ -1,138 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_referencetype_h -#define tuscany_sca_model_referencetype_h - -#include <string> - -#include "tuscany/sca/model/Contract.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - class ComponentType; - class Interface; - class Binding; - - /** - * Represents an SCA reference. SCA references within an implementation represent - * links to services that the implementation uses that must be provided by other components - * in the SCA system. - */ - class ReferenceType : public Contract - { - public: - - /** - * Multiplicity (how many wires can be connected to this - * reference) - */ - enum Multiplicity - { - ZERO_ONE = 1, - ONE_ONE = 2, - ZERO_MANY = 3, - ONE_MANY = 4, - UNKNOWN = 0, - }; - - /** - * Constructor. - * @param name The name of the reference. - */ - SCA_API ReferenceType(ComponentType* componentType, const std::string& name, - Interface* intface, Interface* callbackInterface, Multiplicity multiplicity); - - /** - * Destructor. - */; - SCA_API virtual ~ReferenceType(); - - /** - * Returns the component type on which this reference is defined. - * @return The component type on which this reference is defined. - */ - SCA_API ComponentType* getComponentType() const { return componentType; } - - /** - * Returns the name of the reference. - * @return The name of the reference. - */ - SCA_API const std::string& getName() const { return name; } - - /** - * Returns the multiplicity allowed for wires connected to this reference. - * @return The multiplicity allowed for wires connected to this reference - */ - SCA_API Multiplicity getMultiplicity() const { return multiplicity; } - - /** - * Returns the binding supported by the reference. - * @return The binding supported by the reference. - */ - SCA_API Binding* getBinding() const; - - /** - * Sets the binding supported by the reference. - * @param binding The binding supported by the reference. - */ - SCA_API void setBinding(Binding* binding); - - /** - * Get the multiplicity corresponding to the given - * string. - */ - static Multiplicity getMultiplicityFromString(const std::string& multip); - - private: - - /** - * The component type on which this reference is defined. - */ - ComponentType *componentType; - - /** - * The name of the reference type. - */ - std::string name; - - /** - * The multiplicity allowed for wires connected to this reference. - */ - Multiplicity multiplicity; - - /** - * The binding supported by this reference type. - */ - Binding* binding; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_referencetype_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Service.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Service.cpp deleted file mode 100644 index 4df1d1efc6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Service.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/model/Service.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - Service::Service(Component* component, ServiceType* serviceType) - : component(component), type(serviceType), binding(0) - { - logentry(); - } - - // Destructor - Service::~Service() - { - logentry(); - } - - void Service::setBinding(ServiceBinding* binding) - { - this->binding = binding; - } - - ServiceBinding* Service::getBinding() const - { - return binding; - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Service.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Service.h deleted file mode 100644 index a1f2c5d672..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Service.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_service_h -#define tuscany_sca_model_service_h - - -namespace tuscany -{ - namespace sca - { - namespace model - { - class Component; - class ServiceType; - class ServiceBinding; - - /** - * An addressable instance of a service type associated with a particular component. - */ - class Service - { - public: - /** - * Constructor. - * @param component The component on which the service is defined. - * @param serviceType The service type defining the characteristics of the service. - */ - SCA_API Service(Component* component, ServiceType* serviceType); - - /** - * Destructor. - */ - SCA_API virtual ~Service(); - - /** - * Returns the component on which this service is defined. - * @return The component on which this service is defined. - */ - SCA_API Component* getComponent() const { return component; } - - /** - * Returns the service type defining the characteristics of the service. - * @return The service type defining the characteristics of the service. - */ - SCA_API ServiceType* getType() const { return type; } - - /** - * Returns the binding supported by the service. - * @return The binding supported by the service. - */ - SCA_API ServiceBinding* getBinding() const; - - /** - * Sets the binding supported by the service. - * @param binding The binding supported by the service. - */ - SCA_API void setBinding(ServiceBinding* binding); - - private: - - /** - * The component on which this service is defined. - */ - Component* component; - - /** - * The service type defining the characteristics of the service. - */ - ServiceType* type; - - /** - * The binding supported by this service - */ - ServiceBinding* binding; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_service_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceBinding.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceBinding.cpp deleted file mode 100644 index ddc5e6a711..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceBinding.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/ServiceBinding.h" - -using namespace std; - - -namespace tuscany -{ - namespace sca - { - - namespace model - { - - // Constructor - ServiceBinding::ServiceBinding(Service* service, const string& uri) : - Binding(uri), service(service) - { - logentry(); - } - - // Destructor - ServiceBinding::~ServiceBinding() - { - logentry(); - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceBinding.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceBinding.h deleted file mode 100644 index 4e68f492a3..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceBinding.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_servicebinding_h -#define tuscany_sca_model_servicebinding_h - -#include <string> - -#include "tuscany/sca/model/Binding.h" - - -namespace tuscany -{ - namespace sca - { - class ServiceWrapper; - - namespace model - { - class Service; - - /** - * Represents a service binding. - * Bindings are used by services and references. References use bindings - * to describe the access mechanism used to call an external service (which can - * be a service provided by another SCA composite). Services use bindings to describe - * the access mechanism that clients (which can be a client from another SCA composite) - * have to use to call the service. - * This interface will typically be extended by binding implementations to allow - * specification of binding/transport specific information. - */ - class ServiceBinding : public Binding - { - public: - - /** - * Constructor to create a new binding. - */ - SCA_API ServiceBinding(Service* service, const std::string& uri); - - /** - * Destructor. - */ - SCA_API virtual ~ServiceBinding(); - - /** - * Create a service wrapper handling the interaction - * with the service configured with this binding. - */ - SCA_API virtual ServiceWrapper* getServiceWrapper() = 0; - - /** - * Returns the service - * @return The service. - */ - SCA_API Service* getService() const { return service; }; - - private: - - /** - * The service configured with the binding. - */ - Service* service; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_servicebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceType.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceType.cpp deleted file mode 100644 index 819a832443..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceType.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/ServiceType.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - ServiceType::ServiceType(ComponentType* componentType, const string& name, - Interface* intface, Interface* callbackInterface) - : Contract(intface, callbackInterface), - componentType(componentType), name(name) - { - logentry(); - } - - // Destructor - ServiceType::~ServiceType() - { - logentry(); - } - - void ServiceType::setBinding(Binding* binding) - { - this->binding = binding; - } - - Binding* ServiceType::getBinding() const - { - return binding; - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceType.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceType.h deleted file mode 100644 index 08a76e3b3f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/ServiceType.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_servicetype_h -#define tuscany_sca_model_servicetype_h - -#include <string> - -#include "tuscany/sca/model/Contract.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - class ComponentType; - class Binding; - class Interface; - - /** - * Represents a service type. Services are used to publish services provided by - * implementations, so that they are addressable by other components. - */ - class ServiceType : public Contract - { - public: - - /** - * Constructor. - * @param componentType The component type on which this service is defined. - * @param name The name of the service. - */ - SCA_API ServiceType(ComponentType* componentType, const std::string& name, - Interface* intface, Interface* callbackInterface); - - /** - * Destructor. - */ - SCA_API virtual ~ServiceType(); - - /** - * Returns the component type on which this service is defined. - * @return The component type on which this service is defined. - */ - SCA_API ComponentType* getComponentType() const { return componentType; } - - /** - * Returns the name of the service type. - * @return The name of the service type - */ - SCA_API const std::string& getName() const { return name; } - - /** - * Returns the binding supported by this service type. - * @return The binding supported by this service type - */ - SCA_API Binding* getBinding() const; - - /** - * Sets the binding supported by this service type. - * @param binding the binding supported by this service type - */ - SCA_API void setBinding(Binding* binding); - - private: - - /** - * The component type on which this service is defined. - */ - ComponentType* componentType; - - /** - * The name of the service type. - */ - std::string name; - - /** - * The binding supported by this service - */ - Binding* binding; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_servicetype_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLDefinition.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLDefinition.cpp deleted file mode 100644 index 53971b5a17..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLDefinition.cpp +++ /dev/null @@ -1,633 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <sstream> -#include <set> - -#include "tuscany/sca/model/WSDLDefinition.h" -#include "tuscany/sca/model/WSDLOperation.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/Exceptions.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - WSDLDefinition::WSDLDefinition(DataObjectPtr wsdlModel) - { - logentry(); - - wsdlModels.insert(wsdlModels.end(), wsdlModel); - mapOperations( wsdlModel ); - } - - WSDLDefinition::~WSDLDefinition() - { - logentry(); - } - - /// - /// The namespace of the service and other definitions defined in this wsdl definition - string WSDLDefinition::getNamespace() - { - logentry(); - return wsdlModels[0]->getCString("targetNamespace"); - } - - void WSDLDefinition::addWSDLModel(DataObjectPtr wsdlModel) - { - logentry(); - wsdlModels.insert(wsdlModels.end(), wsdlModel); - mapOperations( wsdlModel ); - } - - /// - /// Find the operation defined in this wsdl - /// - const WSDLOperation& WSDLDefinition::findOperation(const string& serviceName, - const string& portName, - const string& operationName) - { - logentry(); - - string operationKey = serviceName+"#"+portName; - STR_OPERATION_MAP::const_iterator spIter = servicePortMap.find(operationKey); - if( spIter == servicePortMap.end() ) - { - stringstream errMessage; - errMessage - << "Unable to find Service and Port: \"" - << serviceName << "," << portName - << "\" in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - - OPERATION_MAP::const_iterator opIter = spIter->second.find(operationName); - - if (opIter != spIter->second.end()) - { - return opIter->second; - } - else - { - stringstream errMessage; - errMessage - << "Unable to find operation \"" - << serviceName << ":" << portName << ":" << operationName - << "\" in the WSDL definition"; - - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - } - - /// - /// Find the operation defined in this wsdl - /// - const WSDLOperation& WSDLDefinition::findOperation(const string& portTypeName, - const string& operationName) - { - logentry(); - - STR_OPERATION_MAP::const_iterator ptIter = portTypeMap.find(portTypeName); - if( ptIter == portTypeMap.end() ) - { - stringstream errMessage; - errMessage - << "Unable to find PortType: \"" - << portTypeName - << "\" in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - - OPERATION_MAP::const_iterator opIter = ptIter->second.find(operationName); - - if (opIter != ptIter->second.end()) - { - return opIter->second; - } - else - { - stringstream errMessage; - errMessage - << "Unable to find Operation \"" - << portTypeName << ":" << operationName - << "\" in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - } - - std::list<std::string> WSDLDefinition::getPortTypes() - { - logentry(); - - std::list<std::string> ptList; - STR_OPERATION_MAP::const_iterator ptIter = portTypeMap.begin(); - STR_OPERATION_MAP::const_iterator ptIterEnd = portTypeMap.end(); - - for( ; ptIter != ptIterEnd; ++ptIter ) - { - ptList.push_back( ptIter->first ); - } - - return ptList; - } - - std::list<std::string> WSDLDefinition::getOperations( const std::string &portTypeName ) - { - logentry(); - - std::list<std::string> ptOpList; - STR_OPERATION_MAP::const_iterator ptIter = portTypeMap.find( portTypeName ); - - if( ptIter == portTypeMap.end() ) - { - stringstream errMessage; - errMessage - << "Unable to find PortType: \"" - << portTypeName - << "\" in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - - OPERATION_MAP::const_iterator opIter = ptIter->second.begin(); - OPERATION_MAP::const_iterator opIterEnd = ptIter->second.end(); - - for( ; opIter != opIterEnd; ++opIter ) - { - ptOpList.push_back( opIter->first ); - } - - return ptOpList; - } - - /// - /// Find a service - /// - DataObjectPtr WSDLDefinition::findService(const string& serviceName) - { - logentry(); - - DataObjectPtr service = 0; - - // Find the binding - for (unsigned int m = 0; m < wsdlModels.size(); m++) - { - DataObjectList& serviceList = wsdlModels[m]->getList("service"); - for (unsigned int i=0; i<serviceList.size(); i++) - { - string name(serviceList[i]->getCString("name")); - - if (name.compare(serviceName) == 0) - { - return serviceList[i]; - } - } - } - - return service; - } - - - /// - /// Find a named binding - /// - DataObjectPtr WSDLDefinition::findBinding(const string& bindingName) - { - logentry(); - - DataObjectPtr binding = 0; - string uri; - string name; - - Utils::rTokeniseString("#", bindingName, uri, name); - - // Find the binding - for (unsigned int m = 0; m < wsdlModels.size(); m++) - { - DataObjectList& bindingList = wsdlModels[m]->getList("binding"); - for (unsigned int i=0; i<bindingList.size(); i++) - { - string nameBinding(bindingList[i]->getCString("name")); - - if (nameBinding.compare(name) == 0) - { - return bindingList[i]; - } - } - } - - return binding; - } - - /// - /// Find a named portType - /// - DataObjectPtr WSDLDefinition::findPortType(const string& portTypeName) - { - logentry(); - - DataObjectPtr portType = 0; - string uri; - string name; - - Utils::rTokeniseString("#", portTypeName, uri, name); - - // Find the binding - for (unsigned int m = 0; m < wsdlModels.size(); m++) - { - DataObjectList& portTypeList = wsdlModels[m]->getList("portType"); - for (unsigned int i=0; i<portTypeList.size(); i++) - { - string namePortType(portTypeList[i]->getCString("name")); - - if (namePortType.compare(name) == 0) - { - return portTypeList[i]; - } - } - } - - return portType; - } - - /// - /// Find a named message - /// - DataObjectPtr WSDLDefinition::findMessage(const string& messageName) - { - logentry(); - - DataObjectPtr message = 0; - string uri; - string name; - - Utils::rTokeniseString("#", messageName, uri, name); - - // Find the binding - for (unsigned int m = 0; m < wsdlModels.size(); m++) - { - DataObjectList& messageList = wsdlModels[m]->getList("message"); - for (unsigned int i=0; i<messageList.size(); i++) - { - string nameMessage(messageList[i]->getCString("name")); - - if (nameMessage.compare(name) == 0) - { - return messageList[i]; - } - } - } - - return message; - } - - /// - /// Traverse the WSDL SDO and insert operations into the operationMap - /// - void WSDLDefinition::mapOperations( DataObjectPtr wsdlModel ) - { - logentry(); - - // check for duplicate message/binding/PortType/Service - // with equal name attributes. This cant be enforced by - // the schema, so it has to be enforced at the app level - checkForDuplicates( wsdlModel ); - - DataObjectList& serviceList = wsdlModel->getList("service"); - - // Iterate through the WSDL services - for (unsigned int i=0; i < serviceList.size(); i++) - { - string serviceName( serviceList[i]->getCString("name") ); - - // Iterate through the WSDL service ports - DataObjectList& portList = serviceList[i]->getList("port"); - for (unsigned int j=0; j < portList.size();j++) - { - string portName( portList[j]->getCString("name") ); - string wsBindingName(portList[j]->getCString("binding")); - - // There can only be one soap address and the check must be made - // at the application level since it cant be specified in the xsd -/* - DataObjectList& soapAddressList = portList[j]->getList("address"); - if( soapAddressList.size() != 1 ) - { - // Invalid WSDL - stringstream errMessage; - errMessage - << "service/port/address: \"" - << portName - << "\" cannot be duplicated in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } -*/ - - string targetAddress(portList[j]->getCString("address/location")); - - // get the binding specified in the WSDL service port - DataObjectPtr wsBinding = findBinding(wsBindingName); - if (!wsBinding) - { - // Invalid WSDL - stringstream errMessage; - errMessage - << "Unable to find binding \"" - << wsBindingName - << "\" in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - - // Check if its a SOAP binding, if not go on to the next binding - // doing a find like this will work for SOAP11 and SOAP12 - DataObjectPtr wsBindingSubBinding = wsBinding->getDataObject("binding"); - string bindingURI(wsBindingSubBinding->getType().getURI()); - if (bindingURI.find("http://schemas.xmlsoap.org/wsdl/soap") == string::npos) - { - loginfo("Discarding non-SOAP Binding %s", wsBindingName.c_str() ); - continue; - } - - // Get the port type specified the WSDL binding - string wsBindingPortTypeName(wsBinding->getCString("type")); - DataObjectPtr portType = findPortType(wsBindingPortTypeName); - if (!portType) - { - // Invalid WSDL - stringstream errMessage; - errMessage - << "Unable to find PortType \"" - << wsBindingPortTypeName - << "\" in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - string portTypeName( portType->getCString("name") ); - - // Fill in this map with operation names to WSDLOperations - // then after iterating through the operations, add the map - // to the portTypeMap, keyed off of the portTypeName - OPERATION_MAP operationMap; - - // For each binding and portType operation: - // - get the soap action, style, and use from the binding - // - get the input and/or output message types - // its ok if not all of the PortType operations are not defined in the binding - DataObjectList& bindingOperationList = wsBinding->getList("operation"); - DataObjectList& portTypeOperationList = portType->getList("operation"); - for (unsigned int k=0; k < bindingOperationList.size(); k++) - { - DataObjectPtr bindingOp = bindingOperationList[k]; - string operationName = bindingOp->getCString("name"); - - // Get the corresponding PortType operation - // I know this may not be very efficient, but its a necessary evil - bool foundPortType = false; - DataObjectPtr portTypeOp; - for (unsigned int l=0; - (!foundPortType && l < portTypeOperationList.size()); - l++) - { - //portTypeOp = portTypeOperationList[l]->getDataObject("operation"); - portTypeOp = portTypeOperationList[l]; - if (operationName == portTypeOp->getCString("name") ) - { - foundPortType = true; - } - } - - if( !foundPortType ) - { - // Invalid WSDL - stringstream errMessage; - errMessage - << "Unable to find PortType operation for binding operation: \"" - << operationName - << "\" in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - - string soapAction = ""; - bool documentStyle = true; - bool wrappedStyle = true; - bool useEncodedInput = false; - bool useEncodedOutput = false; - WSDLOperation::soapVersion soapVer = WSDLOperation::SOAP11; - - string opType = bindingOp->getType().getURI(); - if (opType == "http://schemas.xmlsoap.org/wsdl/soap12/") - { - soapVer = WSDLOperation::SOAP12; - } - - // Get the soapAction - soapAction = bindingOp->getCString("operation/soapAction"); - - // Get the style - string style = bindingOp->getCString("operation/style"); - if (style == "") - { - style = wsBinding->getCString("binding/style"); - } - if (style != "document") - { - documentStyle = false; - wrappedStyle = false; - } - - // get the use - string use = bindingOp->getCString("input/body/use"); - if (use == "encoded") - { - useEncodedInput = true; - } - - use = bindingOp->getCString("output/body/use"); - if (use == "encoded") - { - useEncodedOutput = true; - } - - // Get the request message type from the PortType - DataObjectPtr wsMessageIn = - findMessage(portTypeOp->getCString("input/message")); - if (!wsMessageIn) - { - stringstream errMessage; - errMessage - << "unable to find PortType input message \"" - << portTypeOp->getCString("input/message") - << "\" in the wsdl definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - string inputMessageType( wsMessageIn->getCString("name") ); - // If it doesnt have a namespace prefix, add the target namespace - if (inputMessageType.find("#") == string::npos) - { - inputMessageType.insert(0, (getNamespace() + "#") ); - } - - // Get the response message type from the PortType - DataObjectPtr wsMessageOut = - findMessage(portTypeOp->getCString("output/message")); - if (!wsMessageOut) - { - // TODO this is ok for one way operations, right? - stringstream errMessage; - errMessage - << "unable to find PortType output message \"" - << portTypeOp->getCString("output/message") - << "\" in the wsdl definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - string outputMessageType( wsMessageOut->getCString("name") ); - // If it doesnt have a namespace prefix, add the target namespace - if (outputMessageType.find("#") == string::npos) - { - outputMessageType.insert(0, (getNamespace() + "#") ); - } - - WSDLOperation wsdlOp; - wsdlOp.setOperationName(operationName); - wsdlOp.setSoapAction(soapAction); - wsdlOp.setEndpoint(targetAddress); - wsdlOp.setSoapVersion(soapVer); - wsdlOp.setDocumentStyle(documentStyle); - wsdlOp.setWrappedStyle(wrappedStyle); - wsdlOp.setInputEncoded(useEncodedInput); - wsdlOp.setOutputEncoded(useEncodedOutput); - wsdlOp.setInputMessageType(inputMessageType); - wsdlOp.setOutputMessageType(outputMessageType); - wsdlOp.setInputMessage(wsMessageIn); - wsdlOp.setOutputMessage(wsMessageOut); - - operationMap[ operationName ] = wsdlOp; - - } // end bindingOperationList - - portTypeMap[portTypeName] = operationMap; - servicePortMap[(serviceName+"#"+portName)] = operationMap; - - } // end portTypeList - } // end serviceList - } // end method mapOperations - - void WSDLDefinition::checkForDuplicates( DataObjectPtr wsdlModel ) - { - logentry(); - - // check for duplicate message/binding/PortType/service - // with equal name attributes. This cant be enforced by - // the schema, so it has to be enforced at the app level - - std::set<string> namesSet; - - DataObjectList &messageList = wsdlModel->getList("message"); - for( unsigned int i = 0; i < messageList.size(); i++ ) - { - if( namesSet.find( messageList[i]->getCString("name") ) == namesSet.end() ) - { - namesSet.insert( messageList[i]->getCString("name") ); - } - else - { - // Invalid WSDL - stringstream errMessage; - errMessage - << "message/name: \"" - << messageList[i]->getCString("name") - << "\" cannot be duplicated in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - } - - namesSet.clear(); - DataObjectList &bindingList = wsdlModel->getList("binding"); - for( unsigned int i = 0; i < bindingList.size(); i++ ) - { - if( namesSet.find( bindingList[i]->getCString("name") ) == namesSet.end() ) - { - namesSet.insert( bindingList[i]->getCString("name") ); - } - else - { - // Invalid WSDL - stringstream errMessage; - errMessage - << "binding/name: \"" - << bindingList[i]->getCString("name") - << "\" cannot be duplicated in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - } - - namesSet.clear(); - DataObjectList &portTypeList = wsdlModel->getList("portType"); - for( unsigned int i = 0; i < portTypeList.size(); i++ ) - { - if( namesSet.find( portTypeList[i]->getCString("name") ) == namesSet.end() ) - { - namesSet.insert( portTypeList[i]->getCString("name") ); - } - else - { - // Invalid WSDL - stringstream errMessage; - errMessage - << "portType/name: \"" - << portTypeList[i]->getCString("name") - << "\" cannot be duplicated in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - } - - namesSet.clear(); - DataObjectList &serviceList = wsdlModel->getList("service"); - for( unsigned int i = 0; i < serviceList.size(); i++ ) - { - if( namesSet.find( serviceList[i]->getCString("name") ) == namesSet.end() ) - { - namesSet.insert( serviceList[i]->getCString("name") ); - } - else - { - // Invalid WSDL - stringstream errMessage; - errMessage - << "service/name: \"" - << serviceList[i]->getCString("name") - << "\" cannot be duplicated in the WSDL definition"; - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - } - } - - } // end namespace model - } // end namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLDefinition.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLDefinition.h deleted file mode 100644 index baf14fcd6d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLDefinition.h +++ /dev/null @@ -1,180 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_wsdldefinition_h -#define tuscany_sca_model_wsdldefinition_h - -#include <string> -#include <map> -#include <vector> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" -#include "tuscany/sca/model/WSDLOperation.h" - - -namespace tuscany -{ - namespace sca - { - namespace model - { - - class WSDLOperation; - - /** - * Holds information about a WSDL definition loaded into the runtime. - */ - class WSDLDefinition - { - public: - /** - * Constructor. - * @param wsdlModel The data object representing the WSDL document - * defining a web service. - */ - SCA_API WSDLDefinition(commonj::sdo::DataObjectPtr wsdlModel); - - /** - * Destructor. - */ - SCA_API virtual ~WSDLDefinition(); - - /** - * Returns the target namespace of the WSDL definitions. - * @return The target namespace. - */ - SCA_API std::string getNamespace(void); - - /** - * Add a WSDL model. - */ - SCA_API void addWSDLModel(commonj::sdo::DataObjectPtr wsdlModel); - - /** - * Find an operation in the WSDL definitions. - * @param serviceName The name of the service on which this - * operation is defined. - * @param portName The name of the port in the service to - * use. - * @param operationName The name of the operation to find. - * @return The operation if found. Exception thrown if not found. - */ - SCA_API const WSDLOperation& findOperation(const std::string& serviceName, - const std::string& portName, - const std::string& operationName); - - /** - * Find an operation in the WSDL definitions. - * @param portTypeName The name of the portType on which this - * operation is defined. - * @param operationName The name of the operation to find. - * @return The operation if found. Exception thrown if not found. - */ - SCA_API const WSDLOperation& findOperation(const std::string& portTypeName, - const std::string& operationName); - - /** - * Get all of the PortTypes in this WSDL definition. - * @return A standard list of standard strings, each being a different PortType - */ - SCA_API std::list<std::string> getPortTypes(); - - /** - * Get all of the Operations for a particular PortType in this WSDL definition. - * @param portTypeName Get all of the operations for this portTypeName - * @return A standard list of standard strings, each of which is a different operation - */ - SCA_API std::list<std::string> getOperations( const std::string &portTypeName ); - - private: - - /** - * Find a service in the wsdl definition. - * @param serviceName The name of the service. - * @return A data object describing the service if found, otherwise - * a 0 if not found. - */ - commonj::sdo::DataObjectPtr findService(const std::string& serviceName); - - /** - * Find a binding in the wsdl definition. - * @param bindingName The name of the binding to find. - * @return A data object describing the binding if found, otherwise - * a 0 if not found. - */ - commonj::sdo::DataObjectPtr findBinding(const std::string& bindingName); - - /** - * Find a portType in the wsdl definition. - * @param portTypeName The name of the portType. - * @return A data object describing the portType if found, otherwise - * a 0 if not found. - */ - commonj::sdo::DataObjectPtr findPortType(const std::string& portTypeName); - - /** - * Find a message in the wsdl definition. - * @param messageName The name of the message. - * @return A data object describing the message if found, otherwise - * a 0 if not found. - */ - commonj::sdo::DataObjectPtr findMessage(const std::string& messageName); - - /** - * Given a wsdl represented by an SDO, traverse the SDO and - * extract all of the necessary information to populate the - * operationMap with WSDLOperation objects. - * This method is called each time a wsdl model is added: so - * that would be be in the constructor and in addWSDLModel(). - * @param wsdlModel A wsdl represented by an SDO - */ - void mapOperations( commonj::sdo::DataObjectPtr wsdlModel ); - - /** - * Given a wsdl represented by an SDO, check for duplicate - * message/binding/PortType/service with equal name attributes. - * This cant be enforced by the schema, so it has to be enforced - * at the app level. If a duplicate is found, a - * SystemConfigurationException exception is thrown. - * @param wsdlModel A wsdl represented by an SDO - */ - void checkForDuplicates( commonj::sdo::DataObjectPtr wsdlModel ); - - /** - * The data object representation of the WSDL document. - */ - typedef std::vector<commonj::sdo::DataObjectPtr> MODEL_VECTOR; - MODEL_VECTOR wsdlModels; - - typedef std::map<std::string, WSDLOperation> OPERATION_MAP; - typedef std::map<std::string, OPERATION_MAP> STR_OPERATION_MAP; - STR_OPERATION_MAP portTypeMap; - STR_OPERATION_MAP servicePortMap; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wsdldefinition_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLInterface.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLInterface.cpp deleted file mode 100644 index 5fa45a9967..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLInterface.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/WSDLInterface.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - const string WSDLInterface::typeQName("http://www.osoa.org/xmlns/sca/1.0#WSDLPortType"); - - // Constructor - WSDLInterface::WSDLInterface( - const string& qname, bool remotable, bool conversational) - : Interface(remotable, conversational) - { - logentry(); - parse(qname); - } - - void WSDLInterface::parse(const string& qname) - { - logentry(); - - // PortType is of the form: <wsdl-namepace-uri>#wsdl.interface(<portType-name>) - string::size_type hash = qname.find("#"); - if (hash != string::npos) - { - // Found a hash - - // Namepace is the part before the # - namespaceURI = qname.substr(0, hash); - - if ( (hash+1) < qname.length()) - { - // Check the next part is wsdl.interface( - int ending = hash+16; - string check = qname.substr(hash+1, 15); - if (check.compare("wsdl.interface(") == 0) - { - // Find the matching ) - int endBracket = qname.find(")",ending); - if (endBracket-1 > ending+1) - { - name = qname.substr(ending, endBracket-ending); - } - else - { - // Nothing between the () - name = ""; - } - } - else - { - // not the correct characters after the #, ignore the rest - name = ""; - } - - } - else - { - // Nothing after the hash - name = ""; - } - } - else - { - // No hash at all - namespaceURI = qname; - name = ""; - } - } - - - WSDLInterface::~WSDLInterface() - { - logentry(); - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLInterface.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLInterface.h deleted file mode 100644 index b071dd221e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLInterface.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_wsdlinterface_h -#define tuscany_sca_model_wsdlinterface_h - -#include <string> - -#include "tuscany/sca/model/Interface.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Holds information about an interface described using a WSDL - * port type. - */ - class WSDLInterface : public Interface - { - - public: - /** - * Constuctor. - * @param interfaceName Name of the WSDL interface. - */ - WSDLInterface(const std::string& qname, bool remotable, bool conversational); - - /** - * Destructor. - */ - virtual ~WSDLInterface(); - - /** - * Returns the WSDL namespace - */ - std::string getNamespaceURI() const { return namespaceURI; } - - /** - * Returns the interface name - */ - std::string getName() const { return name; } - - /** - * return the QName of the schema type for this interface type - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#interface.cpp") - */ - virtual const std::string& getInterfaceTypeQName() { return typeQName; }; - - /** - * The QName of the schema type for this interface type. - */ - SCA_API static const std::string typeQName; - - private: - - /** - * Parse the WSDL qname - */ - void parse(const std::string& qname); - - /** - * WSDL namespace. - */ - std::string namespaceURI; - - /** - * Name of the WSDL interface. - */ - std::string name; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_wsdlinterface_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLMessagePart.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLMessagePart.cpp deleted file mode 100644 index 957d7ab3c1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLMessagePart.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <string> - -#include "tuscany/sca/model/WSDLMessagePart.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Default Constructor - WSDLMessagePart::WSDLMessagePart() - { - logentry(); - } - - // Constructor - WSDLMessagePart::WSDLMessagePart(std::string partName, - std::string partType, - std::string partUri) : - partName_(partName), - partType_(partType), - partUri_(partUri) - { - logentry(); - } - - WSDLMessagePart::~WSDLMessagePart() - { - logentry(); - } - - - void WSDLMessagePart::setMessagePartType(const string& inputType) - { - logentry(); - Utils::tokeniseQName(inputType, partUri_, partName_); - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLMessagePart.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLMessagePart.h deleted file mode 100644 index 2c381011ba..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLMessagePart.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_wsdlmessagepart_h -#define tuscany_sca_model_wsdlmessagepart_h - -#include <map> -#include <list> -#include <string> - -#include "tuscany/sca/export.h" - -namespace tuscany -{ - namespace sca - { - namespace model - { - - /** - * Represents a single WSDL defined message part. - */ - class WSDLMessagePart - { - public: - /** - * Default Constructor - */ - SCA_API WSDLMessagePart(); - - /** - * Constructor. - * @param partName The name of the message part. - * @param partType The type of this message part. - * @param partUri The namespace URI for the message part type. - */ - SCA_API WSDLMessagePart( std::string partName, - std::string partType, - std::string partUri ); - - /** - * Destructor. - */ - SCA_API ~WSDLMessagePart(); - - /** - * Return the name of the WSDL Message part - * @return The name of the WSDL Message part - */ - SCA_API const std::string& getPartName() const {return partName_;} - SCA_API void setPartName(const std::string& partName) {partName_ = partName;} - - /** - * The type of this WSDL Message part - * @return The type of this WSDL Message part - */ - SCA_API const std::string& getPartType() const {return partType_;} - SCA_API void setPartType(const std::string& partType) {partType_ = partType;} - - /** - * Set the WSDL message part type and namespace URI - * @return A prefixed namespace and type of the form prefix:type - */ - SCA_API void setMessagePartType(const std::string& partType); - - /** - * Return the namespace URI of the WSDL Message part - * @return The namespace URI of the WSDL Message part - */ - SCA_API const std::string& getPartUri() const {return partUri_;} - SCA_API void setPartUri(const std::string& partUri) {partUri_ = partUri;} - - private: - /** - * The name of this message part - */ - std::string partName_; - - /** - * The type of this message part - */ - std::string partType_; - - /** - * The namespace URI of the message part type - */ - std::string partUri_; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wsdlmessagepart_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLOperation.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLOperation.cpp deleted file mode 100644 index a61d122a72..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLOperation.cpp +++ /dev/null @@ -1,193 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <map> -#include <list> -#include <string> -#include <sstream> - -#include "tuscany/sca/model/WSDLOperation.h" -#include "tuscany/sca/model/WSDLMessagePart.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/Exceptions.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - - // Constructor - WSDLOperation::WSDLOperation() - { - logentry(); - } - - WSDLOperation::~WSDLOperation() - { - logentry(); - } - - - void WSDLOperation::setInputMessageType(const string& inputType) - { - logentry(); - Utils::tokeniseQName(inputType, inputMessageUri, inputMessageName); - } - - void WSDLOperation::setOutputMessageType(const string& outputType) - { - logentry(); - Utils::tokeniseQName(outputType, outputMessageUri, outputMessageName); - } - - void WSDLOperation::setInputMessage( commonj::sdo::DataObjectPtr inputMsg ) - { - logentry(); - - DataObjectList &partList = inputMsg->getList("part"); - for( unsigned int i=0; i < partList.size(); i++) - { - string partUri; - string partType; - string partName = partList[0]->getCString("name"); - - Utils::tokeniseQName(partList[0]->getCString("element"), partUri, partType); - WSDLMessagePart part(partName, partType, partUri); - - inputPartMap[partName] = part; - } - } - - void WSDLOperation::setOutputMessage( commonj::sdo::DataObjectPtr outputMsg ) - { - logentry(); - - DataObjectList &partList = outputMsg->getList("part"); - for( unsigned int i=0; i < partList.size(); i++) - { - string partUri; - string partType; - string partName = partList[0]->getCString("name"); - - Utils::tokeniseQName(partList[0]->getCString("element"), partUri, partType); - WSDLMessagePart part(partName, partType, partUri); - - outputPartMap[partName] = part; - } - } - - const std::list<std::string> WSDLOperation::getInputMessagePartNames() const - { - logentry(); - - std::list<std::string> inputPartNames; - - PART_MAP::const_iterator iter = inputPartMap.begin(); - PART_MAP::const_iterator iterEnd = inputPartMap.end(); - - for( ; iter != iterEnd; ++iter ) - { - inputPartNames.push_back( iter->first ); - } - - return inputPartNames; - } - - const std::list<std::string> WSDLOperation::getOutputMessagePartNames() const - { - logentry(); - - std::list<std::string> outputPartNames; - - PART_MAP::const_iterator iter = outputPartMap.begin(); - PART_MAP::const_iterator iterEnd = outputPartMap.end(); - - for( ; iter != iterEnd; ++iter ) - { - outputPartNames.push_back( iter->first ); - } - - return outputPartNames; - } - - const WSDLMessagePart& - WSDLOperation::getInputMessagePart( const std::string &name ) const - { - logentry(); - - PART_MAP::const_iterator iter = inputPartMap.find( name ); - if( iter == inputPartMap.end() ) - { - stringstream errMessage; - errMessage - << "Unable to find input WSDLMessagePart for partName: " << name; - - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - - return iter->second; - } - - const WSDLMessagePart& - WSDLOperation::getOutputMessagePart( const std::string &name ) const - { - logentry(); - - PART_MAP::const_iterator iter = outputPartMap.find( name ); - if( iter == outputPartMap.end() ) - { - stringstream errMessage; - errMessage - << "Unable to find output WSDLMessagePart for partName: " << name; - - throwException(SystemConfigurationException, errMessage.str().c_str()); - } - - return iter->second; - } - - void WSDLOperation::setInputMessagePart( const std::string &partName, - WSDLMessagePart part ) - { - logentry(); - - inputPartMap[partName] = part; - } - - void WSDLOperation::setOutputMessagePart( const std::string &partName, - WSDLMessagePart part ) - { - logentry(); - - outputPartMap[partName] = part; - } - - } // End namespace model - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLOperation.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLOperation.h deleted file mode 100644 index 48d848170a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/WSDLOperation.h +++ /dev/null @@ -1,196 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_wsdloperation_h -#define tuscany_sca_model_wsdloperation_h - -#include <map> -#include <list> -#include <string> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" -#include "tuscany/sca/model/WSDLMessagePart.h" - - -namespace tuscany -{ - namespace sca - { - namespace model - { - - /** - * Represents a single.,bound WSDL defined operation. - * This class includes information from the soapBinding - * in addition to the WSDL definition of the operation. - */ - class WSDLOperation - { - public: - /** - * Constructor. - */ - SCA_API WSDLOperation(); - - /** - * Destructor. - */ - SCA_API virtual ~WSDLOperation(); - - /** - * Return the name of the operation for use when serializing an - * outgoing message. - * @return The name of the element in the request message. - */ - SCA_API const std::string& getOperationName() const {return operationName;} - SCA_API void setOperationName(const std::string& opName) {operationName = opName;} - - /** - * The soap action string for this operation. - * @return The soap action. - */ - SCA_API const std::string& getSoapAction() const {return soapAction;} - SCA_API void setSoapAction(const std::string& soapAct) {soapAction = soapAct;} - - /** - * Return the endpoint address for the target web service. - * @return The endpoint address. - */ - SCA_API const std::string& getEndpoint() const {return endpoint;} - SCA_API void setEndpoint(const std::string& ep) {endpoint = ep;} - - enum soapVersion - { - SOAP11, - SOAP12 - }; - - SCA_API void setSoapVersion(soapVersion ver) {soapVer = ver;} - SCA_API soapVersion getSoapVersion() const {return soapVer;} - - SCA_API void setDocumentStyle(bool docStyle) {documentStyle = docStyle;} - SCA_API bool isDocumentStyle() const {return documentStyle;} - - SCA_API void setWrappedStyle(bool wrapStyle) {wrappedStyle = wrapStyle;} - SCA_API bool isWrappedStyle() const {return wrappedStyle;} - - SCA_API void setInputEncoded(bool enc) {inputEncoded = enc;} - SCA_API bool isInputEncoded() const {return inputEncoded;} - - SCA_API void setOutputEncoded(bool enc) {outputEncoded = enc;} - SCA_API bool isOutputEncoded() const {return outputEncoded;} - - /** - * Input Message URI and Name. To get the message part URI and name, you - * will have to get the WSDLMessagePart by calling getInputMessagePart() - */ - SCA_API void setInputMessageType(const std::string& inputMessageType); - SCA_API const std::string& getInputMessageUri() const {return inputMessageUri;} - SCA_API const std::string& getInputMessageName() const {return inputMessageName;} - - /** - * Output Message URI and Name. To get the message part URI and name, you - * will have to get the WSDLMessagePart by calling getOutputMessagePart() - */ - SCA_API void setOutputMessageType(const std::string& outputMessageType); - SCA_API const std::string& getOutputMessageUri() const {return outputMessageUri;} - SCA_API const std::string& getOutputMessageName() const {return outputMessageName;} - - // TODO We should add an enum for REQUEST_ONLY, RESPONSE_ONLY, REQUEST_RESPONSE - // and a setter/getter. The enum would be checked by getOutputXXX - - /** - * Parse a WSDL message represented by an SDO into the input/outputPartMap - * @param inputMsg a data object which contains the WSDL message - * ie. <wsdl:message name="getAccountReportResponse"> - * <wsdl:part element="tns:getAccountReportResponse" - * name="getAccountReportResponse" /> - * </wsdl:message> - */ - SCA_API void setInputMessage( commonj::sdo::DataObjectPtr inputMsg ); - SCA_API void setOutputMessage( commonj::sdo::DataObjectPtr outputMsg ); - - /** - * Manually set the input/outputPartMap, as opposed to passing in an SDO WSDL message. - * Populates the input/outputPartMap, setInput/OutputMessageType must still be called. - * @param partName the name of the message part - * @param part the message part - */ - SCA_API void setInputMessagePart( const std::string &partName, WSDLMessagePart part ); - SCA_API void setOutputMessagePart( const std::string &partName, WSDLMessagePart part ); - - /** - * Return a message part keyed off of the message part name - * @param name the message part name - * @return the message part in a WSDLMessagePart object - */ - SCA_API const WSDLMessagePart &getInputMessagePart( const std::string &name ) const; - SCA_API const WSDLMessagePart &getOutputMessagePart( const std::string &name ) const; - - /** - * Get all of the message part names - * @return a list of strings, each being a different message part name - */ - SCA_API const std::list<std::string> getInputMessagePartNames() const; - SCA_API const std::list<std::string> getOutputMessagePartNames() const; - - private: - /** - * The name of the operation for use when serializing an - * outgoing message. - */ - std::string operationName; - - /** - * The soap action string for this operation. - */ - std::string soapAction; - - /** - * The endpoint address of the target web service. - */ - std::string endpoint; - - bool documentStyle; - bool wrappedStyle; - bool inputEncoded; - bool outputEncoded; - soapVersion soapVer; - - std::string inputMessageUri; - std::string inputMessageName; - - std::string outputMessageUri; - std::string outputMessageName; - - typedef std::map<std::string, WSDLMessagePart> PART_MAP; - PART_MAP inputPartMap; - PART_MAP outputPartMap; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wsdloperation_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Wire.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Wire.cpp deleted file mode 100644 index 03f475af09..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Wire.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Wire.h" - -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace model - { - - // Constructor - Wire::Wire(const std::string& source, const std::string& targ) - { - logentry(); - - Utils::tokeniseUri(source, sourceComponent, sourceReference); - target = targ; - } - - Wire::~Wire() - { - logentry(); - } - - } // End namespace model - - - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Wire.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Wire.h deleted file mode 100644 index ab136e9109..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/model/Wire.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_model_wire_h -#define tuscany_sca_model_wire_h - -#include <string> - -namespace tuscany -{ - namespace sca - { - namespace model - { - /** - * Information about a wire in the model. - */ - class Wire - { - public: - - /** - * Constructor. - * @param source The source of the wire. Either the component and - * reference name (optional) or an entry point. - * @param target The target of the wire. Either a component and service - * service name (optional) or an external sevice. - */ - SCA_API Wire(const std::string& source, const std::string& target); - - /** - * Destructor. - */ - SCA_API virtual ~Wire(); - - /** - * Get the component name defined by the source of the wire. - * @return The component name which is the source of the wire. - */ - SCA_API const std::string& getSourceComponent() const { return sourceComponent; } - - /** - * Get the reference name defined by the source of the wire. - * @return The reference name which is the source of the wire. - */ - SCA_API const std::string& getSourceReference() const { return sourceReference; } - - /** - * Get the target uri defined by the target of the wire. - * @return The target uri which is the source of the wire. - */ - SCA_API const std::string& getTarget() { return target; } - - private: - /** - * The source component of the wire. - */ - std::string sourceComponent; - - /** - * The source reference of the wire. - */ - std::string sourceReference; - - /** - * The target uri of the wire. - */ - std::string target; - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_model_wire_h - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp deleted file mode 100644 index 48cc0aa1e6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <iostream> - -#include "tuscany/sca/util/DefaultLogWriter.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace util - { - DefaultLogWriter::~DefaultLogWriter() - { - } - - void DefaultLogWriter::log(int level, const char* tid, const char* msg) - { - cout << tid << " "; - for (int i=0; i < level; i++) - { - cout << " "; - } - cout << msg <<endl; - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h deleted file mode 100644 index 80e07d696c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_defaultlogwriter_h -#define tuscany_sca_util_defaultlogwriter_h - -#include "tuscany/sca/util/LogWriter.h" - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * Log writer to write out to standard out. - */ - class DefaultLogWriter : public LogWriter - { - public: - virtual ~DefaultLogWriter(); - - /** - * Will write to the console. - * See LogWriter#log. - */ - virtual void log(int level, const char* tid, const char* msg); - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany -#endif // tuscany_sca_util_defaultlogwriter_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/File.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/File.cpp deleted file mode 100644 index 507c1b38ea..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/File.cpp +++ /dev/null @@ -1,243 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include <iostream> -#include <string> - -#if defined(WIN32) || defined (_WINDOWS) -#include <windows.h> -#else -#include <unistd.h> -#include <sys/stat.h> -#include <dirent.h> -#endif - -#include "tuscany/sca/util/File.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Logging.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace util - { - File::File(const string& dir, const string& file, bool isDirectory) - : directory(dir), fileName(file), isDir(isDirectory) - { - } - File::~File() - { - } - - - Files::Files(const string& rootDir, const string& pattern, bool subdirectories, bool directories) - : rootDirectory(rootDir) - { - findFiles(rootDirectory, pattern, subdirectories, directories); - } - - Files::~Files() - { - } - - unsigned int Files::size() - { - return files.size(); - } - - const File& Files::operator[] (unsigned int index) - { - if (size() <= index) - { - throwException(SystemConfigurationException, "Index of of bounds"); - } - - FILES::iterator iter = files.begin(); - for (unsigned int i=0; i<index; i++) - { - iter++; - } - - return *iter; - } - - - void Files::findFiles(const string& rootDir, const string& pattern, bool subdirectories, bool directories) - { - -#if defined(WIN32) || defined (_WINDOWS) - char currentDir[ _MAX_FNAME]; - - GetCurrentDirectory(_MAX_FNAME, currentDir); - - // Set current directory, from which to search. - if (!SetCurrentDirectory(rootDir.c_str())) - { - loginfo("Unable to set current directory to: %s", rootDir.c_str()); - return; - } - char fullDirname[ _MAX_FNAME]; - GetCurrentDirectory(_MAX_FNAME, fullDirname); - - // First, look for all files in this directory that meet the pattern - char search[ _MAX_FNAME]; - strcpy(search, pattern.c_str()); - - // Find the first file in the directory - WIN32_FIND_DATA data; - HANDLE searchHandle = FindFirstFile(search, &data); - - int more = TRUE; - if (searchHandle != INVALID_HANDLE_VALUE) - { - // Found some matching files, so call the function with the details of each one - while (more) - { - // Skip over directories - if (!(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ) - { - if (!directories) - { - // Add the file to our list - files.push_back(File(fullDirname, data.cFileName)); - } - } - else if (directories) - { - files.push_back(File(fullDirname, data.cFileName, true)); - } - - more = FindNextFile(searchHandle, &data); - } - } - - - if (!subdirectories) - return; - - // Now recurse down all the directories - // Find the first file in the directory - searchHandle = FindFirstFile( "*.*", &data); - more = TRUE; - - if (searchHandle != INVALID_HANDLE_VALUE) - { - // Found some files in the directory. - while (more) - { - // If directory - if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - // Skip over '.' and '..' - if ((strcmp(data.cFileName, ".")) && (strcmp("..", data.cFileName))) - { - // Recurse - findFiles(data.cFileName, pattern, subdirectories, directories); - } - } - - more = FindNextFile(searchHandle, &data); - } - } - SetCurrentDirectory(currentDir); -#else - // Linux - //char fullDirname[MAX_PATH]; - //getcwd(fullDirname, MAX_PATH); - - DIR* root = opendir(rootDir.c_str()); - if (!root) - { - logwarning("Unable to open directory: %s", rootDir.c_str()); - return; - } - - bool exactMatch = true; - string token1, token2; - if (pattern.find('*') != string::npos) - { - exactMatch = false; - Utils::tokeniseString("*", pattern, token1, token2); - } - - struct dirent *entry=0; - while ((entry = readdir(root))) - { - string entryName = rootDir + "/" + entry->d_name; - struct stat statbuf; - if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) - continue; - if (stat(entryName.c_str(), &statbuf) != 0) - { - logwarning("Unable to stat entry: %s", entryName.c_str()); - } - else - { - string filename = entry->d_name; - - if ((exactMatch && filename == pattern) || - (!exactMatch && - ((filename.find(token1) == 0) - && (filename.length() >= token2.length()) - && (filename.rfind(token2) == (filename.length() - token2.length())) ))) - { - if (S_ISDIR(statbuf.st_mode)) - { - if (directories) - { - files.push_back(File(rootDir, filename, true)); - } - } - else if (S_ISREG(statbuf.st_mode)) - { - if (!directories) - { - // Add the file to our list - files.push_back(File(rootDir, filename)); - } - } - } // end - matching filename - - // recurse if necessary - if (subdirectories && S_ISDIR(statbuf.st_mode)) - { - findFiles(entryName, pattern, subdirectories, directories); - } - } - } - - closedir(root); -#endif - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/File.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/File.h deleted file mode 100644 index 944a192cf6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/File.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_file_h -#define tuscany_sca_util_file_h - -#include <string> -#include <vector> - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * File access methods. Provides platform independent - * access to files. - */ - class File - { - public: - /** - * Constructor. - * @param directory Name of the directory in which this file is located. - * Either / or \ can be used interchangeably for separating directory elements. - * @param fileName Name of the file in the dirctory. - */ - File(const std::string& directory, const std::string& fileName, bool isDirectory = false); - - /** - * Destructor. - */ - virtual ~File(); - - /** - * Return the directory in which this file is located. - * @return Name of the parent directory. - */ - const std::string& getDirectory() const {return directory;} - - /** - * Return the name of the file. - * @return Name of the file/directory. - */ - const std::string& getFileName() const {return fileName;} - - /** - * Return if this is a directory - * @return true if a directory - */ - bool isDirectory() const {return isDir;} - - /** - * Return if this is a file - * @return true if a file - */ - bool isFile() const {return !isDir;} - - private: - /** - * Name of the parent directory. - */ - std::string directory; - - /** - * Name of the file/directory - */ - std::string fileName; - - /** - * Is this a directory - */ - bool isDir; - }; - - /** - * Collection of File to provide platform independent access - * to files and directories. - */ - class Files - { - public: - /** - * Constructor which will search a given directory with a pattern and return a - * new instance of this collection class. - * @param rootDirectory The directory in which to search. - * @param pattern A pattern for matching file names. Can include * and ?. - * @param subdirectories Whether subdirectories should be searched too. - * @param directories Whether to directories or files. - */ - Files(const std::string& rootDirectory, - const std::string& pattern, - bool subdirectories = false, - bool directories = false); - - /** - * Destructor. - */ - virtual ~Files(); - - /** - * Return the number of files found. - * @return The number of files found. - */ - unsigned int size(); - - /** - * Return a File at this position in the collection. - * @param index The index into the collection. - * @return The File at this index in the collection. - */ - const File& operator[] (unsigned int index); - - private: - /** - * Search the given directory and pattern for matching files. - * @param rootDirectory The directory in which to search. - * @param pattern A pattern for matching file names. Can include * and ?. - * @param subdirectories Whether subdirectories should be searched too. - * @param directories Whether to directories or files. - */ - void findFiles(const std::string& rootDirectory, const std::string& pattern, - bool subdirectories, bool directories); - - /** - * The top level directory to search. - */ - std::string rootDirectory; - - typedef std::vector<File> FILES; - - /** - * Vector of File. - */ - FILES files; - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany -#endif // tuscany_sca_util_file_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/FileLogWriter.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/FileLogWriter.cpp deleted file mode 100644 index 56eb3146dd..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/FileLogWriter.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <iostream> - -#include "tuscany/sca/util/FileLogWriter.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace util - { - FileLogWriter::FileLogWriter(const char* logfile) - { - logFile.open(logfile, ios_base::app); - } - - FileLogWriter::~FileLogWriter() - { - logFile.close(); - } - - void FileLogWriter::log(int level, const char*tid, const char* msg) - { - logFile << tid << " "; - for (int i=0; i < level; i++) - { - logFile << " "; - } - logFile << msg <<endl; - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/FileLogWriter.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/FileLogWriter.h deleted file mode 100644 index 5925fdca85..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/FileLogWriter.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_filelogwriter_h -#define tuscany_sca_util_filelogwriter_h - -#include <iostream> -#include <fstream> - -#include "tuscany/sca/util/LogWriter.h" - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * Log writer to write out to standard out. - */ - class FileLogWriter : public LogWriter - { - public: - FileLogWriter(const char* logfile); - - virtual ~FileLogWriter(); - - /** - * Will write to the console. - * See LogWriter#log. - */ - virtual void log(int level, const char* tid, const char* msg); - private: - std::ofstream logFile; - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany -#endif // tuscany_sca_util_defaultlogwriter_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Library.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Library.cpp deleted file mode 100644 index 619205ab7e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Library.cpp +++ /dev/null @@ -1,175 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <sstream> - -#include "tuscany/sca/util/Library.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Logging.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace util - { - Library::Library() - : hDLL(NULL) - { - } - - Library::Library(const string& libraryName) - : name(libraryName), hDLL(NULL) - { - logentry(); - load(); - } - - Library::Library(const Library& lib) - : name(lib.name), hDLL(NULL) - { - logentry(); - if (lib.hDLL) - { - load(); - } - } - - Library& Library::operator=(const Library& lib) - { - logentry(); - if (&lib != this) - { - unload(); - name = lib.name; - load(); - } - return *this; - } - - Library::~Library() - { - logentry(); - unload(); - } - - - void Library::load() - { - logentry(); - loginfo("Library: %s", name.c_str()); - - string msg; -#if defined(WIN32) || defined (_WINDOWS) - int l = name.length(); - string dllName; - if (l>=4 && name.substr(l-4, 4)==".dll") - { - dllName = name; - } - else - { - dllName = name+".dll"; - } - SetErrorMode(SEM_FAILCRITICALERRORS); - hDLL = LoadLibrary(dllName.c_str()); - if (hDLL == NULL) - { - ostringstream msgs; - msgs << "Unable to load library: " + dllName << ", error: "; - Utils::printLastError(msgs); - msg = msgs.str(); - } -#else - int l = name.length(); - string libName; -#ifdef IS_DARWIN - string suffix = ".dylib"; -#else - string suffix = ".so"; -#endif - unsigned int suffixLength = suffix.length(); - if (l>=suffixLength && name.substr(l-suffixLength, suffixLength)==suffix) - { - libName = name; - } - else - { - int s = name.rfind("/"); - if (s == name.length()) - { - libName = name + suffix; - } - else - { - s++; - libName = name.substr(0, s) + "lib" + name.substr(s, name.length()-s) + suffix; - } - } - hDLL = dlopen(libName.c_str(), RTLD_NOW); - if (hDLL == NULL) - { - msg = "Unable to load library: " + libName + ": " + dlerror(); - } -#endif - if (hDLL == NULL) - { - throwException(SystemConfigurationException, msg.c_str()); - } - } - - void Library::unload() - { - logentry(); - loginfo("Library: %s", name.c_str()); - - if (hDLL != NULL) - { -#if defined(WIN32) || defined (_WINDOWS) - FreeLibrary(hDLL); -#else - dlclose(hDLL); -#endif - hDLL = NULL; - } - } - - void* Library::getSymbol(const string& symbol) - { - logentry(); - loginfo("Symbol: %s", symbol.c_str()); - if (!hDLL) - { - return 0; - } -#if defined(WIN32) || defined (_WINDOWS) - return GetProcAddress(hDLL, symbol.c_str()); -#else - return dlsym(hDLL, symbol.c_str()); -#endif - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Library.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Library.h deleted file mode 100644 index 6b0a17d2b7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Library.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_library_h -#define tuscany_sca_util_library_h - -#if defined(WIN32) || defined (_WINDOWS) -#include <windows.h> -#else -#include <unistd.h> -#include <dlfcn.h> -#endif - -#include <string> - -#include "tuscany/sca/export.h" - - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * Information about shared libraries and methods to - * access these shared libraries. - */ - class SCA_API Library - { - public: - Library(); - - /** - * Constructor. Will load the library. - * @param libraryName Fully qualified name of the library. - */ - Library(const std::string& libraryName); - - /** - * Destructor. Will unload the library. - */ - virtual ~Library(); - - Library(const Library& lib); - Library& operator=(const Library& lib); - - /** - * Find an externalized symbol in the library. - * @param symbol The name of the symbol to be found. - * @return The pointer to the symbol if found, otherwise 0. - */ - void* getSymbol(const std::string& symbol); - private: - /** - * Name of the library. - */ - std::string name; - - /** - * Handle to the loaded library. - */ -#if defined(WIN32) || defined (_WINDOWS) - HINSTANCE hDLL; -#else - void* hDLL; -#endif - - /** - * Load the library. - */ - void load(); - - /** - * Unload the library, if successfully loaded. - */ - void unload(); - - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_util_library_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/LogWriter.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/LogWriter.cpp deleted file mode 100644 index e551d04eda..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/LogWriter.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/LogWriter.h" - -namespace tuscany -{ - namespace sca - { - namespace util - { - LogWriter::~LogWriter() - { - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/LogWriter.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/LogWriter.h deleted file mode 100644 index 5a6a5c38f7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/LogWriter.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_logwriter_h -#define tuscany_sca_util_logwriter_h - -#include "tuscany/sca/export.h" - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * Abstract class for extending logging to other destinations. - */ - class SCA_API LogWriter - { - public: - virtual ~LogWriter(); - - /** - * Log a message. - * @param level The level of logging for this message. - * @param tid The current thread id. - * @param msg The message to log. - */ - virtual void log(int level, const char* tid, const char* msg) = 0; - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany -#endif // tuscany_sca_util_logwriter_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Logger.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Logger.cpp deleted file mode 100644 index 5745982f42..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Logger.cpp +++ /dev/null @@ -1,276 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <iostream> -#include <stdarg.h> - -#if defined(WIN32) || defined (_WINDOWS) -#include <windows.h> -#include <process.h> -#else -#include <unistd.h> -#include <pthread.h> -#endif - -#include "tuscany/sca/util/Logger.h" -#include "tuscany/sca/util/DefaultLogWriter.h" -#include "tuscany/sca/util/FileLogWriter.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace util - { - LogWriter* Logger::logWriter = getLogWriter(); - - LogWriter* Logger::getLogWriter() - { - if (logWriter == 0) - { - setLogWriter(0); - - } - return logWriter; - } - - void Logger::setLogWriter(LogWriter* writer) - { - if (logWriter != writer - && logWriter != 0) - { - delete logWriter; - } - - if (writer == 0) - { - char* loggingVar = 0; - loggingVar = getenv("TUSCANY_SCACPP_LOG"); - if (loggingVar == 0) - logWriter = new DefaultLogWriter; - else - logWriter = new FileLogWriter(loggingVar); - } - else - { - logWriter = writer; - } - } - - int Logger::loggingLevel = setLogging(); - - int Logger::setLogging() - { - char* loggingVar = 0; - loggingVar = getenv("TUSCANY_SCACPP_LOGGING"); - if (loggingVar == 0) - return 0; - else - return atoi(loggingVar); - } - - void Logger::setLogging(int level) - { - loggingLevel = level; - } - - void Logger::log(int level, const char* msg) - { - if (level <= loggingLevel) - { - char tid[21]; - formatThreadID(tid); - logWriter->log(level, tid, msg); - } - } - - void Logger::formatThreadID(char* tid) - { -#if defined(WIN32) || defined (_WINDOWS) - sprintf(tid, "%lu:%lu", (unsigned long)_getpid(), (unsigned long)GetCurrentThreadId()); -#else - sprintf(tid, "%lu:%lu", (unsigned long)getpid(), (unsigned long)pthread_self()); -#endif - } - - void Logger::logArgs(int level, const char* msg, ...) - { - if (level <= loggingLevel) - { - va_list variableArguments; - va_start(variableArguments, msg); - char tid[21]; - formatThreadID(tid); - char messageBuffer[256]; -#if defined(WIN32) || defined (_WINDOWS) - int size = _vsnprintf(messageBuffer, 255, msg, variableArguments); - if (size == -1) - { - size = _vscprintf(msg, variableArguments); - char* bigMessageBuffer = new char[size+1]; - _vsnprintf(bigMessageBuffer, size, msg, variableArguments); - bigMessageBuffer[size] = '\0'; - logWriter->log(level, tid, bigMessageBuffer); - delete bigMessageBuffer; - } -#else - int size = vsnprintf(messageBuffer, 255, msg, variableArguments); - if (size > 255) - { - char* bigMessageBuffer = new char[size+1]; - vsnprintf(bigMessageBuffer, size, msg, variableArguments); - bigMessageBuffer[size] = '\0'; - logWriter->log(level, tid, bigMessageBuffer); - delete bigMessageBuffer; - } -#endif - else - { - messageBuffer[255] = '\0'; - logWriter->log(level, tid, messageBuffer); - } - va_end(variableArguments); - } - } - - void Logger::logArgs0(const char* msg, ...) - { - if (0 <= loggingLevel) - { - va_list variableArguments; - va_start(variableArguments, msg); - char tid[21]; - formatThreadID(tid); - char messageBuffer[256]; -#if defined(WIN32) || defined (_WINDOWS) - int size = _vsnprintf(messageBuffer, 255, msg, variableArguments); - if (size == -1) - { - size = _vscprintf(msg, variableArguments); - char* bigMessageBuffer = new char[size+1]; - _vsnprintf(bigMessageBuffer, size, msg, variableArguments); - bigMessageBuffer[size] = '\0'; - logWriter->log(0, tid, bigMessageBuffer); - delete bigMessageBuffer; - } -#else - int size = vsnprintf(messageBuffer, 255, msg, variableArguments); - if (size > 255) - { - char* bigMessageBuffer = new char[size+1]; - vsnprintf(bigMessageBuffer, size, msg, variableArguments); - bigMessageBuffer[size] = '\0'; - logWriter->log(0, tid, bigMessageBuffer); - delete bigMessageBuffer; - } -#endif - else - { - messageBuffer[255] = '\0'; - logWriter->log(0, tid, messageBuffer); - } - va_end(variableArguments); - } - } - void Logger::logArgs1(const char* msg, ...) - { - if (1 <= loggingLevel) - { - va_list variableArguments; - va_start(variableArguments, msg); - char tid[21]; - formatThreadID(tid); - char messageBuffer[256]; -#if defined(WIN32) || defined (_WINDOWS) - int size = _vsnprintf(messageBuffer, 255, msg, variableArguments); - if (size == -1) - { - size = _vscprintf(msg, variableArguments); - char* bigMessageBuffer = new char[size+1]; - _vsnprintf(bigMessageBuffer, size, msg, variableArguments); - bigMessageBuffer[size] = '\0'; - logWriter->log(1, tid, bigMessageBuffer); - delete bigMessageBuffer; - } -#else - int size = vsnprintf(messageBuffer, 255, msg, variableArguments); - if (size > 255) - { - char* bigMessageBuffer = new char[size+1]; - vsnprintf(bigMessageBuffer, size, msg, variableArguments); - bigMessageBuffer[size] = '\0'; - logWriter->log(1, tid, bigMessageBuffer); - delete bigMessageBuffer; - } -#endif - else - { - messageBuffer[255] = '\0'; - logWriter->log(1, tid, messageBuffer); - } - va_end(variableArguments); - } - } - void Logger::logArgs2(const char* msg, ...) - { - if (2 <= loggingLevel) - { - va_list variableArguments; - va_start(variableArguments, msg); - char tid[21]; - formatThreadID(tid); - char messageBuffer[256]; -#if defined(WIN32) || defined (_WINDOWS) - int size = _vsnprintf(messageBuffer, 255, msg, variableArguments); - if (size == -1) - { - size = _vscprintf(msg, variableArguments); - char* bigMessageBuffer = new char[size+1]; - _vsnprintf(bigMessageBuffer, size, msg, variableArguments); - bigMessageBuffer[size] = '\0'; - logWriter->log(2, tid, bigMessageBuffer); - delete bigMessageBuffer; - } -#else - int size = vsnprintf(messageBuffer, 255, msg, variableArguments); - if (size > 255) - { - char* bigMessageBuffer = new char[size+1]; - vsnprintf(bigMessageBuffer, size, msg, variableArguments); - bigMessageBuffer[size] = '\0'; - logWriter->log(2, tid, bigMessageBuffer); - delete bigMessageBuffer; - } -#endif - else - { - messageBuffer[255] = '\0'; - logWriter->log(2, tid, messageBuffer); - } - va_end(variableArguments); - } - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Logger.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Logger.h deleted file mode 100644 index eccf3cf02f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Logger.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_logger_h -#define tuscany_sca_util_logger_h - -#include "tuscany/sca/export.h" -#include "tuscany/sca/util/LogWriter.h" - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * Provide a logging interface. - */ - class Logger { - - public: - /** - * Set the log writer to use. - * @param writer The writer to use for all subsequent logging. - */ - SCA_API static void setLogWriter(LogWriter* writer); - - /** - * Set or reset the logging level. Any message with a higher logging - * level than this value will be filtered (i.e. not shown). - * @param level The level of logging to use for all subsequent logging. - */ - SCA_API static void setLogging(int level); - - /** - * Log a message. - * @param level The log level of this message. - * @param msg The message to be logged. - */ - SCA_API static void log(int level, const char* msg); - - /** - * Log a message with variable arguments. - * @param level The log level of this message. - * @param msg The message to be logged. Must include template - * characters as described in printf. - * @param ... Variable arguments. - */ - SCA_API static void logArgs(int level, const char* msg, ...); - SCA_API static void logArgs0(const char* msg, ...); - SCA_API static void logArgs1(const char* msg, ...); - SCA_API static void logArgs2(const char* msg, ...); - - /** - * The currently set logging level - */ - SCA_API static int loggingLevel; - - private: - /** - * The current log writer. - */ - static LogWriter* logWriter; - - /** - * Get the current log writer. - * @return The current log writer. - */ - static LogWriter* getLogWriter(); - - /** - * Retrieves the logging level set as an environment variable. - */ - static int setLogging(); - - /** - * Print the current thread id into the given char buffer. - */ - static void formatThreadID(char* tid); - - /** - * Message buffer - */ - static char messageBuffer[4096]; - - }; - - class LogEntry - { - public: - - LogEntry(const char* func) - : funcName(func) - { - if (Logger::loggingLevel >= 2) - { - Logger::logArgs(2, ">> %s", funcName); - } - } - - ~LogEntry() - { - if (Logger::loggingLevel >= 2) - { - Logger::logArgs(2, "<< %s", funcName); - } - } - - private: - const char *funcName; - - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_util_logger_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Logging.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Logging.h deleted file mode 100644 index bf1419faa8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Logging.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_logging_h -#define tuscany_sca_util_logging_h - -#include "tuscany/sca/util/Logger.h" - -#if defined(WIN32) || defined (_WINDOWS) -#define logentry() \ -const tuscany::sca::util::LogEntry __LOGENTRY__(__FUNCTION__) -#else -#define logentry() \ -const tuscany::sca::util::LogEntry __LOGENTRY__(__PRETTY_FUNCTION__) -#endif - -#define loginfo \ -if (tuscany::sca::util::Logger::loggingLevel >= 2) tuscany::sca::util::Logger::logArgs2 - -#define logwarning \ -if (tuscany::sca::util::Logger::loggingLevel >= 1) tuscany::sca::util::Logger::logArgs1 - -#define logerror \ -if (tuscany::sca::util::Logger::loggingLevel >= 0) tuscany::sca::util::Logger::logArgs0 - -#endif // tuscany_sca_util_logging_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Mutex.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Mutex.cpp deleted file mode 100644 index 7b62000717..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Mutex.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <errno.h> - -#include <sstream> - -#include "tuscany/sca/util/Mutex.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" - -using namespace std; - - -namespace tuscany -{ - namespace sca - { - namespace util - { - Mutex::Mutex() - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - InitializeCriticalSection(§ion); -#else - int rc = pthread_mutex_init(&mutex, NULL); - if (rc) - { - ostringstream msg; - msg << "Failed to create mutex, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#endif - } - - Mutex::~Mutex() - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - DeleteCriticalSection(§ion); -#else - int rc = pthread_mutex_destroy(&mutex); - if (rc) { - ostringstream msg; - msg << "Failed to destroy mutex, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#endif - } - - void Mutex::lock() - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - EnterCriticalSection(§ion); -#else - int rc = pthread_mutex_lock(&mutex); - if (rc) { - ostringstream msg; - msg << "Failed to lock mutex, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#endif - } - - void Mutex::unlock() - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - LeaveCriticalSection(§ion); -#else - int rc = pthread_mutex_unlock(&mutex); - if (rc) { - ostringstream msg; - msg << "Failed to unlock mutex, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#endif - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Mutex.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Mutex.h deleted file mode 100644 index d509ba6d73..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Mutex.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_mutex_h -#define tuscany_sca_util_mutex_h - -#if defined(WIN32) || defined (_WINDOWS) -#include <windows.h> -#else -#include <pthread.h> -#endif - -#include "tuscany/sca/export.h" - - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * Information about shared libraries and methods to - * access these shared libraries. - */ - class SCA_API Mutex - { - public: - /** - * Constructor. - */ - Mutex(); - - /** - * Destructor. - */ - virtual ~Mutex(); - - /** - * Lock the mutex. - */ - void lock(); - - /** - * Unlock the mutex. - */ - void unlock(); - - private: - - /** - * Handle to the mutex. - */ -#if defined(WIN32) || defined (_WINDOWS) - CRITICAL_SECTION section; -#else - pthread_mutex_t mutex; -#endif - - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_util_mutex_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.cpp deleted file mode 100644 index c124be572c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.cpp +++ /dev/null @@ -1,222 +0,0 @@ -/* - * 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. - */ - -/* $Rev: 491752 $ $Date: 2007-01-01 22:22:23 -0800 (Mon, 01 Jan 2007) $ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#pragma warning(disable: 4251) -#endif - -#include <errno.h> - -#include <sstream> - -#include "tuscany/sca/util/Queue.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" - -using namespace std; - - -namespace tuscany -{ - namespace sca - { - namespace util - { - Queue::Queue() - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - InitializeCriticalSection(§ion); - hevent = CreateEvent (NULL, TRUE, FALSE, NULL); -#else - int rc = pthread_mutex_init(&mutex, NULL); - if (rc) - { - ostringstream msg; - msg << "Failed to create mutex, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } - - rc = pthread_cond_init(&cond, NULL); - if (rc) - { - ostringstream msg; - msg << "Failed to create condition variable, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#endif - } - - Queue::~Queue() - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - DeleteCriticalSection(§ion); - CloseHandle(hevent); -#else - int rc = pthread_mutex_destroy(&mutex); - if (rc) { - ostringstream msg; - msg << "Failed to destroy mutex, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } - - rc = pthread_cond_destroy(&cond); - if (rc) { - ostringstream msg; - msg << "Failed to destroy condition variable, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#endif - } - - void Queue::enqueue(void* element) - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - EnterCriticalSection(§ion); - - try - { - queue.push(element); - - if (queue.size() == 1) - { - SetEvent(hevent); - } - } - catch (...) - { - LeaveCriticalSection(§ion); - throw; - } - LeaveCriticalSection(§ion); -#else - int rc = pthread_mutex_lock(&mutex); - if (rc) { - ostringstream msg; - msg << "Failed to lock mutex, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } - try - { - queue.push(element); - - if (queue.size() == 1) - { - rc = pthread_cond_signal(&cond); - if (rc) { - ostringstream msg; - msg << "Failed to broadcast condition variable, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } - } - - } - catch(...) - { - pthread_mutex_unlock(&mutex); - throw; - } - rc = pthread_mutex_unlock(&mutex); - if (rc) { - ostringstream msg; - msg << "Failed to unlock mutex, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#endif - } - - void* Queue::dequeue() - { - logentry(); - - void* element = NULL; - -#if defined(WIN32) || defined (_WINDOWS) - - EnterCriticalSection(§ion); - try - { - while (queue.size() == 0) { - LeaveCriticalSection(§ion); - WaitForSingleObject(hevent, INFINITE); - EnterCriticalSection(§ion); - } - - element = queue.front(); - queue.pop(); - - if (queue.size() == 0) - { - ResetEvent(hevent); - } - } - catch(...) - { - LeaveCriticalSection(§ion); - throw; - } - LeaveCriticalSection(§ion); - -#else - int rc = pthread_mutex_lock(&mutex); - if (rc) { - ostringstream msg; - msg << "Failed to lock mutex, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } - try - { - while (queue.size() == 0) { - rc = pthread_cond_wait(&cond, &mutex); - if (rc) { - ostringstream msg; - msg << "Failed to wait for condition variable, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } - } - - element = queue.front(); - queue.pop(); - } - catch(...) - { - pthread_mutex_unlock(&mutex); - throw; - } - rc = pthread_mutex_unlock(&mutex); - if (rc) { - ostringstream msg; - msg << "Failed to unlock mutex, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } - -#endif - - return element; - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.h deleted file mode 100644 index e2ff104631..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Queue.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * 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. - */ - -/* $Rev: 492011 $ $Date: 2007-01-02 18:15:11 -0800 (Tue, 02 Jan 2007) $ */ - -#ifndef tuscany_sca_util_queue_h -#define tuscany_sca_util_queue_h - -#if defined(WIN32) || defined (_WINDOWS) -#include <windows.h> -#else -#include <pthread.h> -#endif - -#include <queue> - -#include "tuscany/sca/export.h" - - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * A thread safe FIFO queue. - */ - class SCA_API Queue - { - public: - /** - * Constructor. - */ - Queue(); - - /** - * Destructor. - */ - virtual ~Queue(); - - /** - * Dequeue an element - */ - void* dequeue(); - - /** - * Enqueue an element - */ - void enqueue(void* element); - - private: - - /** - * The STL queue used to hold elements. - */ - std::queue<void*> queue; - - /** - * Handles to the mutex and condition variable - * used to synchronize access to the queue. - */ -#if defined(WIN32) || defined (_WINDOWS) - CRITICAL_SECTION section; - HANDLE hevent; -#else - pthread_mutex_t mutex; - pthread_cond_t cond; -#endif - - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_util_queue_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/SDOUtils.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/SDOUtils.cpp deleted file mode 100644 index 513409db6a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/SDOUtils.cpp +++ /dev/null @@ -1,438 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "tuscany/sca/util/SDOUtils.h" - -using namespace std; -using namespace commonj::sdo; - -namespace tuscany -{ - namespace sca - { - namespace util - { - - /** - * Constructor - */ - SDOVisitor::SDOVisitor() - { - } - - /** - * Destructor - */ - SDOVisitor::~SDOVisitor() - { - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, bool boolData) - { - return SDOVisitor::RESULT_NOT_SUPPORTED; - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, char byteData) - { - return SDOVisitor::RESULT_NOT_SUPPORTED; - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, const char* bytesData) - { - return SDOVisitor::RESULT_NOT_SUPPORTED; - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, wchar_t charData) - { - return SDOVisitor::RESULT_NOT_SUPPORTED; - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, const SDODate& dateData) - { - return SDOVisitor::RESULT_NOT_SUPPORTED; - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, long double doubleData) - { - return SDOVisitor::RESULT_NOT_SUPPORTED; - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, float floatData) - { - return SDOVisitor::RESULT_NOT_SUPPORTED; - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, long intData) - { - return SDOVisitor::RESULT_NOT_SUPPORTED; - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, short shortData) - { - return SDOVisitor::RESULT_NOT_SUPPORTED; - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, const string& stringData) - { - return SDOVisitor::RESULT_CONTINUE; - } - - SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, DataObjectPtr dataObjectData) - { - return SDOVisitor::RESULT_CONTINUE; - } - - const char* SDOUtils::sdoURI = "commonj.sdo"; - - SDOVisitor::RESULT SDOUtils::accept(DataObjectPtr dataObject, SDOVisitor& visitor, SDOVisitor::DEPTH depth) - { - SDOVisitor::RESULT result = SDOVisitor::RESULT_CONTINUE; - - const Type& type = dataObject->getType(); - if (type.isSequencedType()) - { - SequencePtr sequence = dataObject->getSequence(); - int size = sequence->size(); - for (int i = 0; i < size; i++) - { - if (sequence->isText(i)) - { - const string text(sequence->getCStringValue(i)); - result = visitor.visit(dataObject, *(Property*)NULL, (const string&)text); - } - else - { - const Property& seqProperty = sequence->getProperty(i); - const Type& seqType = seqProperty.getType(); - if (seqType.isDataObjectType()) - { - DataObjectPtr dob; - if (seqProperty.isMany()) - { - int index = sequence->getListIndex(i); - dob = dataObject->getList(seqProperty)[index]; - } - else - { - dob = dataObject->getDataObject(seqProperty); - } - - if (dob) - { - result = visitor.visit(dataObject, seqProperty, (DataObjectPtr)dob); - } - } - else - { - Type::Types t = seqProperty.getTypeEnum(); - switch (t) - { - case Type::BooleanType: - { - result = visitor.visit(dataObject, seqProperty, (bool)sequence->getBooleanValue(i)); - } - break; - case Type::ByteType: - { - result = visitor.visit(dataObject, seqProperty, (char)sequence->getByteValue(i)); - } - break; - case Type::CharacterType: - { - result = visitor.visit(dataObject, seqProperty, (wchar_t)sequence->getCharacterValue(i)); - } - break; - case Type::IntType: - { - result = visitor.visit(dataObject, seqProperty, (long)sequence->getIntValue(i)); - } - break; - case Type::ShortType: - { - result = visitor.visit(dataObject, seqProperty, (short)sequence->getShortValue(i)); - } - break; - case Type::DoubleType: - { - result = visitor.visit(dataObject, seqProperty, (long double)sequence->getDoubleValue(i)); - } - break; - case Type::FloatType: - { - result = visitor.visit(dataObject, seqProperty, (float)sequence->getFloatValue(i)); - } - break; - case Type::LongType: - { - result = visitor.visit(dataObject, seqProperty, (long)sequence->getLongValue(i)); - } - break; - case Type::DateType: - { - const SDODate date = sequence->getDateValue(i); - result = visitor.visit(dataObject, seqProperty, (long)(const time_t)date.getTime()); - } - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::UriType: - case Type::StringType: - { - ; - const string stringData(sequence->getCStringValue(i)); - result = visitor.visit(dataObject, seqProperty, (const string&)stringData); - } - break; - case Type::BytesType: - { - unsigned int len = sequence->getLength(i); - char* byteData = new char[len]; - sequence->getBytesValue(i, byteData, len); - result = visitor.visit(dataObject, seqProperty, byteData); - delete byteData; - } - break; - default: - result = SDOVisitor::RESULT_NOT_SUPPORTED; - break; - } - if (result == SDOVisitor::RESULT_NOT_SUPPORTED) - { - ; - const string stringData(sequence->getCStringValue(i)); - result = visitor.visit(dataObject, seqProperty, (const string&)stringData); - } - } - } - if (result == SDOVisitor::RESULT_STOP) - return result; - } - } - else - { - PropertyList pl = dataObject->getInstanceProperties(); - for (unsigned int i = 0; i < pl.size(); i++) - { - if (dataObject->isSet(pl[i])) - { - if (pl[i].getType().isDataObjectType()) - { - if (pl[i].isMany()) - { - DataObjectList& doList = dataObject->getList(pl[i]); - for (unsigned int li = 0; li < doList.size(); li++) - { - DataObjectPtr dob = doList[li]; - result = visitor.visit(dataObject, pl[i], (DataObjectPtr)dob); - if (result == SDOVisitor::RESULT_STOP) - return result; - } - } - else - { - DataObjectPtr dob = dataObject->getDataObject(pl[i]); - result = visitor.visit(dataObject, pl[i], (DataObjectPtr)dob); - } - } - else - { - if (pl[i].isMany()) - { - Type::Types t = pl[i].getTypeEnum(); - DataObjectList& doList = dataObject->getList(pl[i]); - for (unsigned int li = 0; li < doList.size(); li++) - { - switch (t) - { - case Type::BooleanType: - { - result = visitor.visit(dataObject, pl[i], (bool)doList.getBoolean(li)); - } - break; - case Type::ByteType: - { - result = visitor.visit(dataObject, pl[i], (char)doList.getByte(li)); - } - break; - case Type::CharacterType: - { - result = visitor.visit(dataObject, pl[i], (wchar_t)doList.getCharacter(li)); - } - break; - case Type::IntType: - { - result = visitor.visit(dataObject, pl[i], (long)doList.getInt(li)); - } - break; - case Type::ShortType: - { - result = visitor.visit(dataObject, pl[i], (short)doList.getShort(li)); - } - break; - case Type::DoubleType: - { - result = visitor.visit(dataObject, pl[i], (long double)doList.getDouble(li)); - } - break; - case Type::FloatType: - { - result = visitor.visit(dataObject, pl[i], (float)doList.getFloat(li)); - } - break; - case Type::LongType: - { - result = visitor.visit(dataObject, pl[i], (long)doList.getLong(li)); - } - break; - case Type::DateType: - { - const SDODate date = doList.getDate(li); - result = visitor.visit(dataObject, pl[i], (long)(const time_t)date.getTime()); - } - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::UriType: - case Type::StringType: - { - const string stringData(doList.getCString(li)); - result = visitor.visit(dataObject, pl[i], (const string&)stringData); - } - break; - case Type::BytesType: - { - unsigned int len = doList.getLength(li); - char* byteData = new char[len]; - doList.getBytes(li, byteData, len); - result = visitor.visit(dataObject, pl[i], byteData); - delete byteData; - } - break; - default: - result = SDOVisitor::RESULT_NOT_SUPPORTED; - break; - } - if (result == SDOVisitor::RESULT_NOT_SUPPORTED) - { - const string stringData(doList.getCString(li)); - result = visitor.visit(dataObject, pl[i], (const string&)stringData); - } - if (result == SDOVisitor::RESULT_STOP) - return result; - } - } - else - { - Type::Types t = pl[i].getTypeEnum(); - switch (t) - { - case Type::BooleanType: - { - result = visitor.visit(dataObject, pl[i], (bool)dataObject->getBoolean(pl[i])); - } - break; - case Type::ByteType: - { - result = visitor.visit(dataObject, pl[i], (char)dataObject->getByte(pl[i])); - } - break; - case Type::CharacterType: - { - result = visitor.visit(dataObject, pl[i], (wchar_t)dataObject->getCharacter(pl[i])); - } - break; - case Type::IntType: - { - result = visitor.visit(dataObject, pl[i], (long)dataObject->getInt(pl[i])); - } - break; - case Type::ShortType: - { - result = visitor.visit(dataObject, pl[i], (short)dataObject->getShort(pl[i])); - } - break; - case Type::DoubleType: - { - result = visitor.visit(dataObject, pl[i], (long double)dataObject->getDouble(pl[i])); - } - break; - case Type::FloatType: - { - result = visitor.visit(dataObject, pl[i], (float)dataObject->getFloat(pl[i])); - } - break; - case Type::LongType: - { - result = visitor.visit(dataObject, pl[i], (long)dataObject->getLong(pl[i])); - } - break; - case Type::DateType: - { - const SDODate date = dataObject->getDate(pl[i]); - result = visitor.visit(dataObject, pl[i], (long)(const time_t)date.getTime()); - } - break; - case Type::BigDecimalType: - case Type::BigIntegerType: - case Type::UriType: - case Type::StringType: - { - const string stringData(dataObject->getCString(pl[i])); - result = visitor.visit(dataObject, pl[i], (const string&)stringData); - } - break; - case Type::BytesType: - { - unsigned int len = dataObject->getLength(pl[i]); - char* byteData = new char[len]; - dataObject->getBytes(pl[i], byteData, len); - result = visitor.visit(dataObject, pl[i], byteData); - delete byteData; - } - break; - default: - result = SDOVisitor::RESULT_NOT_SUPPORTED; - break; - } - if (result == SDOVisitor::RESULT_NOT_SUPPORTED) - { - const string stringData(dataObject->getCString(pl[i])); - result = visitor.visit(dataObject, pl[i], (const string&)stringData); - } - } - } - } - if (result == SDOVisitor::RESULT_STOP) - return result; - } - } - - return SDOVisitor::RESULT_CONTINUE; - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/SDOUtils.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/SDOUtils.h deleted file mode 100644 index 5be65c355a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/SDOUtils.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_sdovisitor_h -#define tuscany_sca_util_sdovisitor_h - -#include <string> -#include <vector> -#include <time.h> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * An SDO visitor interface - */ - class SCA_API SDOVisitor - { - public: - /** - * Constructor. - */ - SDOVisitor(); - - /** - * Destructor. - */ - virtual ~SDOVisitor(); - - /** - * Visit depth - */ - enum DEPTH - { - DEPTH_ZERO = 0, - DEPTH_ONE, - DEPTH_INFINITE - }; - - /** - * Visit status - */ - enum RESULT - { - RESULT_CONTINUE = 0, - RESULT_STOP, - RESULT_NOT_SUPPORTED - }; - - /** - * Visit an SDO. - */ - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, bool boolData); - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, char byteData); - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, const char* bytesData); - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, wchar_t charData); - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, const commonj::sdo::SDODate& dateData); - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, long double doubleData); - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, float floatData); - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, long intData); - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, short shortData); - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, const std::string& stringData); - virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, commonj::sdo::DataObjectPtr dataObjectData); - }; - - /** - * SDO utilities. - */ - class SCA_API SDOUtils - { - public: - - static SDOVisitor::RESULT accept(commonj::sdo::DataObjectPtr dataObject, SDOVisitor& visitor, SDOVisitor::DEPTH depth); - static const char* sdoURI; - - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany -#endif // tuscany_sca_sdovisitor_file_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Thread.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Thread.cpp deleted file mode 100644 index 064a91409b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Thread.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/*
- * 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.
- */
-
-/* $Rev: 491752 $ $Date: 2007-01-01 22:22:23 -0800 (Mon, 01 Jan 2007) $ */
-
-#if defined(WIN32) || defined (_WINDOWS)
-#pragma warning(disable: 4786)
-#include <process.h>
-#endif
-
-#include <errno.h>
-
-#include <sstream>
-
-#include "tuscany/sca/util/Thread.h"
-#include "tuscany/sca/util/Utils.h"
-#include "tuscany/sca/util/Logging.h"
-#include "tuscany/sca/core/Exceptions.h"
-
-using namespace std;
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
-
-#if defined(WIN32) || defined (_WINDOWS)
- unsigned int __stdcall runThread(void *args)
- {
- Thread* thread = (Thread*)args;
- thread->run();
- return 0;
- }
-#else
- void* runThread(void* args)
- {
- Thread* thread = (Thread*)args;
- thread->run();
- return NULL;
- }
-#endif
-
- Thread::Thread()
-#if defined(WIN32) || defined (_WINDOWS)
- : hthread(0)
-#else
-#endif
- {
- logentry();
- }
-
- Thread::~Thread()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- if (hthread != 0)
- {
- CloseHandle(hthread);
- }
-#else
-#endif
- }
-
- void Thread::start()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- hthread = (HANDLE)_beginthreadex(NULL, 0, runThread, this, 0, NULL);
- if (hthread == 0)
- {
- ostringstream msg;
- msg << "Failed to create thread, errno: " << __doserrno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#else
- int rc =pthread_create(&thread, NULL, runThread, this);
- if (rc)
- {
- ostringstream msg;
- msg << "Failed to create thread, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- void Thread::join()
- {
- logentry();
-
-#if defined(WIN32) || defined (_WINDOWS)
- WaitForSingleObject(hthread, INFINITE);
-#else
- int rc =pthread_join(thread, NULL);
- if (rc)
- {
- ostringstream msg;
- msg << "Failed to join thread, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Thread.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Thread.h deleted file mode 100644 index 2ca9142994..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Thread.h +++ /dev/null @@ -1,90 +0,0 @@ -/*
- * 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.
- */
-
-/* $Rev: 492011 $ $Date: 2007-01-02 18:15:11 -0800 (Tue, 02 Jan 2007) $ */
-
-#ifndef tuscany_sca_util_thread_h
-#define tuscany_sca_util_thread_h
-
-#if defined(WIN32) || defined (_WINDOWS)
-#include <windows.h>
-#else
-#include <pthread.h>
-#endif
-
-#include <queue>
-
-#include "tuscany/sca/export.h"
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * A portable wrapper for native threads.
- */
- class SCA_API Thread
- {
- public:
- /**
- * Constructor.
- */
- Thread();
-
- /**
- * Destructor.
- */
- virtual ~Thread();
-
- /**
- * The method that will be run in the thread.
- */
- virtual void run() = 0;
-
- /**
- * Start the thread.
- */
- void start();
-
- /**
- * Join the thread.
- */
- void join();
-
- private:
-
- /**
- * Native thread handle.
- */
-#if defined(WIN32) || defined (_WINDOWS)
- HANDLE hthread;
-#else
- pthread_t thread;
-#endif
-
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
-#endif // tuscany_sca_util_thread_h
diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp deleted file mode 100644 index 07c99b3cb1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp +++ /dev/null @@ -1,114 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <errno.h> - -#include <sstream> - -#include "tuscany/sca/util/ThreadLocal.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" - -using namespace std; - - -namespace tuscany -{ - namespace sca - { - namespace util - { - ThreadLocal::ThreadLocal() - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - index = TlsAlloc(); - if (index == TLS_OUT_OF_INDEXES) - { - ostringstream msg; - msg << "Failed to create thread local index, error: " << GetLastError(); - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#else - int rc = pthread_key_create(&key, NULL); - if (rc) - { - ostringstream msg; - msg << "Failed to create thread local key, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#endif - } - - ThreadLocal::~ThreadLocal() - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - if (!TlsFree(index)) - { - ostringstream msg; - msg << "Failed to destroy thread local index, error: " << GetLastError(); - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#else - int rc = pthread_key_delete(key); - if (rc) { - ostringstream msg; - msg << "Failed to destroy thread local key, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#endif - } - - void ThreadLocal::setValue(void* value) - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - if (!TlsSetValue(index, value)) - { - ostringstream msg; - msg << "Failed to set thread local value, error: " << GetLastError(); - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#else - int rc = pthread_setspecific(key, value); - if (rc) { - ostringstream msg; - msg << "Failed to set thread local value, errno: " << errno; - throwException(TuscanyRuntimeException, msg.str().c_str()); - } -#endif - } - - void* ThreadLocal::getValue() const - { - logentry(); -#if defined(WIN32) || defined (_WINDOWS) - return TlsGetValue(index); -#else - return pthread_getspecific(key); -#endif - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/ThreadLocal.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/ThreadLocal.h deleted file mode 100644 index 556055f183..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/ThreadLocal.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_threadlocal_h -#define tuscany_sca_util_threadlocal_h - -#if defined(WIN32) || defined (_WINDOWS) -#include <windows.h> -#else -#include <pthread.h> -#endif - -#include "tuscany/sca/export.h" - - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * Information about shared libraries and methods to - * access these shared libraries. - */ - class SCA_API ThreadLocal - { - public: - /** - * Constructor. - */ - ThreadLocal(); - - /** - * Destructor. - */ - virtual ~ThreadLocal(); - - /** - * Set the ThreadLocal value. - */ - void setValue(void *value); - - /** - * Get the ThreadLocal value. - */ - void* getValue() const; - - private: - - /** - * Handle to the thread local key. - */ -#if defined(WIN32) || defined (_WINDOWS) - DWORD index; -#else - pthread_key_t key; -#endif - - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_util_threadlocal_h diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Utils.cpp b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Utils.cpp deleted file mode 100644 index 98a929392d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Utils.cpp +++ /dev/null @@ -1,598 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#if defined(WIN32) || defined (_WINDOWS) -#include <windows.h> -#else -#include <errno.h> -#endif - -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace commonj::sdo; - -namespace tuscany -{ - namespace sca - { - namespace util - { - void Utils::tokeniseUri(const string& uri, string& token1, string& token2) - { - tokeniseString("/", uri, token1, token2); - } - - void Utils::tokeniseQName(const string& qname, string& uri, string& name) - { - tokeniseString("#", qname, uri, name); - if (name == "") - { - name = uri; - uri = ""; - } - } - - void Utils::tokeniseString( - const string& separator, - const string& str, - string& token1, - string& token2) - { - string::size_type sep = str.find(separator); - if (sep != string::npos) - { - int l = separator.length(); - token1 = str.substr(0, sep); - if ( (sep+l) < str.length()) - { - token2 = str.substr(sep+l); - } - else - { - token2 = ""; - } - } - else - { - token1 = str; - token2 = ""; - } - } - - void Utils::rTokeniseString( - const string& separator, - const string& str, - string& token1, - string& token2) - { - string::size_type sep = str.rfind(separator); - if (sep != string::npos) - { - int l = separator.length(); - token1 = str.substr(0, sep); - if ( (sep+l) < str.length()) - { - token2 = str.substr(sep+l); - } - else - { - token2 = ""; - } - } - else - { - token1 = ""; - token2 = str; - } - } - - void Utils::breakpoint() { - // dummy method used to set breakpoints - } - - ////////////////////////////////////////////////////////////////////////// - // Print a DatObject tree - ////////////////////////////////////////////////////////////////////////// - void Utils::tabs(int inc) - { - for (int ind=0; ind <inc; ind++) - { - cout << " "; - } - } - - const bool Utils::compareProperties(DataObjectPtr dataObject1, const Property& prop1, DataObjectPtr dataObject2, const Property& prop2, string& diff) - { - if(strcmp(prop1.getName(),prop2.getName()) != 0) - { - diff.append("Differing names for Properties:\n"); - diff.append(prop1.getName()); - diff.append("\n"); - diff.append(prop2.getName()); - return false; - } - - const Type& propertyType1 = prop1.getType(); - const Type& propertyType2 = prop2.getType(); - - if(strcmp(propertyType1.getName(), propertyType2.getName()) != 0 || - strcmp(propertyType1.getURI(),propertyType2.getURI()) != 0 ) - { - diff.append("Differing types for Properties:\n"); - diff.append(propertyType1.getName()); - diff.append("#"); - diff.append(propertyType1.getURI()); - diff.append("\n"); - diff.append(propertyType2.getName()); - diff.append("#"); - diff.append(propertyType2.getURI()); - return false; - } - if (dataObject1->isSet(prop1) != dataObject2->isSet(prop2)) - { - diff.append("Property "); - diff.append(prop1.getName()); - diff.append(" is set on one DataObject but not the other"); - return false; - } - - if (dataObject1->isSet(prop1)) - { - - if (prop1.isMany() != prop2.isMany()) - { - diff.append("Property "); - diff.append(prop1.getName()); - diff.append(" is many on one DataObject but not the other"); - return false; - } - if (propertyType1.isDataType() != propertyType2.isDataType()) - { - diff.append("Property "); - diff.append(prop1.getName()); - diff.append(" is dataType on one DataObject but not the other"); - return false; - } - - ////////////////////////////////////////////////////////////////////// - // For a many-valued property get the list of values - ////////////////////////////////////////////////////////////////////// - if (prop1.isMany()) - { - DataObjectList& dol1 = dataObject1->getList(prop1); - DataObjectList& dol2 = dataObject2->getList(prop2); - if (dol1.size() != dol2.size()) - { - diff.append("Property "); - diff.append(prop1.getName()); - diff.append(" is many but has differing number of elements"); - return false; - } - - for (unsigned int j = 0; j <dol1.size(); j++) - { - - if (propertyType1.isDataType()) - { - if( strcmp(dol1.getCString(j), dol2.getCString(j)) != 0) - { - diff.append("Differing value for Property "); - diff.append(prop1.getName()); - diff.append("["); - diff += ((int)j); - diff.append("]:\n"); - diff.append(dol1.getCString(j)); - diff.append("\n"); - diff.append(dol2.getCString(j)); - return false; - } - } - else - { - if(!compareDataObjects(dol1[j], dol2[j], diff)) - { - return false; - } - } - } - } // end IsMany - - - ////////////////////////////////////////////////////////////////////// - // For a primitive data type compare the values - ////////////////////////////////////////////////////////////////////// - else if (propertyType1.isDataType()) - { - if( strcmp(dataObject1->getCString(prop1), dataObject2->getCString(prop2)) != 0) - { - diff.append("Differing value for Property "); - diff.append(prop1.getName()); - diff.append(":\n"); - diff.append(dataObject1->getCString(prop1)); - diff.append("\n"); - diff.append(dataObject2->getCString(prop2)); - return false; - } - } - - ////////////////////////////////////////////////////////////////////// - // For a dataobject compare the DOs - ////////////////////////////////////////////////////////////////////// - else - { - if(!compareDataObjects(dataObject1->getDataObject(prop1), dataObject2->getDataObject(prop2), diff)) - { - return false; - } - } - } - return true; - } - - const bool Utils::compareDataObjects(DataObjectPtr dataObject1, DataObjectPtr dataObject2, string& diff) - { - if (!dataObject1 || !dataObject2) - { - diff.append("Cannot compare null DataObjects"); - return false; - } - - const Type& dataObject1Type = dataObject1->getType(); - const Type& dataObject2Type = dataObject2->getType(); - - if( strcmp(dataObject1Type.getURI(), dataObject2Type.getURI()) != 0 || - strcmp(dataObject1Type.getName(), dataObject2Type.getName()) != 0 ) - { - diff.append("DataObject Types differ:\n"); - diff.append(dataObject1Type.getURI()); - diff.append("#"); - diff.append(dataObject1Type.getName()); - diff.append("\n"); - diff.append(dataObject2Type.getURI()); - diff.append("#"); - diff.append(dataObject2Type.getName()); - return false; - } - - ////////////////////////////////////////////////////////////////////////// - // Iterate over all the properties - ////////////////////////////////////////////////////////////////////////// - PropertyList pl1 = dataObject1->getInstanceProperties(); - PropertyList pl2 = dataObject2->getInstanceProperties(); - if (pl1.size() != pl2.size()) - { - diff.append("Differing number of properties"); - return false; - } - - if (pl1.size() != 0) - { - for (unsigned int i = 0; i < pl1.size(); i++) - { - if(!compareProperties(dataObject1, pl1[i], dataObject2, pl2[i], diff)) - { - return false; - } - } - } - else - { - if(dataObject1->getType().isOpenType() != dataObject2->getType().isOpenType() && - dataObject1->getType().isDataObjectType() != dataObject2->getType().isDataObjectType()) - { - diff.append("DataObject is open & DO type on one but not the other"); - return false; - } - - // Compare elements under an open DataObject - if(dataObject1->getType().isOpenType() && dataObject1->getType().isDataObjectType()) - { - SequencePtr sequence1 = dataObject1->getSequence(); - SequencePtr sequence2 = dataObject2->getSequence(); - - if (sequence1 != NULL && sequence2 != NULL) - { - if (sequence1->size() != sequence1->size()) - { - diff.append("Open DataObjects have differing number of elements"); - return false; - } - - for (unsigned int i = 0; i < sequence1->size(); i++) - { - if (sequence1->isText(i) != sequence2->isText(i)) - { - diff.append("Open DataObjects have differing element types at position "); - diff += ((int) i); - return false; - } - if (sequence1->isText(i)) - { - if( strcmp(sequence1->getCStringValue(i), sequence2->getCStringValue(i)) != 0) - { - diff.append("Differing value for element at position "); - diff += ((int) i); - diff.append(":\n"); - diff.append(sequence1->getCStringValue(i)); - diff.append("\n"); - diff.append(sequence2->getCStringValue(i)); - return false; - } - } - else - { - const Property& p1 = sequence1->getProperty(i); - const Property& p2 = sequence2->getProperty(i); - - if(!compareProperties(dataObject1, p1, dataObject2, p2, diff)) - { - return false; - } - } - } - } - } - } - - return true; - } - - void Utils::printDO(DataObjectPtr dataObject, int increment) - { - int inc=increment; - if (!dataObject) - return; - const Type& dataObjectType = dataObject->getType(); - tabs(inc); - cout << "DataObject type: " << dataObjectType.getURI()<< "#" << dataObjectType.getName() << endl; - inc++; - - ////////////////////////////////////////////////////////////////////////// - // Iterate over all the properties - ////////////////////////////////////////////////////////////////////////// - PropertyList pl = dataObject->getInstanceProperties(); - if (pl.size() != 0) - { - for (unsigned int i = 0; i < pl.size(); i++) - { - tabs(inc); - cout << "Property: " << pl[i].getName() << endl; - - const Type& propertyType = pl[i].getType(); - - tabs(inc); - cout << "Property Type: " << propertyType.getURI()<< "#" << propertyType.getName() << endl; - - if (dataObject->isSet(pl[i])) - { - - ////////////////////////////////////////////////////////////////////// - // For a many-valued property get the list of values - ////////////////////////////////////////////////////////////////////// - if (pl[i].isMany()) - { - inc++; - DataObjectList& dol = dataObject->getList(pl[i]); - for (unsigned int j = 0; j <dol.size(); j++) - { - tabs(inc); - cout << "Value " << j <<endl; - inc++; - - if (propertyType.isDataType()) - { - tabs(inc); - cout<< "Property Value: " << dol.getCString(j) <<endl ; - } - else - printDO(dol[j], inc); - inc--; - } - inc--; - } // end IsMany - - - ////////////////////////////////////////////////////////////////////// - // For a primitive data type print the value - ////////////////////////////////////////////////////////////////////// - else if (propertyType.isDataType()) - { - tabs(inc); - cout<< "Property Value: " << dataObject->getCString(pl[i]) <<endl ; - } - - ////////////////////////////////////////////////////////////////////// - // For a dataobject print the do - ////////////////////////////////////////////////////////////////////// - else - { - inc++; - printDO(dataObject->getDataObject(pl[i]), inc); - inc--; - } - } - else - { - tabs(inc); - cout<< "Property Value: not set" <<endl ; - } - - } - } - else - { - // Print elements under an open DataObject - if(dataObject->getType().isOpenType() && dataObject->getType().isDataObjectType()) - { - SequencePtr sequence = dataObject->getSequence(); - if (sequence != NULL) - { - for (unsigned int i = 0; i < sequence->size(); i++) - { - if (sequence->isText(i)) - { - tabs(inc); - cout<< "Text Value: " << sequence->getCStringValue(i) <<endl ; - } - else { - const Property& p = sequence->getProperty(i); - - tabs(inc); - cout << "Property: " << p.getName() << endl; - - const Type& propertyType = p.getType(); - - tabs(inc); - cout << "Property Type: " << propertyType.getURI()<< "#" << propertyType.getName() << endl; - - if (dataObject->isSet(p)) - { - - ////////////////////////////////////////////////////////////////////// - // For a many-valued property get the list of values - ////////////////////////////////////////////////////////////////////// - if (p.isMany()) - { - inc++; - DataObjectList& dol = dataObject->getList(p); - for (unsigned int j = 0; j <dol.size(); j++) - { - tabs(inc); - cout << "Value " << j <<endl; - inc++; - - if (propertyType.isDataType()) - { - tabs(inc); - cout<< "Property Value: " << dol.getCString(j) <<endl ; - } - else - printDO(dol[j], inc); - inc--; - } - inc--; - } // end IsMany - - - ////////////////////////////////////////////////////////////////////// - // For a primitive data type print the value - ////////////////////////////////////////////////////////////////////// - else if (propertyType.isDataType()) - { - tabs(inc); - cout<< "Property Value: " << dataObject->getCString(p) <<endl ; - } - - ////////////////////////////////////////////////////////////////////// - // For a dataobject print the do - ////////////////////////////////////////////////////////////////////// - else - { - inc++; - printDO(dataObject->getDataObject(p), inc); - inc--; - } - } - else - { - tabs(inc); - cout<< "Property Value: not set" <<endl ; - } - } - } - } - } - } - inc--; - } - - void Utils::printTypes(DataFactoryPtr df) - { - ////////////////////////////////////////////////////////////////////////// - // Retrieve the DataFactory from the mediator - // get the list of Types in the DataFactory and list them - ////////////////////////////////////////////////////////////////////////// - TypeList tl = df->getTypes(); - for (unsigned int i = 0; i < tl.size(); i++) - { - cout << "Type: " << tl[i].getURI()<< "#" << tl[i].getName() << endl; - PropertyList pl = tl[i].getProperties(); - for (unsigned int j = 0; j < pl.size(); j++) - { - cout << "\tProperty: " << pl[j].getName() - << " type: " <<pl[j].getType().getURI()<<"#"<<pl[j].getType().getName()<< endl; - - } - } - - } - - void Utils::printType(const Type& type, int increment) - { - int inc = increment; - tabs(inc); - cout << "Type: " << type.getURI()<< "#" << type.getName() << endl; - inc++; - PropertyList pl = type.getProperties(); - for (unsigned int j = 0; j < pl.size(); j++) - { - tabs(inc); - cout << "\tProperty: " << pl[j].getName() - << " type: " <<pl[j].getType().getURI()<<"#"<<pl[j].getType().getName()<< endl; - inc++; - printType(pl[j].getType(), inc); - inc--; - } - } - - void Utils::printLastError(ostream& os) - { -#if defined(WIN32) || defined (_WINDOWS) - DWORD err = GetLastError(); - LPTSTR buf; - FormatMessage( - FORMAT_MESSAGE_ALLOCATE_BUFFER | - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - err, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR) &buf, - 0, NULL ); - - os << (const char *)buf; - LocalFree(buf); -#else - char buf[256]; - strerror_r(errno, buf, 255); - os << buf; -#endif - } - - } // End namespace util - } // End namespace sca -} // End namespace tuscany - diff --git a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Utils.h b/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Utils.h deleted file mode 100644 index bbe1aa812a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/src/tuscany/sca/util/Utils.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_util_utils_h -#define tuscany_sca_util_utils_h - -#include <string> -#include <ostream> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/export.h" - -namespace tuscany -{ - namespace sca - { - namespace util - { - /** - * Utility methods to parse strings and provide debugging information. - */ - class SCA_API Utils { - - public: - static void tokeniseUri(const std::string& uri, std::string& token1, std::string& token2); - static void tokeniseQName(const std::string& sdoname, std::string& uri, std::string& name); - static void tokeniseString( - const std::string& separator, - const std::string& str, - std::string& token1, - std::string& token2); - - static void rTokeniseString( - const std::string& separator, - const std::string& str, - std::string& token1, - std::string& token2); - - static void breakpoint(); - - static void printLastError(std::ostream& os); - - static void printDO(commonj::sdo::DataObjectPtr dataObject, int increment=0); - static void printTypes(commonj::sdo::DataFactoryPtr df); - static void printType(const commonj::sdo::Type& type, int increment=0); - - static const bool compareDataObjects(commonj::sdo::DataObjectPtr dataObject1, commonj::sdo::DataObjectPtr dataObject2, std::string& diff); - static const bool compareProperties(commonj::sdo::DataObjectPtr dataObject1, const commonj::sdo::Property& prop1, commonj::sdo::DataObjectPtr dataObject2, const commonj::sdo::Property& prop2, std::string& diff); - - private: - static void tabs(int increment=0); - }; - - } // End namespace util - } // End namespace sca -} // End namespace tuscany -#endif // tuscany_sca_util_utils_h diff --git a/sca-cpp/trunk/contrib/runtime/core/test/Makefile.am b/sca-cpp/trunk/contrib/runtime/core/test/Makefile.am deleted file mode 100644 index de5c2d1b1e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -# 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. - diff --git a/sca-cpp/trunk/contrib/runtime/core/test/SCATestMacros.h b/sca-cpp/trunk/contrib/runtime/core/test/SCATestMacros.h deleted file mode 100644 index 58c640f8a6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/SCATestMacros.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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. - */ - -/* $Rev: $ $Date: $ */ - -#ifndef sca_tests_macros_h_ -#define sca_tests_macros_h_ - -#include <iostream> - -#define TEST_TRACE( message ) \ - std::cout << "\tTRACE: " << message << std::endl; - -#define TEST_ASSERT( val ) \ - if( ! val ) { \ - std::cout << "Test failed in: " << __FILE__ << ": " << __LINE__ << std::endl; \ - return false; \ - } - -#define TEST_ASSERT_EQUALS( val1, val2 ) \ - if( val1 != val2 ) { \ - std::cout << "Test failed in: " << __FILE__ << ": " << __LINE__ << std::endl; \ - return false; \ - } - -#define TEST_ASSERT_NOT_EQUALS( val1, val2 ) \ - if( val1 == val2 ) { \ - std::cout << "Test failed in: " << __FILE__ << ": " << __LINE__ << std::endl; \ - return false; \ - } - -#define TEST_FAIL( message ) \ - std::cout << "Test failed in: " << __FILE__ << ":" << __LINE__ << ": " << message << std::endl; \ - return false; - -// For this macro, you must have the following variables defined: -// int testsPassed = 0; -// int testsTotal = 0; -// bool retval = false; -// The macro calls the test and increments the total and passed -// tests and logs accordingly -// -#define TEST(testName) \ - ++testsTotal; \ - try { \ - std::cout << "\nTest " << testsTotal << ": " << #testName << " ..... " << std::endl; \ - retval = testName; \ - if (retval) { \ - std::cout << "PASSED" << std::endl; \ - ++testsPassed; \ - } \ - else { \ - std::cout << "FAILED" << std::endl; \ - } \ - } \ - catch(const tuscany::sca::TuscanyRuntimeException &scaE) { \ - std::cout << "FAILED (unexpected SCA exception): " << scaE.getMessageText() \ - << std::endl; \ - } \ - catch(const commonj::sdo::SDORuntimeException &sdoE) { \ - std::cout << "FAILED (unexpected SDO exception): " << sdoE.getMessageText() \ - << std::endl; \ - } \ - catch(...) { \ - std::cout << "FAILED (unexpected unknown exception)" << std::endl; \ - } - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/core/test/main.cpp b/sca-cpp/trunk/contrib/runtime/core/test/main.cpp deleted file mode 100644 index 9f9f733b49..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/main.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/* - * 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. - */ - -/* $Rev: 583039 $ $Date: 2007-10-08 20:49:57 -0700 (Mon, 08 Oct 2007) $ */ - -#pragma warning(disable:4786) - -#include <iostream> - -#include "tuscany/sca/core/Exceptions.h" - -#include "SCATestMacros.h" -#include "wsdlTests/wsdlTests.h" -//#include "compositeTests/compositeTests.h" - -using namespace std; - -extern "C"{ - -int main (int argc, char** argv) -{ - // These variables are used and set by the TEST macro - int testsPassed = 0; - int testsTotal = 0; - bool retval = false; - - try - { - WSDLDefinitionTest wsdlTest; - TEST( wsdlTest.testSimple() ); - - WSDLErrorsTest wsdlErrorsTest; -// TEST( wsdlErrorsTest.testDuplicateWSDLInputOutputBinding() ); // fails, JIRA 1900 -// TEST( wsdlErrorsTest.testDuplicateWSDLMessagePartNames() ); // fails, JIRA 1900 - - TEST( wsdlErrorsTest.testDuplicateWSDLBindings() ); - TEST( wsdlErrorsTest.testDuplicateWSDLMessages() ); - TEST( wsdlErrorsTest.testDuplicateWSDLServices() ); - TEST( wsdlErrorsTest.testDuplicateWSDLPortTypes() ); - - // The following 4 tests fail due to an SDO SPEC limitation: - // According to XSD rules, if a global element xsd:any has - // maxOccurs > 1 you can only have a single valued property - // The multiple SOAP addresses/bindings/bodies/operations should load - // and I should be able to get the list and throw if list.size() > 1 - // but I cant because SDO says its a single value element -// TEST( wsdlErrorsTest.testDuplicateSOAPAddress() ); -// TEST( wsdlErrorsTest.testDuplicateSOAPBinding() ); -// TEST( wsdlErrorsTest.testDuplicateSOAPBody() ); -// TEST( wsdlErrorsTest.testDuplicateSOAPOperation() ); - - TEST( wsdlErrorsTest.testMissingPortBinding() ); - TEST( wsdlErrorsTest.testMissingOperation() ); - TEST( wsdlErrorsTest.testMissingPortType() ); - TEST( wsdlErrorsTest.testMissingMessage() ); - -// TEST( wsdlErrorsTest.testMissingMessagePartName() ); // fails, JIRA 1901 -// TEST( wsdlErrorsTest.testMissingPortName() ); // fails, JIRA 1901 -// TEST( wsdlErrorsTest.testMissingMessagePartType() ); // fails, JIRA 1901 - } - catch(...) - { - // All exceptions should be caught by the TEST macro - - cout << "Unexpected exception caught" << endl; - } - - cout - << "---------------------" - << "\nTest Results" - << "\n\tTotal tests: " << testsTotal - << "\n\tTests passed: " << testsPassed - << "\n\tTests failed: " << testsTotal - testsPassed - << endl; - - return testsTotal - testsPassed; -} - -} diff --git a/sca-cpp/trunk/contrib/runtime/core/test/sca_test.bat b/sca-cpp/trunk/contrib/runtime/core/test/sca_test.bat deleted file mode 100755 index b082dd19ee..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/sca_test.bat +++ /dev/null @@ -1,43 +0,0 @@ -@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 -) - -if "%TUSCANY_SDOCPP%" == "" ( -echo "TUSCANY_SDOCPP not set" -goto end -) - -if "%AXIS2C_HOME%" == "" ( -echo "AXIS2C_HOME not set" -goto end -) - -rem Run the client -set PATH=%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH% - -.\sca_test.exe - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/runtime/core/test/sca_test.sh b/sca-cpp/trunk/contrib/runtime/core/test/sca_test.sh deleted file mode 100755 index 99d268af8e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/sca_test.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/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 - -if [ x$TUSCANY_SDOCPP = x ]; then -echo "TUSCANY_SDOCPP not set" -exit; -fi - -if [ x$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$AXIS2C_HOME/lib:$LD_LIBRARY_PATH - -./sca_test - diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/BaseWsdlTest.cpp b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/BaseWsdlTest.cpp deleted file mode 100755 index 88563e5dfa..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/BaseWsdlTest.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * 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. - */ - -/* $Rev: 583039 $ $Date: 2007-10-08 20:49:57 -0700 (Mon, 08 Oct 2007) $ */ - -#include "BaseWsdlTest.h" - -#include <tuscany/sca/model/WSDLDefinition.h> -#include <commonj/sdo/SDO.h> - -BaseWsdlTest::BaseWsdlTest() -{ - // TODO: Should we possibly make this an arg to this class instead? - char *installRootVar = getenv( "TUSCANY_SCACPP" ); - installRoot_ = installRootVar; -} - -BaseWsdlTest::~BaseWsdlTest() -{ -} - -void BaseWsdlTest::loadXsdHelper() -{ - if( ! (xsdHelper_ == 0) ) - { - return; - } - - try - { - xsdHelper_ = commonj::sdo::HelperProvider::getXSDHelper(); - - std::string filename = installRoot_ + "/xsd/wsdl_11.xsd"; - xsdHelper_->defineFile(filename.c_str()); - - filename = installRoot_ + "/xsd/wsdl_11_http.xsd"; - xsdHelper_->defineFile(filename.c_str()); - - filename = installRoot_ + "/xsd/wsdl_11_mime.xsd"; - xsdHelper_->defineFile(filename.c_str()); - - filename = installRoot_ + "/xsd/wsdl_11_soap.xsd"; - xsdHelper_->defineFile(filename.c_str()); - - filename = installRoot_ + "/xsd/wsdl_11_soap12.xsd"; - xsdHelper_->defineFile(filename.c_str()); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - std::cerr - << "BaseWsdlTest::loadXsdHelper() SDO runtime Exception: " - << sdoE.getMessageText() - << std::endl; - - throw; - } -} - -void BaseWsdlTest::loadXmlHelper() -{ - if( ! (xmlHelper_ == 0) ) - { - return; - } - - if( xsdHelper_ == 0 ) - { - loadXsdHelper(); - } - - try - { - xmlHelper_ = commonj::sdo::HelperProvider::getXMLHelper( xsdHelper_->getDataFactory() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - std::cerr - << "BaseWsdlTest::loadXmlHelper() SDO runtime Exception: " - << sdoE.getMessageText() - << std::endl; - - throw; - } -} - -tuscany::sca::model::WSDLDefinition * -BaseWsdlTest::loadWsdl( const std::string &wsdlPath ) -{ - loadXmlHelper(); - - tuscany::sca::model::WSDLDefinition *wsdl = 0; - - try - { - commonj::sdo::XMLDocumentPtr doc = xmlHelper_->loadFile( wsdlPath ); - wsdl = new tuscany::sca::model::WSDLDefinition( doc->getRootDataObject() ); -//tuscany::sca::util::Utils::printDO(doc->getRootDataObject()); // TODO remove this - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - std::cerr - << "BaseWsdlTest::loadWsdl() SDO runtime Exception: " - << sdoE.getMessageText() - << std::endl; - - throw; - } - - return wsdl; -} - diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/BaseWsdlTest.h b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/BaseWsdlTest.h deleted file mode 100755 index 7a2be5db5f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/BaseWsdlTest.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef sca_tests_wsdl_BaseWsdlTest_h_ -#define sca_tests_wsdl_BaseWsdlTest_h_ - -/* - * 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. - */ - -/* $Rev: 583039 $ $Date: 2007-10-08 20:49:57 -0700 (Mon, 08 Oct 2007) $ */ - -#include <string> - -#include <tuscany/sca/model/WSDLDefinition.h> -#include <commonj/sdo/SDO.h> - -class BaseWsdlTest -{ - public: - - BaseWsdlTest(); - ~BaseWsdlTest(); - - tuscany::sca::model::WSDLDefinition *loadWsdl( const std::string &wsdlPath ); - - private: - void loadXmlHelper(); - void loadXsdHelper(); - - std::string installRoot_; - commonj::sdo::XMLHelperPtr xmlHelper_; - commonj::sdo::XSDHelperPtr xsdHelper_; - -}; - -#endif - diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLDefinitionTest.cpp b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLDefinitionTest.cpp deleted file mode 100755 index df5e22bd68..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLDefinitionTest.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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. - */ - -/* $Rev: 583039 $ $Date: 2007-10-08 20:49:57 -0700 (Mon, 08 Oct 2007) $ */ - -#include <iostream> - -#include "SCATestMacros.h" -#include "WSDLDefinitionTest.h" - -WSDLDefinitionTest::WSDLDefinitionTest() -{ -} - -WSDLDefinitionTest::~WSDLDefinitionTest() -{ -} - -bool WSDLDefinitionTest::testSimple() -{ - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_correct/simple.wsdl" ); - - TEST_ASSERT_EQUALS( - "http://www.tuscany.com/tests/simple.wsdl", - wsdl->getNamespace() ); - - // Get the operation based on portType, operName - tuscany::sca::model::WSDLOperation wsdlOp1 = - wsdl->findOperation( "simplePortType", "simpleOperation" ); - TEST_ASSERT_EQUALS( "simpleOperation", wsdlOp1.getOperationName() ); - - // Get the operation based on service, portName, operName - tuscany::sca::model::WSDLOperation wsdlOp2 = - wsdl->findOperation( "simpleService", "simplePort", "simpleOperation" ); - TEST_ASSERT_EQUALS( "simpleOperation", wsdlOp2.getOperationName() ); - - // Check the operation names - std::list<std::string> operNames = wsdl->getOperations( "simplePortType" ); - TEST_ASSERT_EQUALS( 1, operNames.size() ); - TEST_ASSERT_EQUALS( "simpleOperation", operNames.front() ); - - // Check the port type names - std::list<std::string> portTypeNames = wsdl->getPortTypes(); - TEST_ASSERT_EQUALS( 1, portTypeNames.size() ); - TEST_ASSERT_EQUALS( "simplePortType", portTypeNames.front() ); - - // Everything passed - return true; -} - diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLDefinitionTest.h b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLDefinitionTest.h deleted file mode 100755 index fb536b2153..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLDefinitionTest.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef sca_tests_wsdl_WSDLDefinitionTest_h_ -#define sca_tests_wsdl_WSDLDefinitionTest_h_ - -/* - * 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. - */ - -/* $Rev: 583039 $ $Date: 2007-10-08 20:49:57 -0700 (Mon, 08 Oct 2007) $ */ - -#include "BaseWsdlTest.h" - -class WSDLDefinitionTest : public BaseWsdlTest -{ - - public: - - WSDLDefinitionTest(); - ~WSDLDefinitionTest(); - - bool testSimple(); - -}; - -#endif - diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLErrorsTest.cpp b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLErrorsTest.cpp deleted file mode 100755 index 573c88d7ad..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLErrorsTest.cpp +++ /dev/null @@ -1,545 +0,0 @@ - -#include <iostream> -#include <string> - -#include "SCATestMacros.h" -#include "WSDLErrorsTest.h" - -#include <commonj/sdo/SDO.h> -#include <tuscany/sca/core/Exceptions.h> -#include <tuscany/sca/util/File.h> - -WSDLErrorsTest::WSDLErrorsTest() -{ -} - -WSDLErrorsTest::~WSDLErrorsTest() -{ -} - - - // Each wsdl in the wsdls_erroneous directory will throw a different - // exception, so we need to check for each individual exception - -bool WSDLErrorsTest::testDuplicateWSDLInputOutputBinding() -{ - TEST_TRACE( "Testing erroneous wsdl: duplicate_binding_input.wsdl" ); - - // This test fails because of JIRA 1900 - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_binding_input.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_FAIL( std::string( "Caught unexpected SCA Exception: " ) + scaE.getMessageText() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - TEST_TRACE( "Testing erroneous wsdl: duplicate_binding_output.wsdl" ); - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_binding_output.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_FAIL( std::string( "Caught unexpected SCA Exception: " ) + scaE.getMessageText() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - - -bool WSDLErrorsTest::testDuplicateWSDLMessagePartNames() -{ - TEST_TRACE( "Testing erroneous wsdl: duplicate_partNames.wsdl" ); - - // This test fails because of JIRA 1900 - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_partNames.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_FAIL( std::string( "Caught unexpected SCA Exception: " ) + scaE.getMessageText() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testDuplicateWSDLMessages() -{ - TEST_TRACE( "Testing erroneous wsdl: duplicate_messages.wsdl" ); - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_messages.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_TRACE( std::string( "Caught expected SCA Exception: " ) + scaE.getMessageText() ); - std::string errorText( scaE.getMessageText() ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "message/name" ), std::string::npos ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "cannot be duplicated" ), std::string::npos ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testDuplicateWSDLPortTypes() -{ - TEST_TRACE( "Testing erroneous wsdl: duplicate_portTypes.wsdl" ); - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_portTypes.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_TRACE( std::string( "Caught expected SCA Exception: " ) + scaE.getMessageText() ); - std::string errorText( scaE.getMessageText() ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "portType/name" ), std::string::npos ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "cannot be duplicated" ), std::string::npos ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testDuplicateWSDLBindings() -{ - TEST_TRACE( "Testing erroneous wsdl: duplicate_bindings.wsdl" ); - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_bindings.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_TRACE( std::string( "Caught expected SCA Exception: " ) + scaE.getMessageText() ); - std::string errorText( scaE.getMessageText() ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "binding/name" ), std::string::npos ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "cannot be duplicated" ), std::string::npos ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testDuplicateWSDLServices() -{ - TEST_TRACE( "Testing erroneous wsdl: duplicate_services.wsdl" ); - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_services.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_TRACE( std::string( "Caught expected SCA Exception: " ) + scaE.getMessageText() ); - std::string errorText( scaE.getMessageText() ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "service/name" ), std::string::npos ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "cannot be duplicated" ), std::string::npos ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testDuplicateSOAPAddress() -{ - TEST_TRACE( "Testing erroneous wsdl: duplicate_soap_address.wsdl" ); - - // This test fails due to an SDO SPEC limitation: - // According to XSD rules, if a global element xsd:any has - // maxOccurs > 1 you can only have a single valued property - // The multiple SOAP addresses/bindings/bodies/operations should load - // and I should be able to get the list and throw if list.size() > 1 - // but I cant because SDO says its a single value element - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_soap_address.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_FAIL( std::string( "Caught unexpected SCA Exception: " ) + scaE.getMessageText() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testDuplicateSOAPBinding() -{ - TEST_TRACE( "Testing erroneous wsdl: duplicate_soap_binding.wsdl" ); - - // This test fails due to an SDO SPEC limitation: - // According to XSD rules, if a global element xsd:any has - // maxOccurs > 1 you can only have a single valued property - // The multiple SOAP addresses/bindings/bodies/operations should load - // and I should be able to get the list and throw if list.size() > 1 - // but I cant because SDO says its a single value element - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_soap_binding.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_FAIL( std::string( "Caught unexpected SCA Exception: " ) + scaE.getMessageText() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testDuplicateSOAPBody() -{ - TEST_TRACE( "Testing erroneous wsdl: duplicate_soap_body.wsdl" ); - - // This test fails due to an SDO SPEC limitation: - // According to XSD rules, if a global element xsd:any has - // maxOccurs > 1 you can only have a single valued property - // The multiple SOAP addresses/bindings/bodies/operations should load - // and I should be able to get the list and throw if list.size() > 1 - // but I cant because SDO says its a single value element - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_soap_body.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_FAIL( std::string( "Caught unexpected SCA Exception: " ) + scaE.getMessageText() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testDuplicateSOAPOperation() -{ - TEST_TRACE( "Testing erroneous wsdl: duplicate_soap_operation.wsdl" ); - - // This test fails due to an SDO SPEC limitation: - // According to XSD rules, if a global element xsd:any has - // maxOccurs > 1 you can only have a single valued property - // The multiple SOAP addresses/bindings/bodies/operations should load - // and I should be able to get the list and throw if list.size() > 1 - // but I cant because SDO says its a single value element - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/duplicate_soap_operation.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_FAIL( std::string( "Caught unexpected SCA Exception: " ) + scaE.getMessageText() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testMissingPortBinding() -{ - TEST_TRACE( "Testing erroneous wsdl: missing_binding_for_port.wsdl" ); - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/missing_binding_for_port.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_TRACE( std::string( "Caught expected SCA Exception: " ) + scaE.getMessageText() ); - std::string errorText( scaE.getMessageText() ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "Unable to find binding" ), std::string::npos ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception" ); - } - - return true; -} - -bool WSDLErrorsTest::testMissingOperation() -{ - TEST_TRACE( "Testing erroneous wsdl: missing_operation.wsdl" ); - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/missing_operation.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_TRACE( std::string( "Caught expected SCA Exception: " ) + scaE.getMessageText() ); - std::string errorText( scaE.getMessageText() ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "Unable to find PortType operation" ), std::string::npos ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception" ); - } - - return true; -} - -bool WSDLErrorsTest::testMissingPortType() -{ - TEST_TRACE( "Testing erroneous wsdl: missing_portType.wsdl" ); - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/missing_portType.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_TRACE( std::string( "Caught expected SCA Exception: " ) + scaE.getMessageText() ); - std::string errorText( scaE.getMessageText() ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "Unable to find PortType" ), std::string::npos ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception" ); - } - - return true; -} - -bool WSDLErrorsTest::testMissingMessage() -{ - TEST_TRACE( "Testing erroneous wsdl: missing_message.wsdl" ); - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/missing_message.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_TRACE( std::string( "Caught expected SCA Exception: " ) + scaE.getMessageText() ); - std::string errorText( scaE.getMessageText() ); - TEST_ASSERT_NOT_EQUALS( errorText.find( "unable to find PortType input message" ), std::string::npos ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception" ); - } - - return true; -} - -bool WSDLErrorsTest::testMissingMessagePartName() -{ - TEST_TRACE( "Testing erroneous wsdl: missing_name_for_part.wsdl" ); - - // This test fails because of JIRA 1901 - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/missing_name_for_part.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_FAIL( std::string( "Caught unexpected SCA Exception: " ) + scaE.getMessageText() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testMissingPortName() -{ - TEST_TRACE( "Testing erroneous wsdl: missing_name_for_port.wsdl" ); - - // This test fails because of JIRA 1901 - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/missing_name_for_port.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_FAIL( std::string( "Caught unexpected SCA Exception: " ) + scaE.getMessageText() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - -bool WSDLErrorsTest::testMissingMessagePartType() -{ - TEST_TRACE( "Testing erroneous wsdl: missing_type_for_part.wsdl" ); - - // This test fails because of JIRA 1901 - - try - { - tuscany::sca::model::WSDLDefinition *wsdl = - loadWsdl( "wsdlTests/wsdls_erroneous/missing_type_for_part.wsdl" ); - TEST_FAIL( "Wsdl should have thrown an exception" ); - } - catch( const tuscany::sca::TuscanyRuntimeException &scaE ) - { - TEST_FAIL( std::string( "Caught unexpected SCA Exception: " ) + scaE.getMessageText() ); - } - catch( const commonj::sdo::SDORuntimeException &sdoE ) - { - TEST_FAIL( std::string( "Caught unexpected SDO Exception: " ) + sdoE.getMessageText() ); - } - catch( ... ) - { - TEST_FAIL( "Caught unexpected unknown Exception: " ); - } - - return true; -} - diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLErrorsTest.h b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLErrorsTest.h deleted file mode 100755 index e17d0edd28..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/WSDLErrorsTest.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef sca_tests_wsdl_WSDLErrorsTest_h_ -#define sca_tests_wsdl_WSDLErrorsTest_h_ - -#include "BaseWsdlTest.h" - -class WSDLErrorsTest : public BaseWsdlTest -{ - public: - - WSDLErrorsTest(); - ~WSDLErrorsTest(); - - bool testDuplicateWSDLInputOutputBinding(); - bool testDuplicateWSDLMessagePartNames(); - bool testDuplicateWSDLMessages(); - bool testDuplicateWSDLPortTypes(); - bool testDuplicateWSDLBindings(); - bool testDuplicateWSDLServices(); - bool testDuplicateSOAPAddress(); - bool testDuplicateSOAPBinding(); - bool testDuplicateSOAPBody(); - bool testDuplicateSOAPOperation(); - - bool testMissingPortBinding(); - bool testMissingOperation(); - bool testMissingPortName(); - bool testMissingPortType(); - bool testMissingMessage(); - bool testMissingMessagePartName(); - bool testMissingMessagePartType(); -}; - -#endif - diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdlTests.h b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdlTests.h deleted file mode 100755 index f8d86133c1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdlTests.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef sca_tests_wsdl_wsdlTests_h_ -#define sca_tests_wsdl_wsdlTests_h_ - -/* - * 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. - */ - -/* $Rev: 583039 $ $Date: 2007-10-08 20:49:57 -0700 (Mon, 08 Oct 2007) $ */ - -// This file is included by the main test program -// it just includes all the necessary wsdl headers, -// so the main doesnt have to know about all of them - -#include "wsdlTests/BaseWsdlTest.h" -#include "wsdlTests/WSDLErrorsTest.h" -#include "wsdlTests/WSDLDefinitionTest.h" - -#endif - diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_correct/simple.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_correct/simple.wsdl deleted file mode 100644 index c9fe542dbd..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_correct/simple.wsdl +++ /dev/null @@ -1,74 +0,0 @@ -<?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. ---> - -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://www.tuscany.com/tests/simple.wsdl" - targetNamespace="http://www.tuscany.com/tests/simple.wsdl" - name="simple"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - - <portType name="simplePortType"> - <operation name="simpleOperation"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - - <binding name="simpleBinding" type="tns:simplePortType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <!--soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/--> - <operation name="simpleOperation"> - <soap:operation soapAction="http://www.tuscany.com/test/simpleOperation"/> - - <input> - <soap:body use="literal"/> - <!-- this is a bug in SDO or the wsdl schemas: it parses incorrectly - <soap:body use="encoded" - encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" - namespace="http://www.tuscany.com/tests"/> - --> - </input> - - <output> - <soap:body use="literal"/> - </output> - - </operation> - </binding> - - <service name="simpleService"> - <port name="simplePort" binding="tns:simpleBinding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> - -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_binding_input.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_binding_input.wsdl deleted file mode 100755 index 07423d3556..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_binding_input.wsdl +++ /dev/null @@ -1,67 +0,0 @@ -<?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. ---> - -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> - -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_binding_output.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_binding_output.wsdl deleted file mode 100755 index 4c295bf0f5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_binding_output.wsdl +++ /dev/null @@ -1,67 +0,0 @@ -<?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. ---> - -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> - -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_bindings.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_bindings.wsdl deleted file mode 100755 index 39932da219..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_bindings.wsdl +++ /dev/null @@ -1,77 +0,0 @@ -<?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. ---> - -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> - -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_messages.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_messages.wsdl deleted file mode 100755 index e0388f19d6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_messages.wsdl +++ /dev/null @@ -1,67 +0,0 @@ -<?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. ---> - -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> - -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_partnames.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_partnames.wsdl deleted file mode 100755 index 6b5b1630e0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_partnames.wsdl +++ /dev/null @@ -1,65 +0,0 @@ -<?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. ---> - -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> - -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_portTypes.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_portTypes.wsdl deleted file mode 100755 index 1bbe57bbad..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_portTypes.wsdl +++ /dev/null @@ -1,72 +0,0 @@ -<?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. ---> - -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> - -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_services.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_services.wsdl deleted file mode 100755 index e16d04a5ec..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_services.wsdl +++ /dev/null @@ -1,70 +0,0 @@ -<?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. ---> - -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> - - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> - -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_address.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_address.wsdl deleted file mode 100755 index 01af450396..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_address.wsdl +++ /dev/null @@ -1,46 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost:8090/tests"/> - <soap:address location="http://localhost:8090/tests"/> - </port> - </service> - -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_binding.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_binding.wsdl deleted file mode 100755 index a2dac5e15e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_binding.wsdl +++ /dev/null @@ -1,41 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_body.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_body.wsdl deleted file mode 100755 index 3918b9e6f1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_body.wsdl +++ /dev/null @@ -1,41 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_operation.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_operation.wsdl deleted file mode 100755 index 542d60b7cb..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/duplicate_soap_operation.wsdl +++ /dev/null @@ -1,41 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_binding_for_port.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_binding_for_port.wsdl deleted file mode 100755 index cfcb65f149..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_binding_for_port.wsdl +++ /dev/null @@ -1,43 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - <service name="service"> -<!-- This is the correct form - <port name="port" binding="tns:binding"> ---> - <port name="port"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_message.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_message.wsdl deleted file mode 100755 index ec2d17204d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_message.wsdl +++ /dev/null @@ -1,40 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:bogusMessageName"/> <!-- The error is here --> - <output message="tns:response"/> - </operation> - </portType> - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_name_for_part.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_name_for_part.wsdl deleted file mode 100755 index 4e927e222f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_name_for_part.wsdl +++ /dev/null @@ -1,43 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> -<!-- this is the correct form - <part name="zipcode" type="xsd:string"/> ---> - <part type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_name_for_port.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_name_for_port.wsdl deleted file mode 100755 index f182c01cb6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_name_for_port.wsdl +++ /dev/null @@ -1,43 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - <service name="service"> -<!-- This is the correct form - <port name="port" binding="tns:binding"> ---> - <port binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_operation.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_operation.wsdl deleted file mode 100755 index f1fd4eba9c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_operation.wsdl +++ /dev/null @@ -1,40 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="bogusOperationName"> <!-- The error is here --> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_portType.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_portType.wsdl deleted file mode 100755 index bdfac4d13d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_portType.wsdl +++ /dev/null @@ -1,40 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> - <part name="zipcode" type="xsd:string"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - <binding name="binding" type="tns:bogusPortType"> <!-- The error is here --> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_type_for_part.wsdl b/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_type_for_part.wsdl deleted file mode 100755 index 1706ac2f13..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/test/wsdlTests/wsdls_erroneous/missing_type_for_part.wsdl +++ /dev/null @@ -1,43 +0,0 @@ -<definitions - xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:tns="http://www.tuscany.com/tests/duplicate_services.wsdl" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.tuscany.com/tests/duplicate_services.wsdl" - name="duplicate_services"> - - <message name="request"> -<!-- this is the correct form - <part name="zipcode" type="xsd:string"/> ---> - <part name="zipcode"/> - </message> - <message name="response"> - <part name="host" type="xsd:string"/> - <part name="port" type="xsd:string"/> - </message> - <portType name="portType"> - <!-- Request/response --> - <operation name="test"> - <input message="tns:request"/> - <output message="tns:response"/> - </operation> - </portType> - <binding name="binding" type="tns:portType"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> - <operation name="test"> - <soap:operation soapAction="http://www.tuscany.com/test/duplicate_services"/> - <input> - <soap:body use="literal"/> - </input> - <output> - <soap:body use="literal"/> - </output> - </operation> - </binding> - <service name="service"> - <port name="port" binding="tns:binding"> - <soap:address location="http://localhost/sca/tests"/> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/sca-core.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/sca-core.xsd deleted file mode 100644 index d7661e3994..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/sca-core.xsd +++ /dev/null @@ -1,182 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <element name="componentType" type="sca:ComponentType" /> - <complexType name="ComponentType"> - <sequence> - <element minOccurs="0" maxOccurs="unbounded" name="service" type="sca:ServiceType" /> - <element minOccurs="0" maxOccurs="unbounded" name="reference" type="sca:ReferenceType" /> - <element minOccurs="0" maxOccurs="unbounded" name="property" type="sca:PropertyType" /> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <anyAttribute namespace="##any" processContents="lax" /> - </complexType> - - <element name="composite" type="sca:Composite" /> - <complexType name="Composite"> - <sequence> - <element minOccurs="0" maxOccurs="unbounded" name="include" type="anyURI" /> - <element minOccurs="0" maxOccurs="unbounded" name="service" type="sca:CompositeServiceType" /> - <element minOccurs="0" maxOccurs="unbounded" name="property" type="sca:PropertyType" /> - <element minOccurs="0" maxOccurs="unbounded" name="component" type="sca:Component" /> - <element minOccurs="0" maxOccurs="unbounded" name="reference" type="sca:CompositeReferenceType" /> - <element minOccurs="0" maxOccurs="unbounded" name="wire" type="sca:Wire" /> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="name" type="NCName" use="required" /> - <anyAttribute namespace="##any" processContents="lax" /> - </complexType> - - <complexType name="CompositeServiceType"> - <sequence> - <element ref="sca:interface" minOccurs="1" maxOccurs="1" /> - <element ref="sca:binding" minOccurs="0" maxOccurs="unbounded" /> - <element name="reference" minOccurs="0" maxOccurs="unbounded" type="anyURI" /> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="name" type="NCName" use="required" /> - <attribute name="multiplicity" type="sca:Multiplicity" use="optional" default="1..1" /> - <anyAttribute namespace="##any" processContents="lax" /> - </complexType> - <!-- a multiplicity 1..1 or 0..n sample - <reference>StockQuoteComponent</reference> - type must be URI - a multiplicity 1..n or 0..n sample - <reference>StockQuoteComponent1</reference> - type must be URI - <reference>StockQuoteComponent2</reference> - --> - - - <element name="interface" type="sca:Interface" abstract="true"/> - <complexType name="Interface" abstract="true"/> - - <complexType name="CompositeReferenceType"> - <sequence> - <element ref="sca:interface" minOccurs="1" maxOccurs="1" /> - <element ref="sca:binding" minOccurs="0" maxOccurs="unbounded" /> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="name" type="NCName" use="required" /> - <attribute name="multiplicity" type="sca:Multiplicity" use="optional" default="1..1" /> - <attribute name="override" type="sca:OverrideOptions" default="may" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </complexType> - - <complexType name="ServiceType"> - <sequence> - <element ref="sca:interface" minOccurs="1" maxOccurs="1" /> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="name" type="NCName" use="required" /> - <anyAttribute namespace="##any" processContents="lax" /> - </complexType> - - <complexType name="ReferenceType"> - <sequence> - <element ref="sca:interface" minOccurs="1" maxOccurs="1" /> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="name" type="NCName" use="required" /> - <attribute name="multiplicity" type="sca:Multiplicity" use="optional" default="1..1" /> - <attribute name="override" type="sca:OverrideOptions" default="may" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </complexType> - - <complexType name="PropertyType"> - <complexContent> - <extension base="anyType"> - <attribute name="name" type="NCName" use="required" /> - <attribute name="type" type="QName" use="required" /> - <attribute name="many" type="boolean" default="false" use="optional" /> - <attribute name="override" type="sca:OverrideOptions" default="may" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> - - <element name="binding" type="sca:Binding" abstract="true" /> - <complexType name="Binding" abstract="true"> - <attribute name="uri" type="anyURI" use="optional" /> - </complexType> - - <complexType name="Component"> - <sequence> - <element ref="sca:implementation" minOccurs="1" maxOccurs="1" /> - <element name="reference" type="sca:Reference" minOccurs="0" maxOccurs="unbounded" /> - <element name="property" type="sca:Property" minOccurs="0" maxOccurs="unbounded" /> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="name" type="NCName" use="required" /> - <anyAttribute namespace="##any" processContents="lax" /> - </complexType> - - <complexType name="Property"> - <complexContent> - <extension base="anyType"> - <attribute name="name" type="NCName" use="required" /> - <attribute name="source" type="string" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> - - <complexType name="Reference"> - <simpleContent> - <extension base="anyURI"> - <attribute name="name" type="NCName" use="required" /> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </simpleContent> - </complexType> - - <element name="implementation" type="sca:Implementation" abstract="true" /> - <complexType name="Implementation" abstract="true"/> - - <complexType name="Wire"> - <sequence> - <element name="source" type="anyURI" minOccurs="1" maxOccurs="1" /> - <element name="target" type="anyURI" minOccurs="1" maxOccurs="1" /> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <anyAttribute namespace="##any" processContents="lax" /> - </complexType> - - <simpleType name="Multiplicity"> - <restriction base="string"> - <enumeration value="0..1" /> - <enumeration value="1..1" /> - <enumeration value="0..n" /> - <enumeration value="1..n" /> - </restriction> - </simpleType> - - <simpleType name="OverrideOptions"> - <restriction base="string"> - <enumeration value="no" /> - <enumeration value="may" /> - <enumeration value="must" /> - </restriction> - </simpleType> - -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/sca-implementation-composite.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/sca-implementation-composite.xsd deleted file mode 100644 index 4bcc6747ba..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/sca-implementation-composite.xsd +++ /dev/null @@ -1,38 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <element name="implementation.composite" type="sca:SCAImplementation" substitutionGroup="sca:implementation"/> - <complexType name="SCAImplementation"> - <complexContent> - <extension base="sca:Implementation"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="name" type="NCName" use="required" /> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/sca-implementation-java.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/sca-implementation-java.xsd deleted file mode 100644 index e20f0a9b50..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/sca-implementation-java.xsd +++ /dev/null @@ -1,38 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <element name="implementation.java" type="sca:JavaImplementation" substitutionGroup="sca:implementation"/> - <complexType name="JavaImplementation"> - <complexContent> - <extension base="sca:Implementation"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="class" type="NCName" use="required" /> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/sca-interface-java.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/sca-interface-java.xsd deleted file mode 100644 index a6028c1434..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/sca-interface-java.xsd +++ /dev/null @@ -1,39 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <element name="interface.java" type="sca:JavaInterface" substitutionGroup="sca:interface"/> - <complexType name="JavaInterface"> - <complexContent> - <extension base="sca:Interface"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="interface" type="NCName" use="required" /> - <attribute name="callbackInterface" type="NCName" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/sca-interface-wsdl.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/sca-interface-wsdl.xsd deleted file mode 100644 index a3de838b7e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/sca-interface-wsdl.xsd +++ /dev/null @@ -1,39 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <element name="interface.wsdl" type="sca:WSDLPortType" substitutionGroup="sca:interface"/> - <complexType name="WSDLPortType"> - <complexContent> - <extension base="sca:Interface"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="interface" type="anyURI" use="required" /> - <attribute name="callbackInterface" type="anyURI" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/sca.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/sca.xsd deleted file mode 100644 index 8853f25c11..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/sca.xsd +++ /dev/null @@ -1,31 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"> - - <include schemaLocation="sca-core.xsd" /> - <include schemaLocation="sca-interface-java.xsd" /> - <include schemaLocation="sca-interface-wsdl.xsd" /> - <include schemaLocation="sca-implementation-java.xsd" /> - <include schemaLocation="sca-implementation-composite.xsd" /> - -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/tuscany.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/tuscany.xsd deleted file mode 100644 index 8bad940782..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/tuscany.xsd +++ /dev/null @@ -1,50 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://org.apache.tuscany/xmlns/cpp/1.0" - xmlns:tuscany="http://org.apache.tuscany/xmlns/cpp/1.0" - elementFormDefault="qualified"> - - <element name="tuscany-model" type="tuscany:ModelType"/> - <complexType name="ModelType"> - <sequence> - <element minOccurs="0" maxOccurs="1" name="wsdl" type="tuscany:WSDLType"/> - <element minOccurs="0" maxOccurs="1" name="xsd" type="tuscany:XSDType"/> - </sequence> - </complexType> - - <complexType name="WSDLType"> - <sequence> - <element minOccurs="0" maxOccurs="unbounded" name="file" type="tuscany:FileType"/> - </sequence> - </complexType> - - <complexType name="XSDType"> - <sequence> - <element minOccurs="0" maxOccurs="unbounded" name="file" type="tuscany:FileType"/> - </sequence> - </complexType> - - <complexType name="FileType"> - <attribute name="name" type="NCName" use="required"/> - </complexType> - -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11.xsd deleted file mode 100644 index 7cfdc5b58b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11.xsd +++ /dev/null @@ -1,307 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - -Copyright 2001 - 2005, International Business Machines Corporation and Microsoft Corporation -All Rights Reserved - -License for WSDL Schema Files - -The Authors grant permission to copy and distribute the WSDL Schema -Files in any medium without fee or royalty as long as this notice and -license are distributed with them. The originals of these files can -be located at: - -http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd - -THESE SCHEMA FILES ARE PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS -OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THESE FILES, INCLUDING, BUT NOT -LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, -NON-INFRINGEMENT OR TITLE. THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, -INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR -RELATING TO ANY USE OR DISTRIBUTION OF THESE FILES. - -The name and trademarks of the Authors may NOT be used in any manner, -including advertising or publicity pertaining to these files or any program -or service that uses these files, written prior permission. Title to copyright -in these files will at all times remain with the Authors. - -No other rights are granted by implication, estoppel or otherwise. - - ---> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified"> - - <xs:complexType mixed="true" name="tDocumentation"> - <xs:sequence> - <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="tDocumented"> - <xs:annotation> - <xs:documentation> - This type is extended by component types to allow them to be documented - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:element name="documentation" type="wsdl:tDocumentation" minOccurs="0"/> - </xs:sequence> - </xs:complexType> - - <xs:complexType name="tExtensibleAttributesDocumented" abstract="true"> - <xs:complexContent> - <xs:extension base="wsdl:tDocumented"> - <xs:annotation> - <xs:documentation> - This type is extended by component types to allow attributes from other namespaces to be added. - </xs:documentation> - </xs:annotation> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tExtensibleDocumented" abstract="true"> - <xs:complexContent> - <xs:extension base="wsdl:tDocumented"> - <xs:annotation> - <xs:documentation> - This type is extended by component types to allow elements from other namespaces to be added. - </xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" processContents="lax"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:element name="definitions" type="wsdl:tDefinitions"> - <xs:key name="message"> - <xs:selector xpath="wsdl:message"/> - <xs:field xpath="@name"/> - </xs:key> - <xs:key name="portType"> - <xs:selector xpath="wsdl:portType"/> - <xs:field xpath="@name"/> - </xs:key> - <xs:key name="binding"> - <xs:selector xpath="wsdl:binding"/> - <xs:field xpath="@name"/> - </xs:key> - <xs:key name="service"> - <xs:selector xpath="wsdl:service"/> - <xs:field xpath="@name"/> - </xs:key> - <xs:key name="import"> - <xs:selector xpath="wsdl:import"/> - <xs:field xpath="@namespace"/> - </xs:key> - </xs:element> - - <xs:group name="anyTopLevelOptionalElement"> - <xs:annotation> - <xs:documentation> - Any top level optional element allowed to appear more then once - any child of definitions element except wsdl:types. Any extensibility element is allowed in any place. - </xs:documentation> - </xs:annotation> - <xs:choice> - <xs:element name="import" type="wsdl:tImport"/> - <xs:element name="types" type="wsdl:tTypes"/> - <xs:element name="message" type="wsdl:tMessage"> - <xs:unique name="part"> - <xs:selector xpath="wsdl:part"/> - <xs:field xpath="@name"/> - </xs:unique> - </xs:element> - <xs:element name="portType" type="wsdl:tPortType"/> - <xs:element name="binding" type="wsdl:tBinding"/> - <xs:element name="service" type="wsdl:tService"> - <xs:unique name="port"> - <xs:selector xpath="wsdl:port"/> - <xs:field xpath="@name"/> - </xs:unique> - </xs:element> - </xs:choice> - </xs:group> - - <xs:complexType name="tDefinitions"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleDocumented"> - <xs:sequence> - <xs:group ref="wsdl:anyTopLevelOptionalElement" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="targetNamespace" type="xs:anyURI" use="optional"/> - <xs:attribute name="name" type="xs:NCName" use="optional"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tImport"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleAttributesDocumented"> - <xs:attribute name="namespace" type="xs:anyURI" use="required"/> - <xs:attribute name="location" type="xs:anyURI" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tTypes"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleDocumented"/> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tMessage"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleDocumented"> - <xs:sequence> - <xs:element name="part" type="wsdl:tPart" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="name" type="xs:NCName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tPart"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleAttributesDocumented"> - <xs:attribute name="name" type="xs:NCName" use="required"/> - <xs:attribute name="element" type="xs:QName" use="optional"/> - <xs:attribute name="type" type="xs:QName" use="optional"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tPortType"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleAttributesDocumented"> - <xs:sequence> - <xs:element name="operation" type="wsdl:tOperation" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="name" type="xs:NCName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tOperation"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleDocumented"> - <xs:sequence> - <xs:choice> - <xs:group ref="wsdl:request-response-or-one-way-operation"/> - <xs:group ref="wsdl:solicit-response-or-notification-operation"/> - </xs:choice> - </xs:sequence> - <xs:attribute name="name" type="xs:NCName" use="required"/> - <xs:attribute name="parameterOrder" type="xs:NMTOKENS" use="optional"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:group name="request-response-or-one-way-operation"> - <xs:sequence> - <xs:element name="input" type="wsdl:tParam"/> - <xs:sequence minOccurs="0"> - <xs:element name="output" type="wsdl:tParam"/> - <xs:element name="fault" type="wsdl:tFault" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:sequence> - </xs:group> - - <xs:group name="solicit-response-or-notification-operation"> - <xs:sequence> - <xs:element name="output" type="wsdl:tParam"/> - <xs:sequence minOccurs="0"> - <xs:element name="input" type="wsdl:tParam"/> - <xs:element name="fault" type="wsdl:tFault" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:sequence> - </xs:group> - - <xs:complexType name="tParam"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleAttributesDocumented"> - <xs:attribute name="name" type="xs:NCName" use="optional"/> - <xs:attribute name="message" type="xs:QName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tFault"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleAttributesDocumented"> - <xs:attribute name="name" type="xs:NCName" use="required"/> - <xs:attribute name="message" type="xs:QName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tBinding"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleDocumented"> - <xs:sequence> - <xs:element name="operation" type="wsdl:tBindingOperation" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="name" type="xs:NCName" use="required"/> - <xs:attribute name="type" type="xs:QName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tBindingOperationMessage"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleDocumented"> - <xs:attribute name="name" type="xs:NCName" use="optional"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tBindingOperationFault"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleDocumented"> - <xs:attribute name="name" type="xs:NCName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tBindingOperation"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleDocumented"> - <xs:sequence> - <xs:element name="input" type="wsdl:tBindingOperationMessage" minOccurs="0"/> - <xs:element name="output" type="wsdl:tBindingOperationMessage" minOccurs="0"/> - <xs:element name="fault" type="wsdl:tBindingOperationFault" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="name" type="xs:NCName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tService"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleDocumented"> - <xs:sequence> - <xs:element name="port" type="wsdl:tPort" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="name" type="xs:NCName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="tPort"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibleDocumented"> - <xs:attribute name="name" type="xs:NCName" use="required"/> - <xs:attribute name="binding" type="xs:QName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:attribute name="arrayType" type="xs:string"/> - <xs:attribute name="required" type="xs:boolean"/> - <xs:complexType name="tExtensibilityElement" abstract="true"> - <xs:attribute ref="wsdl:required" use="optional"/> - </xs:complexType> - -</xs:schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_http.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_http.xsd deleted file mode 100644 index 7003bf29d8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_http.xsd +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - -Copyright 2001 - 2005, International Business Machines Corporation and Microsoft Corporation -All Rights Reserved - -License for WSDL Schema Files - -The Authors grant permission to copy and distribute the WSDL Schema -Files in any medium without fee or royalty as long as this notice and -license are distributed with them. The originals of these files can -be located at: - -http://schemas.xmlsoap.org/wsdl/http/wsdl-http.xsd - -THESE SCHEMA FILES ARE PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS -OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THESE FILES, INCLUDING, BUT NOT -LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, -NON-INFRINGEMENT OR TITLE. THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, -INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR -RELATING TO ANY USE OR DISTRIBUTION OF THESE FILES. - -The name and trademarks of the Authors may NOT be used in any manner, -including advertising or publicity pertaining to these files or any program -or service that uses these files, written prior permission. Title to copyright -in these files will at all times remain with the Authors. - -No other rights are granted by implication, estoppel or otherwise. - - - - --> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://schemas.xmlsoap.org/wsdl/http/"> - - <import schemaLocation="wsdl_11.xsd" namespace="http://schemas.xmlsoap.org/wsdl/"/> - - <element name="address" type="http:addressType"/> - - <complexType name="addressType"> - <complexContent> - <extension base="wsdl:tExtensibilityElement"> - <sequence/> - <attribute name="location" type="anyURI" use="required"/> - </extension> - </complexContent> - </complexType> - - <element name="binding" type="http:bindingType"/> - <complexType name="bindingType"> - <complexContent> - <extension base="wsdl:tExtensibilityElement"> - <sequence/> - <attribute name="verb" type="NMTOKEN" use="required"/> - </extension> - </complexContent> - </complexType> - - <element name="operation" type="http:operationType"/> - <complexType name="operationType"> - <complexContent> - <extension base="wsdl:tExtensibilityElement"> - <sequence/> - <attribute name="location" type="anyURI" use="required"/> - </extension> - </complexContent> - </complexType> - - <element name="urlEncoded"> - <complexType/> - </element> - <element name="urlReplacement"> - <complexType/> - </element> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_mime.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_mime.xsd deleted file mode 100644 index 46c62c822c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_mime.xsd +++ /dev/null @@ -1,71 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - -Copyright 2001-2005, International Business Machines Corporation and Microsoft Corporation -All Rights Reserved - -License for WSDL Schema Files - -The Authors grant permission to copy and distribute the WSDL Schema -Files in any medium without fee or royalty as long as this notice and -license are distributed with them. The originals of these files can -be located at: - -http://schemas.xmlsoap.org/wsdl/mime/2002-01-29.xsd - -THESE SCHEMA FILES ARE PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS -OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THESE FILES, INCLUDING, BUT NOT -LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, -NON-INFRINGEMENT OR TITLE. THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, -INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR -RELATING TO ANY USE OR DISTRIBUTION OF THESE FILES. - -The name and trademarks of the Authors may NOT be used in any manner, -including advertising or publicity pertaining to these files or any program -or service that uses these files, written prior permission. Title to copyright -in these files will at all times remain with the Authors. - -No other rights are granted by implication, estoppel or otherwise. - - - --> -<schema targetNamespace="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://www.w3.org/2001/XMLSchema"> - - <import schemaLocation="wsdl_11.xsd" namespace="http://schemas.xmlsoap.org/wsdl/"/> - - <element name="content" type="mime:contentType"/> - <complexType name="contentType"> - <complexContent> - <extension base="wsdl:tExtensibilityElement"> - <sequence/> - <attribute name="type" type="string" use="optional"/> - <attribute name="part" type="NMTOKEN" use="optional"/> - </extension> - </complexContent> - </complexType> - <element name="multipartRelated" type="mime:multipartRelatedType"/> - <complexType name="multipartRelatedType"> - <complexContent> - <extension base="wsdl:tExtensibilityElement"> - <sequence> - <element name="part" type="mime:tPart" minOccurs="0" maxOccurs="unbounded"/> - </sequence> - </extension> - </complexContent> - </complexType> - <complexType name="tPart"> - <sequence> - <any namespace="##targetNamespace" minOccurs="0" maxOccurs="unbounded"/> - </sequence> - <attribute name="name" type="NMTOKEN" use="required"/> - </complexType> - <element name="mimeXml" type="mime:tMimeXml"/> - <complexType name="tMimeXml"> - <complexContent> - <extension base="wsdl:tExtensibilityElement"> - <sequence/> - <attribute name="part" type="NMTOKEN" use="optional"/> - </extension> - </complexContent> - </complexType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_soap.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_soap.xsd deleted file mode 100644 index 800059d6b0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_soap.xsd +++ /dev/null @@ -1,146 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - -Copyright 2001 - 2005, International Business Machines Corporation and Microsoft Corporation -All Rights Reserved - -License for WSDL Schema Files - -The Authors grant permission to copy and distribute the WSDL Schema -Files in any medium without fee or royalty as long as this notice and -license are distributed with them. The originals of these files can -be located at: - -http://schemas.xmlsoap.org/wsdl/soap/2003-02-11.xsd - -THESE SCHEMA FILES ARE PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS -OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THESE FILES, INCLUDING, BUT NOT -LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, -NON-INFRINGEMENT OR TITLE. THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, -INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR -RELATING TO ANY USE OR DISTRIBUTION OF THESE FILES. - -The name and trademarks of the Authors may NOT be used in any manner, -including advertising or publicity pertaining to these files or any program -or service that uses these files, written prior permission. Title to copyright -in these files will at all times remain with the Authors. - -No other rights are granted by implication, estoppel or otherwise. - - ---> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://schemas.xmlsoap.org/wsdl/soap/"> - - <xs:import schemaLocation="wsdl_11.xsd" namespace="http://schemas.xmlsoap.org/wsdl/"/> - - <xs:simpleType name="encodingStyle"> - <xs:annotation> - <xs:documentation> - "encodingStyle" indicates any canonicalization conventions followed in the contents of the containing element. For example, the value "http://schemas.xmlsoap.org/soap/encoding/" indicates the pattern described in SOAP specification - </xs:documentation> - </xs:annotation> - <xs:list itemType="xs:anyURI"/> - </xs:simpleType> - - <xs:element name="binding" type="soap:tBinding"/> - <xs:complexType name="tBinding"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibilityElement"> - <xs:attribute name="transport" type="xs:anyURI" use="required"/> - <xs:attribute name="style" type="soap:tStyleChoice" use="optional"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:simpleType name="tStyleChoice"> - <xs:restriction base="xs:string"> - <xs:enumeration value="rpc"/> - <xs:enumeration value="document"/> - </xs:restriction> - </xs:simpleType> - - <xs:element name="operation" type="soap:tOperation"/> - <xs:complexType name="tOperation"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibilityElement"> - <xs:attribute name="soapAction" type="xs:anyURI" use="optional"/> - <xs:attribute name="style" type="soap:tStyleChoice" use="optional"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:element name="body" type="soap:tBody"/> - <xs:attributeGroup name="tBodyAttributes"> - <xs:attribute name="encodingStyle" type="soap:encodingStyle" use="optional"/> - <xs:attribute name="use" type="soap:useChoice" use="optional"/> - <xs:attribute name="namespace" type="xs:anyURI" use="optional"/> - </xs:attributeGroup> - <xs:complexType name="tBody"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibilityElement"> - <xs:attribute name="parts" type="xs:NMTOKENS" use="optional"/> - <xs:attributeGroup ref="soap:tBodyAttributes"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:simpleType name="useChoice"> - <xs:restriction base="xs:string"> - <xs:enumeration value="literal"/> - <xs:enumeration value="encoded"/> - </xs:restriction> - </xs:simpleType> - - <xs:element name="fault" type="soap:tFault"/> - <xs:complexType name="tFaultRes" abstract="true"> - <xs:complexContent> - <xs:restriction base="soap:tBody"> - <xs:attribute ref="wsdl:required" use="optional"/> - <xs:attribute name="parts" type="xs:NMTOKENS" use="prohibited"/> - <xs:attributeGroup ref="soap:tBodyAttributes"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - <xs:complexType name="tFault"> - <xs:complexContent> - <xs:extension base="soap:tFaultRes"> - <xs:attribute name="name" type="xs:NCName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - - <xs:element name="header" type="soap:tHeader"/> - <xs:attributeGroup name="tHeaderAttributes"> - <xs:attribute name="message" type="xs:QName" use="required"/> - <xs:attribute name="part" type="xs:NMTOKEN" use="required"/> - <xs:attribute name="use" type="soap:useChoice" use="required"/> - <xs:attribute name="encodingStyle" type="soap:encodingStyle" use="optional"/> - <xs:attribute name="namespace" type="xs:anyURI" use="optional"/> - </xs:attributeGroup> - <xs:complexType name="tHeader"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibilityElement"> - <xs:sequence> - <xs:element ref="soap:headerfault" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attributeGroup ref="soap:tHeaderAttributes"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:element name="headerfault" type="soap:tHeaderFault"/> - <xs:complexType name="tHeaderFault"> - <xs:attributeGroup ref="soap:tHeaderAttributes"/> - </xs:complexType> - - <xs:element name="address" type="soap:tAddress"/> - <xs:complexType name="tAddress"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibilityElement"> - <xs:attribute name="location" type="xs:anyURI" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - -</xs:schema> diff --git a/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_soap12.xsd b/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_soap12.xsd deleted file mode 100644 index 281f2c0deb..0000000000 --- a/sca-cpp/trunk/contrib/runtime/core/xsd/wsdl_11_soap12.xsd +++ /dev/null @@ -1,140 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - -Copyright 2001 - 2006, International Business Machines Corporation and Microsoft Corporation -All Rights Reserved - -License for WSDL 1.1 Binding Extension for SOAP 1.2 Schema Files - -The Authors grant permission to copy and distribute the WSDL 1.1 Binding Extension for SOAP 1.2 Schema Files in any medium without fee or royalty as long as this notice and license are distributed with them. The originals of these files can be located at: - -http://schemas.xmlsoap.org/wsdl/soap12/wsdl11soap12.xsd - -THESE SCHEMA FILES ARE PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THESE FILES, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT OR TITLE. THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THESE FILES. - -The name and trademarks of the Authors may NOT be used in any manner, including advertising or publicity pertaining to these files or any program or service that uses these files, written prior permission. Title to copyright in these files will at all times remain with the Authors. - -No other rights are granted by implication, estoppel or otherwise. - - ---> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsoap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://schemas.xmlsoap.org/wsdl/soap12/"> - - <xs:import schemaLocation="wsdl_11.xsd" namespace="http://schemas.xmlsoap.org/wsdl/"/> - - <xs:complexType name="tExtensibilityElementOpenAttrs"> - <xs:complexContent> - <xs:extension base="wsdl:tExtensibilityElement"> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:element name="binding" type="wsoap12:tBinding"/> - <xs:complexType name="tBinding"> - <xs:complexContent> - <xs:extension base="wsoap12:tExtensibilityElementOpenAttrs"> - <xs:attribute name="transport" type="xs:anyURI" use="required"/> - <xs:attribute name="style" type="wsoap12:tStyleChoice" use="optional"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:simpleType name="tStyleChoice"> - <xs:restriction base="xs:string"> - <xs:enumeration value="rpc"/> - <xs:enumeration value="document"/> - </xs:restriction> - </xs:simpleType> - - <xs:element name="operation" type="wsoap12:tOperation"/> - <xs:complexType name="tOperation"> - <xs:complexContent> - <xs:extension base="wsoap12:tExtensibilityElementOpenAttrs"> - <xs:attribute name="soapAction" type="xs:anyURI" use="optional"/> - <xs:attribute name="soapActionRequired" type="xs:boolean" use="optional"/> - <xs:attribute name="style" type="wsoap12:tStyleChoice" use="optional"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:element name="body" type="wsoap12:tBody"/> - <xs:attributeGroup name="tBodyAttributes"> - <!-- The encodingStyle attribute is now a single URI, instead of a list of URIs --> - <xs:attribute name="encodingStyle" type="xs:anyURI" use="optional"/> - <xs:attribute name="use" type="wsoap12:useChoice" use="optional"/> - <xs:attribute name="namespace" type="xs:anyURI" use="optional"/> - </xs:attributeGroup> - <xs:simpleType name="tParts"> - <xs:list itemType="xs:NMTOKEN"/> - </xs:simpleType> - <xs:complexType name="tBody"> - <xs:complexContent> - <xs:extension base="wsoap12:tExtensibilityElementOpenAttrs"> - <xs:attribute name="parts" type="wsoap12:tParts" use="optional"/> - <xs:attributeGroup ref="wsoap12:tBodyAttributes"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:simpleType name="useChoice"> - <xs:restriction base="xs:string"> - <xs:enumeration value="literal"/> - <xs:enumeration value="encoded"/> - </xs:restriction> - </xs:simpleType> - - <xs:element name="fault" type="wsoap12:tFault"/> - <xs:complexType name="tFaultRes" abstract="true"> - <xs:complexContent> - <xs:restriction base="wsoap12:tBody"> - <xs:attribute ref="wsdl:required" use="optional"/> - <xs:attribute name="parts" type="wsoap12:tParts" use="prohibited"/> - <xs:attributeGroup ref="wsoap12:tBodyAttributes"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - <xs:complexType name="tFault"> - <xs:complexContent> - <xs:extension base="wsoap12:tFaultRes"> - <xs:attribute name="name" type="xs:NCName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - - <xs:element name="header" type="wsoap12:tHeader"/> - <xs:attributeGroup name="tHeaderAttributes"> - <xs:attribute name="message" type="xs:QName" use="required"/> - <xs:attribute name="part" type="xs:NMTOKEN" use="required"/> - <xs:attribute name="use" type="wsoap12:useChoice" use="required"/> - <xs:attribute name="encodingStyle" type="xs:anyURI" use="optional"/> - <xs:attribute name="namespace" type="xs:anyURI" use="optional"/> - </xs:attributeGroup> - <xs:complexType name="tHeader"> - <xs:complexContent> - <xs:extension base="wsoap12:tExtensibilityElementOpenAttrs"> - <xs:sequence> - <xs:element ref="wsoap12:headerfault" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attributeGroup ref="wsoap12:tHeaderAttributes"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:element name="headerfault" type="wsoap12:tHeaderFault"/> - <xs:complexType name="tHeaderFault"> - <xs:attributeGroup ref="wsoap12:tHeaderAttributes"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:complexType> - - <xs:element name="address" type="wsoap12:tAddress"/> - <xs:complexType name="tAddress"> - <xs:complexContent> - <xs:extension base="wsoap12:tExtensibilityElementOpenAttrs"> - <xs:attribute name="location" type="xs:anyURI" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - -</xs:schema> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/Makefile.am deleted file mode 100644 index 1cc28fe80e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/Makefile.am +++ /dev/null @@ -1,45 +0,0 @@ -# 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. - -if WANT_ALL - CPP_EXTENSION = cpp - PYTHON_EXTENSION = python - RUBY_EXTENSION = ruby - WSBINDING_EXTENSION = ws - SCABINDING_EXTENSION = sca - RESTBINDING_EXTENSION = rest -endif -if WANT_CPP - CPP_EXTENSION = cpp -endif -if WANT_PYTHON - PYTHON_EXTENSION = python -endif -if WANT_RUBY - RUBY_EXTENSION = ruby -endif - -if WANT_WSBINDING - WSBINDING_EXTENSION = ws -endif -if WANT_SCABINDING - SCABINDING_EXTENSION = sca -endif -if WANT_RESTBINDING - RESTBINDING_EXTENSION = rest -endif -SUBDIRS = ${CPP_EXTENSION} ${WSBINDING_EXTENSION} ${SCABINDING_EXTENSION} ${RESTBINDING_EXTENSION} ${PYTHON_EXTENSION} ${RUBY_EXTENSION} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/cpp/Makefile.am deleted file mode 100644 index 3ef2b728b3..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -# 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. - -SUBDIRS = src tools - -datadir=$(prefix)/extensions/cpp - -nobase_data_DATA = xsd/*.xsd - -EXTRA_DIST = xsd diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/Makefile.am deleted file mode 100644 index f234261f5b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/Makefile.am +++ /dev/null @@ -1,55 +0,0 @@ -# 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. - -libdir=$(prefix)/extensions/cpp/lib - -lib_LTLIBRARIES = libtuscany_sca_cpp.la -includedir=$(prefix)/extensions/cpp/include -nobase_include_HEADERS = \ -osoa/sca/*.h \ -tuscany/sca/cpp/*.h \ -tuscany/sca/cpp/model/*.h - -libtuscany_sca_cpp_la_SOURCES = \ -osoa/sca/ComponentContext.cpp \ -osoa/sca/CompositeContext.cpp \ -tuscany/sca/cpp/ComponentContextImpl.cpp \ -tuscany/sca/cpp/CompositeContextImpl.cpp \ -tuscany/sca/cpp/CPPExtension.cpp \ -tuscany/sca/cpp/CPPImplementationExtension.cpp \ -tuscany/sca/cpp/CPPInterfaceExtension.cpp \ -tuscany/sca/cpp/CPPServiceProxy.cpp \ -tuscany/sca/cpp/CPPServiceWrapper.cpp \ -tuscany/sca/cpp/TuscanyRuntime.cpp \ -tuscany/sca/cpp/model/CPPImplementation.cpp \ -tuscany/sca/cpp/model/CPPInterface.cpp \ -tuscany/sca/cpp/model/CPPReferenceBinding.cpp \ -tuscany/sca/cpp/model/CPPServiceBinding.cpp - -libtuscany_sca_cpp_la_LIBADD = -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca - -INCLUDES = -Imodel -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include - -moduledir=$(prefix)/extensions/cpp/module -extension = libtuscany_sca_cpp$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/ComponentContext.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/ComponentContext.cpp deleted file mode 100644 index d686c4c09f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/ComponentContext.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "commonj/sdo/SDO.h" - -#include "osoa/sca/ComponentContext.h" -#include "osoa/sca/ServiceRuntimeException.h" - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/cpp/ComponentContextImpl.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace commonj::sdo; -using namespace tuscany::sca; -using namespace tuscany::sca::cpp; -using namespace tuscany::sca::model; - -namespace osoa -{ - namespace sca - { - - // ======================================================= - // getCurrent: create a context from the current component - // ======================================================= - ComponentContext ComponentContext::getCurrent() - { - logentry(); - try - { - Component* component = tuscany::sca::SCARuntime::getCurrentRuntime()->getCurrentComponent(); - if (!component) - { - throwException(ComponentContextException, "No current component"); - } - ComponentContext* cci = new ComponentContextImpl(component); - return ComponentContext(cci); - } - catch (ServiceRuntimeException&) - { - throw; - } - catch (TuscanyRuntimeException& e) - { - throwException(ServiceRuntimeException, e); - } - } - - // =========== - // Constructor - // =========== - ComponentContext::ComponentContext(ComponentContext* implementation) - : impl(implementation) - { - logentry(); - } - - // ========== - // Destructor - // ========== - ComponentContext::~ComponentContext() - { - logentry(); - delete impl; - } - - // =================================== - // Copy constructor: create a new impl - // =================================== - ComponentContext::ComponentContext(const ComponentContext& ctx) - { - logentry(); - Component* component = ((ComponentContextImpl*)impl)->getComponent(); - impl = new ComponentContextImpl(component); - } - - // ============================= - // operator= : create a new impl - // ============================= - ComponentContext& ComponentContext::operator=(const ComponentContext& ctx) - { - logentry(); - if (this != &ctx) - { - Component* component = ((ComponentContextImpl*)impl)->getComponent(); - impl = new ComponentContextImpl(component); - } - return *this; - } - - // ========== - // getService - // ========== - void* ComponentContext::getService(const std::string& referenceName) - { - logentry(); - void* service = impl->getService(referenceName); - return service; - } - - // =========== - // getServices - // =========== - std::list<void*> ComponentContext::getServices(const std::string& referenceName) - { - logentry(); - return impl->getServices(referenceName); - } - - // ============ - // getProperties - // ============= - DataObjectPtr ComponentContext::getProperties() - { - logentry(); - DataObjectPtr properties = impl->getProperties(); - return properties; - } - - // ============ - // getDataFactory - // ============= - DataFactoryPtr ComponentContext::getDataFactory() - { - logentry(); - DataFactoryPtr dataFactory = impl->getDataFactory(); - return dataFactory; - } - - - } // End namespace sca -} // End namespace osoa diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/ComponentContext.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/ComponentContext.h deleted file mode 100644 index 2c305c5161..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/ComponentContext.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef osoa_sca_componentcontext_h -#define osoa_sca_componentcontext_h - -#include <string> -#include <list> - -#include "commonj/sdo/SDO.h" - -#include "osoa/sca/export.h" - -namespace osoa -{ - namespace sca - { - - /** - * An SCA component implementation uses the ComponentContext class to - * retrieve information about the configured SCA component. - */ - class SCA_CPP_API ComponentContext - { - - public: - /** - * Return a new ComponentContext for the current Component. - */ - static ComponentContext getCurrent(); - - /** - * Resolve a reference name into a single configured service. - * If the component's reference is wired to more than one service - * then theis method will return an exception. - * @param referenceName The reference to be resolved. This must match - * the name of a reference configured in the component type file for - * this component. - */ - virtual void* getService(const std::string& referenceName); - - /** - * Resolve a reference name into a list of configured services. - * @param referenceName The reference to be resolved. This must match - * the name of a reference configured in the component type file for - * this component. - */ - virtual std::list<void*> getServices(const std::string& referenceName); - - /** - * Get the configured properties for the component. - * @return A data object representing all the properties that - * are configured for this component. - */ - virtual commonj::sdo::DataObjectPtr getProperties(); - - /** - * Get an SDO data factory which will allow the component to - * create data objects for all the types configured for this - * component. - * @return A data factory to be used by the component to create - * new data objects. - */ - virtual commonj::sdo::DataFactoryPtr getDataFactory(); - - /** - * Destructor - */ - virtual ~ComponentContext(); - - /** - * Constructor - */ - ComponentContext(const ComponentContext&); - - /** - * Copy operator - */ - ComponentContext& operator=(const ComponentContext&); - - /** - * Constructor to create an interface class from the contained - * implementation. - * @param implementation the actual implementation class - */ - ComponentContext(ComponentContext* implementation); - - private: - - /** - * Pointer to the class which provides the actual implementation. - */ - ComponentContext* impl; - - }; - } // End namespace sca -} // End namespace osoa - -#endif // osoa_sca_componentcontext_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/CompositeContext.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/CompositeContext.cpp deleted file mode 100644 index d3f06e1b12..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/CompositeContext.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "commonj/sdo/SDO.h" - -#include "osoa/sca/CompositeContext.h" -#include "osoa/sca/ServiceRuntimeException.h" - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/cpp/CompositeContextImpl.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace commonj::sdo; -using namespace tuscany::sca; -using namespace tuscany::sca::cpp; - - -namespace osoa -{ - namespace sca - { - // =========== - // Constructor - // =========== - CompositeContext::CompositeContext(CompositeContext* implementation) - : impl(implementation) - { - logentry(); - } - - // =================================== - // Copy constructor: create a new impl - // =================================== - CompositeContext::CompositeContext(const CompositeContext& ctx) - { - logentry(); - impl = new CompositeContextImpl( - tuscany::sca::SCARuntime::getCurrentRuntime()->getDefaultComponent()); - } - - // ============================= - // operator= : create a new impl - // ============================= - CompositeContext& CompositeContext::operator=(const CompositeContext& ctx) - { - logentry(); - if (this != &ctx) - { - impl = new CompositeContextImpl( - tuscany::sca::SCARuntime::getCurrentRuntime()->getDefaultComponent()); - } - return *this; - } - - // ========== - // Destructor - // ========== - CompositeContext::~CompositeContext() - { - logentry(); - delete impl; - } - - // ==================================================== - // getCurrent: create a context from the current composite - // ==================================================== - CompositeContext CompositeContext::getCurrent() - { - logentry(); - try - { - CompositeContext* cci = new CompositeContextImpl( - tuscany::sca::SCARuntime::getCurrentRuntime()->getDefaultComponent()); - - return CompositeContext(cci); - } - catch (ServiceRuntimeException&) - { - throw; - } - catch (TuscanyRuntimeException& e) - { - throwException(ServiceRuntimeException, e); - } - } - - // ============= - // locateService - // ============= - void* CompositeContext::locateService(const std::string& serviceName) - { - logentry(); - void* sp = impl->locateService(serviceName); - return sp; - } - - // ============= - // getDataFactory - // ============= - DataFactoryPtr CompositeContext::getDataFactory() - { - logentry(); - DataFactoryPtr df = impl->getDataFactory(); - return df; - } - - - } // End namespace sca -} // End namespace osoa diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/CompositeContext.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/CompositeContext.h deleted file mode 100644 index a047f82e46..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/CompositeContext.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef osoa_sca_compositecontext_h -#define osoa_sca_compositecontext_h - -#include "commonj/sdo/SDO.h" - -#include "osoa/sca/export.h" - -namespace osoa -{ - namespace sca - { - /** - * An SCA component implementation, or a non-SCA client, uses the - * CompositeContext class to retrieve information about the configured - * SCA composite. - */ - class SCA_CPP_API CompositeContext - { - - public: - /** - * Return a new CompositeContext for the current Component. - */ - static CompositeContext getCurrent(); - - /** - * Resolve a service name into a single component service. - * @param serviceName The name of the service in the form - * "component name"/"service name". The service name is - * optional in the component has one service. - * @return A pointer to an object which can be cast to the - * business interface of the target service. - */ - virtual void* locateService(const std::string& serviceName); - - /** - * Get an SDO data factory which will allow the component to - * create data objects for all the types configured for this - * component. - * @return A data factory to be used by the component to create - * new data objects. - */ - virtual commonj::sdo::DataFactoryPtr getDataFactory(); - - /** - * Destructor. - */ - virtual ~CompositeContext(); - - /** - * Constructor - */ - CompositeContext(const CompositeContext&); - - /** - * Copy operator - */ - CompositeContext& operator=(const CompositeContext&); - - /** - * Constructor to create an interface class from the contained - * implementation. - * @param implementation The actual implementation class. - */ - CompositeContext(CompositeContext* implementation); - - private: - - /** - * Pointer to the class which provides the actual implementation. - */ - CompositeContext* impl; - - }; - } // End namespace sca -} // End namespace osoa - -#endif // osoa_sca_compositecontext_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/ServiceRuntimeException.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/ServiceRuntimeException.h deleted file mode 100644 index 6d64a32dd6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/ServiceRuntimeException.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef osoa_sca_serviceruntimeexception_h -#define osoa_sca_serviceruntimeexception_h - -#include "osoa/sca/export.h" - -#include "tuscany/sca/core/Exceptions.h" - -namespace osoa -{ - namespace sca - { - /** - * Top level exception to represent all the exceptions that may be - * thrown by an SCA runtime implementation. - */ - class SCA_CPP_API ServiceRuntimeException : public tuscany::sca::TuscanyRuntimeException - { - public: - ServiceRuntimeException( - const char *name="ServiceRuntimeException", - severity_level sev=Severe, - const char* msg_text="") - : tuscany::sca::TuscanyRuntimeException(name, sev, msg_text) - { - } - - ServiceRuntimeException(const tuscany::sca::TuscanyRuntimeException& e) - : tuscany::sca::TuscanyRuntimeException(e) - { - } - }; // End ServiceRuntimeException class definition - - /** - * A remotable service is currently unavailable. It is possible that a retry - * may resolve this exception. - */ - class SCA_CPP_API ServiceUnavailableException: public ServiceRuntimeException - { - public: - ServiceUnavailableException(const char* serviceName) - : ServiceRuntimeException("ServiceUnavailableException", Warning, - serviceName) - { - } - private: - }; // End ServiceUnavailableException class definition - - - /** - * The target of a wire cannot be found, or the reference has not been - * configured. - */ - class SCA_CPP_API ServiceNotFoundException: public ServiceRuntimeException - { - public: - ServiceNotFoundException(const char* msg) - : ServiceRuntimeException("ServiceNotFoundException", Error, - msg) - { - } - private: - }; // End ServiceNotFoundException class definition - - - /** - * There is no current component (for example, if a non-SCA component - * tries to get the current ComponentContext). - */ - class SCA_CPP_API ComponentContextException: public ServiceRuntimeException - { - public: - ComponentContextException(const char* msg) - : ServiceRuntimeException("ComponentContextException", Error, - msg) - { - } - private: - }; // End ComponentContextException class definition - - - } // End namespace sca -} // End namespace osoa - -#endif // osoa_sca_serviceruntimeexception_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/export.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/export.h deleted file mode 100644 index 8a69913be4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/export.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef osoa_sca_export_h -#define osoa_sca_export_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) - -#ifdef TUSCANY_SCA_CPP_EXPORTS -#define SCA_CPP_API __declspec(dllexport) -#else -#define SCA_CPP_API __declspec(dllimport) -#endif - -#else -#include <sys/time.h> -#include <inttypes.h> -#include <stdlib.h> -#define SCA_CPP_API -#endif - -#endif // osoa_sca_export_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/sca.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/sca.h deleted file mode 100644 index 6cce9453d7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/osoa/sca/sca.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef osoa_sca_sca_h -#define osoa_sca_sca_h - -#include "osoa/sca/export.h" -#include "osoa/sca/CompositeContext.h" -#include "osoa/sca/ComponentContext.h" -#include "osoa/sca/ServiceRuntimeException.h" - -#endif // osoa_sca_sca_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPExtension.cpp deleted file mode 100644 index 74a30fb772..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPExtension.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/cpp/CPPExtension.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/cpp/CPPImplementationExtension.h" -#include "tuscany/sca/cpp/CPPInterfaceExtension.h" - - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_cpp_initialize() - { - tuscany::sca::cpp::CPPExtension::initialize(); - } -} - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - // =================================================================== - // Constructor for the CPPExtension class. - // =================================================================== - CPPExtension::CPPExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the CPPExtension class. - // =================================================================== - CPPExtension::~CPPExtension() - { - logentry(); - } - - void CPPExtension::initialize() - { - logentry(); - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - runtime->registerImplementationExtension(new CPPImplementationExtension()); - runtime->registerInterfaceExtension(new CPPInterfaceExtension()); - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPExtension.h deleted file mode 100644 index d6c872629d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPExtension.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_cppextension_h -#define tuscany_sca_cpp_cppextension_h - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - class CPPExtension - { - public: - /** - * Default constructor - */ - CPPExtension(); - - /** - * Destructor - */ - virtual ~CPPExtension(); - - static void initialize(); - - private: - - }; - - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_cppextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPImplementationExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPImplementationExtension.cpp deleted file mode 100644 index b5312ab243..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPImplementationExtension.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/cpp/CPPImplementationExtension.h" -#include "tuscany/sca/cpp/model/CPPImplementation.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::util; -using namespace tuscany::sca::model; - - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - // =================================================================== - // Constructor for the CPPImplementationExtension class. - // =================================================================== - CPPImplementationExtension::CPPImplementationExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the CPPImplementationExtension class. - // =================================================================== - CPPImplementationExtension::~CPPImplementationExtension() - { - logentry(); - } - - const string CPPImplementationExtension::extensionName("cpp"); - const string CPPImplementationExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#CPPImplementation"); - - // =================================================================== - // loadModelElement - load the info from implementation.cpp - // =================================================================== - ComponentType* CPPImplementationExtension::getImplementation(Composite *composite, DataObjectPtr scdlImplementation) - { - logentry(); - string library = scdlImplementation->getCString("library"); - string header = scdlImplementation->getCString("header"); - string className = scdlImplementation->getCString("class"); - string scopeName = scdlImplementation->getCString("scope"); - - CPPImplementation::Scope scope; - if (scopeName == "composite") - { - scope = CPPImplementation::COMPOSITE; - } - else - { - scope = CPPImplementation::STATELESS; - } - - string headerPath; - string headerStub; - - // Separate any path element - Utils::rTokeniseString("/", header, headerPath, headerStub); - if (headerPath != "") - { - headerPath += "/"; - } - - // Determine the header stub name - string tmp; - Utils::rTokeniseString(".h", headerStub, headerStub, tmp); - - CPPImplementation* cppImpl = new CPPImplementation( - composite, library, header, headerPath, headerStub, className, scope); - - return cppImpl; - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPImplementationExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPImplementationExtension.h deleted file mode 100644 index 8eb7b88691..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPImplementationExtension.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_cppimplementationextension_h -#define tuscany_sca_cpp_cppimplementationextension_h - -#include "tuscany/sca/extension/ImplementationExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - class CPPImplementationExtension : public ImplementationExtension - { - public: - /** - * Default constructor - */ - CPPImplementationExtension(); - - /** - * Destructor - */ - virtual ~CPPImplementationExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema type for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#implementation.cpp") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::ComponentType* getImplementation( - tuscany::sca::model::Composite* composite, - commonj::sdo::DataObjectPtr scdlImplementation); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_cppimplementationextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPInterfaceExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPInterfaceExtension.cpp deleted file mode 100644 index 7bb84a7673..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPInterfaceExtension.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/cpp/CPPInterfaceExtension.h" -#include "tuscany/sca/cpp/model/CPPInterface.h" -#include "tuscany/sca/util/Logging.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - // =================================================================== - // Constructor for the CPPInterfaceExtension class. - // =================================================================== - CPPInterfaceExtension::CPPInterfaceExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the CPPInterfaceExtension class. - // =================================================================== - CPPInterfaceExtension::~CPPInterfaceExtension() - { - logentry(); - } - - const string CPPInterfaceExtension::extensionName("cpp"); - const string CPPInterfaceExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#CPPInterface"); - - // =================================================================== - // loadModelElement - load the info from interface.cpp - // =================================================================== - tuscany::sca::model::Interface* CPPInterfaceExtension::getInterface(Composite* composite, DataObjectPtr scdlInterface) - { - logentry(); - - string header = scdlInterface->getCString("header"); - string className = scdlInterface->getCString("class"); - bool remotable = scdlInterface->getBoolean("remotable"); - - return new CPPInterface(header, className, remotable, false); - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPInterfaceExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPInterfaceExtension.h deleted file mode 100644 index 04ac9f6970..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPInterfaceExtension.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_cppinterfaceextension_h -#define tuscany_sca_cpp_cppinterfaceextension_h - -#include "tuscany/sca/extension/InterfaceExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - class CPPInterfaceExtension : public InterfaceExtension - { - public: - /** - * Default constructor - */ - CPPInterfaceExtension(); - - /** - * Destructor - */ - virtual ~CPPInterfaceExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema type for this interface extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#interface.cpp") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::Interface* getInterface( - tuscany::sca::model::Composite* composite, - commonj::sdo::DataObjectPtr scdlInterface); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_cppinterfaceextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceProxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceProxy.cpp deleted file mode 100644 index cc45ea9fb8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceProxy.cpp +++ /dev/null @@ -1,192 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "osoa/sca/ServiceRuntimeException.h" - -#include "tuscany/sca/cpp/CPPServiceProxy.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ComponentType.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/cpp/model/CPPImplementation.h" -#include "tuscany/sca/cpp/model/CPPReferenceBinding.h" - -using namespace std; -using namespace osoa::sca; -using namespace tuscany::sca::model; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - // ============================ - // Constructor: Create a proxy - // ============================ - CPPServiceProxy::CPPServiceProxy(Reference* reference) - : ServiceProxy(reference) - { - logentry(); - - // ---------------------- - // Get the component - // ---------------------- - Component* component = reference->getComponent(); - string name = reference->getType()->getName(); - - // Get the service wrapper - CPPReferenceBinding* referenceBinding = (CPPReferenceBinding*)reference->getBinding(); - - ServiceWrapper* serviceWrapper = referenceBinding->getTargetServiceBinding()->getServiceWrapper(); - - createProxy(component, name, serviceWrapper); - } - - // ============================ - // Constructor: Create a proxy - // ============================ - CPPServiceProxy::CPPServiceProxy(Service* service) - : ServiceProxy(0) - { - logentry(); - - // ---------------------- - // Get the component - // ---------------------- - Component* component = service->getComponent(); - string name = service->getType()->getName(); - - // Get the service wrapper - ServiceWrapper* serviceWrapper = service->getBinding()->getServiceWrapper(); - - createProxy(component, name, serviceWrapper); - } - - void CPPServiceProxy::createProxy(Component* component, const string& name, ServiceWrapper* serviceWrapper) - { - logentry(); - - ComponentType* componentType = component->getType(); - if (!componentType) - { - string msg = "Component " + component->getName() + " has no implementation defined"; - throwException(ServiceNotFoundException, msg.c_str()); - } - - // If we got here we have a CPP implementation - CPPImplementation* impl = (CPPImplementation *)componentType; - - // ---------------------------------------------------- - // Get implementation dll name and service factory name - // ---------------------------------------------------- - string library = impl->getLibrary(); - string headerStub = impl->getHeaderStub(); - - string fullLibraryName = component->getComposite()->getRoot() + "/" + library; - string proxyFactoryName = headerStub + "_" + name + "_Proxy_Factory"; - string proxyDestructorName = headerStub + "_" + name + "_Proxy_Destructor"; - typedef void* (* PROXYFACTORY) (ServiceWrapper*); - - // ------------ - // Load the dll - // ------------ - proxyLibrary = Library(fullLibraryName); - - // ------------------------- - // Locate the factory method - // ------------------------- - PROXYFACTORY proxyFactory = (PROXYFACTORY)proxyLibrary.getSymbol(proxyFactoryName); - if (!proxyFactory) - { - logerror("Unable to locate %s in library %s", - proxyFactoryName.c_str(), fullLibraryName.c_str()); - string msg = "Unable to locate " + proxyFactoryName + " in library " + fullLibraryName; - throwException(ServiceNotFoundException, msg.c_str()); - } - - // ----------------------------------- - // Now create an instance of the proxy - // ----------------------------------- - void* proxy = proxyFactory(serviceWrapper); - if (!proxy) - { - logerror("Factory method %s in library %s returned null", - proxyFactoryName.c_str(), fullLibraryName.c_str()); - string msg = "Factory method " + proxyFactoryName + " in library " + fullLibraryName + " returned null"; - throwException(ServiceNotFoundException, msg.c_str()); - } - else - { - proxies.push_back(proxy); - } - - // ------------------------- - // Get the destructor method - // ------------------------- - destructor = (PROXYDESTRUCTOR)proxyLibrary.getSymbol(proxyDestructorName); - } - - // ========== - // Destructor - // ========== - CPPServiceProxy::~CPPServiceProxy() - { - logentry(); - - // Delete the proxies - if (destructor != NULL && proxies.size() != 0) - { - destructor(*proxies.begin()); - } - } - - CPPServiceProxy::PROXIES CPPServiceProxy::getProxies() - { - return proxies; - } - - void* CPPServiceProxy::getProxy() - { - logentry(); - - if (proxies.size() != 0) - { - return *proxies.begin(); - } - else - { - return NULL; - } - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceProxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceProxy.h deleted file mode 100644 index 8406e9bc44..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceProxy.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_cpp_cppserviceproxy_h -#define tuscany_sca_cpp_cppserviceproxy_h - -#include "osoa/sca/export.h" - -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/util/Library.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/Service.h" - - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - /** - * Holds a proxy for a given component and reference. - * The proxy which is held inside a ServiceProxy will be specific to the component - * and reference and will have been code generated and be contained in a dll - * created by a developer of an SCA application. - */ - class CPPServiceProxy : public ServiceProxy - { - public: - /** - * Create a new service proxy for a reference. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The reference on the source component. - * @param target The wrapper of the service which is wired to this reference. - */ - CPPServiceProxy(tuscany::sca::model::Reference* reference); - - /** - * Create a new service proxy for a service. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The service on the target component. - * @param target The wrapper of the target service. - */ - CPPServiceProxy(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~CPPServiceProxy(); - - /** - * Return an instance of the proxy created for this particular component and reference. - * @return The proxy. - */ - virtual void* getProxy(); - - /** - * Return the proxies created for this particular component and reference. - * @return The proxies. - */ - typedef std::list<void*> PROXIES; - virtual PROXIES getProxies(); - - private: - - /** - * Create the proxy - */ - void createProxy(tuscany::sca::model::Component* component, - const std::string& name, - ServiceWrapper* serviceWrapper); - - /** - * Holds the instances of the code generated proxies. - */ - PROXIES proxies; - - /** - * A function pointer to the destructor of the proxy. - */ - typedef void (* PROXYDESTRUCTOR) (void*); - PROXYDESTRUCTOR destructor; - - /** - * The library which contains the code for the proxy. - */ - tuscany::sca::util::Library proxyLibrary; - - }; - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_cppserviceproxy_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceWrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceWrapper.cpp deleted file mode 100644 index 1304ab92a0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceWrapper.cpp +++ /dev/null @@ -1,194 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "osoa/sca/ServiceRuntimeException.h" - -#include "tuscany/sca/cpp/CPPServiceWrapper.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Library.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/cpp/model/CPPImplementation.h" -#include "tuscany/sca/model/Interface.h" - -using namespace std; -using namespace osoa::sca; -using namespace tuscany::sca::model; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - // =========== - // Constructor - // =========== - CPPServiceWrapper::CPPServiceWrapper(Service* service) - : ServiceWrapper(service) - { - logentry(); - - component = service->getComponent(); - interf = service->getType()->getInterface(); - implementation = (CPPImplementation*)component->getType(); - } - - // ========== - // Destructor - // ========== - CPPServiceWrapper::~CPPServiceWrapper() - { - logentry(); - } - - - // ====================================================================== - // getImplementation: get an implementation for this scope - // ====================================================================== - void* CPPServiceWrapper::getImplementation() - { - logentry(); - if (implementation->getScope() == CPPImplementation::COMPOSITE) - { - // fill the cache if needed - if ( !implementation->getStaticImplementation() ) - { - implementation->setStaticImplementation(newImplementation()); - } - return implementation->getStaticImplementation(); - } - else // (scope == CPPInterface::STATELESS) - { - return newImplementation(); - } - } - - // ====================================================================== - // releaseImplementation: release the implementation for this scope - // ====================================================================== - void CPPServiceWrapper::releaseImplementation() - { - logentry(); - if (implementation->getScope() == CPPImplementation::STATELESS) - { - deleteImplementation(); - } - } - - // ====================================================================== - // invoke: wrapper call to service with setting the component context - // ====================================================================== - void CPPServiceWrapper::invoke(Operation& operation) - { - logentry(); - - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - runtime->setCurrentComponent(component); - - try - { - invokeService(operation); - } - catch (...) - { - runtime->unsetCurrentComponent(); - throw; - } - runtime->unsetCurrentComponent(); - } - - void CPPServiceWrapper::setLibrary(Library* lib) - { - wrapperLibrary = lib; - } - - // ====================================================================== - // getServiceWrapper: create a wrapper for the target ComponentService - // ====================================================================== - CPPServiceWrapper* CPPServiceWrapper::getServiceWrapper(Service* service) - { - logentry(); - - CPPServiceWrapper* serviceWrapper = 0; - - // ----------------------------------------------- - // Get the implementation for the target component - // ----------------------------------------------- - Component* component = service->getComponent(); - CPPImplementation* impl = (CPPImplementation*)component->getType(); - if (!impl) - { - string msg = "Component " + component->getName() + " has no implementation defined"; - throwException(ServiceNotFoundException, msg.c_str()); - } - - // ---------------------------------------------------- - // Get implementation dll name and wrapper factory name - // ---------------------------------------------------- - string libraryName = impl->getLibrary(); - string wrapperFactoryName = impl->getHeaderStub() - + "_" + service->getType()->getName() + "_Wrapper_Factory"; - - // ------------ - // Load the dll - // ------------ - string fullLibraryName = component->getComposite()->getRoot() + "/" + libraryName; - typedef CPPServiceWrapper* (* WRAPPERFACTORY) (Service*); - Library* wrapperLib = new Library(fullLibraryName); - - // ------------------------- - // Locate the factory method - // ------------------------- - WRAPPERFACTORY wrapperFactory = (WRAPPERFACTORY)wrapperLib->getSymbol(wrapperFactoryName); - if (!wrapperFactory) - { - logerror("Unable to locate %s in library %s", - wrapperFactoryName.c_str(), fullLibraryName.c_str()); - string msg = "Unable to locate " + wrapperFactoryName + " in library " + fullLibraryName; - throwException(ServiceNotFoundException, msg.c_str()); - } - - // ------------------------------------- - // Now create an instance of the wrapper - // ------------------------------------- - serviceWrapper = wrapperFactory(service); - if (!serviceWrapper) - { - logerror("Factory method %s in library %s returned null", - wrapperFactoryName.c_str(), fullLibraryName.c_str()); - string msg = "Factory method " + wrapperFactoryName + " in library " + fullLibraryName + " returned null"; - throwException(ServiceNotFoundException, msg.c_str()); - } - serviceWrapper->setLibrary(wrapperLib); - - return serviceWrapper; - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceWrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceWrapper.h deleted file mode 100644 index 899deca07a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CPPServiceWrapper.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_cppservicewrapper_h -#define tuscany_sca_cpp_cppservicewrapper_h - -#include "osoa/sca/export.h" - -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/cpp/model/CPPImplementation.h" -#include "tuscany/sca/util/Library.h" - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - /** - * Wraps the service on a component implementation. - * This abstract class is extended by generated code which provides - * the implementation of some of the methods. - * An instance of this class wraps the actual component implementation which - * has been written by a developer of an SCA application. - */ - class SCA_CPP_API CPPServiceWrapper : public ServiceWrapper - { - public: - /** - * Factory method to create a new CPPServiceWrapper for a given target - * service. This method will provide all the loading of dlls required to - * create the target component. - * @param target The service on the component for which this wrapper is to be - * created. - * @return A wrapper that references the given target. - */ - static CPPServiceWrapper* getServiceWrapper(tuscany::sca::model::Service* service); - - /** - * Constructor. - * @param target The component service to which this wrapper refers. - */ - CPPServiceWrapper(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~CPPServiceWrapper(); - - /** - * All business method calls to the target component go through the invoke method. - * @param operation The details of the method, paramaters and return value for the - * business method to be called on the target component. - */ - virtual void invoke(Operation& operation); - - /** - * Return the loaded shared library for the target component. - */ - tuscany::sca::util::Library* getLibrary() const { return wrapperLibrary; } - - protected: - - /** - * Delegated method to invoke the correct method on the target component. - * Implemented by the subtype. - */ - virtual void invokeService(Operation& operation) = 0; - - /** - * Delegated method to create a new component implementation. - * Implemented by the subtype. - * @return A pointer to an instance of the component implementation class. - */ - virtual void* newImplementation() = 0; - - /** - * Delegated method to delete the current instance of the component - * implementation. - * Implemented by the subtype. - */ - virtual void deleteImplementation() = 0; - - /** - * Return the current instance of the component implementation. - * @return A pointer to an instance of the component implementation class. - */ - virtual void* getImplementation(); - - /** - * Indicates that the current instance of the component implementation - * has been finished with. - * Will call CPPServiceWrapper#deleteImplementation if the - * implementation is stateless (so that a new instance is returned - * for each call). - */ - virtual void releaseImplementation(); - - private: - /** - * The component to which this wrapper refers. - */ - tuscany::sca::model::Component* component; - - /** - * A pointer to the interface which the service exposes. - */ - tuscany::sca::model::Interface* interf; - - /** - * The component implementation - */ - CPPImplementation* implementation; - - /** - * Pointer to the loaded library which contains the component - * implementation. - */ - tuscany::sca::util::Library* wrapperLibrary; - - /** - * Set the loaded library which contains the component - * implementation. - * @param lib The library. - */ - void setLibrary(tuscany::sca::util::Library* lib); - }; - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_cppservicewrapper_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/ComponentContextImpl.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/ComponentContextImpl.cpp deleted file mode 100644 index 3de0cb968c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/ComponentContextImpl.cpp +++ /dev/null @@ -1,208 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "osoa/sca/ServiceRuntimeException.h" - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/cpp/ComponentContextImpl.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ReferenceBinding.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/ServiceBinding.h" - -using namespace std; -using namespace osoa::sca; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - // =========== - // Constructor - // =========== - ComponentContextImpl::ComponentContextImpl(Component* comp) - : ComponentContext(0), component(comp) - { - logentry(); - } - - // ========== - // Destructor - // ========== - ComponentContextImpl::~ComponentContextImpl() - { - logentry(); - } - - - // ========================================================================== - // getServices: return a list of Proxies for services wired to this reference - // ========================================================================== - std::list<void*> ComponentContextImpl::getServices(const std::string& referenceName) - { - logentry(); - try - { - // -------------------------------------------------------------- - // locate reference in the current component and determine target - // -------------------------------------------------------------- - Reference* reference = component->findReference(referenceName); - if (!reference) - { - string message = "Reference not defined: "; - message = message + referenceName; - throwException(ServiceNotFoundException, message.c_str()); - } - - // Get a service proxy from the binding configured on the reference - CPPServiceProxy* serviceProxy = (CPPServiceProxy*)reference->getBinding()->getServiceProxy(); - if (serviceProxy == NULL) - { - string message = "Reference "; - message = message + referenceName + " not wired"; - throwException(ServiceNotFoundException, message.c_str()); - } - - return serviceProxy->getProxies(); - } - catch (ServiceRuntimeException&) - { - throw; - } - catch (TuscanyRuntimeException& e) - { - throwException(ServiceRuntimeException, e); - } - - } // End getServices() - - - // =================================================================== - // getService: return a Proxy for the services wired to this reference - // =================================================================== - void* ComponentContextImpl::getService(const std::string& referenceName) - { - logentry(); - try - { - // -------------------------------------------------------------- - // locate reference in the current component and determine target - // -------------------------------------------------------------- - Reference* reference = component->findReference(referenceName); - if (!reference) - { - string message = "Reference not defined: "; - message = message + referenceName; - throwException(ServiceNotFoundException, message.c_str()); - } - - // -------------------- - // Validate the request - // -------------------- - switch (reference->getType()->getMultiplicity()) - { - case ReferenceType::ZERO_MANY: - case ReferenceType::ONE_MANY: - { - string message = "getService() called for reference with multiplicity >1 :"; - message = message + referenceName; - throwException(ServiceNotFoundException, message.c_str()); - } - default: - { - } - } // end switch - - // Get a service proxy from the binding configured on the reference - CPPServiceProxy* serviceProxy = (CPPServiceProxy*)reference->getBinding()->getServiceProxy(); - if (serviceProxy == NULL) - { - string message = "Reference "; - message = message + referenceName + " not wired"; - throwException(ServiceNotFoundException, message.c_str()); - } - - void* service = serviceProxy->getProxy(); - - return service; - } - catch (ServiceRuntimeException&) - { - throw; - } - catch (TuscanyRuntimeException& e) - { - throwException(ServiceRuntimeException, e); - } - - } // End getService() - - // ============================================== - // getProperties: return the component properties - // ============================================== - DataObjectPtr ComponentContextImpl::getProperties() - { - logentry(); - try - { - DataObjectPtr properties = component->getProperties(); - return properties; - } - catch (ServiceRuntimeException&) - { - throw; - } - catch (TuscanyRuntimeException& e) - { - throwException(ServiceRuntimeException, e); - } - } - - // ============================================== - // getDataFactory: return the data factory for the composite in which - // this component resides - // ============================================== - commonj::sdo::DataFactoryPtr ComponentContextImpl::getDataFactory() - { - logentry(); - try - { - commonj::sdo::DataFactoryPtr dataFactory = component->getComposite()->getDataFactory(); - return dataFactory; - } - catch (ServiceRuntimeException&) - { - throw; - } - catch (TuscanyRuntimeException& e) - { - throwException(ServiceRuntimeException, e); - } - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/ComponentContextImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/ComponentContextImpl.h deleted file mode 100644 index 412c276d8c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/ComponentContextImpl.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_componentcontextimpl_h -#define tuscany_sca_cpp_componentcontextimpl_h - -#include "osoa/sca/ComponentContext.h" - -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/cpp/CPPServiceProxy.h" - - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - /** - * Contains the actual implementation of a ComponentContext interface. - */ - class ComponentContextImpl : public osoa::sca::ComponentContext - { - - public: - /** - * Constructor that takes a Component which represents the runtime - * model for this context. - */ - ComponentContextImpl(tuscany::sca::model::Component* component); - - /** - * Default constructor. - */ - virtual ~ComponentContextImpl(); - - /** - * See ComponentContext. - */ - virtual void* getService(const std::string& referenceName); - - /** - * See ComponentContext. - */ - virtual std::list<void*> getServices(const std::string& referenceName); - - /** - * See ComponentContext. - */ - virtual commonj::sdo::DataObjectPtr getProperties(); - - /** - * See ComponentContext. - */ - virtual commonj::sdo::DataFactoryPtr getDataFactory(); - - /** - * Returns the contained Component. - * @return The Component to which this context refers. - */ - virtual tuscany::sca::model::Component* getComponent() {return component;} - - private: - ComponentContextImpl(const ComponentContextImpl&); - ComponentContextImpl& operator=(const ComponentContextImpl&); - - /** - * Pointer to the runtime model Component to which this - * context refers. - */ - tuscany::sca::model::Component* component; - - /** - * Helper method to return a proxy to a service. - * @param serviceReference The source reference. - * @param target The target to which this source reference is wired. - * @return A pointer to an object which can be cast to the business - * class representing the target. - */ - void* getServiceProxy( - tuscany::sca::model::Reference* serviceReference, - tuscany::sca::model::Service* target); - - /** - * Helper method to return a wrapper for a target service. - * @param target The target for which this wrapper is to be created. - * @return The service wrapper. - */ - ServiceWrapper* getServiceWrapper(tuscany::sca::model::Service* target); - - }; - - } // End namespaca cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_componentcontextimpl_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CompositeContextImpl.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CompositeContextImpl.cpp deleted file mode 100644 index ae8183231e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CompositeContextImpl.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "commonj/sdo/SDO.h" - -#include "osoa/sca/ServiceRuntimeException.h" - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/cpp/CompositeContextImpl.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/cpp/CPPServiceProxy.h" - -using namespace std; -using namespace commonj::sdo; -using namespace osoa::sca; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - // =========== - // Constructor - // =========== - CompositeContextImpl::CompositeContextImpl(Component* component) - : CompositeContext(0), component(component), composite((Composite*)component->getType()) - { - logentry(); - } - - // ========== - // Destructor - // ========== - CompositeContextImpl::~CompositeContextImpl() - { - logentry(); - } - - // =========================================================================== - // locateService: return a proxy connected to a wrapper for the target service - // =========================================================================== - void* CompositeContextImpl::locateService(const std::string& serviceName) - { - logentry(); - try - { - // ---------------------------- - // Locate the component service - // ---------------------------- - Service* service = composite->findComponentService(serviceName); - string msg; - if (!service) - { - msg = "Service not found: "; - msg = msg + serviceName; - throwException(ServiceNotFoundException, msg.c_str()); - } - - // ---------------------------- - // Get a Proxy for this service - // ---------------------------- - - // The locate service API is used from CPP clients so we are using - // our default service proxy here - CPPServiceProxy* serviceProxy = new CPPServiceProxy(service); - return serviceProxy->getProxy(); - } - catch (ServiceRuntimeException&) - { - throw; - } - catch (TuscanyRuntimeException& e) - { - throwException(ServiceRuntimeException, e); - } - } - - // ============================================== - // getDataFactory: return the data factory for the current composite - // ============================================== - DataFactoryPtr CompositeContextImpl::getDataFactory() - { - logentry(); - try - { - DataFactoryPtr dataFactory = composite->getDataFactory(); - return dataFactory; - } - catch (ServiceRuntimeException&) - { - throw; - } - catch (TuscanyRuntimeException& e) - { - throwException(ServiceRuntimeException, e); - } - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CompositeContextImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CompositeContextImpl.h deleted file mode 100644 index ed0bb8b51c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/CompositeContextImpl.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_compositecontextimpl_h -#define tuscany_sca_cpp_compositecontextimpl_h - -#include "osoa/sca/CompositeContext.h" - -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/cpp/CPPServiceProxy.h" - -namespace tuscany -{ - namespace sca - { - - namespace cpp - { - - /** - * Contains the actual implementation of a CompositeContext interface. - */ - class CompositeContextImpl : public osoa::sca::CompositeContext - { - - public: - /** - * Constructor that takes a Composite which represents the runtime - * model for this context. - */ - CompositeContextImpl(tuscany::sca::model::Component* component); - - /** - * See CompositeContext#locateService. - */ - virtual void* locateService(const std::string& serviceName); - - /** - * See CompositeContext. - */ - virtual commonj::sdo::DataFactoryPtr getDataFactory(); - - /** - * Destructor. - */ - virtual ~CompositeContextImpl(); - - private: - CompositeContextImpl(const CompositeContextImpl&); - CompositeContextImpl& operator=(const CompositeContextImpl&); - - /** - * Pointer to the runtime model Composite object to which this - * context refers. - */ - tuscany::sca::model::Composite* composite; - - /** - * Pointer to the runtime model Component object to which this - * context refers. - */ - tuscany::sca::model::Component* component; - - }; - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_compositecontextimpl_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/TuscanyRuntime.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/TuscanyRuntime.cpp deleted file mode 100644 index f8aad90f7a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/TuscanyRuntime.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/cpp/TuscanyRuntime.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - // =================================================================== - // Constructor for the TuscanyRuntime class. - // =================================================================== - TuscanyRuntime::TuscanyRuntime(const string& componentName, const string& root, const string& path) - { - logentry(); - loginfo("System root: %s", root.c_str()); - systemRoot = root; - loginfo("System path: %s", path.c_str()); - systemPath = path; - loginfo("Default component name: %s", componentName.c_str()); - defaultComponentName = componentName; - - runtime = new SCARuntime("", systemRoot, systemPath, "", defaultComponentName); - } - - // =================================================================== - // Destructor for the TuscanyRuntime class. - // =================================================================== - TuscanyRuntime::~TuscanyRuntime() - { - logentry(); - - delete (SCARuntime*)runtime; - } - - // =================================================================== - // Start the runtime. - // =================================================================== - void TuscanyRuntime::start() - { - logentry(); - SCARuntime::setCurrentRuntime((SCARuntime*)runtime); - } - - // =================================================================== - // Stop the runtime. - // =================================================================== - void TuscanyRuntime::stop() - { - logentry(); - SCARuntime::setCurrentRuntime(NULL); - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/TuscanyRuntime.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/TuscanyRuntime.h deleted file mode 100644 index b4cf31220a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/TuscanyRuntime.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_tuscanyruntime_h -#define tuscany_sca_cpp_tuscanyruntime_h - -#include <string> - -#include "osoa/sca/export.h" - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - /** - * A singleton which represents the executing SCA runtime. - */ - class SCA_CPP_API TuscanyRuntime - { - public: - /** - * Default constructor - */ - TuscanyRuntime(const std::string& defaultComponentName = "", - const std::string& root = "", const std::string& path = ""); - - /** - * Destructor - */ - virtual ~TuscanyRuntime(); - - /** - * start the runtime - */ - void start(); - - /** - * stop the runtime - */ - void stop(); - - - private: - std::string systemRoot; - std::string systemPath; - std::string defaultComponentName; - - void* defaultComponent; - void* runtime; - }; - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_tuscanyruntime_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPImplementation.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPImplementation.cpp deleted file mode 100644 index 56098ced93..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPImplementation.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/cpp/model/CPPImplementation.h" -#include "tuscany/sca/cpp/model/CPPServiceBinding.h" -#include "tuscany/sca/cpp/model/CPPReferenceBinding.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - - namespace cpp - { - - // Constructor - CPPImplementation::CPPImplementation(Composite* composite, const string& library, const string& header, - const string&headerPath, const string& headerStub, const string& className, Scope scope) - : ComponentType(composite, headerPath + headerStub), - library(library), header(header), headerPath(headerPath), - headerStub(headerStub), className(className), scope(scope), staticImpl(0) - { - } - - CPPImplementation::~CPPImplementation() - { - } - - void CPPImplementation::initializeComponent(Component* component) - { - ComponentType::initializeComponent(component); - - // Create CPP bindings for all the services - const Component::SERVICE_MAP& services = component->getServices(); - Component::SERVICE_MAP::const_iterator iter = services.begin(); - for (unsigned int i=0; i< services.size(); i++) - { - Service *service = iter->second; - CPPServiceBinding* binding = new CPPServiceBinding(service); - service->setBinding(binding); - iter++; - } - - // Create CPP bindings for all the references - const Component::REFERENCE_MAP& references = component->getReferences(); - Component::REFERENCE_MAP::const_iterator refiter = references.begin(); - for (unsigned int ri=0; ri< references.size(); ri++) - { - Reference *reference = refiter->second; - CPPReferenceBinding* binding = new CPPReferenceBinding(reference); - reference->setBinding(binding); - refiter++; - } - } - - void CPPImplementation::setStaticImplementation(void* staticImpl) - { - this->staticImpl = staticImpl; - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPImplementation.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPImplementation.h deleted file mode 100644 index 2dfdac616e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPImplementation.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_model_cppimplementation_h -#define tuscany_sca_cpp_model_cppimplementation_h - -#include <map> -#include <string> - -#include "tuscany/sca/model/ComponentType.h" - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - /** - * Holds information about an SCA implementation written in C++ - */ - class CPPImplementation : public tuscany::sca::model::ComponentType - { - - public: - /** - * Scope of the component implementation. - */ - enum Scope - { - COMPOSITE, - STATELESS - }; - - /** - * Constructor. - * @param dllName Name of the shared library. - * @param header Name of the header file that contains the class declaring the - * implementation class. - * @param className Name of the class in the header file (could be a blank string - * if this is not specified). - */ - CPPImplementation(tuscany::sca::model::Composite* composite, - const std::string& library, const std::string& header, const std::string&headerPath, - const std::string& headerStub, const std::string& className, Scope scope); - - /** - * Destructor - */ - virtual ~CPPImplementation(); - - /** - * Initialize a component of this type. - * @param component The component to initialize. - */ - virtual void initializeComponent(tuscany::sca::model::Component* component); - - /** - * Returns the name of the shared library. - * @return The name of the shared library. - */ - const std::string& getLibrary() const { return library; } - - /** - * Get the name of the header file. - * @return Name of the header file. - */ - const std::string& getHeader() const { return header; } - - /** - * Get the header file name without the extension. - * @return The name of the header file without any extension. - */ - const std::string& getHeaderStub() const { return headerStub; } - - /** - * Get the header path. - * @return The pathe element of the header. - */ - const std::string& getHeaderPath() const { return headerPath; } - - /** - * Get the name of the class. - * @return The class name if specified. - */ - const std::string& getClass() const { return className; } - - /** - * Returns the implementation scope - */ - Scope getScope() { return scope; } - - /** - * Returns the implementation instance (to be used if the scope is set to composite) - */ - void* getStaticImplementation() { return staticImpl; } - - /** - * Sets the implementation instance (to be used if the scope is set to composite) - */ - void setStaticImplementation(void* staticImpl); - - private: - - /** - * Name of the shared library. - */ - std::string library; - - /** - * Name of the header file describing the interface. - */ - std::string header; - - /** - * Name of the header file without the extension. - */ - std::string headerStub; - - /** - * Path element of the header. - */ - std::string headerPath; - - /** - * Name of the class in the header file declaring the implementation. - * May be an empty string if not set in the SCDL file. - */ - std::string className; - - /** - * Scope of the implementation - */ - Scope scope; - - /** - * Holds the implementation instance if the scope is set to composite. - */ - void* staticImpl; - }; - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_model_cppimplementation_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPInterface.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPInterface.cpp deleted file mode 100644 index 2322d1bdf5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPInterface.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/cpp/model/CPPInterface.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - const string CPPInterface::typeQName("http://www.osoa.org/xmlns/sca/1.0#CPPInterface"); - - // Constructor - CPPInterface::CPPInterface( - const string& header, - const string& className, - bool remotable, - bool conversational) - : Interface(remotable, conversational), header(header), className(className) - { - string::size_type dot = header.rfind(".h"); // this will also find .hpp - if (dot != string::npos) - { - headerStub = header.substr(0, dot); - } - else - { - headerStub = header; - } - - } - - CPPInterface::~CPPInterface() - { - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPInterface.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPInterface.h deleted file mode 100644 index fdbf314d3d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPInterface.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_model_cppinterface_h -#define tuscany_sca_cpp_model_cppinterface_h - -#include <string> - -#include "tuscany/sca/model/Interface.h" - - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - /** - * Holds information about an interface described using a C++ - * header file. - */ - class CPPInterface : public tuscany::sca::model::Interface - { - - public: - /** - * Constuctor. - * @param header Name of the header file containing the class that - * describes the interface. - * @param className Name of the class in the header file that - * describes the interface. - * @param scope The scope of the interface (stateless or composite). - * @param remotable True if the interface is remotable. - */ - CPPInterface( - const std::string& header, - const std::string& className, - bool remotable, - bool conversational); - - /** - * Destructor. - */ - virtual ~CPPInterface(); - - /** - * Get the name of the header file. - * @return The name of the header file containing the definition of the - * interface. - */ - const std::string& getHeader() { return header; } - - /** - * Return the name of the header file without the extension. - * @return Header file name without any extension. - */ - const std::string& getHeaderStub() { return headerStub; } - - /** - * Get the name of the class. - * @return The name of the class defining the interface. - */ - const std::string& getClass() { return className; } - - /** - * return the QName of the schema type for this interface type - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#interface.cpp") - */ - virtual const std::string& getInterfaceTypeQName() { return typeQName; }; - - private: - - /** - * Name of the header file containing the definition of the interface. - */ - std::string header; - - /** - * Name of the header file without the extension. - */ - std::string headerStub; - - /** - * Name of the class in the header file. - */ - std::string className; - - /** - * The QName of the schema type for this interface type. - */ - static const std::string typeQName; - }; - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_model_cppinterface_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPReferenceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPReferenceBinding.cpp deleted file mode 100644 index 0c12b7af43..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPReferenceBinding.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/cpp/model/CPPReferenceBinding.h" -#include "tuscany/sca/cpp/CPPServiceProxy.h" - -using namespace tuscany::sca::model; - - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - // Constructor - CPPReferenceBinding::CPPReferenceBinding(Reference* reference) - : ReferenceBinding(reference, ""), serviceProxy(NULL) - { - } - - // Destructor - CPPReferenceBinding::~CPPReferenceBinding() - { - } - - ServiceProxy* CPPReferenceBinding::getServiceProxy() - { - return serviceProxy; - } - - void CPPReferenceBinding::configure(ServiceBinding* binding) - { - setTargetServiceBinding(binding); - - serviceProxy = new CPPServiceProxy(getReference()); - } - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPReferenceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPReferenceBinding.h deleted file mode 100644 index 9860f14765..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPReferenceBinding.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_model_cppreferencebinding_h -#define tuscany_sca_cpp_model_cppreferencebinding_h - -#include <string> - -#include "tuscany/sca/model/ReferenceBinding.h" - - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - /** - * Information about a CPP service binding for service or a reference. - */ - class CPPReferenceBinding : public tuscany::sca::model::ReferenceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - * @param port The definition of the port to which the entrypoint - * or external service is to be bound. This is of the form - * "namespace"#endpoint("service"/"port") - */ - CPPReferenceBinding(tuscany::sca::model::Reference* reference); - - /** - * Destructor. - */ - virtual ~CPPReferenceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#CPPImplementationBinding"; }; - - /** - * Create a proxy representing the reference to the - * client component. - */ - virtual ServiceProxy* getServiceProxy(); - - /** - * Configure this binding from a service binding. - */ - virtual void configure(tuscany::sca::model::ServiceBinding* serviceBinding); - - private: - - /** - * The proxy representing the reference to the client - * component. - */ - ServiceProxy* serviceProxy; - - }; - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_model_cppreferencebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPServiceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPServiceBinding.cpp deleted file mode 100644 index 45afea8375..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPServiceBinding.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/cpp/model/CPPServiceBinding.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - - // Constructor - CPPServiceBinding::CPPServiceBinding(Service* service) - : ServiceBinding(service, "") - { - serviceWrapper = CPPServiceWrapper::getServiceWrapper(service); - } - - // Destructor - CPPServiceBinding::~CPPServiceBinding() - { - } - - ServiceWrapper* CPPServiceBinding::getServiceWrapper() - { - return (ServiceWrapper*)serviceWrapper; - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPServiceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPServiceBinding.h deleted file mode 100644 index 13b88a84dd..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/src/tuscany/sca/cpp/model/CPPServiceBinding.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_cpp_model_cppservicebinding_h -#define tuscany_sca_cpp_model_cppservicebinding_h - -#include <string> - -#include "tuscany/sca/model/ServiceBinding.h" - - -namespace tuscany -{ - namespace sca - { - namespace cpp - { - /** - * Information about a CPP service binding for service or a reference. - */ - class CPPServiceBinding : public tuscany::sca::model::ServiceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - * @param port The definition of the port to which the entrypoint - * or external service is to be bound. This is of the form - * "namespace"#endpoint("service"/"port") - */ - CPPServiceBinding(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~CPPServiceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#CPPImplementationBinding"; }; - - /** - * Create a wrapper for the service configured by this - * binding. - */ - virtual ServiceWrapper* getServiceWrapper(); - - private: - - /** - * The wrapper for the service configured by this binding. - */ - ServiceWrapper* serviceWrapper; - - }; - - } // End namespace cpp - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_cpp_model_cppservicebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/Makefile.am deleted file mode 100644 index 3a97f02513..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/Makefile.am +++ /dev/null @@ -1,25 +0,0 @@ -# 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. - -if WANT_ALL - CPP_TOOLS = scagen -endif -if WANT_CPP - CPP_TOOLS = scagen -endif - -SUBDIRS = ${CPP_TOOLS}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/META-INF/LICENSE b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/META-INF/LICENSE deleted file mode 100644 index f433b1a53f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/META-INF/LICENSE +++ /dev/null @@ -1,177 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/META-INF/NOTICE b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/META-INF/NOTICE deleted file mode 100644 index 44befbee63..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/META-INF/NOTICE +++ /dev/null @@ -1,5 +0,0 @@ -Apache Tuscany SCA Native -Copyright 2005, 2007 The Apache Software Foundation - -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/)
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/META-INF/README b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/META-INF/README deleted file mode 100644 index 2831dadd94..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/META-INF/README +++ /dev/null @@ -1,19 +0,0 @@ -Apache Tuscany C++ M1 build (July, 2006) -=================================== - -http://incubator.apache.org/tuscany - -Tuscany is an effort undergoing incubation at the Apache Software Foundation -(ASF), sponsored by the Web Services PMC. - -Incubation is required of all newly accepted projects until a further review -indicates that the infrastructure, communications, and decision making process -have stabilized in a manner consistent with other successful ASF projects. - -While incubation status is not necessarily a reflection of the completeness or -stability of the code, it does indicate that the project has yet to be fully -endorsed by the ASF. - -Thank you for using Tuscany! - -The Tuscany Team. diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/Makefile.am deleted file mode 100644 index 59b4d2095f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/Makefile.am +++ /dev/null @@ -1,35 +0,0 @@ -# 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. - -SUBDIRS = - -BUILT_SOURCES = scagen_build -EXTRA_DIST = build.xml scagen.sh src META-INF -bin_SCRIPTS = scagen.sh - -scagen_build: - ant - touch scagen_build - -clean: - rm -rf build - rm -rf docs - rm -f scagen_build - -install-exec-hook: - cp build/scagen.jar $(bindir) - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/build.xml b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/build.xml deleted file mode 100644 index 23e825a1b4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/build.xml +++ /dev/null @@ -1,151 +0,0 @@ -<?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. ---> - - -<project name="org.apache.tuscany.sca.cpp.tools" default="all" basedir="."> - - <target name="init"> - <property name="build.result.folder" value="${basedir}/build" /> - <property name="temp.folder" value="${basedir}/tmp" /> - <property name="junit.jar.folder" value="${basedir}/lib" /> - <property name="tool.name" value="scagen" /> - <property name="bin.dir" value="${basedir}/../../deploy/bin" /> - </target> - - <!-- Add "test" to the depends list below to add auto-testing to the build --> - <!-- a junit.jar is needed at ${junit.jar.folder}/junit.jar though --> - <target name="all" depends="init,jars,scripts,zip.all"> - </target> - - <target name="test" depends="init,jars,test.jar"> - <java classname="org.apache.tuscany.sca.cpp.tools.junit.TestAllCompositesTest"> - <classpath> - <pathelement location="${build.result.folder}/test.jar" /> - <pathelement location="${junit.jar.folder}/junit.jar" /> - <pathelement location="${build.result.folder}/scagen.jar" /> - <pathelement path="${java.class.path}" /> - </classpath> - </java> - </target> - - - - <target name="doc"> - <javadoc packagenames="org.apache.tuscany.sca.cpp.tools.*" sourcepath="src" defaultexcludes="yes" destdir="docs/api" author="true" version="true" use="true" windowtitle="SCA for C++ Tools"> - <doctitle> - <![CDATA[<h1>SCA for C++ Tools</h1>]]> - </doctitle> - <bottom> - <![CDATA[<i>Copyright 2005 The Apache Software Foundation or its licensors, as applicable.</i>]]></bottom> - <group title="C++ Parser" packages="org.apache.tuscany.sca.cpp.tools.common" /> - <group title="SCA Services Generator" packages="org.apache.tuscany.sca.cpp.tools.services" /> - <link offline="true" href="http://java.sun.com/products/jdk/1.2/docs/api/" packagelistLoc="C:\tmp" /> -</javadoc> -</target> - -<target name="jars" depends="init, scagen.jar, src.jar"> -</target> - -<target name="scripts" depends="init"> -<mkdir dir="${build.result.folder}" /> -</target> - - - -<target name="src.jar" depends="init"> -<delete dir="${temp.folder}/src.jar.bin" /> -<mkdir dir="${temp.folder}/src.jar.bin" /> -<!-- Copy necessary resources i.e XSL stylesheets, test input etc - for the src jar too - --> -<copy todir="${temp.folder}/src.jar.bin" failonerror="true"> - <fileset dir="src/" /> -</copy> -<mkdir dir="${build.result.folder}" /> -<jar jarfile="${build.result.folder}/src.jar" basedir="${temp.folder}/src.jar.bin" /> -<delete dir="${temp.folder}/test.jar.bin" /> -</target> - -<target name="test.jar" depends="init, scagen.jar" unless="test.jar" description="Create jar for unit tests: test.jar."> -<delete dir="${temp.folder}/test.jar.bin" /> -<mkdir dir="${temp.folder}/test.jar.bin" /> -<!-- compile the source code --> -<javac srcdir="junit" destdir="${temp.folder}/test.jar.bin" failonerror="true" includeAntRuntime="no"> - <src path="junit/" /> - <classpath> - <pathelement path="${junit.jar.folder}/junit.jar" /> - <pathelement path="${build.result.folder}/scagen.jar" /> - </classpath> -</javac> -<!-- Copy necessary resources i.e XSL stylesheets, test input etc --> -<copy todir="${temp.folder}/test.jar.bin" failonerror="true"> - <fileset dir="junit/" excludes="testoutput/**" /> -</copy> -<mkdir dir="${build.result.folder}" /> -<jar jarfile="${build.result.folder}/test.jar" basedir="${temp.folder}/test.jar.bin" /> -<delete dir="${temp.folder}/test.jar.bin" /> -</target> - -<target name="scagen.jar" depends="init" unless="scagen.jar" description="Create main jar: scagen.jar"> -<delete dir="${temp.folder}/scagen.jar.bin" /> -<mkdir dir="${temp.folder}/scagen.jar.bin" /> -<!-- compile the source code --> -<javac srcdir="src" destdir="${temp.folder}/scagen.jar.bin" failonerror="true" includeAntRuntime="no"> - <src path="src/" /> -</javac> -<!-- Copy necessary resources i.e XSL stylesheets, test input etc --> -<copy todir="${temp.folder}/scagen.jar.bin" failonerror="true"> - <fileset dir="src/" excludes="**/*.java" /> -</copy> - -<copy todir="${temp.folder}/scagen.jar.bin/META-INF" failonerror="true"> - <fileset dir="META-INF/"/> -</copy> - -<mkdir dir="${build.result.folder}" /> -<jar jarfile="${build.result.folder}/scagen.jar" basedir="${temp.folder}/scagen.jar.bin"> - <manifest> - <attribute name="Main-Class" value="org.apache.tuscany.sca.cpp.tools.services.Scagen" /> - </manifest> -</jar> -<delete dir="${temp.folder}/scagen.jar.bin" /> -</target> - -<target name="tobin" depends="jars, scripts" description="move the desired stuff to bin"> - <move file="${build.result.folder}/scagen.jar" todir="${bin.dir}" /> -</target> - - - -<target name="clean" depends="init" description="Clean of all the files created."> -<delete file="${build.result.folder}/test.jar" /> -<delete file="${build.result.folder}/src.jar" /> -<delete file="${build.result.folder}/scagen.jar" /> -<delete file="${build.result.folder}/org.apache.tuscany.sca.cpp.tools.zip" /> -<delete dir="${temp.folder}" /> -</target> - -<target name="zip.all" depends="jars" description="Create a zip containing everything"> -<delete file="${build.result.folder}/org.apache.tuscany.sca.cpp.tools.zip" /> -<zip zipfile="${build.result.folder}/org.apache.tuscany.sca.cpp.tools.zip" excludes="bin/**,tmp/**,lib/**,junit/testoutput/**" basedir="." filesonly="true" whenempty="skip" update="false" /> -<delete dir="${temp.folder}" /> -</target> - -</project> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java deleted file mode 100644 index 13c1273983..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/CalculatorTest.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -import org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase; - -/** - * This test case tests a simple Calculator service tools generation - */ -public class CalculatorTest extends TuscanyTestCase { - - public void testCalculatorCompositeAndComponent() { - testComposite("CalculatorCompositeAndComponent", check_results); - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java deleted file mode 100644 index 48d415dd8e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/EnvHandlerTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite SCA composite as - * input data. - */ -public class EnvHandlerTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public EnvHandlerTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testComposite("MyValueServiceComposite", check_results); - } - -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceButNotInClassAttrTest.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceButNotInClassAttrTest.java deleted file mode 100644 index ca7d50ae48..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceButNotInClassAttrTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\composites\MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr SCA composite as - * input data. - */ -public class ImplClassWithNameSpaceButNotInClassAttrTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public ImplClassWithNameSpaceButNotInClassAttrTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\composites\MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testComposite("MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr", check_results); - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java deleted file mode 100644 index e019873489..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/ImplClassWithNameSpaceTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite SCA composite as - * input data. - */ -public class ImplClassWithNameSpaceTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public ImplClassWithNameSpaceTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testComposite("MyValueServiceCompositeImplClassWithNamespace", check_results); - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java deleted file mode 100644 index 11cab070b2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceButNotInClassAttrTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite SCA composite as - * input data. - */ -public class IntfClassWithNameSpaceButNotInClassAttrTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public IntfClassWithNameSpaceButNotInClassAttrTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testComposite("MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr", check_results); - } - -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java deleted file mode 100644 index a26321d2a3..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/IntfClassWithNameSpaceTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite SCA composite as - * input data. - */ -public class IntfClassWithNameSpaceTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public IntfClassWithNameSpaceTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testComposite("MyValueServiceCompositeIntfClassWithNamespace", check_results); - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingCompositeAndFragmentTest.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingCompositeAndFragmentTest.java deleted file mode 100644 index e529af0dd0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/MissingCompositeAndFragmentTest.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite SCA composite as - * input data. - */ -public class MissingCompositeAndFragmentTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public MissingCompositeAndFragmentTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite - * proxy and wrapper generation. - */ - public void testEnvHandler() { - testComposite("MyValueServiceCompositeMissingScaComposite",false); - } - -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java deleted file mode 100644 index 3743a1f1f9..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/SimplePublicPrivateProtectedTest.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -/** - * This is a "run this first" testcase that just tests some simple operations of - * the scagen tools it uses the - * Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite SCA composite as - * input data. - */ -public class SimplePublicPrivateProtectedTest extends TuscanyTestCase { - - /** - * Constructor for CustomerInfoTestOLD. - * - * @param arg0 - */ - public SimplePublicPrivateProtectedTest(String arg0) { - super(arg0); - } - - /** - * Test the Hydra.sca.core\test\testSCASystem\composites\MyValueServiceComposite - * proxy and wrapper generation. - */ - public void testEnvHandler() { - - testComposite("SimplePublicPrivateProtectedTest", check_results); - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllCompositesTest.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllCompositesTest.java deleted file mode 100644 index 1f1d2108e5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestAllCompositesTest.java +++ /dev/null @@ -1,89 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -import java.io.File; -import java.util.HashSet; -import java.util.Set; - -import org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase; - -/** - * This test case will test all the composites placed in the "composites" directory - * against the results in their repectice "expected_results" folders. - */ -public class TestAllCompositesTest extends TuscanyTestCase { - - String testsDir = TuscanyTestCase.junit_composites; - - Set excludes = new HashSet(); - - public TestAllCompositesTest(String arg0) { - super(arg0); - excludes.add("MyValueServiceCompositeMissingScaComposite"); - excludes.add("CVS"); - excludes.add(".svn"); - } - - - /* main exists to allow running from the java ant task */ - public static void main(String[] args) { - TestAllCompositesTest test = new TestAllCompositesTest(""); - test.testAllCompositesRegression(); - } - - public void testAllCompositesRegression() { - File dir = new File(testsDir); - - if (dir.isDirectory()) { - System.out.println("Testing all composites under " - + dir.getAbsolutePath()); - String[] test_composites = dir.list(); - - for (int i = 0; i < test_composites.length; i++) { - File test_composite = new File(testsDir, test_composites[i]); - - String composite_name = null; - if (test_composite.isDirectory()) { - composite_name = test_composite.getName(); - if (!excludes.contains(composite_name.intern())) { - testComposite(composite_name, check_results); - System.out.println("Test of composite \"" + composite_name - + "\" passed."); - continue; - } else { - System.out - .println("Ignoring excluded composite subdirectory \"" - + composite_name + "\""); - } - } - } - - } else { - - fail("Test directory is not a directory! \r The variable org.apache.tuscany.sca.cpp.tools.junit.TuscanyTestCase.root sets the location of the junit input data,\r it is currently set as " - + TuscanyTestCase.root + "\rand we expect to find a testinput\\composites directory under there."); - } - - System.out.println("testAllComposites test passed."); - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java deleted file mode 100644 index 0d845e1b1e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TestDeployAssistTool.java +++ /dev/null @@ -1,97 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -import java.io.File; -import java.util.HashSet; -import java.util.Set; - -/** - * This test case will test all the composites placed in the "composites" directory - * against the results in their repectice "expected_results" folders. - */ -public class TestDeployAssistTool extends TuscanyTestCase { - - String testsDir = TuscanyTestCase.junit_composites; - - Set excludes = new HashSet(); - - public TestDeployAssistTool(String arg0) { - super(arg0); - excludes.add("MyValueServiceCompositeMissingScaComposite"); - excludes.add("CVS"); - } - - /* main exists to allow running from the test script which will - * wrap this test case and pipe the satandard output to somewhere - * for checking. - */ - - public static void main(String[] args) { - TestDeployAssistTool test = new TestDeployAssistTool(""); - test.testDeployToolNullParms(); - } - - public void testDeployTool() { - //Utils.setReportArtefacts(true); - TestAllCompositesTest t = new TestAllCompositesTest(""); - File dir = new File(testsDir); - - if (dir.isDirectory()) { - String[] test_composites = dir.list(); - - for (int i = 0; i < test_composites.length; i++) { - File test_composite = new File(testsDir, test_composites[i]); - String composite_name = null; - if (test_composite.isDirectory()) { - composite_name = test_composite.getName(); - if (!excludes.contains(composite_name.intern())) { - t.testCompositeDeploy(composite_name, create_results, "c:\\colin", "cp"); - } - } - System.out.println(""); - } - } - } - - public void testDeployToolNullParms() { - //Utils.setReportArtefacts(true); - TestAllCompositesTest t = new TestAllCompositesTest(""); - File dir = new File(testsDir); - - if (dir.isDirectory()) { - String[] test_composites = dir.list(); - - for (int i = 0; i < test_composites.length; i++) { - File test_composite = new File(testsDir, test_composites[i]); - String composite_name = null; - if (test_composite.isDirectory()) { - composite_name = test_composite.getName(); - if (!excludes.contains(composite_name.intern())) { - t.testCompositeDeploy(composite_name, create_results, null, null); - } - } - System.out.println(""); - } - } - } -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java deleted file mode 100644 index 5d1fa568d1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/org/apache/tuscany/sca/cpp/tools/junit/TuscanyTestCase.java +++ /dev/null @@ -1,341 +0,0 @@ -/** - * - * 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. - */ - -package org.apache.tuscany.sca.cpp.tools.junit; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.cpp.tools.common.Options; -import org.apache.tuscany.sca.cpp.tools.services.Scagen; - -/** - * A superclass for testcases that can be used to store common functions. - */ -public abstract class TuscanyTestCase extends TestCase { - - public static String root = "d:\\tuscany\\cpp\\sca\\tools\\scagen\\junit\\"; - - public static String junit_composites = root + "testinput\\composites\\"; - - public static String junit_output = root + "testoutput\\"; - - private String testcase = "TESTCASE NOT SET BY SUBCLASS"; - - String input = null; - - String output = null; - - /** - * Check the resulting files with the contents of the expected_results - * folder in the testComposite method - */ - public final static boolean check_results = true; - - /** - * Create test output but do not check it (useful for setting up new - * expected test output - */ - public final static boolean create_results = false; - - /** - * - */ - public TuscanyTestCase() { - super(); - } - - /** - * @param arg0 - */ - public TuscanyTestCase(String arg0) { - super(arg0); - } - - protected void setUp() throws Exception { - super.setUp(); - } - - protected void tearDown() throws Exception { - super.tearDown(); - } - - /** - * Tests to see if two files are the same - this is just a scratch method at - * the moment that flags up testcase output files not matching expected - * results rather than needing to be a fully robust implementation and needs - * a little further work. - * - * @param file1 - * the first file to compare - * @param file2 - * the second file to compare - * - */ - protected boolean areFilesEqual(String file1, String file2) { - - try { - FileInputStream fis1 = new java.io.FileInputStream(file1); - FileInputStream fis2 = new java.io.FileInputStream(file2); - - BufferedReader br1 = new BufferedReader(new InputStreamReader(fis1)); - BufferedReader br2 = new BufferedReader(new InputStreamReader(fis2)); - - String line1 = br1.readLine(); - String line2 = br2.readLine(); - boolean moretodo = (line1 != null) && (line2 != null); - - for (int line = 1; moretodo; line++) { - - if (line1.equals(line2)) { - - line1 = br1.readLine(); - line2 = br2.readLine(); - - } else { - - int l1i, l2i; - - if ((l1i = line1.lastIndexOf("$Id")) > 0) { - //allow CVS strings - line1 = br1.readLine(); - } - - if ((l2i = line2.lastIndexOf("$Id")) > 0) { - //allow CVS strings - line2 = br2.readLine(); - } - - if (l1i == -1 && l2i == -1) { - - // they don't match - System.out.println("file " + file1 + " and file " - + file2); - System.out.println(" don't match at line " + line); - System.out.println("1 is :" + line1); - System.out.println("2 is :" + line2); - - return false; - } - } - - moretodo = (line1 != null) && (line2 != null); - } - - System.out.println("MATCH FOR: file " + file1 + " and file " - + file2); - return true; - - } catch (Throwable t) { - t.printStackTrace(); - return true; - } - - } - - /** - * @param outputDir - */ - protected void clearDirButNotExpectedOutputSubDir(String outputDir) { - File dir = new File(outputDir); - if (dir.isDirectory()) { - String[] files = dir.list(); - for (int i = 0; i < files.length; i++) { - File child = new File(dir, files[i]); - if (child.isDirectory()) { - if (!(child.getName().equals("expected_output") || child.getName().equals(".svn"))) { - clearDirButNotExpectedOutputSubDir(dir - .getAbsolutePath() - + File.separator + files[i]); - } - } - else - { - if( !child.delete() ) - { - System.out.println("File "+outputDir+"/"+child.getName()+" could not be deleted"); - } - } - } - } - - } - - public void testComposite(String composite, boolean check) { - - Options.reset(); - setTestcase(composite); - clearDirButNotExpectedOutputSubDir(output); - - String[] commandLine = new String[] { "-dir", input, "-output", output }; - try { - Scagen.main(commandLine); - } catch (Exception e) { - fail(e.getMessage()); - } - - if (check) { - checkDirWithExpected(output); - } - } - - public void testCompositeDeploy(String composite, boolean check, - String deployDir, String command) { - - Options.reset(); - setTestcase(composite); - clearDirButNotExpectedOutputSubDir(output); - - String[] commandLine; - if (null == deployDir) { - commandLine = new String[] { "-dir", input, "-output", - output, "-deploy"}; - } else { - commandLine = new String[] { "-dir", input, "-output", - output, "-deploy", deployDir, "-command", command }; - } - try { - Scagen.main(commandLine); - } catch (Exception e) { - fail(e.getMessage()); - } - - if (check) { - checkDirWithExpected(output); - } - } - - /** - * @param outputDirName - */ - private void checkDirWithExpected(String outputDirName) { - - File actualDir = new File(outputDirName); - if (actualDir == null || !actualDir.isDirectory()) { - fail("result directory does not exist"); - } - - File expectedDir = new File(outputDirName + File.separator - + "expected_output"); - if (expectedDir == null || !actualDir.isDirectory()) { - fail("can't check results as expected directory does not exist"); - } - - //Check every file in the expected output directory is present - //in the actual directory - - String[] expectedFiles = expectedDir.list(); - - if (expectedFiles == null) { - fail("no expected results for " + expectedDir.getPath()); - } - for (int i = 0; expectedFiles != null && i < expectedFiles.length; i++) { - File expectedFile = new File(expectedDir, expectedFiles[i]); - if (expectedFile.isDirectory()) { - // we can't check subdirectories yet - // and it conveniently skips over "CVS" - } else { - File actualFile = checkFileExistsFailIfNot(actualDir, - expectedFile.getName()); - checkFileHasNoTabsAndEndsInNewline(actualDir, expectedFile - .getName()); - if (!areFilesEqual(expectedFile.getAbsolutePath(), actualFile - .getAbsolutePath())) { - fail("odd output for " + expectedFile.getPath()); - } - - } - - } - - } - - /** - * @param actualDir - * @param name - */ - private File checkFileExistsFailIfNot(File dir, String name) { - - File f = new File(dir, name); - if (f == null || !f.exists() || !f.isFile()) { - fail("Expected result file " + f + " does not exist"); - } - return f; - - } - - /** - * @param actualDir - * @param name - */ - private void checkFileHasNoTabsAndEndsInNewline(File dir, String name) { - - try { - File f = new File(dir, name); - FileInputStream fis = new FileInputStream(f); - InputStreamReader isr = new InputStreamReader(fis); - Reader br = new BufferedReader(isr); - int ch, charBeforeMinusOne = -1; - while ((ch = br.read()) > -1) { - if (ch == '\t') { - fail("found tab in output " + f.getPath()); - } - charBeforeMinusOne = ch; - } - //The last char must be newline; - if (charBeforeMinusOne != '\n') { - fail("last char in file is not a newline in " + "(char is:" - + ch + " " + dir.getName() + File.separator + name); - } - - br.close(); - } catch (IOException e) { - e.printStackTrace(); - fail("io exception in tab/newline checker for " + dir.getName() - + File.separator + name); - return; - } - - } - - /** - * @param testcase - * The testcase to set. - */ - void setTestcase(String testcase) { - this.testcase = testcase; - input = TuscanyTestCase.junit_composites + testcase; - output = TuscanyTestCase.junit_output + testcase; - } - - /** - * @return Returns the testcase. - */ - String getTestcase() { - return testcase; - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/Calculator.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/Calculator.h deleted file mode 100644 index 99c4158d1a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/Calculator.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CALCULATOR_H -#define CALCULATOR_H - - -class Calculator { - -private: - virtual long add(long a, long b) = 0; -public: - - virtual long subtract(long a, long b) = 0; -}; - - -#endif // CALCULATOR_H diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/CalculatorImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/CalculatorImpl.componentType deleted file mode 100644 index a1accb0fda..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/CalculatorImpl.componentType +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9">
- <service name="CalculatorService">
- <interface.cpp header="Calculator.h"/> <!-- Header is relative to the composite root -->
- </service>
-</componentType>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/CalculatorImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/CalculatorImpl.h deleted file mode 100644 index 3f97eacef2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/CalculatorImpl.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CALCULATORIMPL_H -#define CALCULATORIMPL_H - -#include "Calculator.h" - -class CalculatorImpl : public Calculator -{ -public: - CalculatorImpl(); - virtual ~CalculatorImpl(); - virtual long add(long a, long b); - virtual long subtract(long a, long b); - -}; - -#endif // diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/sca.composite b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/sca.composite deleted file mode 100644 index f2a8e56c58..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorCompositeAndComponent/sca.composite +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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/0.9" name="Calculator">
-
- <component name="Calculator">
- <implementation.cpp dll="debug/Calculator.dll" header="CalculatorImpl.h"/>
- </component>
-
-</composite>
diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h deleted file mode 100644 index bc14167841..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/otherSubFolder/CalculatorBack.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CALCULATOR_H -#define CALCULATOR_H - - -class CalculatorBack { - - - -public: - virtual long subtractBack(long a, long b) = 0; - virtual long addBack(long a, long b) = 0; -}; - - -#endif // CALCULATOR_H diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h deleted file mode 100644 index af140f9575..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/otherSubFolder/CalculatorForward.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CALCULATOR_H -#define CALCULATOR_H - - -class CalculatorForward { - -public: - - virtual long subtractForward(long a, long b) = 0; - virtual long addForward(long a, long b) = 0; -}; - - -#endif // CALCULATOR_H diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/sca.composite b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/sca.composite deleted file mode 100644 index b3c5778b36..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/sca.composite +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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/0.9" name="Calculator">
-
- <component name="CalculatorForward">
- <implementation.cpp header="subFolder/CalculatorForwardImpl.h"/>
- </component>
-
- <component name="CalculatorBack">
- <implementation.cpp header="subFolder\CalculatorBackImpl.h"/>
- </component>
-
-</composite>
diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType deleted file mode 100644 index 715a4dfc6c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.componentType +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9">
- <service name="CalculatorService">
- <interface.cpp header="otherSubFolder\CalculatorBack.h"/> <!-- Header is relative to the composite root -->
- </service>
-</componentType>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h deleted file mode 100644 index d10bfb4b1a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorBackImpl.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CALCULATORIMPL_H -#define CALCULATORIMPL_H - -#include "Calculator.h" - -class CalculatorBackImpl : public Calculator -{ -public: - CalculatorImpl(); - virtual ~CalculatorImpl(); - virtual long addBack(long a, long b); - virtual long subtractBack(long a, long b); - -}; - -#endif // diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType deleted file mode 100644 index 0000086167..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.componentType +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9">
- <service name="CalculatorService">
- <interface.cpp header="otherSubFolder/CalculatorForward.h"/> <!-- Header is relative to the composite root -->
- </service>
-</componentType>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h deleted file mode 100644 index 182d9d89f2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CalculatorSlashDirectionTest/subFolder/CalculatorForwardImpl.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CALCULATORIMPL_H -#define CALCULATORIMPL_H - -#include "Calculator.h" - -class CalculatorForwardImpl : public Calculator -{ -public: - CalculatorImpl(); - virtual ~CalculatorImpl(); - virtual long addForward(long a, long b); - virtual long subtractForward(long a, long b); - -}; - -#endif // diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment deleted file mode 100644 index 733b4700e7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.fragment +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<compositeFragment xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="CustomerInfoComponent">
-
-
- <component name="CustomerInfoComponent">
- <implementation.cpp dll="CustomerInfo.dll" class="CustomerInfoImpl" header="CustomerInfoImpl.h"></implementation.cpp>
- <properties>
- <v:Fred>x</v:Fred>
- <v:Joe>23</v:Joe>
- <Joe>42</Joe>
- </properties>
- <references>
- </references>
- </component>
-
-</compositeFragment>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h deleted file mode 100644 index d1a634999c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfo.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: -//char (simple extra type) - virtual const char* getCustomerInformationChar(char * p1, const char* customerID ) = 0; - virtual const char* getCustomerInfoAChar(char * p1,const char*) = 0; - virtual const char* getCustomerInfoBChar(char * p1, char* customerID ) = 0; - virtual const char* getCustomerInfoCChar(char * p1, char customerID ) = 0; - virtual const char* getCustomerInfoDChar(char * p1,char) = 0; - virtual const char* getCustomerInfoEChar(char * p1 , char *) = 0; - virtual const char* getCustomerInfoFChar(char * p1, char * p1, char *customerID ) = 0; - virtual const char* getCustomerInfoGChar(char * p1, char *, char * p1,signed char *customerID ) = 0; - virtual const char* getCustomerInfoHChar(unsigned char *customerID, const char, ) = 0; - virtual const char* getCustomerInfoHChar(unsigned char *customerID, const char*) = 0; - -//long (duplicate the types) - virtual const long* getCustomerInformationLong(const long* customerID, const long* customerID ) = 0; - virtual const long* getCustomerInfoALong(const long*,const long*) = 0; - virtual const long* getCustomerInfoBLong(long* customerID, long* customerID2 ) = 0; - virtual const long* getCustomerInfoCLong(long customerID , long customerID2 ) = 0; - virtual const long* getCustomerInfoDLong(long,long) = 0; - virtual const long* getCustomerInfoELong(long *, long*) = 0; - virtual const long* getCustomerInfoFLong(long *customerID, long* customerID2 ) = 0; - virtual const long* getCustomerInfoGLong(signed long *customerID, signed long *customerID2 ) = 0; - virtual const long* getCustomerInfoHLong(signed long *customerID, signed long *customerID2 ) = 0; - -//int - virtual const int* getCustomerInformationInt(char*, const int* customerID ) = 0; - virtual const int* getCustomerInfoAInt(char*,const int*) = 0; - virtual const int* getCustomerInfoBInt(char*,int* customerID ) = 0; - virtual const int* getCustomerInfoCInt(char*,int customerID ) = 0; - virtual const int* getCustomerInfoDInt(char*,int) = 0; - virtual const int* getCustomerInfoEInt(char*,int *) = 0; - virtual const int* getCustomerInfoFInt(char*,int *customerID ) = 0; - virtual const int* getCustomerInfoGInt(char*,signed int *customerID ) = 0; - virtual const int* getCustomerInfoHInt(char*,unsigned int *customerID ) = 0; - - -//__int64 - virtual const __int64* getCustomerInformationint64(Diamond&,const __int64* customerID ) = 0; - virtual const __int64* getCustomerInfoAint64(Diamond&, const __int64*) = 0; - virtual const __int64* getCustomerInfoBint64( Diamond&, __int64* customerID ) = 0; - virtual const __int64* getCustomerInfoCint64(Diamond&,__int64 customerID ) = 0; - virtual const __int64* getCustomerInfoDint64(Diamond& myDiamond,__int64) = 0; - virtual const __int64* getCustomerInfoEint64(Diamond& myDiamond, __int64 *) = 0; - virtual const __int64* getCustomerInfoFint64(Diamond& myDiamond, __int64 *customerID ) = 0; - virtual const __int64* getCustomerInfoGint64(Diamond& myDiamond, signed __int64 *customerID ) = 0; - virtual const __int64* getCustomerInfoHint64(const Diamond& myDiamond, unsigned int64 *customerID ) = 0; - -//void - virtual const void* getCustomerInformationVoid(float& f, const __int64* customerID ) = 0; - virtual void getCustomerInfoAVoid(const float& f, const __int64*) = 0; - virtual void getCustomerInfoBVoid( ) = 0; - virtual void getCustomerInfoCVoid() = 0; - virtual void getCustomerInfoDVoid(void) = 0; - virtual char getCustomerInfoEVoid(void) = 0; - virtual char getCustomerInfoFVoid() = 0; - virtual char getCustomerInfoGVoid( void ) = 0; - -//inline - virtual inline const char * getCustomerInfoAInline(int,int,int,int, char* customer id) = 0; - inline int getCustomerInfoBInline(int*,int* f, int* g, char* customer id) = 0; - virtual inline friend const unsigned int * getCustomerInfoCInline(char* customer id) = 0; - -//tricky examples - int getCustomerInfoTrickyA(const char, const char) = 0; - int getCustomerInfoTrickyB(int myInt, int myInt) = 0; - - - - -}; - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType deleted file mode 100644 index c2cfd3b399..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.componentType +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
- <service name="CustomerInfoService">
- <interface.cpp header="/CustomerInfo.h">
- </interface.cpp>
- </service>
-
- <property name="Fred" type="xs:string"/>
- <property name="Joe" type="xs:integer" many="true"/>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h deleted file mode 100644 index c325a90b1e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplMultiParamDiffTypesTest/CustomerInfoImpl.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - - -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment deleted file mode 100644 index cb63dd1f06..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.fragment +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<compositeFragment xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="CustomerInfoComponent">
-
-
- <component name="CustomerInfoComponent">
- <implementation.cpp dll="CustomerInfo" class="CustomerInfoImpl" header="CustomerInfoImpl.h"></implementation.cpp>
- <properties>
- <v:Fred>x</v:Fred>
- <v:Joe>23</v:Joe>
- <Joe>42</Joe>
- </properties>
- <references>
- </references>
- </component>
-
-</compositeFragment>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h deleted file mode 100644 index 85fac59da8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfo.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: -//char - virtual const char* getCustomerInformationChar(const char* customerID ) = 0; - virtual const char* getCustomerInfoAChar(const char*) = 0; - virtual const char* getCustomerInfoBChar(char* customerID ) = 0; - virtual const char* getCustomerInfoCChar(char customerID ) = 0; - virtual const char* getCustomerInfoDChar(char) = 0; - virtual const char* getCustomerInfoEChar(char *) = 0; - virtual const char* getCustomerInfoFChar(char *customerID ) = 0; - virtual const char* getCustomerInfoGChar(signed char *customerID ) = 0; - virtual const char* getCustomerInfoHChar(unsigned char *customerID ) = 0; - -//long - virtual const long* getCustomerInformationLong(const long* customerID ) = 0; - virtual const long* getCustomerInfoALong(const long*) = 0; - virtual const long* getCustomerInfoBLong(long* customerID ) = 0; - virtual const long* getCustomerInfoCLong(long customerID ) = 0; - virtual const long* getCustomerInfoDLong(long) = 0; - virtual const long* getCustomerInfoELong(long *) = 0; - virtual const long* getCustomerInfoFLong(long *customerID ) = 0; - virtual const long* getCustomerInfoGLong(signed long *customerID ) = 0; - virtual const long* getCustomerInfoHLong(unsigned long *customerID ) = 0; - -//int - virtual const int* getCustomerInformationInt(const int* customerID ) = 0; - virtual const int* getCustomerInfoAInt(const int*) = 0; - virtual const int* getCustomerInfoBInt(int* customerID ) = 0; - virtual const int* getCustomerInfoCInt(int customerID ) = 0; - virtual const int* getCustomerInfoDInt(int) = 0; - virtual const int* getCustomerInfoEInt(int *) = 0; - virtual const int* getCustomerInfoFInt(int *customerID ) = 0; - virtual const int* getCustomerInfoGInt(signed int *customerID ) = 0; - virtual const int* getCustomerInfoHInt(unsigned int *customerID ) = 0; - - -//__int64 - virtual const __int64* getCustomerInformationint64(const __int64* customerID ) = 0; - virtual const __int64* getCustomerInfoAint64(const __int64*) = 0; - virtual const __int64* getCustomerInfoBint64(__int64* customerID ) = 0; - virtual const __int64* getCustomerInfoCint64(__int64 customerID ) = 0; - virtual const __int64* getCustomerInfoDint64(__int64) = 0; - virtual const __int64* getCustomerInfoEint64(__int64 *) = 0; - virtual const __int64* getCustomerInfoFint64(__int64 *customerID ) = 0; - virtual const __int64* getCustomerInfoGint64(signed __int64 *customerID ) = 0; - virtual const __int64* getCustomerInfoHint64(unsigned int64 *customerID ) = 0; - -//void - virtual const void* getCustomerInformationVoid(const __int64* customerID ) = 0; - virtual void getCustomerInfoAVoid(const __int64*) = 0; - virtual void getCustomerInfoBVoid( ) = 0; - virtual void getCustomerInfoCVoid() = 0; - virtual void getCustomerInfoDVoid(void) = 0; - -//inline - virtual inline const char * getCustomerInfoAInline(char* customer id) = 0; - inline int getCustomerInfoBInline(char* customer id) = 0; - virtual inline friend const unsigned int * getCustomerInfoCInline(char* customer id) = 0; - -//tricky examples - int getCustomerInfoTrickyA(const char) = 0; - int getCustomerInfoTrickyB(int myInt) = 0; - - - - -}; - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType deleted file mode 100644 index c2cfd3b399..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.componentType +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
- <service name="CustomerInfoService">
- <interface.cpp header="/CustomerInfo.h">
- </interface.cpp>
- </service>
-
- <property name="Fred" type="xs:string"/>
- <property name="Joe" type="xs:integer" many="true"/>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h deleted file mode 100644 index 95b70c3017..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/CustomerInfoImplSingleParamDiffTypesTest/CustomerInfoImpl.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - - -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -class CustomerInfoImpl2 : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation2(const char* customerID); - -}; - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfo.fragment b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfo.fragment deleted file mode 100644 index 5c5cb78b87..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfo.fragment +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<compositeFragment xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="CustomerInfoComponent">
-
-
- <component name="CustomerInfoComponent">
- <implementation.cpp dll="CustomerInfo" class="CustomerInfoImpl2" header="CustomerInfoImpl.h"></implementation.cpp>
- <properties>
- <v:Fred>x</v:Fred>
- <v:Joe>23</v:Joe>
- <Joe>42</Joe>
- </properties>
- <references>
- </references>
- </component>
-
-</compositeFragment>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfo.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfo.h deleted file mode 100644 index 7bd355b3ab..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfo.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * - * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: - virtual const char* getCustomerInformation(const char* customerID) = 0; - -}; - - -class CustomerInfoSecond -{ -public: - virtual const char* getCustomerInformationSecond(const char* customerID) = 0; - -}; - - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfoImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfoImpl.componentType deleted file mode 100644 index c2cfd3b399..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfoImpl.componentType +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
- <service name="CustomerInfoService">
- <interface.cpp header="/CustomerInfo.h">
- </interface.cpp>
- </service>
-
- <property name="Fred" type="xs:string"/>
- <property name="Joe" type="xs:integer" many="true"/>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfoImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfoImpl.h deleted file mode 100644 index 540873174b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/CustomerInfoImpl.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// Class definition for the implementation - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - - -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -class CustomerInfoImpl2 : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation2(const char* customerID); - -}; - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValue.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValue.h deleted file mode 100644 index 4334c82eca..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValue.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include <string> -using std::string; -class MyValue -{ -public: - virtual float getMyValue(const char* customerID) = 0; - virtual float getMyValueS(const string& customerID) = 0; - virtual string getCustname(string& customerID) = 0; - virtual const string& getCustnamecs(string customerID) = 0; - -}; - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValueImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValueImpl.componentType deleted file mode 100644 index c4e3b35675..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValueImpl.componentType +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9">
-
- <service name="MyValueService">
- <interface.cpp class="MyValue" header="MyValue.h">
- </interface.cpp>
- </service>
-
- <reference name="customerInfo">
- <interface.cpp header="CustomerInfo.h">
- </interface.cpp>
- </reference>
-
- <reference name="stockQuote">
- <interface.cpp header="StockQuoteService.h">
- </interface.cpp>
- </reference>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValueImpl.hpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValueImpl.hpp deleted file mode 100644 index 98a342fcb0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValueImpl.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/*
- * 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.
- */
-
-/* $Rev$ $Date$ */
-
-// Class definition for the implementation
-
-#ifndef MyValueImpl_h
-#define MyValueImpl_h
-
-#include "MyValue.h"
-
-
-
-class MyValueImpl : public MyValue
-{
-public:
- MyValueImpl();
- virtual ~MyValueImpl();
- virtual float getMyValue(const char* customerID);
- virtual float getMyValueS(const string& customerID);
- virtual string getCustname(string& customerID);
- virtual const string& getCustnamecs(string customerID);
-
-};
-
-#endif
diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index 3f9feeed30..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/StockQuoteService.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/StockQuoteService.h deleted file mode 100644 index 6a8fd51534..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/StockQuoteService.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// -////////////////////////////////////////////////////////////////////// - -#ifndef StockQuoteService_h -#define StockQuoteService_h -#include <string> -#include "commonj/sdo/sdo.h" -using std::string; -class StockQuoteService -{ -public: - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; - -}; - -#endif // StockQuoteService_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/sca.composite b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/sca.composite deleted file mode 100644 index 9a5cfd8da5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceComposite/sca.composite +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="MyValueServiceComposite">
-
- <!-- Expose as a web service -->
- <entryPoint name="MyValueServiceExport" multiplicity="1..1">
- <interface.wsdl interface="" callbackInterface=""></interface.wsdl>
- <binding.ws port="mvs:MyValueServiceSOAP"></binding.ws>
- <reference>MyValueServiceComponent</reference>
- </entryPoint>
-
- <component name="MyValueServiceComponent">
- <implementation.cpp dll="MyValue" header="MyValueImpl.hpp"></implementation.cpp>
- <properties>
- </properties>
- <references>
- <customerInfo>CustomerInfoComponent</customerInfo>
- <stockQuote>StockQuoteService</stockQuote>
- </references>
- </component>
-
- <!--
- <component name="Calculator">
- <implementation.cpp dll="debug/Calculator.dll" header="CalculatorImpl.h"/>
- </component>
- -->
-
- <externalService name="StockQuoteService">
- <interface.cpp header="StockQuoteService.h"/>
- <binding.ws port="http://swanandmokashi.com#wsdl.endpoint(StockQuotes/StockQuotesSoap)"/>
- </externalService>
-
- <!--wire>
- <source.uri>MyValueServiceComponent/customerInfo</source.uri>
- <target.uri>CustomerInfoComponent</target.uri>
- </wire-->
-
-</composite>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfo.fragment b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfo.fragment deleted file mode 100644 index 48d34f7957..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfo.fragment +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<compositeFragment xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="CustomerInfoComponent">
-
-
- <component name="CustomerInfoComponent">
- <implementation.cpp dll="CustomerInfo" class="Other::CustomerInfoImpl" header="CustomerInfoImpl.h"></implementation.cpp>
- <properties>
- <v:Fred>x</v:Fred>
- <v:Joe>23</v:Joe>
- <Joe>42</Joe>
- </properties>
- <references>
- </references>
- </component>
-
-</compositeFragment>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfo.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfo.h deleted file mode 100644 index 928480df1f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfo.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: - virtual const char* getCustomerInformation(const char* customerID) = 0; - -}; - - -class CustomerInfoSecond -{ -public: - virtual const char* getCustomerInformationSecond(const char* customerID) = 0; - -}; - - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfoImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfoImpl.componentType deleted file mode 100644 index c2cfd3b399..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfoImpl.componentType +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
- <service name="CustomerInfoService">
- <interface.cpp header="/CustomerInfo.h">
- </interface.cpp>
- </service>
-
- <property name="Fred" type="xs:string"/>
- <property name="Joe" type="xs:integer" many="true"/>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfoImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfoImpl.h deleted file mode 100644 index 8d2f810db0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/CustomerInfoImpl.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// Class definition for the implementation - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - -/* -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -*/ -namespace Other { - class CustomerInfoImpl : public CustomerInfo - { - public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformationOther(const char* customerID); - - }; -} - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValue.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValue.h deleted file mode 100644 index 4334c82eca..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValue.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include <string> -using std::string; -class MyValue -{ -public: - virtual float getMyValue(const char* customerID) = 0; - virtual float getMyValueS(const string& customerID) = 0; - virtual string getCustname(string& customerID) = 0; - virtual const string& getCustnamecs(string customerID) = 0; - -}; - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValueImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValueImpl.componentType deleted file mode 100644 index c4e3b35675..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValueImpl.componentType +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9">
-
- <service name="MyValueService">
- <interface.cpp class="MyValue" header="MyValue.h">
- </interface.cpp>
- </service>
-
- <reference name="customerInfo">
- <interface.cpp header="CustomerInfo.h">
- </interface.cpp>
- </reference>
-
- <reference name="stockQuote">
- <interface.cpp header="StockQuoteService.h">
- </interface.cpp>
- </reference>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValueImpl.hpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValueImpl.hpp deleted file mode 100644 index 98a342fcb0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValueImpl.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/*
- * 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.
- */
-
-/* $Rev$ $Date$ */
-
-// Class definition for the implementation
-
-#ifndef MyValueImpl_h
-#define MyValueImpl_h
-
-#include "MyValue.h"
-
-
-
-class MyValueImpl : public MyValue
-{
-public:
- MyValueImpl();
- virtual ~MyValueImpl();
- virtual float getMyValue(const char* customerID);
- virtual float getMyValueS(const string& customerID);
- virtual string getCustname(string& customerID);
- virtual const string& getCustnamecs(string customerID);
-
-};
-
-#endif
diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index 3f9feeed30..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/StockQuoteService.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/StockQuoteService.h deleted file mode 100644 index 6a8fd51534..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/StockQuoteService.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// -////////////////////////////////////////////////////////////////////// - -#ifndef StockQuoteService_h -#define StockQuoteService_h -#include <string> -#include "commonj/sdo/sdo.h" -using std::string; -class StockQuoteService -{ -public: - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; - -}; - -#endif // StockQuoteService_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/sca.composite b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/sca.composite deleted file mode 100644 index 9a5cfd8da5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespace/sca.composite +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="MyValueServiceComposite">
-
- <!-- Expose as a web service -->
- <entryPoint name="MyValueServiceExport" multiplicity="1..1">
- <interface.wsdl interface="" callbackInterface=""></interface.wsdl>
- <binding.ws port="mvs:MyValueServiceSOAP"></binding.ws>
- <reference>MyValueServiceComponent</reference>
- </entryPoint>
-
- <component name="MyValueServiceComponent">
- <implementation.cpp dll="MyValue" header="MyValueImpl.hpp"></implementation.cpp>
- <properties>
- </properties>
- <references>
- <customerInfo>CustomerInfoComponent</customerInfo>
- <stockQuote>StockQuoteService</stockQuote>
- </references>
- </component>
-
- <!--
- <component name="Calculator">
- <implementation.cpp dll="debug/Calculator.dll" header="CalculatorImpl.h"/>
- </component>
- -->
-
- <externalService name="StockQuoteService">
- <interface.cpp header="StockQuoteService.h"/>
- <binding.ws port="http://swanandmokashi.com#wsdl.endpoint(StockQuotes/StockQuotesSoap)"/>
- </externalService>
-
- <!--wire>
- <source.uri>MyValueServiceComponent/customerInfo</source.uri>
- <target.uri>CustomerInfoComponent</target.uri>
- </wire-->
-
-</composite>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/MyValue.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/MyValue.h deleted file mode 100644 index 90835ca4af..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/MyValue.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include <string> -using std::string; - -class MyValue -{ - public: - virtual float getMyValueOther(const char* customerID) = 0; - virtual float getMyValueSOther(const string& customerID) = 0; - virtual string getCustnameOther(string& customerID) = 0; - virtual const string& getCustnamecsOther(string customerID) = 0; -} - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType deleted file mode 100644 index 785be08b72..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9">
-
- <service name="MyValueService">
- <interface.cpp header="MyValue.h">
- </interface.cpp>
- </service>
-
-</componentType>
-
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp deleted file mode 100644 index 04a785cd26..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ -// Class definition for the implementation - -#ifndef MyValueImpl_h -#define MyValueImpl_h - -#include "MyValue.h" - - -namespace myvaluecorp -{ - namespace implns - { - - class MyValueImpl : public MyValue - { - public: - MyValueImpl(); - virtual ~MyValueImpl(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname(string& customerID); - virtual const string& getCustnamecs(string customerID); - - }; - } -} -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/sca.composite b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/sca.composite deleted file mode 100644 index 3e3c22a07b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/sca.composite +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="MyValueServiceComposite">
-
- <!-- Expose as a web service -->
- <entryPoint name="MyValueServiceExport" multiplicity="1..1">
- <interface.wsdl interface="" callbackInterface=""></interface.wsdl>
- <binding.ws port="mvs:MyValueServiceSOAP"></binding.ws>
- <reference>MyValueServiceComponent</reference>
- </entryPoint>
-
- <component name="MyValueServiceComponent">
- <implementation.cpp dll="MyValue" header="MyValueImpl.hpp"></implementation.cpp>
- <properties>
- </properties>
- <references>
- <customerInfo>CustomerInfoComponent</customerInfo>
- <stockQuote>StockQuoteService</stockQuote>
- </references>
- </component>
-
- <!--wire>
- <source.uri>MyValueServiceComponent/customerInfo</source.uri>
- <target.uri>CustomerInfoComponent</target.uri>
- </wire-->
-
-</composite>
diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/MyValue.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/MyValue.h deleted file mode 100644 index bbfcf15ed1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/MyValue.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include <string> -using std::string; - -namespace Other { - class MyValue - { - public: - virtual float getMyValueOther(const char* customerID) = 0; - virtual float getMyValueSOther(const string& customerID) = 0; - virtual string getCustnameOther(string& customerID) = 0; - virtual const string& getCustnamecsOther(string customerID) = 0; - } -} - - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/MyValueImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/MyValueImpl.componentType deleted file mode 100644 index 42cc4e9827..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/MyValueImpl.componentType +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9">
-
- <service name="MyValueService">
- <interface.cpp class="Other::MyValue" header="MyValue.h">
- </interface.cpp>
- </service>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/MyValueImpl.hpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/MyValueImpl.hpp deleted file mode 100644 index 98a342fcb0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/MyValueImpl.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/*
- * 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.
- */
-
-/* $Rev$ $Date$ */
-
-// Class definition for the implementation
-
-#ifndef MyValueImpl_h
-#define MyValueImpl_h
-
-#include "MyValue.h"
-
-
-
-class MyValueImpl : public MyValue
-{
-public:
- MyValueImpl();
- virtual ~MyValueImpl();
- virtual float getMyValue(const char* customerID);
- virtual float getMyValueS(const string& customerID);
- virtual string getCustname(string& customerID);
- virtual const string& getCustnamecs(string customerID);
-
-};
-
-#endif
diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/sca.composite b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/sca.composite deleted file mode 100644 index 510bf36337..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespace/sca.composite +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="MyValueServiceComposite">
-
- <!-- Expose as a web service -->
- <entryPoint name="MyValueServiceExport" multiplicity="1..1">
- <interface.wsdl interface="" callbackInterface=""></interface.wsdl>
- <binding.ws port="mvs:MyValueServiceSOAP"></binding.ws>
- <reference>MyValueServiceComponent</reference>
- </entryPoint>
-
- <component name="MyValueServiceComponent">
- <implementation.cpp dll="MyValue" header="MyValueImpl.hpp"></implementation.cpp>
- <properties>
- </properties>
- <references>
- <customerInfo>CustomerInfoComponent</customerInfo>
- <stockQuote>StockQuoteService</stockQuote>
- </references>
- </component>
-
- <!--wire>
- <source.uri>MyValueServiceComponent/customerInfo</source.uri>
- <target.uri>CustomerInfoComponent</target.uri>
- </wire-->
-
-</composite>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/MyValue.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/MyValue.h deleted file mode 100644 index 10c59480a8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/MyValue.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include <string> -using std::string; - -namespace Other { - class MyValue - { - public: - virtual float getMyValueOther(const char* customerID) = 0; - virtual float getMyValueSOther(const string& customerID) = 0; - virtual string getCustnameOther(string& customerID) = 0; - virtual const string& getCustnamecsOther(string customerID) = 0; - } -} -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType deleted file mode 100644 index ddb463e3d7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.componentType +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9">
-
- <service name="MyValueService">
- <interface.cpp header="MyValue.h">
- </interface.cpp>
- </service>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp deleted file mode 100644 index 98a342fcb0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/MyValueImpl.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/*
- * 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.
- */
-
-/* $Rev$ $Date$ */
-
-// Class definition for the implementation
-
-#ifndef MyValueImpl_h
-#define MyValueImpl_h
-
-#include "MyValue.h"
-
-
-
-class MyValueImpl : public MyValue
-{
-public:
- MyValueImpl();
- virtual ~MyValueImpl();
- virtual float getMyValue(const char* customerID);
- virtual float getMyValueS(const string& customerID);
- virtual string getCustname(string& customerID);
- virtual const string& getCustnamecs(string customerID);
-
-};
-
-#endif
diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/sca.composite b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/sca.composite deleted file mode 100644 index 510bf36337..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/sca.composite +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="MyValueServiceComposite">
-
- <!-- Expose as a web service -->
- <entryPoint name="MyValueServiceExport" multiplicity="1..1">
- <interface.wsdl interface="" callbackInterface=""></interface.wsdl>
- <binding.ws port="mvs:MyValueServiceSOAP"></binding.ws>
- <reference>MyValueServiceComponent</reference>
- </entryPoint>
-
- <component name="MyValueServiceComponent">
- <implementation.cpp dll="MyValue" header="MyValueImpl.hpp"></implementation.cpp>
- <properties>
- </properties>
- <references>
- <customerInfo>CustomerInfoComponent</customerInfo>
- <stockQuote>StockQuoteService</stockQuote>
- </references>
- </component>
-
- <!--wire>
- <source.uri>MyValueServiceComponent/customerInfo</source.uri>
- <target.uri>CustomerInfoComponent</target.uri>
- </wire-->
-
-</composite>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeMissingScaComposite/CustomerInfo.fragmentX b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeMissingScaComposite/CustomerInfo.fragmentX deleted file mode 100644 index 717ce02ede..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeMissingScaComposite/CustomerInfo.fragmentX +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-<compositeFragment xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="CustomerInfoComponent">
-
-
- <component name="CustomerInfoComponent">
- <implementation.cpp dll="CustomerInfo" class="CustomerInfoImpl2" header="CustomerInfoImpl.h"></implementation.cpp>
- <properties>
- <v:Fred>x</v:Fred>
- <v:Joe>23</v:Joe>
- <Joe>42</Joe>
- </properties>
- <references>
- </references>
- </component>
-
-</compositeFragment>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeMissingScaComposite/sca.compositeX b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeMissingScaComposite/sca.compositeX deleted file mode 100644 index bbda577c28..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeMissingScaComposite/sca.compositeX +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="MyValueServiceComposite">
-
- <!-- Expose as a web service -->
- <entryPoint name="MyValueServiceExport" multiplicity="1..1">
- <interface.wsdl interface="" callbackInterface=""></interface.wsdl>
- <binding.ws port="mvs:MyValueServiceSOAP"></binding.ws>
- <reference>MyValueServiceComponent</reference>
- </entryPoint>
-
- <component name="MyValueServiceComponent">
- <implementation.cpp dll="MyValue" header="MyValueImpl.hpp"></implementation.cpp>
- <properties>
- </properties>
- <references>
- <customerInfo>CustomerInfoComponent</customerInfo>
- <stockQuote>StockQuoteService</stockQuote>
- </references>
- </component>
-
- <!--
- <component name="Calculator">
- <implementation.cpp dll="debug/Calculator.dll" header="CalculatorImpl.h"/>
- </component>
- -->
-
- <externalService name="StockQuoteService">
- <interface.cpp header="StockQuoteService.h"/>
- <binding.ws port="http://swanandmokashi.com#wsdl.endpoint(StockQuotes/StockQuotesSoap)"/>
- </externalService>
-
- <!--wire>
- <source.uri>MyValueServiceComponent/customerInfo</source.uri>
- <target.uri>CustomerInfoComponent</target.uri>
- </wire-->
-
-</composite>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfo.fragment b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfo.fragment deleted file mode 100644 index 5c5cb78b87..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfo.fragment +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<compositeFragment xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="CustomerInfoComponent">
-
-
- <component name="CustomerInfoComponent">
- <implementation.cpp dll="CustomerInfo" class="CustomerInfoImpl2" header="CustomerInfoImpl.h"></implementation.cpp>
- <properties>
- <v:Fred>x</v:Fred>
- <v:Joe>23</v:Joe>
- <Joe>42</Joe>
- </properties>
- <references>
- </references>
- </component>
-
-</compositeFragment>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfo.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfo.h deleted file mode 100644 index 928480df1f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfo.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: - virtual const char* getCustomerInformation(const char* customerID) = 0; - -}; - - -class CustomerInfoSecond -{ -public: - virtual const char* getCustomerInformationSecond(const char* customerID) = 0; - -}; - - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfoImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfoImpl.componentType deleted file mode 100644 index c2cfd3b399..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfoImpl.componentType +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
- <service name="CustomerInfoService">
- <interface.cpp header="/CustomerInfo.h">
- </interface.cpp>
- </service>
-
- <property name="Fred" type="xs:string"/>
- <property name="Joe" type="xs:integer" many="true"/>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfoImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfoImpl.h deleted file mode 100644 index c275383ab4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/CustomerInfoImpl.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// Class definition for the implementation - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - - -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -class CustomerInfoImpl2 : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValue.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValue.h deleted file mode 100644 index 4334c82eca..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValue.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// MyValue.h: interface for the MyValueImpl class. -// -////////////////////////////////////////////////////////////////////// - -#ifndef MyValue_h -#define MyValue_h -#include <string> -using std::string; -class MyValue -{ -public: - virtual float getMyValue(const char* customerID) = 0; - virtual float getMyValueS(const string& customerID) = 0; - virtual string getCustname(string& customerID) = 0; - virtual const string& getCustnamecs(string customerID) = 0; - -}; - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValueImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValueImpl.componentType deleted file mode 100644 index c4e3b35675..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValueImpl.componentType +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9">
-
- <service name="MyValueService">
- <interface.cpp class="MyValue" header="MyValue.h">
- </interface.cpp>
- </service>
-
- <reference name="customerInfo">
- <interface.cpp header="CustomerInfo.h">
- </interface.cpp>
- </reference>
-
- <reference name="stockQuote">
- <interface.cpp header="StockQuoteService.h">
- </interface.cpp>
- </reference>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValueImpl.hpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValueImpl.hpp deleted file mode 100644 index 98a342fcb0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValueImpl.hpp +++ /dev/null @@ -1,43 +0,0 @@ -/*
- * 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.
- */
-
-/* $Rev$ $Date$ */
-
-// Class definition for the implementation
-
-#ifndef MyValueImpl_h
-#define MyValueImpl_h
-
-#include "MyValue.h"
-
-
-
-class MyValueImpl : public MyValue
-{
-public:
- MyValueImpl();
- virtual ~MyValueImpl();
- virtual float getMyValue(const char* customerID);
- virtual float getMyValueS(const string& customerID);
- virtual string getCustname(string& customerID);
- virtual const string& getCustnamecs(string customerID);
-
-};
-
-#endif
diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index 3f9feeed30..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/StockQuoteService.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/StockQuoteService.h deleted file mode 100644 index 6a8fd51534..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/StockQuoteService.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// -////////////////////////////////////////////////////////////////////// - -#ifndef StockQuoteService_h -#define StockQuoteService_h -#include <string> -#include "commonj/sdo/sdo.h" -using std::string; -class StockQuoteService -{ -public: - virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0; - -}; - -#endif // StockQuoteService_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/sca.composite b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/sca.composite deleted file mode 100644 index 9a5cfd8da5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/MyValueServiceCompositeTwoClasses/sca.composite +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="MyValueServiceComposite">
-
- <!-- Expose as a web service -->
- <entryPoint name="MyValueServiceExport" multiplicity="1..1">
- <interface.wsdl interface="" callbackInterface=""></interface.wsdl>
- <binding.ws port="mvs:MyValueServiceSOAP"></binding.ws>
- <reference>MyValueServiceComponent</reference>
- </entryPoint>
-
- <component name="MyValueServiceComponent">
- <implementation.cpp dll="MyValue" header="MyValueImpl.hpp"></implementation.cpp>
- <properties>
- </properties>
- <references>
- <customerInfo>CustomerInfoComponent</customerInfo>
- <stockQuote>StockQuoteService</stockQuote>
- </references>
- </component>
-
- <!--
- <component name="Calculator">
- <implementation.cpp dll="debug/Calculator.dll" header="CalculatorImpl.h"/>
- </component>
- -->
-
- <externalService name="StockQuoteService">
- <interface.cpp header="StockQuoteService.h"/>
- <binding.ws port="http://swanandmokashi.com#wsdl.endpoint(StockQuotes/StockQuotesSoap)"/>
- </externalService>
-
- <!--wire>
- <source.uri>MyValueServiceComponent/customerInfo</source.uri>
- <target.uri>CustomerInfoComponent</target.uri>
- </wire-->
-
-</composite>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfo.fragment b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfo.fragment deleted file mode 100644 index 27d28368f5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfo.fragment +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<compositeFragment xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
- xmlns:mvs="http://www.myvalue.org/MyValueService/"
- name="CustomerInfoComponent">
-
-
- <component name="CustomerInfoComponent">
- <implementation.cpp dll="CustomerInfo" header="CustomerInfoImpl.h">
- </implementation.cpp>
- <properties>
- <v:Fred>x</v:Fred>
- <v:Joe>23</v:Joe>
- <Joe>42</Joe>
- </properties>
- <references>
- </references>
- </component>
-
-</compositeFragment>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfo.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfo.h deleted file mode 100644 index 32bf7572dc..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfo.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef CustomerInfo_h -#define CustomerInfo_h - -class CustomerInfo -{ -public: - virtual const char* getCustomerInformationCharPublic(char * p1, const char* customerID ) = 0; - virtual const char* getCustomerInfoACharPublic(char * p1,const char*) = 0; - virtual const char* getCustomerInfoBCharPublic(char * p1, char* customerID ) = 0; - -private: - virtual const char* getCustomerInformationCharPrivate(char * p1, const char* customerID ) = 0; - virtual const char* getCustomerInfoACharPrivate(char * p1,const char*) = 0; - virtual const char* getCustomerInfoBCharPrivate(char * p1, char* customerID ) = 0; - -protected: - virtual const char* getCustomerInformationCharProtected(char * p1, const char* customerID ) = 0; - virtual const char* getCustomerInfoACharProtected(char * p1,const char*) = 0; - virtual const char* getCustomerInfoBCharProtected(char * p1, char* customerID ) = 0; - - -}; - -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType deleted file mode 100644 index c2cfd3b399..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfoImpl.componentType +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="ASCII"?>
-<!--
- 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.
--->
-
-<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
- <service name="CustomerInfoService">
- <interface.cpp header="/CustomerInfo.h">
- </interface.cpp>
- </service>
-
- <property name="Fred" type="xs:string"/>
- <property name="Joe" type="xs:integer" many="true"/>
-
-</componentType>
-
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h deleted file mode 100644 index 55f5813303..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testinput/composites/SimplePublicPrivateProtectedTest/CustomerInfoImpl.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// Class definition for the implementation - -#ifndef CustomerInfoImpl_h -#define CustomerInfoImpl_h - -#include "CustomerInfo.h" - - - -class CustomerInfoImpl : public CustomerInfo -{ -public: - CustomerInfoImpl(); - virtual ~CustomerInfoImpl(); - virtual const char* getCustomerInformation(const char* customerID); - -}; -#endif diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp deleted file mode 100644 index 14bafd9ce7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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. - */ - -#include "CalculatorImpl_CalculatorService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorImpl_CalculatorService_Proxy* CalculatorImpl_CalculatorService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CalculatorImpl_CalculatorService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CalculatorImpl_CalculatorService_Proxy_Destructor(void* proxy) - { - delete (CalculatorImpl_CalculatorService_Proxy*)proxy; - } -} - -CalculatorImpl_CalculatorService_Proxy::CalculatorImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CalculatorImpl_CalculatorService_Proxy::~CalculatorImpl_CalculatorService_Proxy() -{ - if (target) - delete target; -} - -long CalculatorImpl_CalculatorService_Proxy::subtract( long arg0, long arg1) -{ - tuscany::sca::Operation operation("subtract"); - operation.addParameter("a", &arg0); - operation.addParameter("b", &arg1); - long ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(long*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h deleted file mode 100644 index 00b163ba76..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef CalculatorImpl_CalculatorService_Proxy_h -#define CalculatorImpl_CalculatorService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "Calculator.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CalculatorImpl_CalculatorService_Proxy : public Calculator -{ -public: - CalculatorImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CalculatorImpl_CalculatorService_Proxy(); - virtual long subtract( long a, long b); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CalculatorImpl_CalculatorService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp deleted file mode 100644 index b6e5c8a9f0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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. - */ - -#include "CalculatorImpl_CalculatorService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorImpl_CalculatorService_Wrapper* CalculatorImpl_CalculatorService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CalculatorImpl_CalculatorService_Wrapper(target); - } -} - -CalculatorImpl_CalculatorService_Wrapper::CalculatorImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (CalculatorImpl*)getImplementation(); -} - -CalculatorImpl_CalculatorService_Wrapper::~CalculatorImpl_CalculatorService_Wrapper() -{ - releaseImplementation(); -} - -void* CalculatorImpl_CalculatorService_Wrapper::newImplementation() -{ - return new CalculatorImpl; -} - -void CalculatorImpl_CalculatorService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CalculatorImpl_CalculatorService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "subtract") - { - long& p0 = *( long*)operation.getParameterValue(0); - long& p1 = *( long*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(long*)operation.getReturnValue() = impl->subtract(p0, p1); - } - else - { - long* ret = new long; - *ret = impl->subtract(p0, p1); - operation.setReturnValue((const long*)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h deleted file mode 100644 index 63bae2f75c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorCompositeAndComponent/expected_output/CalculatorImpl_CalculatorService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CalculatorImpl_CalculatorService_Wrapper_h -#define CalculatorImpl_CalculatorService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CalculatorImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class CalculatorImpl_CalculatorService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - CalculatorImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CalculatorImpl_CalculatorService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CalculatorImpl* impl; -}; - -#endif // CalculatorImpl_CalculatorService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp deleted file mode 100644 index 79bfdbedbb..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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. - */ - -#include "CalculatorBackImpl_CalculatorService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorBackImpl_CalculatorService_Proxy* CalculatorBackImpl_CalculatorService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CalculatorBackImpl_CalculatorService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CalculatorBackImpl_CalculatorService_Proxy_Destructor(void* proxy) - { - delete (CalculatorBackImpl_CalculatorService_Proxy*)proxy; - } -} - -CalculatorBackImpl_CalculatorService_Proxy::CalculatorBackImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CalculatorBackImpl_CalculatorService_Proxy::~CalculatorBackImpl_CalculatorService_Proxy() -{ - if (target) - delete target; -} - -long CalculatorBackImpl_CalculatorService_Proxy::subtractBack( long arg0, long arg1) -{ - tuscany::sca::Operation operation("subtractBack"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - long ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(long*)operation.getReturnValue(); -} - -long CalculatorBackImpl_CalculatorService_Proxy::addBack( long arg0, long arg1) -{ - tuscany::sca::Operation operation("addBack"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - long ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(long*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h deleted file mode 100644 index 277a3afb06..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Proxy.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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. - */ - -#ifndef CalculatorBackImpl_CalculatorService_Proxy_h -#define CalculatorBackImpl_CalculatorService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "otherSubFolder/CalculatorBack.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CalculatorBackImpl_CalculatorService_Proxy : public CalculatorBack -{ -public: - CalculatorBackImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CalculatorBackImpl_CalculatorService_Proxy(); - virtual long subtractBack( long a, long b); - virtual long addBack( long a, long b); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CalculatorBackImpl_CalculatorService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp deleted file mode 100644 index 09dd09c01c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - * 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. - */ - -#include "CalculatorBackImpl_CalculatorService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorBackImpl_CalculatorService_Wrapper* CalculatorBackImpl_CalculatorService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CalculatorBackImpl_CalculatorService_Wrapper(target); - } -} - -CalculatorBackImpl_CalculatorService_Wrapper::CalculatorBackImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (CalculatorBackImpl*)getImplementation(); -} - -CalculatorBackImpl_CalculatorService_Wrapper::~CalculatorBackImpl_CalculatorService_Wrapper() -{ - releaseImplementation(); -} - -void* CalculatorBackImpl_CalculatorService_Wrapper::newImplementation() -{ - return new CalculatorBackImpl; -} - -void CalculatorBackImpl_CalculatorService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CalculatorBackImpl_CalculatorService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "subtractBack") - { - long& p0 = *( long*)operation.getParameterValue(0); - long& p1 = *( long*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(long*)operation.getReturnValue() = impl->subtractBack(p0, p1); - } - else - { - long* ret = new long; - *ret = impl->subtractBack(p0, p1); - operation.setReturnValue((const long*)ret); - } - return; - } - if (operationName == "addBack") - { - long& p0 = *( long*)operation.getParameterValue(0); - long& p1 = *( long*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(long*)operation.getReturnValue() = impl->addBack(p0, p1); - } - else - { - long* ret = new long; - *ret = impl->addBack(p0, p1); - operation.setReturnValue((const long*)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h deleted file mode 100644 index bfa203598c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorBackImpl_CalculatorService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CalculatorBackImpl_CalculatorService_Wrapper_h -#define CalculatorBackImpl_CalculatorService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "subFolder/CalculatorBackImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class CalculatorBackImpl_CalculatorService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - CalculatorBackImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CalculatorBackImpl_CalculatorService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CalculatorBackImpl* impl; -}; - -#endif // CalculatorBackImpl_CalculatorService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp deleted file mode 100644 index 19056e836d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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. - */ - -#include "CalculatorForwardImpl_CalculatorService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorForwardImpl_CalculatorService_Proxy* CalculatorForwardImpl_CalculatorService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CalculatorForwardImpl_CalculatorService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CalculatorForwardImpl_CalculatorService_Proxy_Destructor(void* proxy) - { - delete (CalculatorForwardImpl_CalculatorService_Proxy*)proxy; - } -} - -CalculatorForwardImpl_CalculatorService_Proxy::CalculatorForwardImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CalculatorForwardImpl_CalculatorService_Proxy::~CalculatorForwardImpl_CalculatorService_Proxy() -{ - if (target) - delete target; -} - -long CalculatorForwardImpl_CalculatorService_Proxy::subtractForward( long arg0, long arg1) -{ - tuscany::sca::Operation operation("subtractForward"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - long ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(long*)operation.getReturnValue(); -} - -long CalculatorForwardImpl_CalculatorService_Proxy::addForward( long arg0, long arg1) -{ - tuscany::sca::Operation operation("addForward"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - long ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(long*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h deleted file mode 100644 index 9213ec625b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Proxy.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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. - */ - -#ifndef CalculatorForwardImpl_CalculatorService_Proxy_h -#define CalculatorForwardImpl_CalculatorService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "otherSubFolder/CalculatorForward.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CalculatorForwardImpl_CalculatorService_Proxy : public CalculatorForward -{ -public: - CalculatorForwardImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CalculatorForwardImpl_CalculatorService_Proxy(); - virtual long subtractForward( long a, long b); - virtual long addForward( long a, long b); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CalculatorForwardImpl_CalculatorService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp deleted file mode 100644 index 7b1cad7770..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/* - * 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. - */ - -#include "CalculatorForwardImpl_CalculatorService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorForwardImpl_CalculatorService_Wrapper* CalculatorForwardImpl_CalculatorService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CalculatorForwardImpl_CalculatorService_Wrapper(target); - } -} - -CalculatorForwardImpl_CalculatorService_Wrapper::CalculatorForwardImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (CalculatorForwardImpl*)getImplementation(); -} - -CalculatorForwardImpl_CalculatorService_Wrapper::~CalculatorForwardImpl_CalculatorService_Wrapper() -{ - releaseImplementation(); -} - -void* CalculatorForwardImpl_CalculatorService_Wrapper::newImplementation() -{ - return new CalculatorForwardImpl; -} - -void CalculatorForwardImpl_CalculatorService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CalculatorForwardImpl_CalculatorService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "subtractForward") - { - long& p0 = *( long*)operation.getParameterValue(0); - long& p1 = *( long*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(long*)operation.getReturnValue() = impl->subtractForward(p0, p1); - } - else - { - long* ret = new long; - *ret = impl->subtractForward(p0, p1); - operation.setReturnValue((const long*)ret); - } - return; - } - if (operationName == "addForward") - { - long& p0 = *( long*)operation.getParameterValue(0); - long& p1 = *( long*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(long*)operation.getReturnValue() = impl->addForward(p0, p1); - } - else - { - long* ret = new long; - *ret = impl->addForward(p0, p1); - operation.setReturnValue((const long*)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h deleted file mode 100644 index 0cb8404ca3..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CalculatorSlashDirectionTest/expected_output/CalculatorForwardImpl_CalculatorService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CalculatorForwardImpl_CalculatorService_Wrapper_h -#define CalculatorForwardImpl_CalculatorService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "subFolder/CalculatorForwardImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class CalculatorForwardImpl_CalculatorService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - CalculatorForwardImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CalculatorForwardImpl_CalculatorService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CalculatorForwardImpl* impl; -}; - -#endif // CalculatorForwardImpl_CalculatorService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp deleted file mode 100644 index 85291cd069..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,594 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CustomerInfoImpl_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationChar( char* arg0, const char* arg1) -{ - tuscany::sca::Operation operation("getCustomerInformationChar"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAChar( char* arg0, const char* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoAChar"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBChar( char* arg0, char* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoBChar"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCChar( char* arg0, char arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoCChar"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDChar( char* arg0, char arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoDChar"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEChar( char* arg0, char* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoEChar"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFChar( char* arg0, char* arg1, char* arg2) -{ - tuscany::sca::Operation operation("getCustomerInfoFChar"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - operation.addParameter(&arg2); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGChar( char* arg0, char* arg1, char* arg2, signed char* arg3) -{ - tuscany::sca::Operation operation("getCustomerInfoGChar"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - operation.addParameter(&arg2); - operation.addParameter(&arg3); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0, const char arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoHChar"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0, const char* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoHChar"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationLong(const long* arg0, const long* arg1) -{ - tuscany::sca::Operation operation("getCustomerInformationLong"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoALong(const long* arg0, const long* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoALong"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBLong( long* arg0, long* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoBLong"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCLong( long arg0, long arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoCLong"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDLong( long arg0, long arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoDLong"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoELong( long* arg0, long* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoELong"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFLong( long* arg0, long* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoFLong"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGLong( signed long* arg0, signed long* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoGLong"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHLong( signed long* arg0, signed long* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoHLong"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationInt( char* arg0, const int* arg1) -{ - tuscany::sca::Operation operation("getCustomerInformationInt"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInt( char* arg0, const int* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoAInt"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInt( char* arg0, int* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoBInt"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInt( char* arg0, int arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoCInt"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDInt( char* arg0, int arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoDInt"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEInt( char* arg0, int* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoEInt"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFInt( char* arg0, int* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoFInt"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGInt( char* arg0, signed int* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoGInt"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHInt( char* arg0, unsigned int* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoHInt"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationint64( Diamond& arg0, const __int64* arg1) -{ - tuscany::sca::Operation operation("getCustomerInformationint64"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAint64( Diamond& arg0, const __int64* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoAint64"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBint64( Diamond& arg0, __int64* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoBint64"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCint64( Diamond& arg0, __int64 arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoCint64"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDint64( Diamond& arg0, __int64 arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoDint64"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEint64( Diamond& arg0, __int64* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoEint64"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFint64( Diamond& arg0, __int64* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoFint64"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGint64( Diamond& arg0, signed __int64* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoGint64"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHint64(const Diamond& arg0, unsigned int64* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoHint64"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const void* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationVoid( float& arg0, const __int64* arg1) -{ - tuscany::sca::Operation operation("getCustomerInformationVoid"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - const void* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const void**)operation.getReturnValue(); -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAVoid(const float& arg0, const __int64* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoAVoid"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - target->invoke(operation); - return; -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBVoid() -{ - tuscany::sca::Operation operation("getCustomerInfoBVoid"); - target->invoke(operation); - return; -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCVoid() -{ - tuscany::sca::Operation operation("getCustomerInfoCVoid"); - target->invoke(operation); - return; -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDVoid() -{ - tuscany::sca::Operation operation("getCustomerInfoDVoid"); - operation.addParameter(&arg0); - target->invoke(operation); - return; -} - -char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEVoid() -{ - tuscany::sca::Operation operation("getCustomerInfoEVoid"); - operation.addParameter(&arg0); - char ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(char*)operation.getReturnValue(); -} - -char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFVoid() -{ - tuscany::sca::Operation operation("getCustomerInfoFVoid"); - char ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(char*)operation.getReturnValue(); -} - -char CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGVoid() -{ - tuscany::sca::Operation operation("getCustomerInfoGVoid"); - operation.addParameter(&arg0); - char ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(char*)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInline( int arg0, int arg1, int arg2, int arg3, char* customer arg4) -{ - tuscany::sca::Operation operation("getCustomerInfoAInline"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - operation.addParameter(&arg2); - operation.addParameter(&arg3); - operation.addParameter(&arg4); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInline( int* arg0, int* arg1, int* arg2, char* customer arg3) -{ - tuscany::sca::Operation operation("getCustomerInfoBInline"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - operation.addParameter(&arg2); - operation.addParameter(&arg3); - int ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(int*)operation.getReturnValue(); -} - -friend const unsigned int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInline( char* customer arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoCInline"); - operation.addParameter(&arg0); - friend const unsigned int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(friend const unsigned int**)operation.getReturnValue(); -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyA(const char arg0, const char arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoTrickyA"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - int ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(int*)operation.getReturnValue(); -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyB( int arg0, int arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoTrickyB"); - operation.addParameter(&arg0); - operation.addParameter(&arg1); - int ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(int*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h deleted file mode 100644 index cb9e4e6e2a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h -#define CustomerInfoImpl_CustomerInfoService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformationChar( char* p1, const char* customerID); - virtual const char* getCustomerInfoAChar( char* p1, const char* ); - virtual const char* getCustomerInfoBChar( char* p1, char* customerID); - virtual const char* getCustomerInfoCChar( char* p1, char customerID); - virtual const char* getCustomerInfoDChar( char* p1, char ); - virtual const char* getCustomerInfoEChar( char* p1, char* ); - virtual const char* getCustomerInfoFChar( char* p1, char* p1, char* customerID); - virtual const char* getCustomerInfoGChar( char* p1, char* , char* p1, signed char* customerID); - virtual const char* getCustomerInfoHChar( unsigned char* customerID, const char ); - virtual const char* getCustomerInfoHChar( unsigned char* customerID, const char* ); - virtual const long* getCustomerInformationLong(const long* customerID, const long* customerID); - virtual const long* getCustomerInfoALong(const long* , const long* ); - virtual const long* getCustomerInfoBLong( long* customerID, long* customerID2); - virtual const long* getCustomerInfoCLong( long customerID, long customerID2); - virtual const long* getCustomerInfoDLong( long , long ); - virtual const long* getCustomerInfoELong( long* , long* ); - virtual const long* getCustomerInfoFLong( long* customerID, long* customerID2); - virtual const long* getCustomerInfoGLong( signed long* customerID, signed long* customerID2); - virtual const long* getCustomerInfoHLong( signed long* customerID, signed long* customerID2); - virtual const int* getCustomerInformationInt( char* , const int* customerID); - virtual const int* getCustomerInfoAInt( char* , const int* ); - virtual const int* getCustomerInfoBInt( char* , int* customerID); - virtual const int* getCustomerInfoCInt( char* , int customerID); - virtual const int* getCustomerInfoDInt( char* , int ); - virtual const int* getCustomerInfoEInt( char* , int* ); - virtual const int* getCustomerInfoFInt( char* , int* customerID); - virtual const int* getCustomerInfoGInt( char* , signed int* customerID); - virtual const int* getCustomerInfoHInt( char* , unsigned int* customerID); - virtual const __int64* getCustomerInformationint64( Diamond& , const __int64* customerID); - virtual const __int64* getCustomerInfoAint64( Diamond& , const __int64* ); - virtual const __int64* getCustomerInfoBint64( Diamond& , __int64* customerID); - virtual const __int64* getCustomerInfoCint64( Diamond& , __int64 customerID); - virtual const __int64* getCustomerInfoDint64( Diamond& myDiamond, __int64 ); - virtual const __int64* getCustomerInfoEint64( Diamond& myDiamond, __int64* ); - virtual const __int64* getCustomerInfoFint64( Diamond& myDiamond, __int64* customerID); - virtual const __int64* getCustomerInfoGint64( Diamond& myDiamond, signed __int64* customerID); - virtual const __int64* getCustomerInfoHint64(const Diamond& myDiamond, unsigned int64* customerID); - virtual const void* getCustomerInformationVoid( float& f, const __int64* customerID); - virtual void getCustomerInfoAVoid(const float& f, const __int64* ); - virtual void getCustomerInfoBVoid(); - virtual void getCustomerInfoCVoid(); - virtual void getCustomerInfoDVoid( void ); - virtual char getCustomerInfoEVoid( void ); - virtual char getCustomerInfoFVoid(); - virtual char getCustomerInfoGVoid( void ); - virtual const char* getCustomerInfoAInline( int , int , int , int , char* customer id); - virtual int getCustomerInfoBInline( int* , int* f, int* g, char* customer id); - virtual friend const unsigned int* getCustomerInfoCInline( char* customer id); - virtual int getCustomerInfoTrickyA(const char , const char ); - virtual int getCustomerInfoTrickyB( int myInt, int myInt); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index be09a57919..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,872 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (CustomerInfoImpl*)getImplementation(); -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getCustomerInformationChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - const char* p1 = *(const char**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInformationChar(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInformationChar(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoAChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - const char* p1 = *(const char**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoAChar(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoAChar(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoBChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - char* p1 = *( char**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoBChar(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoBChar(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoCChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - char& p1 = *( char*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoCChar(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoCChar(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoDChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - char& p1 = *( char*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoDChar(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoDChar(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoEChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - char* p1 = *( char**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoEChar(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoEChar(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoFChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - char* p1 = *( char**)operation.getParameterValue(1); - char* p2 = *( char**)operation.getParameterValue(2); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoFChar(p0, p1, p2); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoFChar(p0, p1, p2); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoGChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - char* p1 = *( char**)operation.getParameterValue(1); - char* p2 = *( char**)operation.getParameterValue(2); - signed char* p3 = *( signed char**)operation.getParameterValue(3); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoGChar(p0, p1, p2, p3); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoGChar(p0, p1, p2, p3); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoHChar") - { - unsigned char* p0 = *( unsigned char**)operation.getParameterValue(0); - const char& p1 = *(const char*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoHChar(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoHChar(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoHChar") - { - unsigned char* p0 = *( unsigned char**)operation.getParameterValue(0); - const char* p1 = *(const char**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoHChar(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoHChar(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInformationLong") - { - const long* p0 = *(const long**)operation.getParameterValue(0); - const long* p1 = *(const long**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInformationLong(p0, p1); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInformationLong(p0, p1); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoALong") - { - const long* p0 = *(const long**)operation.getParameterValue(0); - const long* p1 = *(const long**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoALong(p0, p1); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoALong(p0, p1); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoBLong") - { - long* p0 = *( long**)operation.getParameterValue(0); - long* p1 = *( long**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoBLong(p0, p1); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoBLong(p0, p1); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoCLong") - { - long& p0 = *( long*)operation.getParameterValue(0); - long& p1 = *( long*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoCLong(p0, p1); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoCLong(p0, p1); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoDLong") - { - long& p0 = *( long*)operation.getParameterValue(0); - long& p1 = *( long*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoDLong(p0, p1); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoDLong(p0, p1); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoELong") - { - long* p0 = *( long**)operation.getParameterValue(0); - long* p1 = *( long**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoELong(p0, p1); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoELong(p0, p1); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoFLong") - { - long* p0 = *( long**)operation.getParameterValue(0); - long* p1 = *( long**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoFLong(p0, p1); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoFLong(p0, p1); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoGLong") - { - signed long* p0 = *( signed long**)operation.getParameterValue(0); - signed long* p1 = *( signed long**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoGLong(p0, p1); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoGLong(p0, p1); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoHLong") - { - signed long* p0 = *( signed long**)operation.getParameterValue(0); - signed long* p1 = *( signed long**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoHLong(p0, p1); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoHLong(p0, p1); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInformationInt") - { - char* p0 = *( char**)operation.getParameterValue(0); - const int* p1 = *(const int**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInformationInt(p0, p1); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInformationInt(p0, p1); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoAInt") - { - char* p0 = *( char**)operation.getParameterValue(0); - const int* p1 = *(const int**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoAInt(p0, p1); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoAInt(p0, p1); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoBInt") - { - char* p0 = *( char**)operation.getParameterValue(0); - int* p1 = *( int**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoBInt(p0, p1); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoBInt(p0, p1); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoCInt") - { - char* p0 = *( char**)operation.getParameterValue(0); - int& p1 = *( int*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoCInt(p0, p1); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoCInt(p0, p1); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoDInt") - { - char* p0 = *( char**)operation.getParameterValue(0); - int& p1 = *( int*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoDInt(p0, p1); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoDInt(p0, p1); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoEInt") - { - char* p0 = *( char**)operation.getParameterValue(0); - int* p1 = *( int**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoEInt(p0, p1); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoEInt(p0, p1); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoFInt") - { - char* p0 = *( char**)operation.getParameterValue(0); - int* p1 = *( int**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoFInt(p0, p1); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoFInt(p0, p1); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoGInt") - { - char* p0 = *( char**)operation.getParameterValue(0); - signed int* p1 = *( signed int**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoGInt(p0, p1); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoGInt(p0, p1); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoHInt") - { - char* p0 = *( char**)operation.getParameterValue(0); - unsigned int* p1 = *( unsigned int**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoHInt(p0, p1); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoHInt(p0, p1); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInformationint64") - { - Diamond& p0 = *(Diamond*)operation.getParameterValue(0); - const __int64* p1 = *(const __int64**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInformationint64(p0, p1); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInformationint64(p0, p1); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoAint64") - { - Diamond& p0 = *(Diamond*)operation.getParameterValue(0); - const __int64* p1 = *(const __int64**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoAint64(p0, p1); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoAint64(p0, p1); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoBint64") - { - Diamond& p0 = *(Diamond*)operation.getParameterValue(0); - __int64* p1 = *( __int64**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoBint64(p0, p1); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoBint64(p0, p1); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoCint64") - { - Diamond& p0 = *(Diamond*)operation.getParameterValue(0); - __int64& p1 = *( __int64*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoCint64(p0, p1); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoCint64(p0, p1); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoDint64") - { - Diamond& p0 = *(Diamond*)operation.getParameterValue(0); - __int64& p1 = *( __int64*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoDint64(p0, p1); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoDint64(p0, p1); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoEint64") - { - Diamond& p0 = *(Diamond*)operation.getParameterValue(0); - __int64* p1 = *( __int64**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoEint64(p0, p1); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoEint64(p0, p1); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoFint64") - { - Diamond& p0 = *(Diamond*)operation.getParameterValue(0); - __int64* p1 = *( __int64**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoFint64(p0, p1); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoFint64(p0, p1); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoGint64") - { - Diamond& p0 = *(Diamond*)operation.getParameterValue(0); - signed __int64* p1 = *( signed __int64**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoGint64(p0, p1); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoGint64(p0, p1); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoHint64") - { - Diamond& p0 = *(Diamond*)operation.getParameterValue(0); - unsigned int64* p1 = *( unsigned int64**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoHint64(p0, p1); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoHint64(p0, p1); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInformationVoid") - { - float& p0 = *(float*)operation.getParameterValue(0); - const __int64* p1 = *(const __int64**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const void**)operation.getReturnValue() = impl->getCustomerInformationVoid(p0, p1); - } - else - { - const void** ret = new const void*; - *ret = impl->getCustomerInformationVoid(p0, p1); - operation.setReturnValue((const const void**)ret); - } - return; - } - if (operationName == "getCustomerInfoAVoid") - { - float& p0 = *(float*)operation.getParameterValue(0); - const __int64* p1 = *(const __int64**)operation.getParameterValue(1); - impl->getCustomerInfoAVoid(p0, p1); - return; - } - if (operationName == "getCustomerInfoBVoid") - { - impl->getCustomerInfoBVoid(); - return; - } - if (operationName == "getCustomerInfoCVoid") - { - impl->getCustomerInfoCVoid(); - return; - } - if (operationName == "getCustomerInfoDVoid") - { - impl->getCustomerInfoDVoid(); - return; - } - if (operationName == "getCustomerInfoEVoid") - { - - if(operation.getReturnValue() != NULL) - { - *(char*)operation.getReturnValue() = impl->getCustomerInfoEVoid(); - } - else - { - char* ret = new char; - *ret = impl->getCustomerInfoEVoid(); - operation.setReturnValue((const char*)ret); - } - return; - } - if (operationName == "getCustomerInfoFVoid") - { - - if(operation.getReturnValue() != NULL) - { - *(char*)operation.getReturnValue() = impl->getCustomerInfoFVoid(); - } - else - { - char* ret = new char; - *ret = impl->getCustomerInfoFVoid(); - operation.setReturnValue((const char*)ret); - } - return; - } - if (operationName == "getCustomerInfoGVoid") - { - - if(operation.getReturnValue() != NULL) - { - *(char*)operation.getReturnValue() = impl->getCustomerInfoGVoid(); - } - else - { - char* ret = new char; - *ret = impl->getCustomerInfoGVoid(); - operation.setReturnValue((const char*)ret); - } - return; - } - if (operationName == "getCustomerInfoAInline") - { - int& p0 = *( int*)operation.getParameterValue(0); - int& p1 = *( int*)operation.getParameterValue(1); - int& p2 = *( int*)operation.getParameterValue(2); - int& p3 = *( int*)operation.getParameterValue(3); - char* customer p4 = *( char* customer*)operation.getParameterValue(4); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoAInline(p0, p1, p2, p3, p4); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoAInline(p0, p1, p2, p3, p4); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoBInline") - { - int* p0 = *( int**)operation.getParameterValue(0); - int* p1 = *( int**)operation.getParameterValue(1); - int* p2 = *( int**)operation.getParameterValue(2); - char* customer p3 = *( char* customer*)operation.getParameterValue(3); - - if(operation.getReturnValue() != NULL) - { - *(int*)operation.getReturnValue() = impl->getCustomerInfoBInline(p0, p1, p2, p3); - } - else - { - int* ret = new int; - *ret = impl->getCustomerInfoBInline(p0, p1, p2, p3); - operation.setReturnValue((const int*)ret); - } - return; - } - if (operationName == "getCustomerInfoCInline") - { - char* customer p0 = *( char* customer*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(friend const unsigned int**)operation.getReturnValue() = impl->getCustomerInfoCInline(p0); - } - else - { - friend const unsigned int** ret = new friend const unsigned int*; - *ret = impl->getCustomerInfoCInline(p0); - operation.setReturnValue((const friend const unsigned int**)ret); - } - return; - } - if (operationName == "getCustomerInfoTrickyA") - { - const char& p0 = *(const char*)operation.getParameterValue(0); - const char& p1 = *(const char*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyA(p0, p1); - } - else - { - int* ret = new int; - *ret = impl->getCustomerInfoTrickyA(p0, p1); - operation.setReturnValue((const int*)ret); - } - return; - } - if (operationName == "getCustomerInfoTrickyB") - { - int& p0 = *( int*)operation.getParameterValue(0); - int& p1 = *( int*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyB(p0, p1); - } - else - { - int* ret = new int; - *ret = impl->getCustomerInfoTrickyB(p0, p1); - operation.setReturnValue((const int*)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h deleted file mode 100644 index 94b1d5cb4d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplMultiParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl_CustomerInfoService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CustomerInfoImpl* impl; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp deleted file mode 100644 index f3b2540ba8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,504 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CustomerInfoImpl_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationChar(const char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformationChar"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAChar(const char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoAChar"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBChar( char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoBChar"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCChar( char arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoCChar"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDChar( char arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoDChar"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEChar( char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoEChar"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFChar( char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoFChar"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGChar( signed char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoGChar"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHChar( unsigned char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoHChar"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationLong(const long* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformationLong"); - operation.addParameter(&arg0); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoALong(const long* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoALong"); - operation.addParameter(&arg0); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBLong( long* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoBLong"); - operation.addParameter(&arg0); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCLong( long arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoCLong"); - operation.addParameter(&arg0); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDLong( long arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoDLong"); - operation.addParameter(&arg0); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoELong( long* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoELong"); - operation.addParameter(&arg0); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFLong( long* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoFLong"); - operation.addParameter(&arg0); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGLong( signed long* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoGLong"); - operation.addParameter(&arg0); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const long* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHLong( unsigned long* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoHLong"); - operation.addParameter(&arg0); - const long* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const long**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationInt(const int* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformationInt"); - operation.addParameter(&arg0); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInt(const int* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoAInt"); - operation.addParameter(&arg0); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInt( int* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoBInt"); - operation.addParameter(&arg0); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInt( int arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoCInt"); - operation.addParameter(&arg0); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDInt( int arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoDInt"); - operation.addParameter(&arg0); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEInt( int* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoEInt"); - operation.addParameter(&arg0); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFInt( int* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoFInt"); - operation.addParameter(&arg0); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGInt( signed int* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoGInt"); - operation.addParameter(&arg0); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHInt( unsigned int* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoHInt"); - operation.addParameter(&arg0); - const int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const int**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationint64(const __int64* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformationint64"); - operation.addParameter(&arg0); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAint64(const __int64* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoAint64"); - operation.addParameter(&arg0); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBint64( __int64* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoBint64"); - operation.addParameter(&arg0); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCint64( __int64 arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoCint64"); - operation.addParameter(&arg0); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDint64( __int64 arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoDint64"); - operation.addParameter(&arg0); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoEint64( __int64* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoEint64"); - operation.addParameter(&arg0); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoFint64( __int64* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoFint64"); - operation.addParameter(&arg0); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoGint64( signed __int64* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoGint64"); - operation.addParameter(&arg0); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const __int64* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoHint64( unsigned int64* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoHint64"); - operation.addParameter(&arg0); - const __int64* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const __int64**)operation.getReturnValue(); -} - -const void* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationVoid(const __int64* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformationVoid"); - operation.addParameter(&arg0); - const void* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const void**)operation.getReturnValue(); -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAVoid(const __int64* arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoAVoid"); - operation.addParameter(&arg0); - target->invoke(operation); - return; -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBVoid() -{ - tuscany::sca::Operation operation("getCustomerInfoBVoid"); - target->invoke(operation); - return; -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCVoid() -{ - tuscany::sca::Operation operation("getCustomerInfoCVoid"); - target->invoke(operation); - return; -} - -void CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoDVoid() -{ - tuscany::sca::Operation operation("getCustomerInfoDVoid"); - operation.addParameter(&arg0); - target->invoke(operation); - return; -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoAInline( char* customer arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoAInline"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBInline( char* customer arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoBInline"); - operation.addParameter(&arg0); - int ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(int*)operation.getReturnValue(); -} - -friend const unsigned int* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoCInline( char* customer arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoCInline"); - operation.addParameter(&arg0); - friend const unsigned int* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(friend const unsigned int**)operation.getReturnValue(); -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyA(const char arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoTrickyA"); - operation.addParameter(&arg0); - int ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(int*)operation.getReturnValue(); -} - -int CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoTrickyB( int arg0) -{ - tuscany::sca::Operation operation("getCustomerInfoTrickyB"); - operation.addParameter(&arg0); - int ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(int*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h deleted file mode 100644 index 75f912d3ae..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h -#define CustomerInfoImpl_CustomerInfoService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformationChar(const char* customerID); - virtual const char* getCustomerInfoAChar(const char* ); - virtual const char* getCustomerInfoBChar( char* customerID); - virtual const char* getCustomerInfoCChar( char customerID); - virtual const char* getCustomerInfoDChar( char ); - virtual const char* getCustomerInfoEChar( char* ); - virtual const char* getCustomerInfoFChar( char* customerID); - virtual const char* getCustomerInfoGChar( signed char* customerID); - virtual const char* getCustomerInfoHChar( unsigned char* customerID); - virtual const long* getCustomerInformationLong(const long* customerID); - virtual const long* getCustomerInfoALong(const long* ); - virtual const long* getCustomerInfoBLong( long* customerID); - virtual const long* getCustomerInfoCLong( long customerID); - virtual const long* getCustomerInfoDLong( long ); - virtual const long* getCustomerInfoELong( long* ); - virtual const long* getCustomerInfoFLong( long* customerID); - virtual const long* getCustomerInfoGLong( signed long* customerID); - virtual const long* getCustomerInfoHLong( unsigned long* customerID); - virtual const int* getCustomerInformationInt(const int* customerID); - virtual const int* getCustomerInfoAInt(const int* ); - virtual const int* getCustomerInfoBInt( int* customerID); - virtual const int* getCustomerInfoCInt( int customerID); - virtual const int* getCustomerInfoDInt( int ); - virtual const int* getCustomerInfoEInt( int* ); - virtual const int* getCustomerInfoFInt( int* customerID); - virtual const int* getCustomerInfoGInt( signed int* customerID); - virtual const int* getCustomerInfoHInt( unsigned int* customerID); - virtual const __int64* getCustomerInformationint64(const __int64* customerID); - virtual const __int64* getCustomerInfoAint64(const __int64* ); - virtual const __int64* getCustomerInfoBint64( __int64* customerID); - virtual const __int64* getCustomerInfoCint64( __int64 customerID); - virtual const __int64* getCustomerInfoDint64( __int64 ); - virtual const __int64* getCustomerInfoEint64( __int64* ); - virtual const __int64* getCustomerInfoFint64( __int64* customerID); - virtual const __int64* getCustomerInfoGint64( signed __int64* customerID); - virtual const __int64* getCustomerInfoHint64( unsigned int64* customerID); - virtual const void* getCustomerInformationVoid(const __int64* customerID); - virtual void getCustomerInfoAVoid(const __int64* ); - virtual void getCustomerInfoBVoid(); - virtual void getCustomerInfoCVoid(); - virtual void getCustomerInfoDVoid( void ); - virtual const char* getCustomerInfoAInline( char* customer id); - virtual int getCustomerInfoBInline( char* customer id); - virtual friend const unsigned int* getCustomerInfoCInline( char* customer id); - virtual int getCustomerInfoTrickyA(const char ); - virtual int getCustomerInfoTrickyB( int myInt); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index 896a129145..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,760 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (CustomerInfoImpl*)getImplementation(); -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getCustomerInformationChar") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInformationChar(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInformationChar(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoAChar") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoAChar(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoAChar(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoBChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoBChar(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoBChar(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoCChar") - { - char& p0 = *( char*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoCChar(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoCChar(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoDChar") - { - char& p0 = *( char*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoDChar(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoDChar(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoEChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoEChar(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoEChar(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoFChar") - { - char* p0 = *( char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoFChar(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoFChar(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoGChar") - { - signed char* p0 = *( signed char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoGChar(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoGChar(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoHChar") - { - unsigned char* p0 = *( unsigned char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoHChar(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoHChar(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInformationLong") - { - const long* p0 = *(const long**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInformationLong(p0); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInformationLong(p0); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoALong") - { - const long* p0 = *(const long**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoALong(p0); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoALong(p0); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoBLong") - { - long* p0 = *( long**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoBLong(p0); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoBLong(p0); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoCLong") - { - long& p0 = *( long*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoCLong(p0); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoCLong(p0); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoDLong") - { - long& p0 = *( long*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoDLong(p0); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoDLong(p0); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoELong") - { - long* p0 = *( long**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoELong(p0); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoELong(p0); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoFLong") - { - long* p0 = *( long**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoFLong(p0); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoFLong(p0); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoGLong") - { - signed long* p0 = *( signed long**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoGLong(p0); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoGLong(p0); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInfoHLong") - { - unsigned long* p0 = *( unsigned long**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const long**)operation.getReturnValue() = impl->getCustomerInfoHLong(p0); - } - else - { - const long** ret = new const long*; - *ret = impl->getCustomerInfoHLong(p0); - operation.setReturnValue((const const long**)ret); - } - return; - } - if (operationName == "getCustomerInformationInt") - { - const int* p0 = *(const int**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInformationInt(p0); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInformationInt(p0); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoAInt") - { - const int* p0 = *(const int**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoAInt(p0); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoAInt(p0); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoBInt") - { - int* p0 = *( int**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoBInt(p0); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoBInt(p0); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoCInt") - { - int& p0 = *( int*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoCInt(p0); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoCInt(p0); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoDInt") - { - int& p0 = *( int*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoDInt(p0); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoDInt(p0); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoEInt") - { - int* p0 = *( int**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoEInt(p0); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoEInt(p0); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoFInt") - { - int* p0 = *( int**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoFInt(p0); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoFInt(p0); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoGInt") - { - signed int* p0 = *( signed int**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoGInt(p0); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoGInt(p0); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInfoHInt") - { - unsigned int* p0 = *( unsigned int**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const int**)operation.getReturnValue() = impl->getCustomerInfoHInt(p0); - } - else - { - const int** ret = new const int*; - *ret = impl->getCustomerInfoHInt(p0); - operation.setReturnValue((const const int**)ret); - } - return; - } - if (operationName == "getCustomerInformationint64") - { - const __int64* p0 = *(const __int64**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInformationint64(p0); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInformationint64(p0); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoAint64") - { - const __int64* p0 = *(const __int64**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoAint64(p0); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoAint64(p0); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoBint64") - { - __int64* p0 = *( __int64**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoBint64(p0); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoBint64(p0); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoCint64") - { - __int64& p0 = *( __int64*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoCint64(p0); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoCint64(p0); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoDint64") - { - __int64& p0 = *( __int64*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoDint64(p0); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoDint64(p0); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoEint64") - { - __int64* p0 = *( __int64**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoEint64(p0); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoEint64(p0); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoFint64") - { - __int64* p0 = *( __int64**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoFint64(p0); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoFint64(p0); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoGint64") - { - signed __int64* p0 = *( signed __int64**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoGint64(p0); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoGint64(p0); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInfoHint64") - { - unsigned int64* p0 = *( unsigned int64**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const __int64**)operation.getReturnValue() = impl->getCustomerInfoHint64(p0); - } - else - { - const __int64** ret = new const __int64*; - *ret = impl->getCustomerInfoHint64(p0); - operation.setReturnValue((const const __int64**)ret); - } - return; - } - if (operationName == "getCustomerInformationVoid") - { - const __int64* p0 = *(const __int64**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const void**)operation.getReturnValue() = impl->getCustomerInformationVoid(p0); - } - else - { - const void** ret = new const void*; - *ret = impl->getCustomerInformationVoid(p0); - operation.setReturnValue((const const void**)ret); - } - return; - } - if (operationName == "getCustomerInfoAVoid") - { - const __int64* p0 = *(const __int64**)operation.getParameterValue(0); - impl->getCustomerInfoAVoid(p0); - return; - } - if (operationName == "getCustomerInfoBVoid") - { - impl->getCustomerInfoBVoid(); - return; - } - if (operationName == "getCustomerInfoCVoid") - { - impl->getCustomerInfoCVoid(); - return; - } - if (operationName == "getCustomerInfoDVoid") - { - impl->getCustomerInfoDVoid(); - return; - } - if (operationName == "getCustomerInfoAInline") - { - char* customer p0 = *( char* customer*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoAInline(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoAInline(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoBInline") - { - char* customer p0 = *( char* customer*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(int*)operation.getReturnValue() = impl->getCustomerInfoBInline(p0); - } - else - { - int* ret = new int; - *ret = impl->getCustomerInfoBInline(p0); - operation.setReturnValue((const int*)ret); - } - return; - } - if (operationName == "getCustomerInfoCInline") - { - char* customer p0 = *( char* customer*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(friend const unsigned int**)operation.getReturnValue() = impl->getCustomerInfoCInline(p0); - } - else - { - friend const unsigned int** ret = new friend const unsigned int*; - *ret = impl->getCustomerInfoCInline(p0); - operation.setReturnValue((const friend const unsigned int**)ret); - } - return; - } - if (operationName == "getCustomerInfoTrickyA") - { - const char& p0 = *(const char*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyA(p0); - } - else - { - int* ret = new int; - *ret = impl->getCustomerInfoTrickyA(p0); - operation.setReturnValue((const int*)ret); - } - return; - } - if (operationName == "getCustomerInfoTrickyB") - { - int& p0 = *( int*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(int*)operation.getReturnValue() = impl->getCustomerInfoTrickyB(p0); - } - else - { - int* ret = new int; - *ret = impl->getCustomerInfoTrickyB(p0); - operation.setReturnValue((const int*)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h deleted file mode 100644 index 94b1d5cb4d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/CustomerInfoImplSingleParamDiffTypesTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl_CustomerInfoService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CustomerInfoImpl* impl; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp deleted file mode 100644 index 6f2c95f45b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl2_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl2_CustomerInfoService_Proxy* CustomerInfoImpl2_CustomerInfoService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CustomerInfoImpl2_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl2_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl2_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl2_CustomerInfoService_Proxy::CustomerInfoImpl2_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl2_CustomerInfoService_Proxy::~CustomerInfoImpl2_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl2_CustomerInfoService_Proxy::getCustomerInformation(const char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformation"); - operation.addParameter("customerID", &arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h deleted file mode 100644 index 594f404d13..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl2_CustomerInfoService_Proxy_h -#define CustomerInfoImpl2_CustomerInfoService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl2_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl2_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl2_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl2_CustomerInfoService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index 57add811a2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl2_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl2_CustomerInfoService_Wrapper* CustomerInfoImpl2_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl2_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl2_CustomerInfoService_Wrapper::CustomerInfoImpl2_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (CustomerInfoImpl2*)getImplementation(); -} - -CustomerInfoImpl2_CustomerInfoService_Wrapper::~CustomerInfoImpl2_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl2_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl2; -} - -void CustomerInfoImpl2_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl2_CustomerInfoService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getCustomerInformation") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInformation(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInformation(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h deleted file mode 100644 index b85533cfd4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl2_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl2_CustomerInfoService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class CustomerInfoImpl2_CustomerInfoService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - CustomerInfoImpl2_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl2_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CustomerInfoImpl2* impl; -}; - -#endif // CustomerInfoImpl2_CustomerInfoService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index b0d9424ad4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValue(const char* arg0) -{ - tuscany::sca::Operation operation("getMyValue"); - operation.addParameter("customerID", &arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -float MyValueImpl_MyValueService_Proxy::getMyValueS(const string& arg0) -{ - tuscany::sca::Operation operation("getMyValueS"); - operation.addParameter("customerID", &arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -string MyValueImpl_MyValueService_Proxy::getCustname( string& arg0) -{ - tuscany::sca::Operation operation("getCustname"); - operation.addParameter("customerID", &arg0); - string ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(string*)operation.getReturnValue(); -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecs( string arg0) -{ - tuscany::sca::Operation operation("getCustnamecs"); - operation.addParameter("customerID", &arg0); - target->invoke(operation); - return *(const string*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index d61c806e44..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname( string& customerID); - virtual const string& getCustnamecs( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index 7f38178f9c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getMyValue") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValue(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValue(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getMyValueS") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValueS(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValueS(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getCustname") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(string*)operation.getReturnValue() = impl->getCustname(p0); - } - else - { - string* ret = new string; - *ret = impl->getCustname(p0); - operation.setReturnValue((const string*)ret); - } - return; - } - if (operationName == "getCustnamecs") - { - string& p0 = *( string*)operation.getParameterValue(0); - const string& ret = impl->getCustnamecs(p0); - operation.setReturnValue(&ret); - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index d3eef80e8f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValueImpl.hpp" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_customerInfo_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_customerInfo_Proxy.cpp deleted file mode 100644 index e6800aa311..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_customerInfo_Proxy.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_customerInfo_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_customerInfo_Proxy* MyValueImpl_customerInfo_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_customerInfo_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_customerInfo_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_customerInfo_Proxy*)proxy; - } -} - -MyValueImpl_customerInfo_Proxy::MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_customerInfo_Proxy::~MyValueImpl_customerInfo_Proxy() -{ - if (target) - delete target; -} - -const char* MyValueImpl_customerInfo_Proxy::getCustomerInformation(const char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformation"); - operation.addParameter("customerID", &arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_customerInfo_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_customerInfo_Proxy.h deleted file mode 100644 index 3d1d279b7c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_customerInfo_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_customerInfo_Proxy_h -#define MyValueImpl_customerInfo_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_customerInfo_Proxy : public CustomerInfo -{ -public: - MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_customerInfo_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_customerInfo_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_stockQuote_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_stockQuote_Proxy.cpp deleted file mode 100644 index d3fd4fbaf0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_stockQuote_Proxy.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_stockQuote_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_stockQuote_Proxy* MyValueImpl_stockQuote_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_stockQuote_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_stockQuote_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_stockQuote_Proxy*)proxy; - } -} - -MyValueImpl_stockQuote_Proxy::MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_stockQuote_Proxy::~MyValueImpl_stockQuote_Proxy() -{ - if (target) - delete target; -} - -commonj::sdo::DataObjectPtr MyValueImpl_stockQuote_Proxy::GetStockQuotes( commonj::sdo::DataObjectPtr arg0) -{ - tuscany::sca::Operation operation("GetStockQuotes"); - operation.addParameter("request", &arg0); - commonj::sdo::DataObjectPtr ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(commonj::sdo::DataObjectPtr*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index ad5cee3ca7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceComposite/expected_output/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes( commonj::sdo::DataObjectPtr request); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp deleted file mode 100644 index 95c63da613..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CustomerInfoImpl_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformation(const char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformation"); - operation.addParameter("customerID", &arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h deleted file mode 100644 index 2bf1b90e87..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h -#define CustomerInfoImpl_CustomerInfoService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index b32cf3863a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" - -using Other::CustomerInfoImpl; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (CustomerInfoImpl*)getImplementation(); -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getCustomerInformation") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInformation(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInformation(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h deleted file mode 100644 index 82995c96b0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl_CustomerInfoService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - Other::CustomerInfoImpl* impl; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index b0d9424ad4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValue(const char* arg0) -{ - tuscany::sca::Operation operation("getMyValue"); - operation.addParameter("customerID", &arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -float MyValueImpl_MyValueService_Proxy::getMyValueS(const string& arg0) -{ - tuscany::sca::Operation operation("getMyValueS"); - operation.addParameter("customerID", &arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -string MyValueImpl_MyValueService_Proxy::getCustname( string& arg0) -{ - tuscany::sca::Operation operation("getCustname"); - operation.addParameter("customerID", &arg0); - string ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(string*)operation.getReturnValue(); -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecs( string arg0) -{ - tuscany::sca::Operation operation("getCustnamecs"); - operation.addParameter("customerID", &arg0); - target->invoke(operation); - return *(const string*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index d61c806e44..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname( string& customerID); - virtual const string& getCustnamecs( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index ac104f9aaf..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" - -using Other::MyValueImpl; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getMyValue") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValue(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValue(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getMyValueS") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValueS(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValueS(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getCustname") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(string*)operation.getReturnValue() = impl->getCustname(p0); - } - else - { - string* ret = new string; - *ret = impl->getCustname(p0); - operation.setReturnValue((const string*)ret); - } - return; - } - if (operationName == "getCustnamecs") - { - string& p0 = *( string*)operation.getParameterValue(0); - const string& ret = impl->getCustnamecs(p0); - operation.setReturnValue(&ret); - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index df388bf43d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValueImpl.hpp" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - Other::MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp deleted file mode 100644 index e6800aa311..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_customerInfo_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_customerInfo_Proxy* MyValueImpl_customerInfo_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_customerInfo_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_customerInfo_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_customerInfo_Proxy*)proxy; - } -} - -MyValueImpl_customerInfo_Proxy::MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_customerInfo_Proxy::~MyValueImpl_customerInfo_Proxy() -{ - if (target) - delete target; -} - -const char* MyValueImpl_customerInfo_Proxy::getCustomerInformation(const char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformation"); - operation.addParameter("customerID", &arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h deleted file mode 100644 index 3d1d279b7c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_customerInfo_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_customerInfo_Proxy_h -#define MyValueImpl_customerInfo_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_customerInfo_Proxy : public CustomerInfo -{ -public: - MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_customerInfo_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_customerInfo_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp deleted file mode 100644 index d3fd4fbaf0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_stockQuote_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_stockQuote_Proxy* MyValueImpl_stockQuote_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_stockQuote_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_stockQuote_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_stockQuote_Proxy*)proxy; - } -} - -MyValueImpl_stockQuote_Proxy::MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_stockQuote_Proxy::~MyValueImpl_stockQuote_Proxy() -{ - if (target) - delete target; -} - -commonj::sdo::DataObjectPtr MyValueImpl_stockQuote_Proxy::GetStockQuotes( commonj::sdo::DataObjectPtr arg0) -{ - tuscany::sca::Operation operation("GetStockQuotes"); - operation.addParameter("request", &arg0); - commonj::sdo::DataObjectPtr ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(commonj::sdo::DataObjectPtr*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index ad5cee3ca7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespace/expected_output/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes( commonj::sdo::DataObjectPtr request); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index 21d956f547..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValueOther(const char* arg0) -{ - tuscany::sca::Operation operation("getMyValueOther"); - operation.addParameter("customerID", &arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -float MyValueImpl_MyValueService_Proxy::getMyValueSOther(const string& arg0) -{ - tuscany::sca::Operation operation("getMyValueSOther"); - operation.addParameter("customerID", &arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -string MyValueImpl_MyValueService_Proxy::getCustnameOther( string& arg0) -{ - tuscany::sca::Operation operation("getCustnameOther"); - operation.addParameter("customerID", &arg0); - string ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(string*)operation.getReturnValue(); -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecsOther( string arg0) -{ - tuscany::sca::Operation operation("getCustnamecsOther"); - operation.addParameter("customerID", &arg0); - target->invoke(operation); - return *(const string*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index bb92aa0556..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValueOther(const char* customerID); - virtual float getMyValueSOther(const string& customerID); - virtual string getCustnameOther( string& customerID); - virtual const string& getCustnamecsOther( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index de0f0a0563..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" - -using myvaluecorp::implns::MyValueImpl; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getMyValueOther") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValueOther(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValueOther(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getMyValueSOther") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValueSOther(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValueSOther(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getCustnameOther") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(string*)operation.getReturnValue() = impl->getCustnameOther(p0); - } - else - { - string* ret = new string; - *ret = impl->getCustnameOther(p0); - operation.setReturnValue((const string*)ret); - } - return; - } - if (operationName == "getCustnamecsOther") - { - string& p0 = *( string*)operation.getParameterValue(0); - const string& ret = impl->getCustnamecsOther(p0); - operation.setReturnValue(&ret); - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index cfc7c4c07a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeImplClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValueImpl.hpp" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - myvaluecorp::implns::MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index 21d956f547..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValueOther(const char* arg0) -{ - tuscany::sca::Operation operation("getMyValueOther"); - operation.addParameter("customerID", &arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -float MyValueImpl_MyValueService_Proxy::getMyValueSOther(const string& arg0) -{ - tuscany::sca::Operation operation("getMyValueSOther"); - operation.addParameter("customerID", &arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -string MyValueImpl_MyValueService_Proxy::getCustnameOther( string& arg0) -{ - tuscany::sca::Operation operation("getCustnameOther"); - operation.addParameter("customerID", &arg0); - string ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(string*)operation.getReturnValue(); -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecsOther( string arg0) -{ - tuscany::sca::Operation operation("getCustnamecsOther"); - operation.addParameter("customerID", &arg0); - target->invoke(operation); - return *(const string*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index 210da9a64c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public Other::MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValueOther(const char* customerID); - virtual float getMyValueSOther(const string& customerID); - virtual string getCustnameOther( string& customerID); - virtual const string& getCustnamecsOther( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index f84fcf496b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getMyValueOther") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValueOther(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValueOther(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getMyValueSOther") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValueSOther(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValueSOther(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getCustnameOther") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(string*)operation.getReturnValue() = impl->getCustnameOther(p0); - } - else - { - string* ret = new string; - *ret = impl->getCustnameOther(p0); - operation.setReturnValue((const string*)ret); - } - return; - } - if (operationName == "getCustnamecsOther") - { - string& p0 = *( string*)operation.getParameterValue(0); - const string& ret = impl->getCustnamecsOther(p0); - operation.setReturnValue(&ret); - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index d3eef80e8f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespace/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValueImpl.hpp" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index 21d956f547..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValueOther(const char* arg0) -{ - tuscany::sca::Operation operation("getMyValueOther"); - operation.addParameter("customerID", &arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -float MyValueImpl_MyValueService_Proxy::getMyValueSOther(const string& arg0) -{ - tuscany::sca::Operation operation("getMyValueSOther"); - operation.addParameter("customerID", &arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -string MyValueImpl_MyValueService_Proxy::getCustnameOther( string& arg0) -{ - tuscany::sca::Operation operation("getCustnameOther"); - operation.addParameter("customerID", &arg0); - string ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(string*)operation.getReturnValue(); -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecsOther( string arg0) -{ - tuscany::sca::Operation operation("getCustnamecsOther"); - operation.addParameter("customerID", &arg0); - target->invoke(operation); - return *(const string*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index 210da9a64c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public Other::MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValueOther(const char* customerID); - virtual float getMyValueSOther(const string& customerID); - virtual string getCustnameOther( string& customerID); - virtual const string& getCustnamecsOther( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index f84fcf496b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getMyValueOther") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValueOther(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValueOther(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getMyValueSOther") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValueSOther(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValueSOther(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getCustnameOther") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(string*)operation.getReturnValue() = impl->getCustnameOther(p0); - } - else - { - string* ret = new string; - *ret = impl->getCustnameOther(p0); - operation.setReturnValue((const string*)ret); - } - return; - } - if (operationName == "getCustnamecsOther") - { - string& p0 = *( string*)operation.getParameterValue(0); - const string& ret = impl->getCustnamecsOther(p0); - operation.setReturnValue(&ret); - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index d3eef80e8f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeIntfClassWithNamespaceButNotInClassAttr/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValueImpl.hpp" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp deleted file mode 100644 index 543b370282..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl2_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl2_CustomerInfoService_Proxy* CustomerInfoImpl2_CustomerInfoService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CustomerInfoImpl2_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl2_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl2_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl2_CustomerInfoService_Proxy::CustomerInfoImpl2_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl2_CustomerInfoService_Proxy::~CustomerInfoImpl2_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl2_CustomerInfoService_Proxy::getCustomerInformation(const char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformation"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h deleted file mode 100644 index 594f404d13..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl2_CustomerInfoService_Proxy_h -#define CustomerInfoImpl2_CustomerInfoService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl2_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl2_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl2_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl2_CustomerInfoService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index 191dd3eed2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl2_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" - -using myvaluecorp::implns::CustomerInfoImpl2; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl2_CustomerInfoService_Wrapper* CustomerInfoImpl2_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl2_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl2_CustomerInfoService_Wrapper::CustomerInfoImpl2_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (CustomerInfoImpl2*)getImplementation(); -} - -CustomerInfoImpl2_CustomerInfoService_Wrapper::~CustomerInfoImpl2_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl2_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl2; -} - -void CustomerInfoImpl2_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl2_CustomerInfoService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getCustomerInformation") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInformation(p0); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInformation(p0); - operation.setReturnValue((const const char**)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h deleted file mode 100644 index a57f5c4613..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/CustomerInfoImpl2_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl2_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl2_CustomerInfoService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class CustomerInfoImpl2_CustomerInfoService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - CustomerInfoImpl2_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl2_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - myvaluecorp::implns::CustomerInfoImpl2* impl; -}; - -#endif // CustomerInfoImpl2_CustomerInfoService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp deleted file mode 100644 index fe996eabdb..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Proxy* MyValueImpl_MyValueService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_MyValueService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_MyValueService_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_MyValueService_Proxy*)proxy; - } -} - -MyValueImpl_MyValueService_Proxy::MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_MyValueService_Proxy::~MyValueImpl_MyValueService_Proxy() -{ - if (target) - delete target; -} - -float MyValueImpl_MyValueService_Proxy::getMyValue(const char* arg0) -{ - tuscany::sca::Operation operation("getMyValue"); - operation.addParameter(&arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -float MyValueImpl_MyValueService_Proxy::getMyValueS(const string& arg0) -{ - tuscany::sca::Operation operation("getMyValueS"); - operation.addParameter(&arg0); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -string MyValueImpl_MyValueService_Proxy::getCustname( string& arg0) -{ - tuscany::sca::Operation operation("getCustname"); - operation.addParameter(&arg0); - string ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(string*)operation.getReturnValue(); -} - -const string& MyValueImpl_MyValueService_Proxy::getCustnamecs( string arg0) -{ - tuscany::sca::Operation operation("getCustnamecs"); - operation.addParameter(&arg0); - target->invoke(operation); - return *(const string*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h deleted file mode 100644 index d61c806e44..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Proxy.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Proxy_h -#define MyValueImpl_MyValueService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValue.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_MyValueService_Proxy : public MyValue -{ -public: - MyValueImpl_MyValueService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_MyValueService_Proxy(); - virtual float getMyValue(const char* customerID); - virtual float getMyValueS(const string& customerID); - virtual string getCustname( string& customerID); - virtual const string& getCustnamecs( string customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_MyValueService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp deleted file mode 100644 index 5bbd07a72a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.cpp +++ /dev/null @@ -1,122 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_MyValueService_Wrapper.h" - -#include "osoa/sca/sca.h" - -using myvaluecorp::implns::MyValueImpl; - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_MyValueService_Wrapper* MyValueImpl_MyValueService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new MyValueImpl_MyValueService_Wrapper(target); - } -} - -MyValueImpl_MyValueService_Wrapper::MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (MyValueImpl*)getImplementation(); -} - -MyValueImpl_MyValueService_Wrapper::~MyValueImpl_MyValueService_Wrapper() -{ - releaseImplementation(); -} - -void* MyValueImpl_MyValueService_Wrapper::newImplementation() -{ - return new MyValueImpl; -} - -void MyValueImpl_MyValueService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void MyValueImpl_MyValueService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getMyValue") - { - const char* p0 = *(const char**)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValue(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValue(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getMyValueS") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->getMyValueS(p0); - } - else - { - float* ret = new float; - *ret = impl->getMyValueS(p0); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "getCustname") - { - string& p0 = *(string*)operation.getParameterValue(0); - - if(operation.getReturnValue() != NULL) - { - *(string*)operation.getReturnValue() = impl->getCustname(p0); - } - else - { - string* ret = new string; - *ret = impl->getCustname(p0); - operation.setReturnValue((const string*)ret); - } - return; - } - if (operationName == "getCustnamecs") - { - string& p0 = *( string*)operation.getParameterValue(0); - const string& ret = impl->getCustnamecs(p0); - operation.setReturnValue(&ret); - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h deleted file mode 100644 index cfc7c4c07a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_MyValueService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_MyValueService_Wrapper_h -#define MyValueImpl_MyValueService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "MyValueImpl.hpp" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class MyValueImpl_MyValueService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - MyValueImpl_MyValueService_Wrapper(tuscany::sca::model::Service* target); - virtual ~MyValueImpl_MyValueService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - myvaluecorp::implns::MyValueImpl* impl; -}; - -#endif // MyValueImpl_MyValueService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp deleted file mode 100644 index ffcc1d0003..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_customerInfo_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_customerInfo_Proxy* MyValueImpl_customerInfo_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_customerInfo_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_customerInfo_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_customerInfo_Proxy*)proxy; - } -} - -MyValueImpl_customerInfo_Proxy::MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_customerInfo_Proxy::~MyValueImpl_customerInfo_Proxy() -{ - if (target) - delete target; -} - -const char* MyValueImpl_customerInfo_Proxy::getCustomerInformation(const char* arg0) -{ - tuscany::sca::Operation operation("getCustomerInformation"); - operation.addParameter(&arg0); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h deleted file mode 100644 index 3d1d279b7c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_customerInfo_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_customerInfo_Proxy_h -#define MyValueImpl_customerInfo_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_customerInfo_Proxy : public CustomerInfo -{ -public: - MyValueImpl_customerInfo_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_customerInfo_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_customerInfo_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp deleted file mode 100644 index 6e4d0600bd..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * 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. - */ - -#include "MyValueImpl_stockQuote_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - MyValueImpl_stockQuote_Proxy* MyValueImpl_stockQuote_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new MyValueImpl_stockQuote_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void MyValueImpl_stockQuote_Proxy_Destructor(void* proxy) - { - delete (MyValueImpl_stockQuote_Proxy*)proxy; - } -} - -MyValueImpl_stockQuote_Proxy::MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -MyValueImpl_stockQuote_Proxy::~MyValueImpl_stockQuote_Proxy() -{ - if (target) - delete target; -} - -commonj::sdo::DataObjectPtr MyValueImpl_stockQuote_Proxy::GetStockQuotes( commonj::sdo::DataObjectPtr arg0) -{ - tuscany::sca::Operation operation("GetStockQuotes"); - operation.addParameter(&arg0); - commonj::sdo::DataObjectPtr ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(commonj::sdo::DataObjectPtr*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h deleted file mode 100644 index ad5cee3ca7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/MyValueServiceCompositeTwoClasses/expected_output/MyValueImpl_stockQuote_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef MyValueImpl_stockQuote_Proxy_h -#define MyValueImpl_stockQuote_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "StockQuoteService.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class MyValueImpl_stockQuote_Proxy : public StockQuoteService -{ -public: - MyValueImpl_stockQuote_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~MyValueImpl_stockQuote_Proxy(); - virtual commonj::sdo::DataObjectPtr GetStockQuotes( commonj::sdo::DataObjectPtr request); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // MyValueImpl_stockQuote_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp deleted file mode 100644 index 4c3d626bfb..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Proxy* CustomerInfoImpl_CustomerInfoService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CustomerInfoImpl_CustomerInfoService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CustomerInfoImpl_CustomerInfoService_Proxy_Destructor(void* proxy) - { - delete (CustomerInfoImpl_CustomerInfoService_Proxy*)proxy; - } -} - -CustomerInfoImpl_CustomerInfoService_Proxy::CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CustomerInfoImpl_CustomerInfoService_Proxy::~CustomerInfoImpl_CustomerInfoService_Proxy() -{ - if (target) - delete target; -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInformationCharPublic( char* arg0, const char* arg1) -{ - tuscany::sca::Operation operation("getCustomerInformationCharPublic"); - operation.addParameter("p1", &arg0); - operation.addParameter("customerID", &arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoACharPublic( char* arg0, const char* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoACharPublic"); - operation.addParameter("p1", &arg0); - operation.addParameter("", &arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - -const char* CustomerInfoImpl_CustomerInfoService_Proxy::getCustomerInfoBCharPublic( char* arg0, char* arg1) -{ - tuscany::sca::Operation operation("getCustomerInfoBCharPublic"); - operation.addParameter("p1", &arg0); - operation.addParameter("customerID", &arg1); - const char* ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(const char**)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h deleted file mode 100644 index a9b56bdb5c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Proxy.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h -#define CustomerInfoImpl_CustomerInfoService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "/CustomerInfo.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo -{ -public: - CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformationCharPublic( char* p1, const char* customerID); - virtual const char* getCustomerInfoACharPublic( char* p1, const char* ); - virtual const char* getCustomerInfoBCharPublic( char* p1, char* customerID); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp deleted file mode 100644 index 2aa9fcbdf2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/* - * 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. - */ - -#include "CustomerInfoImpl_CustomerInfoService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CustomerInfoImpl_CustomerInfoService_Wrapper* CustomerInfoImpl_CustomerInfoService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CustomerInfoImpl_CustomerInfoService_Wrapper(target); - } -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (CustomerInfoImpl*)getImplementation(); -} - -CustomerInfoImpl_CustomerInfoService_Wrapper::~CustomerInfoImpl_CustomerInfoService_Wrapper() -{ - releaseImplementation(); -} - -void* CustomerInfoImpl_CustomerInfoService_Wrapper::newImplementation() -{ - return new CustomerInfoImpl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CustomerInfoImpl_CustomerInfoService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "getCustomerInformationCharPublic") - { - char* p0 = *( char**)operation.getParameterValue(0); - const char* p1 = *(const char**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInformationCharPublic(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInformationCharPublic(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoACharPublic") - { - char* p0 = *( char**)operation.getParameterValue(0); - const char* p1 = *(const char**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoACharPublic(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoACharPublic(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - if (operationName == "getCustomerInfoBCharPublic") - { - char* p0 = *( char**)operation.getParameterValue(0); - char* p1 = *( char**)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(const char**)operation.getReturnValue() = impl->getCustomerInfoBCharPublic(p0, p1); - } - else - { - const char** ret = new const char*; - *ret = impl->getCustomerInfoBCharPublic(p0, p1); - operation.setReturnValue((const const char**)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h deleted file mode 100644 index 94b1d5cb4d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/junit/testoutput/SimplePublicPrivateProtectedTest/expected_output/CustomerInfoImpl_CustomerInfoService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h -#define CustomerInfoImpl_CustomerInfoService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CustomerInfoImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CustomerInfoImpl* impl; -}; - -#endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/lib/readme.txt b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/lib/readme.txt deleted file mode 100644 index d99c666c6a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/lib/readme.txt +++ /dev/null @@ -1,4 +0,0 @@ -Place a junit.jar file (not shipped as part of Tuscany) -in this directory to get the scagen build.xml Ant build -file to find it and Junit classes (without setting the -property "junit.jar.folder". diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/scagen.bat b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/scagen.bat deleted file mode 100644 index 8ab5e4abdf..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/scagen.bat +++ /dev/null @@ -1,19 +0,0 @@ -@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. - -@java -jar %~d0%~p0scagen.jar %* diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/scagen.sh b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/scagen.sh deleted file mode 100755 index c50f28b98f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/scagen.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/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. - - -java -jar scagen.jar -dir $2 -output $4
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java deleted file mode 100644 index 4ccbe0c750..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/BodyPart.java +++ /dev/null @@ -1,96 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ - -package org.apache.tuscany.sca.cpp.tools.common; - -/** - * A snippet of C or C++ source code. If this snippet ends with a return - * statement, this body part also contains the return value. - */ -public class BodyPart { - public final static int TRAILING = 0; - - public final static int RETURN = 1; - - public final static int CATCH = 2; - - private String codeFragment; - - private String returnValue = null; - - private Parameter caughtValue = null; - - private int type; - - BodyPart(String cf) { - codeFragment = cf; - type = TRAILING; - } - - BodyPart(String cf, String rv) { - codeFragment = cf; - if (null != rv && !Utils.isSpace(rv)) { - type = RETURN; - returnValue = rv; - } else - type = TRAILING; - } - - BodyPart(String cf, Parameter cv) { - codeFragment = cf; - caughtValue = cv; - type = CATCH; - } - - public String getCodeFragment() { - return codeFragment; - } - - public boolean isTrailing() { - return TRAILING == type; - } - - public boolean isReturn() { - return RETURN == type; - } - - public boolean isCatch() { - return CATCH == type; - } - - public String getReturnValue() { - if (returnValue != null) - return returnValue.trim(); - else - return null; - } - - public Parameter getCaughtValue() { - return caughtValue; - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java deleted file mode 100644 index 669901b4b5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/CParsingTool.java +++ /dev/null @@ -1,124 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; - -/** - * The superclass of tools that parse C/C++ code. This CParsingTool provides - * some useful common methods. - */ -public class CParsingTool { - protected boolean failed = false; - - protected Headers headers = new Headers(); - - protected CParsingTool(String[] args) throws Exception { - String text = new String(); - for (int i = 0; i < args.length; i++) - text += args[i] + " "; - Utils.outputDebugString(text); - - Options.set(args); - String config = (String) Options.getOption("-config"); - if (null != config) - Configuration.initialise(config); - } - - /** - * Read in any include files before the main processing of the tool is done. - * This constructs the Headers. - */ - protected Headers preparseHeaders(String option) throws Exception { - Headers headers = new Headers(); - Object o = Options.getOption(option); - if (null != o) { - Utils.outputDebugString("Pre-parsing headers..."); - List includeList; - if (o instanceof List) - includeList = (List) o; - else { - includeList = new ArrayList(); - includeList.add(o); - } - Iterator it = includeList.iterator(); - while (it.hasNext()) { - File include = new File((String) it.next()); - if (!include.isDirectory()) - Utils.rude("Bad include directory " + include); - - DirectoryTree tree = new DirectoryTree(headers, new HashSet( - Arrays.asList(new Object[] { "hpp", "h" }))); - tree.walkTree(include, null, 0); - } - Utils.outputDebugString("Parsing files..."); - } - - return headers; - } - - /** - * Checks the source directory looks good. - */ - protected File checkFile(String option) throws Exception { - String name = (String) Options.getOption(option); - if (null == name) { - printUsage(); - System.exit(-1); - } - - File file = new File(name); - if (!file.isFile() && !file.isDirectory()) - Utils.rude("Bad file or directory " + file); - return file; - } - - /** - * Checks the target directory and creates it if it doesn't already exist. - */ - protected File maybeCreateDirectory(String option) throws Exception { - String name = (String) Options.getOption(option); - if (null == name) { - printUsage(); - System.exit(-1); - } - - File file = new File(name); - if (!file.exists() && !file.mkdir()) - Utils.screenMessage("Failed to create directory " + file); - return file; - } - - protected void printUsage() { - System.out.println("usage: ??"); - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java deleted file mode 100644 index 246a489c9c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Configuration.java +++ /dev/null @@ -1,132 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -/** - * Encapsulates the tool's configuration file - */ -public class Configuration { - private static Set files = new HashSet(); - - private static Set classes = new HashSet(); - - private static Set methods = new HashSet(); - - private static Set macros = new HashSet(); - - private static Set defines = new HashSet(); - - private static Set attributes = new HashSet(); - - private static Map others = new HashMap(); - - /** - * No one creates an instance of this class. - */ - private Configuration() { - } - - /** - * Reads in the configuration file - */ - public static void initialise(String filename) throws Exception { - File file = new File(filename); - FileReader fr = new FileReader(file); - BufferedReader br = new BufferedReader(fr); - String line = br.readLine(); - for (int lineno = 1; null != line; lineno++, line = br.readLine()) { - // Ignore lines starting with a # (comments) and blank lines - if (line.startsWith("#")) - continue; - boolean blank = true; - for (int i = 0; i < line.length() && blank; i++) - if (!Character.isWhitespace(line.charAt(i))) - blank = false; - if (blank) - continue; - - int equals = line.indexOf("="); - if (-1 == equals) - Utils.rude("Bad line in configuration file " + filename - + " lineno " + lineno); - String key = line.substring(0, equals).trim(); - String value = line.substring(equals + 1).trim(); - if ("excludefile".equals(key)) { - files.add(value); - } else if ("excludeclass".equals(key)) { - classes.add(value); - } else if ("excludemethod".equals(key)) { - methods.add(value); - } else if ("macro".equals(key)) { - macros.add(value); - } else if ("define".equals(key)) { - defines.add(value); - } else if ("attribute".equals(key)) { - attributes.add(value); - } else { - others.put(key, value); - } - } - } - - public static boolean fileExcluded(String s) { - return files.contains(s); - } - - public static boolean classExcluded(String s) { - return classes.contains(s); - } - - public static boolean methodExcluded(String className, String method) { - return methods.contains(className + "::" + method); - } - - public static boolean isMacro(String s) { - return macros.contains(s); - } - - public static boolean isDefine(String s) { - return defines.contains(s); - } - - public static boolean isAttribute(String s) { - return attributes.contains(s); - } - - public static String getConfigured(String key) { - return (String) others.get(key); - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java deleted file mode 100644 index 36d0af18b3..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/DirectoryTree.java +++ /dev/null @@ -1,105 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.File; -import java.util.Set; -import java.util.StringTokenizer; - -public class DirectoryTree { - private FileActor actor; - - private Set extensions; - - public DirectoryTree(FileActor actor, Set extensions) { - this.actor = actor; - this.extensions = extensions; - } - - /** - * Starts adding trace into the given file. If the given file is a directory - * then this the starting directory and all code beneath and in this - * directory will be given trace. - * - * @param source - - * either the starting directory or one file to add trace to. - */ - public void walkTree(File source, File target, int depth) throws Exception { - depth++; - boolean noTarget = (null == target); - - if (!source.canRead()) - Utils.rude("Cannot read from source directory " + source); - if (!noTarget && !target.canWrite()) - Utils.rude("Cannot write to target directory " + target); - - if (source.isDirectory()) { - File[] filesInDirectory = source.listFiles(); - for (int i = 0; i < filesInDirectory.length; i++) { - File file = filesInDirectory[i]; - String name = file.getName(); - int dot = name.lastIndexOf('.'); - String ext = null; - if (-1 != dot) - ext = name.substring(dot + 1); - - if (file.isDirectory()) { - File newTarget = null; - if (!noTarget) { - StringTokenizer st = new StringTokenizer( - file.getPath(), "\\/"); - String newdir = null; - while (st.hasMoreTokens()) - newdir = st.nextToken(); - String targetName = maybeAppendSeparator(target - .toString()); - newTarget = new File(targetName + newdir); - if (!newTarget.mkdir()) - Utils.rude("Failed to create target directory " - + newTarget); - } - - // recurse - walkTree(file, newTarget, depth); - } else if (file.isFile() - && (extensions == null || (!file.isHidden() && extensions - .contains(ext)))) { - // this is a file and we need to add trace into it ! - actor.actOnFile(file, target, depth); - } - } - } else { - actor.actOnFile(source, target, depth); - } - } - - public static String maybeAppendSeparator(String name) { - if (!name.endsWith("/") && !name.endsWith("\\")) - name += "/"; - return name; - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java deleted file mode 100644 index a2bb4ba858..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FileActor.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.File; - -/** - * DirectoryTree calls this interface to allow implementations of this interface - * to act on a file in the directory tree. - */ -public interface FileActor { - public void actOnFile(File source, File target, int depth) throws Exception; -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java deleted file mode 100644 index b6bdf92878..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/FilePart.java +++ /dev/null @@ -1,80 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ - -package org.apache.tuscany.sca.cpp.tools.common; - -/** - * A piece of C++ source code - */ -public class FilePart { - public final static int UNKNOWN = 0; - - public final static int COMMENT = 1; - - public final static int METHOD = 2; - - public final static int FIELD = 3; - - public final static int BEGINSCOPE = 4; - - public final static int ENDSCOPE = 5; - - public final static int DIRECTIVE = 6; - - public final static int WHITESPACE = 7; - - public final static int MACRO = 8; - - public final static int CLASSATTRIBUTE = 9; - - public final static int ENUM = 10; - - public final static int PROTOTYPE = 11; - - public final static int TYPEDEF = 12; - - protected String cppsource; - - protected int type; - - FilePart(String s, int type) { - cppsource = s; - this.type = type; - } - - public int getType() { - return type; - } - - int length() { - return cppsource.length(); - } - - public String toString() { - return cppsource; - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java deleted file mode 100644 index 533e1fd14a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Headers.java +++ /dev/null @@ -1,167 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -public class Headers implements FileActor { - private ArrayList instanceMethods = new ArrayList(); - - private ArrayList staticMethods = new ArrayList(); - - private ArrayList allMethods = new ArrayList(); - - private ArrayList classNames = new ArrayList(); - - private boolean failed = false; - - public void actOnFile(File header, File ignored, int depth) - throws Exception { - if (Configuration.fileExcluded(header.getName())) { - Utils.outputDebugString("excluding " + header + "..."); - return; - } - - Utils.outputDebugString("pre-parsing " + header + "..."); - FileReader fr = null; - try { - fr = new FileReader(header); - } catch (FileNotFoundException fnfe) { - throw fnfe; - } - BufferedReader inputFile = new BufferedReader(fr); - - try { - InputCppSourceCode code = new InputCppSourceCode(inputFile, header - .getName()); - Iterator it = code.getPartIterator(); - while (it.hasNext()) { - FilePart fp = (FilePart) (it.next()); - if (fp.getType() != FilePart.PROTOTYPE) - continue; - PrototypePart pp = (PrototypePart) fp; - String className = pp.className(); - if (null == className) - continue; - String trimClassName = className; - if (className.endsWith("::")) - trimClassName = className.substring(0, - className.length() - 2); - if (!classNames.contains(trimClassName)) - classNames.add(trimClassName); - - Signature sign = new Signature(fp.toString()); - sign.setClassName(className); - //Tuscany - sign.setScope(pp.getSignature().getScope()); - sign.setNamespace(pp.getSignature().getNamespace()); - - // "Clean" the signature by stripping off attributes, - // semicolons, etc - Signature cleaned = new Signature(sign.toStringWithoutAttrs()); - //Tuscany - problem - cleaned.setClassName(className); - cleaned.setScope(pp.getSignature().getScope()); - cleaned.setNamespace(pp.getSignature().getNamespace()); - //Tuscany - end of problem - - - if (-1 == sign.getAttributes().indexOf("static")) - instanceMethods.add(cleaned); - else - staticMethods.add(cleaned); - } - } catch (ParsingException pe) { - failed = true; - } - - inputFile.close(); - allMethods.addAll(staticMethods); - allMethods.addAll(instanceMethods); - } - - public boolean failed() { - return failed; - } - - public boolean isInstanceMethod(Signature sign) { - Iterator it = instanceMethods.iterator(); - while (it.hasNext()) { - Signature s = (Signature) it.next(); - if (s.equals(sign)) - return true; - } - return false; - } - - public boolean isStaticMethod(Signature sign) { - Iterator it = staticMethods.iterator(); - while (it.hasNext()) { - Signature s = (Signature) it.next(); - if (s.equals(sign)) - return true; - } - return false; - } - - public List getMethods(String method) { - ArrayList list = new ArrayList(); - if (null == method) - return list; - - Iterator it = allMethods.iterator(); - while (it.hasNext()) { - Signature s = (Signature) it.next(); - if (method.equals(s.getMethodName())) - list.add(s); - } - return list; - } - - /** - * Tuscany change - a method to get all the method signatures at once - */ - public List getAllMethods() { - ArrayList list = new ArrayList(); - Iterator it = allMethods.iterator(); - while (it.hasNext()) { - Signature s = (Signature) it.next(); - list.add(s); - } - return list; - } - - public boolean isClassName(String text) { - return classNames.contains(text); - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java deleted file mode 100644 index 225909e1d1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/InputCppSourceCode.java +++ /dev/null @@ -1,425 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.BufferedReader; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.StringTokenizer; - -public class InputCppSourceCode { - - private ArrayList parts = new ArrayList(); - - private String name; - - public InputCppSourceCode(BufferedReader br, String name) throws Exception { - this.name = name; - - String s = null; - StringBuffer buff = new StringBuffer(); - for (int i = 1;; i++) { - try { - s = br.readLine(); - } catch (Exception e) { - System.err.println("Ignoring exception thrown parsing file " - + name + " line number " + i); - e.printStackTrace(); - break; - } - if (s == null) - break; - buff.append(s + "\n"); - } - String str = buff.toString(); - - // TODO: When checking for rest.startsWith("struct") should - // check the next letter after struct is not alphanumeric otherwise - // we'll get false matches on a function called structify() for - // instance. Also applies to enum, union, public, typedef, etc - - String rest, text = ""; - int scopedepth = 0; - String scope = "public"; - String currentClass = null; - String currentNamespace = null; - for (int idx = 0; idx < str.length(); /* No idx++ */ - ) { - rest = str.substring(idx); - if (Character.isWhitespace(rest.charAt(0))) { - int ridx = 0; - while (ridx < rest.length() - && Character.isWhitespace(rest.charAt(ridx))) - ridx++; - text = rest.substring(0, ridx); - FilePart fp = new FilePart(text, FilePart.WHITESPACE); - parts.add(fp); - idx += ridx; - - } else if (rest.startsWith("/*")) { - int ridx = rest.indexOf("*/"); // Don't use Utils here - text = str.substring(idx, idx + ridx + 2); - FilePart fp = new FilePart(text, FilePart.COMMENT); - parts.add(fp); - idx += text.length(); - - } else if (rest.startsWith("//")) { - text = str.substring(idx, idx + rest.indexOf("\n")); - FilePart fp = new FilePart(text, FilePart.COMMENT); - parts.add(fp); - idx += text.length(); - - } else if (rest.startsWith("#")) { - int ridx = rest.indexOf("\n"); - char c = rest.charAt(ridx - 1); - while (-1 != ridx && '\\' == c) { - String rest2 = rest.substring(ridx + 1); - ridx += rest2.indexOf("\n") + 1; - c = rest.charAt(ridx - 1); - } - text = str.substring(idx, idx + ridx); - FilePart fp = new FilePart(text, FilePart.DIRECTIVE); - parts.add(fp); - idx += text.length(); - - } else if (rest.startsWith("}")) { - if (scopedepth <= 0) //Tuscany need to increase scopedepth for - // namespaces? - Utils.rude("Braces do not match", name, lineNo(str, idx), - rest.substring(0, rest.indexOf("\n"))); - else - scopedepth--; - // TODO: better checking that this brace really ends the class - if (0 == scopedepth) - currentClass = null; - scope = "public"; - parts.add(new FilePart("}", FilePart.ENDSCOPE)); - idx++; - - } else if (rest.startsWith(";")) { - parts.add(new FilePart(";", FilePart.FIELD)); - idx++; - - } else if (!Character.isLetter(rest.charAt(0)) - && '~' != rest.charAt(0) && '_' != rest.charAt(0)) { - Utils.rude("Lines must start with a letter ", name, lineNo(str, - idx), rest.substring(0, rest.indexOf("\n"))); - - } else if (MacroPart.isAMacro(rest)) { - MacroPart mp = MacroPart.create(rest); - parts.add(mp); - idx += mp.length(); - - } else if (beginsScope(rest)) { - - //Tuscany a namespace comes in here - scopedepth++; - text = rest.substring(0, Utils.indexOf(rest, "{") + 1); - FilePart fp = new FilePart(text, FilePart.BEGINSCOPE); - parts.add(fp); - idx += text.length(); - if (Utils.startsWith(text, "class")) { - // TODO: cope with comments here - // TODO: split out classes into a ClassPart - StringTokenizer st = new StringTokenizer(text, - Utils.whitespace + ":{"); - st.nextToken(); // step over "class" - while (st.hasMoreTokens()) { - String word = st.nextToken(); - if (Configuration.isAttribute(word)) - continue; - currentClass = word; - break; - } - } - - //Tuscany - if (Utils.startsWith(text, "namespace")) { - // TODO: cope with comments here - StringTokenizer st = new StringTokenizer(text, - Utils.whitespace + "{"); - st.nextToken(); // step over "namespace" - String word = ""; - while (st.hasMoreTokens()) { - word = st.nextToken(); - if (word.equals("{")) { - break; - } - - } - - if(currentNamespace == null) - { - currentNamespace = word; - } - else - { - currentNamespace += "::" + word; - } - //We have not got to the class yet - //so will need ot deal with the namespace - //when we do - } - // Tuscany end - - } else if (isEnumOrUnion(rest)) { - int ridx = Utils.findMatching(rest, '{', '}') + 1; - String rest2 = rest.substring(ridx); - ridx = idx + ridx + Utils.indexOf(rest2, ';') + 1; - text = str.substring(idx, ridx); - FilePart fp = new FilePart(text, FilePart.ENUM); - parts.add(fp); - idx += text.length(); - - } else if (scopedepth > 0 - && (rest.startsWith("public") - || rest.startsWith("protected") || rest - .startsWith("private"))) { - int colon = rest.indexOf(":"); - if (-1 == colon) - Utils.rude("No colon found after public or private ", name, - lineNo(str, idx), rest.substring(0, rest - .indexOf("\n"))); - scope = str.substring(idx, idx + colon); - text = str.substring(idx, idx + colon + 1); - FilePart fp = new FilePart(text, FilePart.CLASSATTRIBUTE); - parts.add(fp); - idx += text.length(); - - } else if (Utils.startsWith(rest, "typedef")) { - int semicolon = Utils.indexOf(rest, ';'); - int brace = Utils.indexOf(rest, '{'); - - if (-1 == semicolon) - Utils.rude("No semicolon found after typedef", name, - lineNo(str, idx), rest.substring(0, rest - .indexOf("\n"))); - - if (-1 == brace || semicolon < brace) { - // Simple typedef - text = str.substring(idx, idx + semicolon + 1); - } else { - // Typedef of a struct, etc - int endbrace = Utils.findMatching(rest, '{', '}'); - String rest2 = rest.substring(endbrace); - semicolon = Utils.indexOf(rest2, ';'); - text = str.substring(idx, idx + endbrace + semicolon + 1); - } - FilePart fp = new FilePart(text, FilePart.TYPEDEF); - parts.add(fp); - idx += text.length(); - - } else { - if (isMethod(rest)) { - - int brace = Utils.indexOf(rest, '{'); - Signature signature = new Signature(str.substring(idx, idx - + brace)); - if (signature.failed()) - Utils.rude("Signature parsing failed", name, lineNo( - str, idx), signature.getOriginal()); - if (null != currentClass - && null == signature.getClassName()) - signature.setClassName(currentClass); - signature.setScope(scope); - signature.setNamespace(currentNamespace); - - String body = rest.substring(brace); - int endBrace = Utils.findMatching(body, '{', '}'); - body = body.substring(0, endBrace + 1); - int endIdx = idx + signature.originalLength() - + body.length(); - text = str.substring(idx, endIdx); - MethodPart mp = new MethodPart(text, signature, body); - parts.add(mp); - idx += text.length(); - - } else if (isField(rest)) { - int semicolon = Utils.indexOf(rest, ';'); - text = str.substring(idx, idx + semicolon + 1); - FilePart fp = new FilePart(text, FilePart.FIELD); - parts.add(fp); - idx += text.length(); - - } else if (isPrototype(rest)) { - int semicolon = Utils.indexOf(rest, ';'); - text = str.substring(idx, idx + semicolon + 1); - PrototypePart pp = new PrototypePart(text, currentClass, currentNamespace); - pp.setScope(scope); - parts.add(pp); - idx += text.length(); - - } else { - //TODO other file parts here - not sure if there are any - // others? - Utils.rude("Unrecognised file part", name, - lineNo(str, idx), rest.substring(0, rest - .indexOf("\n"))); - } // end if - } // end if - } // end for - } - - public Iterator getPartIterator() { - return parts.iterator(); - } - - private int lineNo(String s, int idx) { - int n = 0; - for (int i = 0; i < idx && i < s.length(); i++) - if ('\n' == s.charAt(i)) - n++; - return n; - } - - /** - * Find out whether we are defining a class, struct or extern "C" which may - * contain function implementations. These will have braces which begin a - * new scope. Ignore function prototypes that return a struct. struct mystr { - * int f1; }; struct mystr func(); struct mystr func() { struct mystr a; - * return a; } - */ - private static boolean beginsScope(String s) throws ParsingException { - if (isMethod(s)) - return false; - - int brace = Utils.indexOf(s, '{'); - int semicolon = Utils.indexOf(s, ';'); - - // Return false for class prototypes, but true for class definitions. - if (Utils.startsWith(s, "class")) { - if (-1 == brace) - return false; - if (-1 == semicolon) - return true; - return brace < semicolon; - } - - if (Utils.startsWith(s, "struct")) { - if (-1 == brace || -1 == semicolon) - return false; - return brace < semicolon; - } - - //Tuscany handle namespace for prototypes - //in a similar way to "class" - if (Utils.startsWith(s, "namespace")) { - if (-1 == brace || -1 == semicolon) - return false; - return brace < semicolon; - } - - return startsWithExternScope(s); - } - - /** - * There are 4 types of extern ... extern int field; extern int func(); - * extern "C" int func() { return 2; } extern "C" { int func() { return 2; } } - * This method should return true only for the last of these three examples - * since only the last one creates a new scope using braces. - */ - private static boolean startsWithExternScope(String s) - throws ParsingException { - if (!s.startsWith("extern")) - return false; - - int brace = Utils.indexOf(s, '{'); - int semicolon = Utils.indexOf(s, ';'); - int bracket = Utils.indexOf(s, '('); - - if (-1 == brace) - return false; - return (-1 == semicolon || brace < semicolon) - && (-1 == bracket || brace < bracket); - } - - /** - * Find out whether we are defining an enum or union which will contain - * braces. Ignore function prototypes that return an enum or union. enum - * colour { red, blue }; enum colour func(); enum colour func() { return - * colour.red; } - */ - private static boolean isEnumOrUnion(String s) throws ParsingException { - if ((!Utils.startsWith(s, "enum") && !Utils.startsWith(s, "union")) - || isMethod(s)) - return false; - - int brace = Utils.indexOf(s, '{'); - int semicolon = Utils.indexOf(s, ';'); - return -1 != brace && (-1 == semicolon || brace < semicolon); - } - - /** - * Rules to recognise fields and methods... - * - * Fields must contain a semicolon Methods may or may not contain a - * semicolon Prototypes must contain a semicolon Fields may or may not - * contain a brace (array initialisers do) Methods must contain a brace - * Prototypes must not contain a brace Fields may or may not contain a - * bracket (casts do) Methods must contain a bracket Prototypes must contain - * a bracket - * - * It's a method if it contains a bracket and then a brace before the first - * semicolon (if there is a semicolon). It's a prototype if it's not a - * method and it contains brackets before a semicolon. It's a field if it's - * not a method or a prototype and it contains a semicolon. If it's not a - * field, a method or a prototype and we haven't recognised it previously - * then it's an error. - */ - private static boolean isMethod(String s) throws ParsingException { - int semicolon = Utils.indexOf(s, ';'); - int brace = Utils.indexOf(s, '{'); - int bracket = Utils.indexOf(s, '('); - - return (-1 != bracket && -1 != brace && bracket < brace && (-1 == semicolon || brace < semicolon)); - } - - private static boolean isPrototype(String s) throws ParsingException { - int semicolon = Utils.indexOf(s, ';'); - int bracket = Utils.indexOf(s, '('); - return !isMethod(s) && -1 != semicolon && -1 != bracket - && bracket < semicolon; - } - - private static boolean isField(String s) throws ParsingException { - int semicolon = Utils.indexOf(s, ';'); - return !isMethod(s) && !isPrototype(s) && -1 != semicolon; - } - - public String getName() { - return name; - } - - public String toString() { - StringBuffer text = new StringBuffer(); - for (int i = 0; i < parts.size(); i++) { - text.append(((FilePart) (parts.get(i))).toString()); - } - return text.toString(); - } - -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java deleted file mode 100644 index 317ad2fc44..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MacroPart.java +++ /dev/null @@ -1,87 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ - -/* - * A C or C++ macro as it is used in the source code - */ -package org.apache.tuscany.sca.cpp.tools.common; - -class MacroPart extends FilePart { - /** - * Factory method to create a MacroPart. - * - * @param s - * unparsed source code which may start with a define or macro. - */ - static MacroPart create(String s) { - String orig = getOriginalText(s); - if (null == orig) - return null; - return new MacroPart(orig); - } - - MacroPart(String s) { - super(s, FilePart.MACRO); - } - - /** - * @param s - * unparsed source code which may start with a define or macro. - * @return all of s up to the end of the define or macro. - */ - private static String getOriginalText(String s) { - String name = getName(s); - int len = name.length(); - if (null == name) - return null; - else if (Configuration.isDefine(name)) { - return s.substring(0, len); - } else if (Configuration.isMacro(name)) { - String rest = s.substring(len); - len += Utils.findMatching(rest, '(', ')'); - return s.substring(0, len + 1); - } else - return null; - } - - static boolean isAMacro(String s) { - if (s == null || 0 == s.length()) - return false; - String name = getName(s); - return Configuration.isMacro(name) || Configuration.isDefine(name); - } - - private static String getName(String s) { - int i; - for (i = 0; i < s.length(); i++) - if (!Character.isLetterOrDigit(s.charAt(i)) && '_' != s.charAt(i)) - break; - if (s.length() == i) - return null; - return s.substring(0, i); - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java deleted file mode 100644 index a25610c1f9..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/MethodPart.java +++ /dev/null @@ -1,133 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.util.ArrayList; - -/** - * A C or C++ method from a piece of source code. The method has a signature and - * a body (the bit between the braces). - */ -public class MethodPart extends FilePart { - private Signature signature; - - private String body; - - MethodPart(String s, Signature signature, String body) { - super(s, METHOD); - this.signature = signature; - this.body = body; - } - - public Signature getSignature() { - return signature; - } - - public String getOriginalSignature() { - return signature.getOriginal(); - } - - /** - * Returns the method body as code snippets, each ending with a place where - * a trace statement belongs. The end of the first code snippet is where the - * entry trace should go. The end of every other snippet is a return from - * the method. - */ - public BodyPart[] getBodyParts() throws ParsingException { - String b = body; // Don't alter field member - if (b.startsWith("{")) - b = b.substring(1); - - // Add in trace exit at all the return statements in the method. - ArrayList al = new ArrayList(); - int idxR = Utils.indexOf(b, "return"); - int idxC = Utils.indexOf(b, "catch"); - while (-1 != idxR || -1 != idxC) { - if (-1 == idxC || (-1 != idxR && idxR < idxC)) { - String frag = b.substring(0, idxR); - String rest = b.substring(idxR + "return".length()); - - int semicolon = Utils.indexOf(rest, ';'); - if (-1 == semicolon) - Utils.rude("Missing semicolon in " + signature); - String retVal = rest.substring(0, semicolon); - BodyPart bp = new BodyPart(frag, retVal); - al.add(bp); - b = b.substring(idxR + "return".length() + retVal.length() + 1); - } else { - String frag = b.substring(0, idxC); - String rest = b.substring(idxC); - - int brace = Utils.indexOf(rest, "{"); - if (-1 == brace) - Utils.rude("Missing open brace in " + signature); - Signature signature = new Signature(rest.substring(0, brace)); - frag = frag + rest.substring(0, brace + 1); - BodyPart bp = new BodyPart(frag, signature.getParameters()[0]); - al.add(bp); - b = rest.substring(brace + 1); - } - idxR = Utils.indexOf(b, "return"); - idxC = Utils.indexOf(b, "catch"); - } - - // Add in trace exit before the last } if there are no returns in - // the method or there is code after the last return and the method - // returns void. - // int f1(){try{return f2();}catch(Exception& e){throw;}} - // has code after the last return but having a traceexit before the - // last brace wouldn't compile since the method returns an int. We - // cope with this by only adding in a traceexit before the last brace - // if the method returns void. That may mean we add in an unreachable - // traceexit which may give a compiler warning, but that should be - // benign. - // - // TODO: Not quite good enough for - // void f(int a){if(a){printf("a");}else{printf("!a");return;}} - // as a trace exit is needed before the last } in case a>0 but - // void f(int a){if(a){printf("a");return;}else{printf("!a");return;}} - // would give compiler warnings about unreachable code if a trace - // exit is added before the last brace. This could be tricky to fix. - if ((0 == al.size() || -1 != Utils.indexOf(b, ';')) - && null == signature.getReturnType().getType()) { - - int last = b.lastIndexOf('}'); - if (-1 == last) - Utils.rude("Missing end brace in " + signature); - String b2 = b.substring(0, last); - al.add(new BodyPart(b2)); - b = b.substring(last); - } - - // The final body part is the last } - al.add(new BodyPart(b)); - - BodyPart[] bps = new BodyPart[al.size()]; - System.arraycopy(al.toArray(), 0, bps, 0, al.size()); - return bps; - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java deleted file mode 100644 index 6e951f03de..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Options.java +++ /dev/null @@ -1,164 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - * - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -/** - * Command line options passed to a tool's main program. All command line - * options should begin with a dash "-". Some command line options take a value - * which is the next parameter after the option. Others do not. - */ -public class Options { - static HashMap pairs = new HashMap(); - - static List values = new ArrayList(); - - /** - * No one constructs this class. - */ - private Options() { - } - - public static void reset() { - pairs = new HashMap(); - values = new ArrayList(); - } - - /** - * Initialises the options based on the args passed to main - */ - public static void set(String args[]) { - for (int i = 0; i < args.length; i++) { - if (args[i].startsWith("-")) { - if ((i + 1 <= args.length - 1) && // next one is testable - !args[i + 1].startsWith("-") // and it starts with a "-" - ) { - String key = args[i]; - Object pairValue = pairs.get(key); - if (null == pairValue) { - pairs.put(args[i], args[i + 1]); - } else if (pairValue instanceof String) { - List l = new ArrayList(); - l.add(pairValue); - l.add(args[i + 1]); - pairs.put(key, l); - } else if (pairValue instanceof List) { - ((List) pairValue).add(args[i + 1]); - } - i++; // Step over value for this key - } else - values.add(args[i]); - } - } - } - - public static Object getOption(String key) { - return pairs.get(key); - } - - static boolean isOptionSet(String key) { - return values.contains(key) || null!=pairs.get(key); - } - - /** - * This option will cause scagen to print out messages - * about the artefacts it is processing - * @return - */ - public static boolean verbose() { - return isOptionSet("-verbose"); - } - - /** - * This option will cause scagen to print out some - * basic internal log type messages - * @return - */ - public static boolean debug() { - return isOptionSet("-debug"); - } - - /** - * This option will cause scagen to print out some - * text that can be used or pasted into a command - * file to copy all the relevant artefacts from - * where they are found or generated to a specific - * deployment location - * - * @return - */ - public static boolean deploy() { - return isOptionSet("-deploy"); - } - - /** - * This option will prevent scagen from actually writing out - * the generated files. It is useful if used in conjunction - * with the "-deploy" option. - * @return - */ - public static boolean noGenerate() { - return isOptionSet("-nogenerate"); - } - - /** - * This option is useful only when used in conjunction with - * the "-deploy" option. It changes the output to be more like the - * source code of a command script to copy the files to a - * specific place. - * @return - */ - public static boolean outputCommand() { - return isOptionSet("-outputCommand"); - } - - /** - * This option is useful only when used in conjunction with - * the "-deploy" option. It changes the output to be a simple - * list of artefacts. It has no effect if the "-outputCommand" - * option is set. - * - * @return - */ - public static boolean list() { - return isOptionSet("-list"); - } - - /** - * This option is maintained for compatibility with the - * original package source. It is not used by new scagen code. - * - * @return - */ - public static boolean quiet() { - return isOptionSet("-quiet"); - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java deleted file mode 100644 index 2d98e0a836..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Parameter.java +++ /dev/null @@ -1,216 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - * - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * A parameter from a method signature. The parameter is the datatype plus its - * name but not its value. - */ -public class Parameter { - private ArrayList type = new ArrayList(); - - private String name = null; - - private boolean failed = false; - - /** - * Defaults to a parameter in a parameter list so it HAS a parameter name in - * it - */ - Parameter(List parts) { - this(parts, false); - } - - /** - * A parameter which is a return type does not have a parameter name. - * Parameters in a parameter list do have parameter names embedded in them - */ - Parameter(List parts, boolean isRetType) { - if (parts == null || parts.size() == 0) - return; - - // Tuscany: The original code below from apache axis blocks int - // getCustomer(long) - // i.e. no spaces in parameter list. - // We do not need to deal with "..." as parameters to SCS methods. - // - // if (!isRetType && parts.size() == 1) { - // if ("...".equals(parts.get(0))) { - // type.add("..."); - // name = ""; - // } else if (!"void".equals(parts.get(0))) - // failed = true; // Seems like bad C++ code here - // return; - // } - - if (isRetType) { - Iterator it = parts.iterator(); - while (it.hasNext()) - type.add(it.next()); - - // Some methods return have void on their signature and others - // have nothing. So to make them both the same, if a method - // doesn't return anything make type null. - // TODO: This assumption is wrong - methods that return nothing - // default to returning an int! - if (1 == type.size() && "void".equals(type.get(0))) - type = new ArrayList(); - - } else { - // Cope with array subscripts [] after the name - int arrIdx = -1; - for (int i = 0; i < parts.size(); i++) { - String tok = (String) parts.get(i); - if ("[".equals(tok)) { - arrIdx = i; - break; - } - } - - // Find the name - int nameIdx = parts.size() - 1; - if (-1 != arrIdx) - nameIdx = arrIdx - 1; - - // Even in real method declarations, parameters may not have a name - boolean noName = false; - name = (String) parts.get(nameIdx); - // Tuscany: The original code below from apache axis - // was updated to work with signatures of - // the form fn(int) a non-named, no-space, parameter list. - // if (Utils.cPrimitives.contains(name) || - // Utils.cTypeQualifiers.contains(name) ) - // - if (Utils.cPrimitives.contains(name) - || Utils.cTypeQualifiers.contains(name) - || parts.size() == 1) - noName = true; - - if (noName) { - name = null; - for (int i = 0; i < parts.size(); i++) - type.add(parts.get(i)); - } else { - // Construct the type - for (int i = 0; i < nameIdx; i++) - type.add(parts.get(i)); - - if (-1 != arrIdx) - for (int i = arrIdx; i < parts.size(); i++) - type.add(parts.get(i)); - } - } - } - - public boolean failed() { - return failed; - } - - public String getType() { - String s = null; - Iterator it = type.iterator(); - while (it.hasNext()) { - String next = (String) it.next(); - if (null == s) - s = next; - else if ("*".equals(next) || "&".equals(next)) - s += next; - else - s += " " + next; - } - return s; - } - - public String getTypeWithoutConst() { - String s = null; - Iterator it = type.iterator(); - while (it.hasNext()) { - String next = (String) it.next(); - if ("const".equals(next)) - continue; - else if (null == s) - s = next; - else if ("*".equals(next) || "&".equals(next)) - s += next; - else - s += " " + next; - } - return s; - } - - public String getName() { - return name; - } - - public boolean isVoid() { - return 0 == type.size(); - } - - public boolean isDotDotDot() { - return 1 == type.size() && "...".equals(type.get(0)); - } - - /** - * For two parameters to match their types must match or both be null, but - * the parameters names don't have to match. Just because a parameter is - * called something different in a header file as in the the source file - * doesn't mean it's a different parameter. - */ - public boolean equals(Object o) { - if (null == o || !(o instanceof Parameter)) - return false; - Parameter that = (Parameter) o; - if (type.size() != that.type.size()) - return false; - for (int i = 0; i < type.size(); i++) { - String s1 = (String) type.get(i); - String s2 = (String) that.type.get(i); - if (!Utils.safeEquals(s1, s2)) - return false; - } - return true; - } - - public String toString() { - if (0 == type.size()) - return "void"; - if (null == name) - return getType(); - return getType() + " " + name; - } - - public Iterator iterator() { - if (null == type) - return null; - return type.iterator(); - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java deleted file mode 100644 index 876d2dc3e0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/ParsingException.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - * - */ -package org.apache.tuscany.sca.cpp.tools.common; - -public class ParsingException extends Exception { - - public ParsingException() { - super(); - } - - public ParsingException(String message) { - super(message); - } - - public ParsingException(String message, Throwable cause) { - super(message, cause); - } - - public ParsingException(Throwable cause) { - super(cause); - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java deleted file mode 100644 index e51b2d781c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/PrototypePart.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - * - */ -package org.apache.tuscany.sca.cpp.tools.common; - -/** - * A function prototype in an include file and possibly in a class definition. - */ -public class PrototypePart extends FilePart { - private Signature signature; - - public PrototypePart(String s, String className, String namespace) { - super(s, PROTOTYPE); - signature = new Signature(s); - if (null != className) - signature.setClassName(className); - if (null != namespace && namespace.length()>0) - signature.setNamespace(namespace); - } - - String className() { - return signature.getClassName(); - } - - public Signature getSignature() { - return signature; - } - - public void setScope(String scope) { - signature.setScope(scope); - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java deleted file mode 100644 index d7052b7843..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Signature.java +++ /dev/null @@ -1,506 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* - * Branched from the original class that was also contributed to the - * org.apache.axis.tools.common package. - * - */ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -/** - * A C or C++ method signature with the ability to parse it. TODO: properly - * support variable length argument lists using "..." TODO: passing or returning - * function pointers (hopefully not needed) TODO: Cope with ~ <space>Classname() - */ -public class Signature { - private String originalText; - - private String attributes; - - private String className = null; - - private String namespace = null; - - private String methodName = null; - - private Parameter returnType = null; - - private Parameter[] params = null; - - private String trailingAttributes; - - private String scope = "public"; - - private boolean failed = false; - - private boolean traceable = true; - - private final static Set knownAttrs = new HashSet(Arrays - .asList(new Object[] { "public", "private", "extern", "\"C\"", - "virtual", "static", "inline" })); - - private final static Set specialOperators = new HashSet( - Arrays.asList(new Object[] { "(", ")", "*", ",", "&", "]", "[", - "=", "~" })); - - /** - * Takes an unparsed signature string and parses it. - * - * TODO: Should optionally pass in the className here in case it's an inline - * method implementation inside the class{}. Just so the className comes out - * in the trace. - */ - Signature(String s) { - originalText = s; - - try { - List tokens = tokenise(s); - - ArrayList alAttrs = new ArrayList(); - ArrayList alName = new ArrayList(); - ArrayList alParms = new ArrayList(); - ArrayList alTrailAttrs = new ArrayList(); - ArrayList alInits = new ArrayList(); - if (!splitUp(tokens, alAttrs, alName, alParms, alTrailAttrs, - alInits)) { - failed = true; - return; - } - - parseAttributes(alAttrs); - parseNameAndRetType(alName); - parseParameters(alParms); - parseTrailingAttributes(alTrailAttrs); - - // Ignore any tokens after the ) since these are (hopefully) - // constructor initialisers - - traceable = !Configuration.methodExcluded(className, methodName); - } catch (NullPointerException npe) { - failed = true; - traceable = false; - } - } - - /** - * Parse the signature into tokens. This removes whitespace and comments and - * separates out "*", ",", "(", ")", "&", "[" and "]". - */ - private static List tokenise(String s) { - ArrayList tokens = new ArrayList(); - String tok = null; - boolean space = true; - for (int i = 0; i < s.length(); i++) { - char c = s.charAt(i); - if (Character.isWhitespace(c)) { - space = true; - continue; - } - if (space) { - if (tok != null) - tokens.add(tok); - tok = "" + c; - } else - tok += c; - space = false; - - if (tok.endsWith("/*")) { - String sub = s.substring(i); - int endcomm = sub.indexOf("*/"); - if (endcomm == -1) - break; - i += endcomm + 1; - if (tok.equals("/*")) - tok = ""; - else - tok = tok.substring(0, tok.length() - 2); - continue; - } - - if (tok.endsWith("//")) { - String sub = s.substring(i); - int endcomm = sub.indexOf("\n"); - if (endcomm == -1) - break; - i += endcomm; - if (tok.equals("//")) - tok = ""; - else - tok = tok.substring(0, tok.length() - 1); - continue; - } - - if (tok.endsWith("::")) - space = true; - - String sc = "" + c; - if (specialOperators.contains(sc)) { - if (!tok.equals(sc)) { - tokens.add(tok.substring(0, tok.length() - 1)); - tok = sc; - } - space = true; - } - } - tokens.add(tok); - return tokens; - } - - /** - * Split up a tokenised method signature into a list of attributes, a list - * of name and return type tokens, a list of parameter tokens and a list of - * initialiser tokens. - */ - private static boolean splitUp(List tokens, List attrs, List nameAndRet, - List parms, List trailAttrs, List inits) { - - // nameStart points to the start of the return type if there is one - // else the start of the method name - int nameStart; - for (nameStart = 0; nameStart < tokens.size(); nameStart++) { - String tok = (String) (tokens.get(nameStart)); - if (!knownAttrs.contains(tok) && !Configuration.isAttribute(tok)) - break; - } - if (nameStart == tokens.size()) - return false; - - // initStart points to the initialisers, or thrown exceptions after - // the parameter list. throw is a keyword so we can safely search for - // it. - int initStart = tokens.size(); - for (int i = nameStart; i < tokens.size(); i++) { - String tok = (String) tokens.get(i); - if ((tok.startsWith(":") && !tok.startsWith("::")) - || "throw".equals(tok)) - initStart = i; - } - - int parmEnd; - for (parmEnd = initStart - 1; parmEnd > nameStart; parmEnd--) - if (")".equals(tokens.get(parmEnd))) - break; - if (parmEnd == nameStart) - return false; - - int parmStart = parmEnd; - for (parmStart = parmEnd; parmStart > nameStart; parmStart--) - if ("(".equals(tokens.get(parmStart))) - break; - - for (int i = 0; i < tokens.size(); i++) { - Object tok = tokens.get(i); - if (i < nameStart || Configuration.isAttribute((String) tok)) - attrs.add(tok); - else if (i < parmStart) - nameAndRet.add(tok); - else if (i <= parmEnd) - parms.add(tok); - else if (i < initStart) - trailAttrs.add(tok); - else - inits.add(tok); - } - return true; - } - - private void parseAttributes(List list) { - attributes = new String(); - Iterator it = list.iterator(); - while (it.hasNext()) { - if (attributes.length() > 0) - attributes += " "; - String next = (String) it.next(); - - //Tuscancy - //the scope is not present in the attributes - //but is set later in the InputCppSource contructor - if ("public".equals(next) || "protected".equals(next) - || "private".equals(next)) - scope = next; - attributes += next; - } - } - - private void parseNameAndRetType(List list) { - int size = list.size(); - int idx; - // "operator" is a key word so if it's present we know we're - // dealing with operator overloading. The operator that's been - // overloaded might have been split up into multiple tokens. - for (idx = 0; idx < size; idx++) - if ("operator".equals(list.get(idx))) - break; - - if (idx < size) { - methodName = ""; - for (int i = idx; i < size; i++) - methodName += (String) list.get(i); - } else { // No operator overloading - methodName = "" + list.get(size - 1); - idx = size - 1; - } - - // If it's a destructor, the "~" will be split out into a separate - // token, so add it onto the methodName here. - if (idx > 0 && "~".equals(list.get(idx - 1))) { - methodName = "~" + methodName; - idx--; - } - - // The class name comes before the method name - while (idx > 0 && ((String) list.get(idx - 1)).endsWith("::")) { - if (null == className) - className = (String) list.get(idx - 1); - else - className = (String) list.get(idx - 1) + className; - idx--; - } - - // Whatever's left before the classname/methodname must be the - // return type - ArrayList retParm = new ArrayList(); - for (int i = 0; i < idx; i++) - retParm.add(list.get(i)); - - returnType = new Parameter(retParm, true); - } - - /** - * Constructs the parameter list - */ - private void parseParameters(List list) { - ArrayList alParams = new ArrayList(); - Iterator it = list.iterator(); - String token = (String) it.next(); // step over the ( - while (it.hasNext() && !")".equals(token)) { - token = (String) it.next(); - - int template = 0; // Depth of template scope - boolean foundEquals = false; - // Ignore default value for an optional parameter - ArrayList parm = new ArrayList(); - while (!token.equals(")") && (!token.equals(",") || template > 0)) { - if (token.equals("=")) - foundEquals = true; - if (!foundEquals) - parm.add(token); - if (contains(token, "<")) - template++; - if (contains(token, ">")) - template--; - token = (String) it.next(); - } - - // No parameters so break out - if (token.equals(")") && 0 == parm.size()) - break; - - Parameter p = new Parameter(parm); - if (p.failed()) { - failed = true; - return; - } - - // Copes with void func(void) - if (!p.isVoid()) - alParams.add(p); - } - - int size = alParams.size(); - if (size > 0) { - params = new Parameter[size]; - System.arraycopy(alParams.toArray(), 0, params, 0, size); - } - } - - private void parseTrailingAttributes(List list) { - trailingAttributes = new String(); - Iterator it = list.iterator(); - while (it.hasNext()) { - if (trailingAttributes.length() > 0) - trailingAttributes += " "; - trailingAttributes += (String) it.next(); - } - } - - public String getOriginal() { - return originalText; - } - - public int originalLength() { - return originalText.length(); - } - - public boolean failed() { - return failed; - } - - public String getAttributes() { - return attributes; - } - - public String getClassName() { - return className; - } - - /** - * @param namespace The namespace to set. - */ - public void setNamespace(String namespace) { - this.namespace = namespace; - } - - /** - * @return Returns the namespace. - */ - public String getNamespace() { - return namespace; - } - - public String getTrimClassName() { - return trimClassName(className); - } - - public String getMethodName() { - return methodName; - } - - public Parameter getReturnType() { - return returnType; - } - - public Parameter[] getParameters() { - return params; - } - - public boolean isConstructor() { - return className != null && methodName != null - && trimClassName(className).equals(methodName); - } - - public boolean isDestructor() { - return className != null && methodName != null - && methodName.startsWith("~") - && methodName.endsWith(trimClassName(className)); - } - - private static String trimClassName(String name) { - if (name.endsWith("::")) - return name.substring(0, name.length() - 2); - return name; - } - - void setClassName(String className) { - if (null == className) - return; - if (!className.endsWith("::")) - className += "::"; - this.className = className; - } - - public String getScope() { - return scope; - } - - /** - * Sets the scope, but only if the scope is not set by an explicit attribute - * in the signature. - */ - public void setScope(String scope) { - if (-1 == attributes.indexOf(this.scope)) - this.scope = scope; - } - - /** - * Should this method be traced? - */ - public boolean traceable() { - return traceable; - } - - private static boolean contains(String src, String tgt) { - if (src == null || tgt == null) - return false; - if (-1 == src.indexOf(tgt)) - return false; - return true; - } - - public boolean equals(Object obj) { - if (null == obj || !(obj instanceof Signature)) - return false; - Signature that = (Signature) obj; - if (!Utils.safeEquals(className, that.className)) - return false; - if (!Utils.safeEquals(methodName, that.methodName)) - return false; - if (!Utils.safeEquals(returnType, that.returnType)) - return false; - if (null == params && null == that.params) - return true; - if (null != params && null == that.params) - return false; - if (null == params && null != that.params) - return false; - if (params.length != that.params.length) - return false; - for (int i = 0; i < params.length; i++) - if (!Utils.safeEquals(params[i], that.params[i])) - return false; - return true; - } - - public String toStringWithoutAttrs() { - String s = new String(); - if (returnType != null) - s += returnType + " "; - if (className != null) - s += className; - s += methodName + "("; - for (int i = 0; params != null && i < params.length; i++) { - if (i > 0) - s += ", "; - s += params[i].toString(); - } - s += ")"; - return s; - } - - public String toString() { - String s = attributes; - if (attributes.length() > 0) - s += " "; - s += toStringWithoutAttrs(); - if (trailingAttributes.length() > 0) - s += " " + trailingAttributes; - return s; - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java deleted file mode 100644 index d26c5ec5ae..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/Utils.java +++ /dev/null @@ -1,556 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -/* -* Branched from the original class that was also contributed to the -* org.apache.axis.tools.common package. -* -*/ -package org.apache.tuscany.sca.cpp.tools.common; - -import java.io.File; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -//Apache Common Logging -//import org.apache.commons.logging.Log; -//import org.apache.commons.logging.LogFactory; - -/** -* Static utility methods. Some of these methods are similar to the methods on -* java.lang.String except they are aware of C/C++ comments and string literals. -* -* TODO: Many of these methods would perform better using StringBuffer not -* String -*/ -public final class Utils { - // All the C primitive data types - public final static Set cPrimitives = new HashSet(Arrays - .asList(new Object[] { "void", "byte", "char", "unsigned", - "signed", "int", "short", "long", "double", "float", - "struct", "class", "enum", "union" })); - - // All the qualifiers that can affect C types - public final static Set cTypeQualifiers = new HashSet( - Arrays.asList(new Object[] { "(", ")", "*", ",", "&", "]", "[", - "const" })); - - public final static String whitespace = " \t\r\n"; - - //private static Log log = LogFactory.getLog(CLASS.class); - - /** - * Never instantiate this class - */ - private Utils() { - } - - /** - * Is this string all whitespace? - */ - static boolean isSpace(String s) { - for (int i = 0; i < s.length(); i++) - if (!Character.isWhitespace(s.charAt(i))) - return false; - return true; - } - - // TODO look for other trailing chars like { (because of class{) - static boolean startsWith(String source, String target) { - if (source == null || target == null) - return false; - if (!source.startsWith(target)) - return false; - if (source.length() == target.length()) - return true; - if (Character.isWhitespace(source.charAt(target.length()))) - return true; - return false; - } - - /** - * Performs a C-aware version of String.indexOf(char) in that it skips - * characters in string literals and comments. - */ - static int indexOf(String s, char c) throws ParsingException { - if ('"' == c) - rude("Utils.indexOf cannot be passed quotes"); - - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == c) - return i; - - i = skip(s.substring(i), i); - if (-1 == i) - return -1; - } - return -1; - } - - /** - * Performs a C-aware version of String.indexOf(String) in that it skips - * characters in string literals and comments and makes sure that the target - * string is not embedded in a longer word. - */ - static int indexOf(String s, String t) { - char t0 = t.charAt(0); - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == t0 - && s.substring(i).startsWith(t)) { - - - // When finding a single non-alphanumeric character - if(t.length() == 1 && !Character.isLetterOrDigit(t0)) - return i; - - // When finding an alphanumeric string - if((0 == i || !Character.isLetterOrDigit(s.charAt(i - 1))) // Check we're matching at the start of a word - && (s.length() == (i + t.length()) || !Character - .isLetterOrDigit(s.charAt(i + t.length())))) // Check we're still matching by the end of the word - return i; - } - - i = skip(s.substring(i), i); - if (-1 == i) - return -1; - } - return -1; - } - - /** - * Matches braces or quotes and is C-aware. It skips characters in string - * literals and comments. - */ - static int findMatching(String s, char c1, char c2) { - int depth = 0; - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == c1) - depth++; - else if (s.charAt(i) == c2) { - depth--; - if (depth == 0) - return i; - } else { - i = skip(s.substring(i), i); - if (-1 == i) - return -1; - } - } - return -1; - } - - /** - * Failed to parse the source code for some reason. This method prints out a - * suitably rude message, and then what? I haven't quite decided yet. - * - * TODO: Do something sensible here like throw an Exception which will give - * up on this file completely and tidy up the output file. It may be just - * too dangerous to try to carry on. But we need to fail in such a way that - * the build system knows that we've failed for this file and can build this - * file without trace. - */ - public static void rude(String reason, String filename, int lineno, - String codefragment) throws ParsingException { - - String text = "Bad C++ code!! "; - if (reason != null) - text += reason; - if (filename != null) - text += " " + filename + " lineno=" + lineno; - if (codefragment != null) - text += " <" + codefragment + ">"; - System.err.println(text); - throw new ParsingException(); - } - - /** - * This method reports an error level problem - * - * @param reason - * why we have an error level problem - */ - public static void rude(String reason) throws ParsingException { - // Apache commons logging - // log.error(Object line, null); - // or for now.... - rude(reason, null, 0, null); - } - - /** - * This method reports an error level problem - * - * @param reason - * why we have an error level problem - */ - public static void screenMessage(String msg) { - // Apache commons logging - // log.error(Object line, null); - // or for now.... - System.out.println(msg); - } - - /** - * Escapes special characters like " so that they can be output in a C - * string literal. Also removes newlines, since C string literals can't be - * split over lines. - */ - String pretty(String s) { - StringBuffer sb = new StringBuffer(s); - for (int i = 0; i < sb.length(); i++) - switch (sb.charAt(i)) { - case '"': - sb = sb.insert(i, '\\'); - i++; - break; - case '\n': - sb = sb.deleteCharAt(i); - i--; - break; - } - return sb.toString(); - } - - private static boolean startsWithComment(String s) { - if (null == s || s.length() < 2) - return false; - if (s.startsWith("//")) - return true; - if (s.startsWith("/*")) - return true; - return false; - } - - private static int endOfComment(String s) { - int idx; - if (s.startsWith("//")) - idx = s.indexOf("\n"); - else { - idx = s.indexOf("*/"); - if (-1 != idx) - idx++; // Step over */ - } - return idx; - } - - private static boolean startsWithStringLiteral(String s) { - if (null == s || s.length() < 1) - return false; - if (s.startsWith("\"") || s.startsWith("'")) - return true; - return false; - } - - private static int endOfStringLiteral(String s) { - boolean escape = false; - char c0 = s.charAt(0); - for (int i = 1; i < s.length(); i++) { - if (!escape && s.charAt(i) == c0) - return i; - - // \" or \' does not end the literal - if ('\\' == s.charAt(i)) - // Escaping a \ should switch escape off so \\' does end - // the literal - escape = !escape; - else - escape = false; - } - return -1; - } - - /** - * If the String s starts with a string literal or a comment, return i plus - * the index of the end of the literal or comment. String literals are - * enclosed in " or ' and comments start with /* or //. - */ - private static int skip(String s, int i) { - int j = 0; - if (startsWithStringLiteral(s)) { - j = endOfStringLiteral(s); - if (-1 == j) - return -1; - } else if (startsWithComment(s)) { - j = endOfComment(s); - if (-1 == j) - return -1; - } - return i + j; - } - - /** - * A better method than .equals() because it doesn't NullPointerException - * when one of the parameters is null. - */ - public static boolean safeEquals(Object o1, Object o2) { - if (null == o1 && null == o2) - return true; - if (null == o1 && null != o2) - return false; - if (null != o1 && null == o2) - return false; - return o1.equals(o2); - } - - public static void outputDebugString(String line) { - if (!Options.quiet()) { - if (Options.debug()) - // Apache commons logging - // log.debug(Object line, null); - // or for now - System.out.println(line); - } - } - - /** - * This static method allows different parts of the code to inform about - * significant events. Code interested in specific types of event can - * register a listener against that type (not written yet) - * - * @param eventType - * An int type enum indicating the type of event. - * @param message - * A message that can be output to the user. - */ - public static final int EVENT_TYPE_XML_ITEM_PARSED = 1; - - public static final int EVENT_TYPE_FILE_PARSED = 2; - - public static final int EVENT_TYPE_FILE_CREATE = 3; - - public static final int VERBOSE_LIMIT = 1024; - - public static final int DEPLOYMENT_ARTEFACT = VERBOSE_LIMIT; - - public static final int DEPLOYMENT_ARTEFACT_ENCOUNTERED = DEPLOYMENT_ARTEFACT + 1; - - public static final int DEPLOYMENT_ARTEFACT_GENERATED = DEPLOYMENT_ARTEFACT + 2; - - public static final int DEPLOYMENT_INPUT_DIRECTORY = DEPLOYMENT_ARTEFACT + 3; - - public static final int DEPLOYMENT_OUTPUT_DIRECTORY = DEPLOYMENT_ARTEFACT + 4; - - private static boolean reportArtefacts = false; - - /** - * An easily callable method to allow tracking/reposting of events in scagen - * and other tools. - * - * @param eventType - * used for classifying event - * @param message - * a user readable message - */ - public static void postEvent(int eventType, String message) { - if (Options.verbose() && eventType < VERBOSE_LIMIT) { - screenMessage(message); - } - - if ((eventType & DEPLOYMENT_ARTEFACT) > 0) { - reportArtefact(message, eventType); - } - - } - - /** - * @param message - * The user message - * @param eventType - * The type of event (input or output). This is used to determine - * if the path name of the file starts with the COMPOSITE_ROOT - * directory or the given output directory as the one of these - * prefixes is removed from the path name in order to give the - * new (destination) path relative to the new composite root - * - * - */ - - static String scagenInputDir = "COMPOSITE_ROOT"; - - static String scagenOutputDir = "SCAGEN_OUTPUT"; - - static String newCompositeRoot = "NEW_COMPOSITE_ROOT"; - - static String generatedDirName = "$sourceDir1"; - - private static void reportArtefact(String message, int eventType) { - - if (Utils.isReportArtefacts()) { - - // Changing the value of the variable below will alter the output of - // the - // deploy assist strings: - // true will result in a "copy source NEW_COMPOSITE_ROOT\dest" output - // and - // false will result in a "inputDir c:\fred" - // "outputDir c:\bob" - // "input c:\fred\sca.composite" - // "output c:\bob\proxy.h" type output - String command = null; - - try { - newCompositeRoot = (String) Options.getOption("-deploy"); - command = (String) Options.getOption("-command"); - } catch (Exception e) { - // let it default - } - - if (null == newCompositeRoot) { - newCompositeRoot = "DEPLOY_COMPOSITE_ROOT"; - } - - if (null == command) { - command = "copy"; - } - - if (Options.outputCommand()) { - - String tail = message; - switch (eventType) { - case DEPLOYMENT_ARTEFACT_ENCOUNTERED: - if (message.startsWith(scagenInputDir)) { - tail = message.substring(scagenInputDir.length()); - } - - String dest = joinPathElements(newCompositeRoot, tail); - - System.out.println(command + " " + platformSlashes(message) - + " " + platformSlashes(dest)); - break; - - case DEPLOYMENT_ARTEFACT_GENERATED: - if (message.startsWith(scagenOutputDir)) { - tail = message.substring(scagenOutputDir.length()); - } - - dest = joinPathElements(newCompositeRoot, tail); - System.out.println(command + " " + platformSlashes(message) - + " " + platformSlashes(dest)); - break; - case DEPLOYMENT_INPUT_DIRECTORY: - scagenInputDir = message; - //System.out.println("inputDir " + message); - break; - case DEPLOYMENT_OUTPUT_DIRECTORY: - scagenOutputDir = message; - //System.out.println("outputDir " + message); - break; - default: - break; - } - - } else { - - if (Options.list()) { - switch (eventType) { - case DEPLOYMENT_ARTEFACT_ENCOUNTERED: - case DEPLOYMENT_ARTEFACT_GENERATED: - System.out.println(platformSlashes(message)); - break; - case DEPLOYMENT_INPUT_DIRECTORY: - case DEPLOYMENT_OUTPUT_DIRECTORY: - default: - break; - } - } else { - switch (eventType) { - case DEPLOYMENT_ARTEFACT_ENCOUNTERED: - //TODO make efficient - System.out.println("$sourceDir1" - + platformSlashes(message.substring(scagenInputDir.length()))); - break; - case DEPLOYMENT_ARTEFACT_GENERATED: - //TODO make efficient - System.out.println(generatedDirName - + platformSlashes(message.substring(scagenOutputDir.length()))); - break; - case DEPLOYMENT_INPUT_DIRECTORY: - scagenInputDir = platformSlashes(message); - System.out.println("sourceDir1=" + scagenInputDir); - break; - case DEPLOYMENT_OUTPUT_DIRECTORY: - scagenOutputDir = platformSlashes(message); - if (!scagenInputDir.equals(scagenOutputDir)) { - generatedDirName = "$sourceDir2"; - System.out.println("sourceDir2=" + scagenOutputDir); - } else { - //generatedDirName = "sourceDir1"; - } - break; - default: - break; - } - } - } - } - } - - /** - * @param tail - * @param tail - * @return - */ - public static String joinPathElements(String root, String tail) { - String separator; - // Stick in a "/" (File.separator) if required. - if ((tail.substring(0, 1).equals("/") || newCompositeRoot.substring( - root.length() - 1, root.length()).equals("/")) - || (tail.substring(0, 1).equals("\\") || root.substring( - root.length() - 1, root.length()).equals("\\")) - - ) { - separator = ""; - } else { - separator = File.separator; - } - String dest = newCompositeRoot + separator + tail; - return dest; - } - - /** - * @param reportArtefacts - * The reportArtefacts to set. - */ - public static void setReportArtefacts(boolean reportArtefacts) { - Utils.reportArtefacts = reportArtefacts; - } - - /** - * @return Returns the reportArtefacts. - */ - private static boolean isReportArtefacts() { - return reportArtefacts; - } - - private static String platformSlashes(String path) { - if (null == path) { - return path; - } - // We need a double level of \\ escapes if the slashes are - // this way round. - String separatorForRegex = File.separator - .replaceAll("\\\\", "\\\\\\\\"); - return path.replaceAll("[/\\\\]+", separatorForRegex); - - } - -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html deleted file mode 100644 index c423477193..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/common/package.html +++ /dev/null @@ -1,58 +0,0 @@ -<!-- - 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> -<title>Design documentation for org\apache\tuscany\sca\cpp\tools\common</title> -</head> - -<body lang=EN-GB> - -<div class=Section1> - -<h1>Overview</h1> - -This package can be used to reflect across C++ source code. It can produce -a network of descriptive objects describing C++ Headers, Signatures, Parameters and so -on that it finds in a given location of the file system. -Each of the descriptive objects has a set of getters that return either -the descriptive child objects, or for primitives, the string that represents the actual -value such as "int" or "myFunction". -<p> -There are also various utility methods that help with navigating the information, for example the Signature -class has an isConstructor method. The API Javadoc contains further details of these. -<p> -The package can scan a directory using a file mask to identify what types -of files are to be scanned. In this application we are interested only -in the function prototypes in the C++ header files. -<p> -The implementation was originated using some java code that was also -contributed to the Apache org.apache.axis.tools.common package. Care -has been taken that the original code was not sourced via Apache. If -this project is adopted by Apache then it is very possible that this -package could be merged with or made obsolete by org.apache.axis.tools.common -and because of this the design and interfaces have been preserved from -the original code as much as possible. - -<p> -</div> -</body> - -</html> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java deleted file mode 100644 index 28974b41a6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentDomNodeHandler.java +++ /dev/null @@ -1,366 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.apache.tuscany.sca.cpp.tools.common.Headers; -import org.apache.tuscany.sca.cpp.tools.common.Signature; -import org.apache.tuscany.sca.cpp.tools.common.Utils; -import org.w3c.dom.Node; - -/** - * This class will do the required processing for the <component>element of a - * sca composite file. - */ -public class ComponentDomNodeHandler extends GenericDomNodeHandler { - - /** - * This method will do the "normal" processing and then trigger a call to - * processComponentNode. - * - * @param node - * the node being processed - * @param contextXPath - * the XPath to the node - * @param handlers - * the map pf element names to DomNodeHandlers - * @param parameters - * a map of XPaths to parameters values found so far - */ - - public void handleNode(Node node, String contextXPath, Map handlers, - Map parameters) { - - // Pick up attrs and the interface.cpp child elements - super.handleNode(node, contextXPath, handlers, parameters); - - try { - //OK now go and create the wrapper and proxy for the service - processComponentNode(contextXPath, parameters); - } catch (Exception e) { - e.printStackTrace(); - } - - } - - /** - * This method basically moved from the text names of things to operating on - * the actual Files. It will also verify or work out the correct class name - * for the implmentation and complain if this does match at least one - * potential service method in the class. - * - * @param contextXPath - * used to pull the correct values from the parameters map (as - * there can be multiple implementation.cpp elelements in there). - * @param parameters - * a map of XPath keys to attribute values - * @throws Exception - */ - private void processComponentNode(String contextXPath, Map parameters) - throws Exception { - - String implHeader = (String) parameters.get(contextXPath - + "/implementation.cpp/@header"); - String implClass = (String) parameters.get(contextXPath - + "/implementation.cpp/@class"); - - File compositeOrFragmentFile = (File) parameters - .get("compositeOrFragmentFile"); - File implHeaderFile = null; - if (null != compositeOrFragmentFile) { - File dir = compositeOrFragmentFile.getParentFile(); - implHeaderFile = new File(dir, implHeader); - } else { - throw new InternalError( - "Internal error: composite or fragment file not present in internal parameters"); - } - - try { - String resolvedImplClassName = getClassName(implHeaderFile, - implClass); - - // Check or retrieve the impl Class name. - if (null == resolvedImplClassName) { - try { - //A class attribute was set but there were no methods of - // the - // class in the header - System.out - .println("Classname given (" - + implClass - + ") does not match any header file method's classes in file: " - + implHeaderFile.getCanonicalPath()); - } catch (IOException e) { - System.out - .println("Classname given (" - + implClass - + ") does not match any header file method's classes in file: " - + implHeaderFile.getAbsolutePath()); - } - return; - } else { - File target = (File) parameters.get("targetFile"); - // go into the .componentType file and generate the cpp - processComponentTypeFile(implHeaderFile, target, - resolvedImplClassName); - - } - } catch (Exception e) { - String compName = (String) parameters - .get("/compositeFragment/component/@name"); - Utils - .screenMessage("Problem interpreting header or class attributes in " - + compName - + " component, in " - + compositeOrFragmentFile.getPath() + " file"); - System.exit(-2); - } - - } - - /** - * The purpose of this method is to move from the DOM parameters to dealing - * with the actual Files involved. It is from this method that we kick off - * the processing of the componentType file. - * - * @param header - * the implementation header - * @param target - * the directory for the output - * @param implClass - * @throws Exception - */ - private void processComponentTypeFile(File header, File target, - String implClass) throws Exception { - - // The componentType files should be in the same dir as the Impl - // header... - if (header == null || target == null) { - return; - } - - File componentTypeDirectory = header.getParentFile(); - String headerFileName = header.getName(); - String componentTypeName = headerFileName.substring(0, headerFileName - .lastIndexOf(".")); - - File componentTypeFile = new File(componentTypeDirectory, - componentTypeName + ".componentType"); - - ComponentTypeFileHandler ctParser = new ComponentTypeFileHandler(); - - // The implClass is used in the generated wrapper code so we need to - // store - // it so we can tunnel through the standard actOnFile signature. - - int namespaceEnd = -1; - if (null != implClass) { - namespaceEnd = implClass.lastIndexOf("::"); - } - - String namespace = null; - - if (-1 != namespaceEnd) { - namespace = implClass.substring(0, namespaceEnd); - ctParser.setParameter("implNamespace", namespace); - implClass = implClass.substring(namespaceEnd + 2); - } - - if (implClass != null) { - ctParser.setParameter("implClass", implClass); - } - - try { - ctParser.handleComponentTypeFile(componentTypeFile, target); - } catch (Exception e) { - Utils - .screenMessage("There has been a problem parsing the componentType file: " - + componentTypeFile.getCanonicalPath()); - Utils.screenMessage(" the reported errors is " - + e.getLocalizedMessage()); - Utils.screenMessage(" and the java exception stack is below."); - e.printStackTrace(); - throw e; - } - } - - /** - * The resolve and check the classname of the service. If we have an - * implementation class name we have to check that there is: at least one - * (non-private, non constructor or finalizer) method of that class in the - * header If there is no implementation class then we will return the class - * of the first non-private/constructor/finalizer method we find. - * - * @param header - * @param implementationCppClass - * @return - * @throws Exception - */ - private String getClassName(File header, String implementationCppClass) - throws Exception { - String methodClassName = null; - List methods = null; - - if (null == header) { - return null; - } - - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, header - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, - "Scagen processing C++ implementation header " - + header.getAbsolutePath()); - - try { - Headers headers = new Headers(); - - headers.actOnFile(header, null, 1); - - methods = headers.getAllMethods(); - - } catch (FileNotFoundException fnfe) { - String path; - try { - path = header.getCanonicalPath(); - } catch (IOException e1) { - path = header.getPath(); - } - Utils.screenMessage("The header file: " + path - + " referenced cannot be found."); - throw fnfe; - } catch (Exception e) { - String path = header.getPath(); - Utils.screenMessage("The header file: " + path - + " referenced is not valid. Reason given is " - + e.getLocalizedMessage()); - throw e; - } - - // We need at least some methods - if (null == methods) { - return null; - } - - // We need at least one service method of to do anything - methods = trimMethodsOfPrivatesConstructorsAndDestrutors(methods); - if (null == methods || methods.size() == 0) { - return null; - } - - // If the user specifies an implementation class then we need at - // least one service method of that class - if (implementationCppClass != null) { - methods = filterMethodsToOneClass(methods, implementationCppClass); - - if (null == methods || methods.size() == 0) { - return null; - } else { - // There was at least one method of the correct type - return implementationCppClass; - } - } else { - // Implementation class is null so we return the fully qualified classname of the - // first service method - Signature s = (Signature) methods.get(0); - String className = s.getTrimClassName(); - String namespace = s.getNamespace(); - if( namespace != null && namespace.length() > 0) - { - className = namespace + "::" + className; - } - - return className; - } - } - - /** - * Filter the mthods supplied to only ones fo the supplied class. - * - * @param methods - * the list of methods - * @param implementationCppClass - * the class we wish - * @return a list of methods of the correct class - */ - private List filterMethodsToOneClass(List methods, - String implementationCppClass) { - - if (null == methods) { - return null; - } - - if (null == implementationCppClass - || implementationCppClass.length() == 0) { - return null; - } - - for (Iterator iter = methods.listIterator(); iter.hasNext();) { - Signature method = (Signature) iter.next(); - - String className = method.getTrimClassName(); - String namespace = method.getNamespace(); - - if (namespace != null && namespace.length() > 0) { - className = namespace + "::" + className; - } - - if (!implementationCppClass.equals(className)) { - iter.remove(); - } - } - - return methods; - - } - - /** - * This method removes contructor and destructor methods from the list. - * - * @param methods - * the list of methods - * @return - */ - private List trimMethodsOfPrivatesConstructorsAndDestrutors(List methods) { - - if (null == methods) { - return null; - } - - for (Iterator iter = methods.listIterator(); iter.hasNext();) { - Signature method = (Signature) iter.next(); - - if (method.isConstructor() || method.isDestructor()) { - iter.remove(); - } - } - - return methods; - } - -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java deleted file mode 100644 index 6c86fa25b5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ComponentTypeFileHandler.java +++ /dev/null @@ -1,130 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; - -import org.apache.tuscany.sca.cpp.tools.common.FileActor; -import org.apache.tuscany.sca.cpp.tools.common.Utils; - -/** - * The purpose of this class is to specialise the map of XML element handlers - * for a XXX.componentType file that is used by the XMLFileActor - */ -public class ComponentTypeFileHandler extends XMLFileActor { - - static { - // We set up a map for each element type we wish to handle - // this alows the XML handling code to be generic and type free - // while the handlers don't have to do mcuh XML handling. - - GenericDomNodeHandler gdnh = new GenericDomNodeHandler(); - handlers.put("componentType", gdnh); - handlers.put("interface.cpp", gdnh); - - ServiceDomNodeHandler sdnh = new ServiceDomNodeHandler(); - handlers.put("service", sdnh); - - ReferenceDomNodeHandler rdnh = new ReferenceDomNodeHandler(); - handlers.put("reference", rdnh); - } - - /** - * This method just exists to add the default starting depth of 1 to the - * underlying actOnFile interface - * - * @param componentTypeXML - * @param target - * @throws Exception - */ - public void handleComponentTypeFile(File componentTypeXML, File target) - throws Exception { - // We have already set up the XML element handlers. - actOnFile(componentTypeXML, target, 1); - // We need do no more, the service and reference handlers - // ServiceDomNodeHandler and ReferenceDomNodeHandler - // will take appropriate action. - } - - /** - * This method is the main FileActor method - * - * @see FileActor#actOnFile(File, File, int) Here we create an initial DOM - * and kick off the processing (using the handler map that has been set - * up by the concrete subclass). - * - * @param compositeXML - * the composite or fragment file - * @param target - * the target directory - * @param depth - * not uesed here but in the - * @see FileActor#actOnFile(File, File, int) interface to allow for - * recursive diving into a directory structure. - */ - public void actOnFile(File fileXML, File target, int depth) - throws Exception { - - if (null == fileXML || null == target) { - return; - } - - parameters.put("componentTypeFile", fileXML); - - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, fileXML.getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, "Scagen processing SCA componentType file " + fileXML.getAbsolutePath()); - - super.actOnFile(fileXML, target, depth); - - } - - /** - * @return an error message - usually over-ridden. - */ - protected String getContextMessage() { - - String composite = ((File) parameters.get("compositeOrFragmentFile")).getPath(); - if (null == composite) { - composite = "unknown"; - } - - String component = (String) parameters.get("/composite/component/@name"); - if (null == component) { - component = (String) parameters - .get("/compositeFragment/component/@name"); - } - if (null == component) { - composite = "unknown"; - } - - String msg = "when processing composite " + composite; - - msg = msg - + "\nin this composite file, the component \"" - + component - + "\" has an implementation.cpp element with a header attribute \nwhere the C++ header can be found but it has no matching .componentType file present in\nthe same directory as the header."; - - return msg; - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/CompositeOrFragmentFileHandler.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/CompositeOrFragmentFileHandler.java deleted file mode 100644 index 3eb8dc7d98..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/CompositeOrFragmentFileHandler.java +++ /dev/null @@ -1,91 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; - -import org.apache.tuscany.sca.cpp.tools.common.FileActor; -import org.apache.tuscany.sca.cpp.tools.common.Utils; - -/** - * The purpose of this class is purely to specialise the handler map to one with - * a specific ComponentDomNodeHandler. - */ -public class CompositeOrFragmentFileHandler extends XMLFileActor { - - static { - - GenericDomNodeHandler gdnh = new GenericDomNodeHandler(); - - /* - * We use a specific Component node handler in order to be able to - * process multiple components in the same XML file - */ - ComponentDomNodeHandler componentdnh = new ComponentDomNodeHandler(); - handlers.put("component", componentdnh); - - /* - * We are interested inthe elements below but they only need standard - * processing - */ - handlers.put("composite", gdnh); - handlers.put("compositeFragment", gdnh); - handlers.put("implementation.cpp", gdnh); - } - - /** - * This method is the main FileActor method - * - * @see FileActor#actOnFile(File, File, int) Here we create an initial DOM - * and kick off the processing (using the handler map that has been set - * up by the concrete subclass). - * - * @param compositeXML - * the composite or fragment file - * @param target - * the target directory - * @param depth - * not uesed here but in the - * @see FileActor#actOnFile(File, File, int) interface to allow for - * recursive diving into a directory structure. - */ - public void actOnFile(File compositeXML, File target, int depth) - throws Exception { - - if (null == compositeXML || null == target) { - return; - } - - parameters.put("compositeOrFragmentFile", compositeXML); - - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, compositeXML - .getAbsolutePath()); - - Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, - "Scagen processing SCA composite file " - + compositeXML.getAbsolutePath()); - - super.actOnFile(compositeXML, target, depth); - - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java deleted file mode 100644 index 9cf7952afa..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DirectoryScanner.java +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.util.Set; - -import org.apache.tuscany.sca.cpp.tools.common.FileActor; -import org.apache.tuscany.sca.cpp.tools.common.Utils; - -public class DirectoryScanner { - private FileActor actor; - - private Set actOnTheseFileExtensions; - - public DirectoryScanner(FileActor actor, Set extensions) { - this.actor = actor; - this.actOnTheseFileExtensions = extensions; - } - - /** - * - * @param source - * The composite root directory - * @param target - * The directory that will hold the generated output - * @param depth - * The depth from the initial starting point, not significant for - * the Scagen tool as we are only interested in the composite root - * directory but present due to the FileActor actOnFile interface - * method. This code is pulled from the code in the CParsingTool - * class and further work is needed to remove the duplication. - * Tnterface has been left unchanged as we hope to reconverge the - * parser here with the original one once the changes are fed - * back into the original code. - * @throws Exception - */ - public void walkTree(File source, File target, int depth) throws Exception { - depth++; - boolean noTarget = (null == target); - - if (!source.canRead()) - Utils.rude("Cannot read from source directory " + source); - if (!noTarget && !target.canWrite()) - Utils.rude("Cannot write to target directory " + target); - - if (source.isDirectory()) { - File[] filesInDirectory = source.listFiles(); - for (int i = 0; i < filesInDirectory.length; i++) { - File file = filesInDirectory[i]; - String name = file.getName(); - int dot = name.lastIndexOf('.'); - String ext = null; - if (-1 != dot) { - ext = name.substring(dot + 1); - } - - if (file.isFile() - && (actOnTheseFileExtensions == null || (!file - .isHidden() && actOnTheseFileExtensions - .contains(ext)))) { - // this is a file we need to act on! - actor.actOnFile(file, target, depth); - } - } - } else { - return; // Do not act on single files for now we expect a composite - // root directory - // and the "main" class checks its parameters to ensure this is so. - } - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java deleted file mode 100644 index 0756b5fc3b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomHandler.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.util.Map; - -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * The purpose of this class it to provide a generic class that can handle both - * a DOM and a DOM node. - * - */ -public class DomHandler extends GenericDomNodeHandler { - /** - * This method will run through the initial level of the DOM using the - * handlers map - * - * @param dom - * the document being consumed - * @param handlers - * the map from element name to node handler - * @param parameters - * a map of parameters - this is often used by a handler to place - * a name-value pair, the name is often an Xpath representation - * of the location of the data in the DOM but handlers are free - * to use whatever they like - the contextXpath is generated as - * an Xpath prefix for those handlers that wish to use it. - */ - public static void handleDom(Document dom, Map handlers, Map parameters) { - if (dom != null) { - NodeList childNodes = dom.getChildNodes(); - for (int i = 0; i < childNodes.getLength(); i++) { - Node childNode = childNodes.item(i); - mapNodeToHandlerAndHandle(childNode, "/" - + childNode.getNodeName(), handlers, parameters); - } - } - } - - /** - * - * @param node - * The DOM node being consumed - * @param contextXPath - * The XPath to this node - * @param handlers - * The map from element name to node handler - * @param parameters - * A map of parameters - this is often used by a handler to place - * a name-value pair, the name is often an Xpath representation - * of the location of the data in the DOM but handlers are free - * to use whatever they like - the contextXpath is generated as - * an Xpath prefix for those handlers that wish to use it. - */ - public void handleNode(Node node, String contextXPath, Map handlers, - Map parameters) { - mapNodeToHandlerAndHandle(node, contextXPath, handlers, parameters); - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java deleted file mode 100644 index 37c2a1a81c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/DomNodeHandler.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.util.Map; - -import org.w3c.dom.Node; - -public interface DomNodeHandler { - - public static int ELEMENT = 1; - /** - * An interface for classes that can process DOM nodes. - * - * @param node the DOM node being consumed - * @param contextXPath the XPath to this node - * @param handlers The map from element name to node handler - * @param parameters A map of parameters - this is often used by a handler to place - * a name-value pair, the name is often an Xpath like representation of the - * location of the data in the DOM but handlers are free to use whatever - * they like - the contextXpath is generated as an Xpath prefix for those - * handlers that wish to use it. - */ - void handleNode( Node node, String contextXPath, Map handlers, Map parameters ); - -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java deleted file mode 100644 index 1ec393959d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/GenericDomNodeHandler.java +++ /dev/null @@ -1,220 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; -import java.util.Map.Entry; - -import org.apache.tuscany.sca.cpp.tools.common.Utils; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * - * - * - * - */ -public class GenericDomNodeHandler implements DomNodeHandler { - /** - * This method parses the DOM attributes into name value pairs in the - * parameter map each valued keyed by its XPath. - * - * @param node - * the DOM node being processed - * @param contextPath - * the XPath to the DOM node being processed - * @param parameters - * a scratchpad map of name value pairs - */ - public void transferAttrsToParameters(Node node, String contextPath, - Map parameters) { - - if (node == null || contextPath == null || parameters == null) - return; - - NamedNodeMap attrs = node.getAttributes(); - if (attrs != null) { - for (int i = 0; i < attrs.getLength(); i++) { - Node attr = attrs.item(i); - parameters.put(contextPath + "/" + "@" + attr.getNodeName(), - attr.getNodeValue()); - - // Report the library name to the deployment tool if required. - if ("library".equals(attr.getNodeName())) { - //This is a path relative to the composite root. - //so we need to add it in. - File mod = (File) parameters.get("compositeOrFragmentFile"); - if (null != mod) { - String separatorForRegex = File.separator.replaceAll( - "\\\\", "\\\\\\\\"); - - String end = attr.getNodeValue().replaceAll("[/\\\\]+", - separatorForRegex); - - if (!end.startsWith(File.separator)) { - end = File.separator + end; - } - - String fullPath = mod.getParentFile().getAbsolutePath() - + end; - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, - fullPath); - } - - } - - } - } - return; - } - - /** - * This method will iterate through the DOM node's children and call the - * appropriate handler for each one. - * - * @param node - * the DOM node being processed - * @param contextPath - * the XPath to the DOM node being processed - * @param handlers - * a map of element name to handler objects - * @param parameters - * a scratchpad map of name value pairs - */ - public void handleChildElements(Node node, String contextPath, - Map handlers, Map parameters) { - - if (node == null || contextPath == null) - return; - - NodeList children = node.getChildNodes(); - if (children != null) { - for (int i = 0; i < children.getLength(); i++) { - Node child = children.item(i); - mapNodeToHandlerAndHandle(child, contextPath + "/" - + child.getNodeName(), handlers, parameters); - } - } - return; - } - - /** - * This method will resolve any registered handler for a particular DOM - * element and call the handleNode method on it. If the handlers map has a - * mapping from "entity" to an instance of EntityHandler which implements - * the DomNodeHandler interface then any node that looks like <entity> - * <any_other/><stuff/></entity> - * - * Will be passed to the EntityHandler to process. - * - * @param node - * the DOM node being processed - * @param contextPath - * the XPath to the DOM node being processed - * @param handlers - * a map of element name to handler objects - * @param parameters - * a scratchpad map of name value pairs - */ - public static void mapNodeToHandlerAndHandle(Node node, String contextPath, - Map handlers, Map parameters) { - if (node != null && node.getNodeType() == DomNodeHandler.ELEMENT) { - String nodeName = node.getNodeName(); - if (nodeName != null && nodeName.length() > 0) { - DomNodeHandler handler = (DomNodeHandler) handlers - .get(nodeName); - if (handler != null) { - handler.handleNode(node, contextPath, handlers, parameters); - } - } - } - } - - /** - * This method will place the attributes in this node into the parameter map - * keyed by the XPath and recursively continue processing for any - * sub-elements of the node. - * - * @param node - * The DOM node being consumed - * @param contextXPath - * The XPath to this node - * @param handlers - * The map from element name to node handler - * @param parameters - * A map of parameters - this is often used by a handler to place - * a name-value pair, the name is often an Xpath representation - * of the location of the data in the DOM but handlers are free - * to use whatever they like - the contextXpath is generated as - * an Xpath prefix for those handlers that wish to use it. - */ - public void handleNode(Node node, String contextXPath, Map handlers, - Map parameters) { - - clearParametersAtThisXPath(contextXPath, parameters); - transferAttrsToParameters(node, contextXPath, parameters); - handleChildElements(node, contextXPath, handlers, parameters); - } - - /** - * @param contextXPath - * @param parameters - */ - private void clearParametersAtThisXPath(String contextXPath, Map parameters) { - - // TODO: Slow but works, improve parameters mechanism overall - // to make this unecessary - if (contextXPath == null || parameters == null) { - return; - } - - // We want to clear both /compositeFragment and /composite - // subtrees when we come across the root of either.. - if (contextXPath.equals("/compositeFragment")) { - //clear both this and "composite" - contextXPath = "/composite"; - } - - Set parms = parameters.entrySet(); - if (null != parms) { - Iterator iter = parms.iterator(); - Map.Entry item = null; - String thisKey; - - while (iter.hasNext()) { - item = (Entry) iter.next(); - thisKey = (String) item.getKey(); - if (thisKey.startsWith(contextXPath)) { - //System.out.println(" removing " + thisKey + " for " + - // item.getValue().toString() + " against " + contextXPath); - iter.remove(); - } - } - } - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java deleted file mode 100644 index e7036037c6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/LittleClass.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -/** - * This class is just a convenient application class that is loaded in order to - * get the application class loader. We are interested in the application class - * loader as we use its getResource method to resolve XML files independantly of - * where they are. - */ -public class LittleClass { - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java deleted file mode 100644 index 5631249769..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ReferenceDomNodeHandler.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.util.Map; - -import org.apache.tuscany.sca.cpp.tools.common.Options; -import org.w3c.dom.Node; - -/** - * The purpose of this class is to process a <reference>element in a - * componentType file and then trigger a call to the method in ServicesGenerator - * to process the interface header file - */ -public class ReferenceDomNodeHandler extends GenericDomNodeHandler { - - /* - * (non-Javadoc) - * - * @see org.apache.tuscany.sca.cpp.services.DomNodeHandler#handleNode(org.w3c.dom.Node, - * java.lang.String, java.util.Map, java.util.Map) - */ - public void handleNode(Node node, String contextXPath, Map handlers, - Map parameters) { - - // Pick up attrs and children - super.handleNode(node, contextXPath, handlers, parameters); - - //OK we know we are handling a reference - //now go and create the wrapper and proxy for it if it is a C++ reference - if(parameters.containsKey("/componentType/reference/interface.cpp/@header")) { - createProxyForReference(parameters); - } - - } - - /** - * This method is really just an adapter that adapts the -dir Option to a - * value int he parameters map for "composite_root" - * - * @param parameters - * the map of name-value parameters. - */ - private void createProxyForReference(Map parameters) { - try { - String mr = (String) Options.getOption("-dir"); - parameters.put("composite_root", mr); - ServicesGenerator.handleInterfaceHeader(parameters, true); - - } catch (Exception e) { - e.printStackTrace(); - } - - } -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java deleted file mode 100644 index 19e983c6b1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/Scagen.java +++ /dev/null @@ -1,176 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import org.apache.tuscany.sca.cpp.tools.common.CParsingTool; -import org.apache.tuscany.sca.cpp.tools.common.Options; -import org.apache.tuscany.sca.cpp.tools.common.Utils; - -/** - * This is the main top level class. Its purpose is to create a - * Composite/FragmentFile handler visitor and pass it to a DirectoryScanner for - * processing. - */ -public class Scagen extends CParsingTool { - - public static Set COMPOSITE_EXTENSIONS = new HashSet(Arrays - .asList(new Object[] { "composite", "fragment" })); - - /** - * @throws Exception - * - */ - public Scagen(String[] args) throws Exception { - super(args); - } - - /** - * Take a directory scanning class and create a vistor that knows how to - * handle any .composite or .fragment that the scanner comes across. - * - * @param args - * standard main args. THe values we expect in this class are - * scagen -dir input_dir -output output_dir - * - */ - public static void main(String[] args) { - boolean failed = false; - try { - Scagen env = new Scagen(args); - CompositeOrFragmentFileHandler composite_handler = new CompositeOrFragmentFileHandler(); - - // Check and access the input SCA composite directory - String name = (String) Options.getOption("-dir"); - if (null == name) { - Utils - .screenMessage("Please provide a SCA composite directory name as a \"-dir\" option."); - env.printUsage(); - System.exit(-1); - } - File source = new File(name); - if (!source.isFile() && !source.isDirectory()) { - Utils - .screenMessage("The SCA composite directory provided as the \"-dir\" option cannot be accessed,"); - Utils.screenMessage("the option given was: " + source); - env.printUsage(); - System.exit(-1); - } - - String deployDir = null; - try { - deployDir = (String) Options.getOption("-deploy"); - if (null != deployDir || Options.deploy()) { - Utils.setReportArtefacts(true); - } - } catch (Exception e) { - // let it default to null - } - - Utils.postEvent(Utils.DEPLOYMENT_INPUT_DIRECTORY, source - .getAbsolutePath()); - - // We check the -output option here as we wish to - // reuse the env.maybeCreateDirectory method - // unchanged from the original that went into axis and it will do a - // System.exit if there is no matching Option - String outputDirName = (String) Options.getOption("-output"); - if (null == outputDirName) { - Utils - .screenMessage("Please provide an output directory name for the generated files as a \"-output\" option."); - env.printUsage(); - System.exit(-1); - } - - File outputDir = new File(outputDirName); - - // Check we can create the output directory - if (outputDir == null || !outputDir.exists() && !outputDir.mkdir()) { - Utils.screenMessage("Failed to create output directory: " - + outputDirName); - env.printUsage(); - System.exit(-1); - } - - Utils.postEvent(Utils.DEPLOYMENT_OUTPUT_DIRECTORY, outputDir - .getAbsolutePath()); - - DirectoryScanner scanner = new DirectoryScanner(composite_handler, - COMPOSITE_EXTENSIONS); - scanner.walkTree(source, outputDir, 1); - - if (0 == composite_handler.getFilesActedOn()) { - Utils - .screenMessage("No SCA composite or fragment files were found in: " - + source); - } - - failed = composite_handler.failed; - - } catch (Exception exception) { - Utils - .screenMessage("Unexpected error occurred while runnning the Scagen tool. The Java exception is below."); - exception.printStackTrace(); - failed = true; - } - - if (failed) { - Utils - .outputDebugString("Finished! (but encountered problems parsing composites)"); - System.exit(-2); - } - - Utils.outputDebugString("Finished!"); - } - - /** - * Provide a hint to the user on how to call this class - */ - protected void printUsage() { - System.out - .println("usage: Java Scagen -dir <input_directory> -output <output_directory> [-verbose] [-deploy <deploy_dir>] [-nogenerate] [-outputCommand] [-command <copy_cmd>]"); - System.out - .println(" -dir <input_directory>: the SCA composite root directory"); - System.out - .println(" -output <output_directory>: a directory to put the generated output into"); - System.out.println(" [-verbose]: report on what scagen is doing"); - System.out - .println(" [-deploy <deploy_dir>]: output text to help in deploying the composite's artefacts"); - System.out - .println(" [-command <copy_cmd>]: a string that is injected into the deploy text"); - System.out - .println(" [-list]: change the deploy output text to a simple list of artefacts"); - System.out - .println(" [-outputCommand]: change the deploy output text to command text format"); - System.out - .println(" output is of form \"copy_cmd <dir>file1 <deploy_dir>file1\""); - System.out - .println(" [-nogenerate]: do not generate proxies and wrappers"); - - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java deleted file mode 100644 index cedb4bdb54..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServiceDomNodeHandler.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.util.Map; - -import org.apache.tuscany.sca.cpp.tools.common.Options; -import org.w3c.dom.Node; - -public class ServiceDomNodeHandler extends GenericDomNodeHandler { - - /* - * (non-Javadoc) - * - * @see org.apache.tuscany.sca.cpp.services.DomNodeHandler#handleNode(org.w3c.dom.Node, - * java.lang.String, java.util.Map, java.util.Map) - */ - public void handleNode(Node node, String contextXPath, Map handlers, - Map parameters) { - - // Pick up attrs and the interface.cpp child elements - super.handleNode(node, contextXPath, handlers, parameters); - - // Only generate if this is a C++ service - if(parameters.containsKey("/componentType/service/interface.cpp/@header")) { - //OK now go and create the wrapper and proxy for the service - createWrapperAndProxyForService(parameters); - } - - } - - /** - * This method will generate the wrapper and proxy C++ and header files for - * the service. - * - * @param parameters - * a map of name-value parameters - */ - private void createWrapperAndProxyForService(Map parameters) { - - try { - String mr = (String) Options.getOption("-dir"); - parameters.put("composite_root", mr); - ServicesGenerator.handleInterfaceHeader(parameters, false); - - } catch (Exception e) { - e.printStackTrace(); - } - - } -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java deleted file mode 100644 index 956db364a1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/ServicesGenerator.java +++ /dev/null @@ -1,831 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.stream.StreamSource; - -import org.apache.tuscany.sca.cpp.tools.common.CParsingTool; -import org.apache.tuscany.sca.cpp.tools.common.Headers; -import org.apache.tuscany.sca.cpp.tools.common.Options; -import org.apache.tuscany.sca.cpp.tools.common.Parameter; -import org.apache.tuscany.sca.cpp.tools.common.Signature; -import org.apache.tuscany.sca.cpp.tools.common.Utils; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Text; - -/** - * This class is the main class that handles the function that parses a C++ - * interface header file into a DOM that holds all the semantic information - * about the interface - method names, parameters and return values. It then - * uses XSLT to generate different "views" of this data plus the parameter map - * from other sources that are the C++ programs for the proxy and wrapper - * implementations and headers. - */ -public class ServicesGenerator extends CParsingTool { - - private static final String OPERATION_NAME_ATTR = "operationNameAttr"; - - private static final String HEADER_NAME_ATTR = "headerNameAttr"; - - private static final String SCA_OPERATION = "scaOperation"; - - private static final String SCA_SERVICE = "scaService"; - - private static final String SCA_OPERATION_RETURN_TYPE = "scaOperationReturnType"; - - private static final String SCA_OPERATION_PARAMETER = "scaOperationParameter"; - - private static final String SCA_OPERATION_PARAMETER_NAME_ATTR = "scaOperationParameterNameAttr"; - - private static final String SCA_OPERATION_PARAMETER_CONST_ATTR = "scaOperationParameterConstAttr"; - - private static final String SCA_INTERFACE_NAME_ATTR = "scaInterfaceNameAttr"; - - private static final String CPP_HEADER = "cppHeader"; - - private static boolean TESTING = true; - - private static TransformerFactory txmf = null; - - private static ServicesGenerator instance = null; - - public ServicesGenerator(String[] args) throws Exception { - super(args); - txmf = TransformerFactory.newInstance(); - } - - /** - * - * @param parameters - * @param forReference - * true if we are creating a proxy for a reference (rather than - * for a service) - * @throws Exception - * - * The design is - * <ul> - * <li>handleInterfaceHeader - * <li>createDOMofMethods - * <li>createProxyCPPFromDom(outputDir, dom); - * <li>createProxyHeaderFromDom(outputDir, dom); - * </ul> - * - * plus if we are not generating for a reference element - * <ul> - * <li>createWrapperCPPFromDom(outputDir, dom); - * <li>createWrapperHeaderFromDom(outputDir, dom); - * <ul> - * Each of the create.... methods calls createOutputFromDom with a different - * style sheet. - * - */ - public static void handleInterfaceHeader(Map parameters, - boolean forReference) throws Exception { - boolean failed = false; - - String type = null; - if (forReference) { - type = "reference"; - } else { - type = "service"; - } - String interfaceHeaderFilename = (String) parameters - .get("/componentType/" + type + "/interface.cpp/@header"); - - String componentTypeFileHeaderName = interfaceHeaderFilename; - - String sca_composite_root = (String) Options.getOption("-dir"); - parameters.put("composite_root", sca_composite_root); - - if (sca_composite_root != null && interfaceHeaderFilename != null - && interfaceHeaderFilename.length() > 0) { - String separator; - // Stick in a "/" (File.separator) if required. - if ((interfaceHeaderFilename.substring(0, 1).equals("/") || sca_composite_root - .substring(sca_composite_root.length() - 1, - sca_composite_root.length()).equals("/")) - || (interfaceHeaderFilename.substring(0, 1).equals("\\") || sca_composite_root - .substring(sca_composite_root.length() - 1, - sca_composite_root.length()).equals("\\")) - - ) { - separator = ""; - } else { - separator = File.separator; - } - interfaceHeaderFilename = sca_composite_root + separator - + interfaceHeaderFilename; - } - - File outputDir = (File) parameters.get("targetDirectoryFile"); - - String[] args = new String[] { "-source", interfaceHeaderFilename, - "-target", outputDir.getPath() }; - ServicesGenerator gen = new ServicesGenerator(args); - File file; - try { - if (null == interfaceHeaderFilename) { - gen.printUsage(); - System.exit(-1); - } - - file = new File(interfaceHeaderFilename); - if (!file.isFile()) { - if (file.isDirectory()) { - Utils - .rude("This tool works at the header file level and not for directories like " - + file); - } - Utils.rude("Bad file or directory " + file); - } - File source = file; - if (!outputDir.exists() && !outputDir.mkdir()) - Utils.rude("Failed to create directory " + outputDir); - - // The class below is the one that will go through the header - // file(s) - Headers headers = new Headers(); - - if (null != interfaceHeaderFilename) { - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_ENCOUNTERED, file - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_PARSED, - "Scagen processing C++ interface header " - + file.getAbsolutePath()); - headers.actOnFile(file, outputDir, 1); - Utils.outputDebugString("Parsing files..."); - } - - String nameOfSorR = null; - String referenceName = null; - String serviceName = null; - - if (forReference) { - - Object rn = parameters.get("/componentType/reference/@name"); - - if (rn instanceof String) { - referenceName = (String) rn; - nameOfSorR = referenceName; - } - } else { - - Object sn = parameters.get("/componentType/service/@name"); - - if (sn instanceof String) { - serviceName = (String) sn; - nameOfSorR = serviceName; - } - } - - String compositeXmlFileHeader = null; - String compositeXmlFileHeaderNoExt = null; - Object compositeh = parameters - .get("/composite/component/implementation.cpp/@header"); - - if (compositeh == null) { - compositeh = parameters - .get("/compositeFragment/component/implementation.cpp/@header"); - } - - if (compositeh instanceof String) { - File f = new File((String) compositeh); - compositeXmlFileHeader = (String) compositeh; - - String fname = f.getName(); - compositeXmlFileHeaderNoExt = fname.substring(0, fname - .lastIndexOf('.')); - - } - - String implClassNameAttrFromCompositeFile = (String) parameters - .get("implClass"); - String implClassNamespaceAttrFromCompositeFile = (String) parameters - .get("implNamespace"); - - if(implClassNamespaceAttrFromCompositeFile == null || implClassNamespaceAttrFromCompositeFile.length() == 0) - { - implClassNamespaceAttrFromCompositeFile = ""; - } - else - { - implClassNamespaceAttrFromCompositeFile += "::"; - } - - String interfaceClassNameAttrFromComponentTypeFile; - if (forReference) { - interfaceClassNameAttrFromComponentTypeFile = (String) parameters - .get("/componentType/reference/interface.cpp/@class"); - } else { - interfaceClassNameAttrFromComponentTypeFile = (String) parameters - .get("/componentType/service/interface.cpp/@class"); - } - - List methods = headers.getAllMethods(); - - // Pull out one of the methods' namespace attributes. - String intfNamespace = null; - if (methods.size() > 0) { - Signature method = (Signature) methods.get(0); - intfNamespace = method.getNamespace(); - } - - if (interfaceClassNameAttrFromComponentTypeFile != null) { - methods = filterToPublicMethodsOfGivenClass(methods, - interfaceClassNameAttrFromComponentTypeFile, true); - } else { - //We want to filter to methods of the class whose - //name matches the header file name. - // String intfClassName = (String) parameters.get("intfClass"); - // - String headerFileBase = file.getName().replaceAll( - "\\.h|\\.hpp|\\.h++", ""); - - methods = filterToPublicMethodsOfGivenClass(methods, - headerFileBase, false); - } - - Document dom = createDOMofMethods(methods, source, serviceName, - referenceName, nameOfSorR, null, - componentTypeFileHeaderName, compositeXmlFileHeader, - compositeXmlFileHeaderNoExt, intfNamespace, - interfaceClassNameAttrFromComponentTypeFile, - implClassNameAttrFromCompositeFile, implClassNamespaceAttrFromCompositeFile); - -// // Print out the generated DOM -// StringWriter sw = new StringWriter(); -// OutputFormat outputFormat = new OutputFormat("xml", "UTF-8", true); -// XMLSerializer serializer = new XMLSerializer(sw, outputFormat); -// serializer.serialize(dom); -// System.out.println("DOM:\n"+sw.toString()); - - - createProxyCPPFromDom(outputDir, dom); - createProxyHeaderFromDom(outputDir, dom); - - if (!forReference) { - createWrapperCPPFromDom(outputDir, dom); - createWrapperHeaderFromDom(outputDir, dom); - } - - } catch (Exception exception) { - exception.printStackTrace(); - failed = true; - } - - if (failed) { - Utils.outputDebugString("Finished! (but encountered problems)"); - System.exit(-2); - } - } - - /** - * This methods takes a list of methods and filters them to only contain the - * public methods of the given class - * - * @param methods - * a list of methods - * @param className - * we will return a list of only this classes methods from the - * methods parameter - * @param attrSpecified - * if the user does not specify one we ignore namespaces - * @return - */ - private static List filterToPublicMethodsOfGivenClass(List methods, - String className, boolean useNamespace) { - if (methods != null && className != null && className.length() > 0) { - for (Iterator iter = methods.listIterator(); iter.hasNext();) { - Signature method = (Signature) iter.next(); - String scope = method.getScope(); - String sig = method.getOriginal(); - String namespace = method.getNamespace(); - - String qualifiedClassName; - if (useNamespace && null != namespace && 0 < namespace.length()) { - qualifiedClassName = namespace + "::" - + method.getTrimClassName(); - } else { - qualifiedClassName = method.getTrimClassName(); - } - - // If we are not public or the classname does not match - // remove... - if (!qualifiedClassName.equals(className) - || -1 == scope.indexOf("public")) { - iter.remove(); - } - } - } - return methods; - } - - /** - * Use an XSLT transformation to create a Proxy "view" of the DOM - * information - * - * @param outputDir - * where to put the C++ - * @param dom - * the DOM of semantic method information - * @throws TransformerException - */ - private static void createProxyCPPFromDom(File outputDir, Document dom) - throws TransformerException { - - //Create the Filename from the Service Name in the DOM - if (dom == null) { - return; - } - - String serviceOrReferenceName = "noSorRNameDefined"; - - String implClass = "nocompositeXmlFileHeaderDefined"; - - Element topNode = dom.getDocumentElement(); - if (null != topNode) { - Attr attr = topNode.getAttributeNode("nameOfSorR"); - if (attr != null) { - serviceOrReferenceName = attr.getNodeValue(); - } - - attr = topNode.getAttributeNode("implClass"); - if (attr != null) { - implClass = attr.getNodeValue(); - } - } - - File proxyCPP = new File(outputDir, implClass + "_" - + serviceOrReferenceName + "_Proxy.cpp"); - if (null != proxyCPP) { - - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, proxyCPP - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, - "Scagen creating SCA for C++ proxy implementation " - + proxyCPP.getAbsolutePath()); - } - - createOutputFromDom(dom, proxyCPP, - "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl"); - - } - - /** - * Use an XSLT transformation to create a Wrapper "view" of the DOM - * information - * - * @param outputDir - * where to put the C++ - * @param dom - * the DOM of semantic method information - * @throws TransformerException - */ - private static void createWrapperCPPFromDom(File outputDir, Document dom) - throws TransformerException { - - //Create the Filename from the Service Name in the DOM - if (dom == null) { - return; - } - - String serviceName = "noServiceDefined"; - - String implClass = "nocompositeXmlFileHeaderDefined"; - - Element topNode = dom.getDocumentElement(); - if (null != topNode) { - Attr attr = topNode.getAttributeNode("serviceName"); - if (attr != null) { - serviceName = attr.getNodeValue(); - } - - attr = topNode.getAttributeNode("implClass"); - if (attr != null) { - implClass = attr.getNodeValue(); - } - } - - File wrapperCPP = new File(outputDir, implClass + "_" + serviceName - + "_Wrapper.cpp"); - if (null != wrapperCPP) { - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, wrapperCPP - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, - "Scagen creating SCA for C++ wrapper implementation " - + wrapperCPP.getAbsolutePath()); - } - createOutputFromDom(dom, wrapperCPP, - "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl"); - - } - - /** - * Use an XSLT transformation to create a Proxy header "view" of the DOM - * information - * - * @param outputDir - * where to put the C++ - * @param dom - * the DOM of sematic method information - * @throws TransformerException - */ - private static void createProxyHeaderFromDom(File outputDir, Document dom) - throws TransformerException { - - //Create the Filename from the Service Name in the DOM - if (dom == null) { - return; - } - - String serviceOrReferenceName = "noServiceDefined"; - String intfClass = "noInterfaceClassNameOrDefaultDefined"; - String implClass = "noImplementationClassOrDefaultDefined"; - - Element topNode = dom.getDocumentElement(); - if (null != topNode) { - Attr attr = topNode.getAttributeNode("nameOfSorR"); - if (attr != null) { - serviceOrReferenceName = attr.getNodeValue(); - } - attr = topNode.getAttributeNode("intfClass"); - if (attr != null) { - intfClass = attr.getNodeValue(); - } - attr = topNode.getAttributeNode("implClass"); - if (attr != null) { - implClass = attr.getNodeValue(); - } - } - - File proxyHeader = new File(outputDir, implClass + "_" - + serviceOrReferenceName + "_Proxy.h"); - if (null != proxyHeader) { - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, proxyHeader - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, - "Scagen creating SCA for C++ proxy header " - + proxyHeader.getAbsolutePath()); - } - - createOutputFromDom(dom, proxyHeader, - "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl"); - - } - - /** - * Use an XSLT transformation to create a Wrapper header "view" of the DOM - * information - * - * @param outputDir - * where to put the C++ - * @param dom - * the DOM of sematic method information - * @throws TransformerException - */ - private static void createWrapperHeaderFromDom(File outputDir, Document dom) - throws TransformerException { - - //Create the Filename from the Service Name in the DOM - if (dom == null) { - return; - } - - String serviceName = "noServiceDefined"; - - String implClass = "nocompositeXmlFileHeaderDefined"; - - Element topNode = dom.getDocumentElement(); - if (null != topNode) { - Attr attr = topNode.getAttributeNode("serviceName"); - if (attr != null) { - serviceName = attr.getNodeValue(); - } - - attr = topNode.getAttributeNode("implClass"); - if (attr != null) { - implClass = attr.getNodeValue(); - } - } - - File wrapperHeader = new File(outputDir, implClass + "_" + serviceName - + "_Wrapper.h"); - - if (null != wrapperHeader) { - Utils.postEvent(Utils.DEPLOYMENT_ARTEFACT_GENERATED, wrapperHeader - .getAbsolutePath()); - Utils.postEvent(Utils.EVENT_TYPE_FILE_CREATE, - "Scagen creating SCA for C++ wrapper header " - + wrapperHeader.getAbsolutePath()); - } - createOutputFromDom(dom, wrapperHeader, - "org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl"); - - } - - /** - * This method will return a class loader that can see the resources that - * are parts of "this" package. - */ - private static ClassLoader getALoader() { - - LittleClass lc; - try { - lc = new LittleClass(); - return lc.getClass().getClassLoader(); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - /** - * This method will generically process the DOM using a stylesheet passed - * in. - * - * @param dom - * the source of data (the model) - * @param outputFile - * where to put the result - * @param xslTransformationFileName - * the xsl file containing the "view" - * @throws TransformerException - */ - private static void createOutputFromDom(Document dom, File outputFile, - String xslTransformationFileName) throws TransformerException { - - if(Options.noGenerate()){ - return; - } - - InputStream stream = getALoader().getResourceAsStream( - xslTransformationFileName); - StreamSource ss = new StreamSource(stream); - StreamResult out = new StreamResult(outputFile); - try { - Transformer xslt = txmf.newTransformer(ss); - - // Unless a width is set, there will be only line breaks but no - // indentation. - // The IBM JDK and the Sun JDK don't agree on the property name, - // so we set them both. - // - try { - xslt.setOutputProperty( - "{http://xml.apache.org/xalan}indent-amount", "2"); - } catch (Throwable t) { - //OK to ignore this, depends on XSLT engine and one will fail - } - try { - xslt.setOutputProperty( - "{http://xml.apache.org/xslt}indent-amount", "2"); - } catch (Throwable t) { - //OK to ignore this, depends on XSLT engine and one will fail - } - - DOMSource from = new DOMSource(dom); - - xslt.transform(from, out); - - } catch (TransformerConfigurationException e) { - e.printStackTrace(); - throw (e); - } catch (TransformerException e) { - e.printStackTrace(); - throw (e); - } finally { - try { - stream.close(); - } catch (IOException e1) { - // unlikely but if - // we can't close it, we can't close it - } - } - - } - - //TODO clear up the parameter list below to make it smaller if - // possible - /** - * This method will create A DOM containing all the semantic information - * that it can extract from a C++ header file. - * - * @param methods - * a list of methods that are going into the DOM - * @param source - * the header file the methods came from - * @param serviceName - * the name of the service - * @referenceName the name of the reference - * @nameOfSorR the non null one of the two parameters above - * @headerClassName the name of the header class - * @param compositeXmlFileImplHeaderNameWithPathAndExt - * the source filename - * @param compositeXmlFileHeaderNoExtorPath - * the shortname of the source file - * @param implClass - * the implementation class - * @param intfClass - * the interface we are turning into a service - * @return - */ - private static Document createDOMofMethods(List methods, File source, - String serviceName, String referenceName, String nameOfSorR, - String headerClassName, - String componentTypeXmlFileIntfHeaderNameWithPathAndExt, - String compositeXmlFileImplHeaderNameWithPathAndExt, - String compositeXmlFileHeaderNoExtorPath, String intfNamespace, - String intfClass, String implClass, String implNamespace) { - - if (methods == null) { - return null; - } - - // Create a DOM of the methods - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - Document document = null; - try { - DocumentBuilder builder = factory.newDocumentBuilder(); - document = builder.newDocument(); - - Element root = (Element) document.createElement(CPP_HEADER); - - root.setAttribute(HEADER_NAME_ATTR, source.getPath()); - - document.appendChild(root); - - Element intf = (Element) document.createElement(SCA_SERVICE); - root.appendChild(intf); - - // Go through all the signatures we have collected... - Signature s = null; - for (Iterator iter = methods.iterator(); iter.hasNext();) { - s = (Signature) iter.next(); - - // Each signature is an operation - Element op = document.createElement(SCA_OPERATION); - op.setAttribute(OPERATION_NAME_ATTR, s.getMethodName()); - intf.appendChild(op); - - Parameter[] parms = s.getParameters(); - if (parms != null) { - - for (int i = 0; i < parms.length; i++) { - Element parm = (Element) document - .createElement(SCA_OPERATION_PARAMETER); - String type_string = parms[i].getTypeWithoutConst() - .toString(); - - type_string = type_string.replaceAll(":: ", "::"); - - Text text = document.createTextNode(type_string); - parm.appendChild(text); - parm.setAttribute(SCA_OPERATION_PARAMETER_NAME_ATTR, - parms[i].getName()); - - if (parms[i].getTypeWithoutConst().intern() != parms[i] - .getType().intern()) { - parm.setAttribute( - SCA_OPERATION_PARAMETER_CONST_ATTR, "true"); - } - - op.appendChild(parm); - // TO DO only really stores the value - // unsafely/temporarily - // which is fine while we handle everything at the - // end of parsing the "leaf" that represents that actual - // interface/service but the below will cause the second - // service - // processed to overwite the first one in the DOM. I we - // wish - // to do some overall processing at the end we will have - // to - // use a better more XPath like key that varies by - // instance - // of the service. - intf.setAttribute(SCA_INTERFACE_NAME_ATTR, s - .getTrimClassName()); - } - } - - Element rc = document.createElement(SCA_OPERATION_RETURN_TYPE); - rc.appendChild(document.createTextNode(s.getReturnType() - .toString().replaceAll(":: ", "::"))); - op.appendChild(rc); - - root.appendChild(intf); - } - - // Set the name of the Service - // here, if we are not passed one we use - // the classname from the last header function signature... - if (serviceName == null && s != null) { - serviceName = s.getTrimClassName(); - } - - // this is used for the proxy file name but we need to - // use the reference name if this is pulled in due to it - // being a reference!!! - if (serviceName != null) - root.setAttribute("serviceName", serviceName); - if (referenceName != null) - root.setAttribute("referenceName", referenceName); - if (nameOfSorR != null) - root.setAttribute("nameOfSorR", nameOfSorR); - - if (implClass != null) { - root.setAttribute("implClass", implClass); - } else { - root.setAttribute("implClass", compositeXmlFileHeaderNoExtorPath); - } - - if (implClass != null) { - root.setAttribute("implNamespace", implNamespace); - } - - // default class name to the name of the header... - if (headerClassName == null && source != null) { - headerClassName = source.getName().replaceAll( - "\\.h|\\.hpp|\\.h++", ""); - } - root.setAttribute("headerClassName", headerClassName); - - if (null == intfClass) { - intfClass = headerClassName; - } - - if (null != intfNamespace) { - root.setAttribute("namespace", intfNamespace); - if (null != intfClass && !intfClass.startsWith(intfNamespace)) { - intfClass = intfNamespace + "::" + intfClass; - } - } - - root.setAttribute("intfClass", intfClass); - - if (componentTypeXmlFileIntfHeaderNameWithPathAndExt == null) { - componentTypeXmlFileIntfHeaderNameWithPathAndExt = "componentTypeHeader"; - } - root.setAttribute("componentTypeHeader", - componentTypeXmlFileIntfHeaderNameWithPathAndExt); - - if (compositeXmlFileImplHeaderNameWithPathAndExt == null) { - compositeXmlFileImplHeaderNameWithPathAndExt = "compositeXmlFileImplHeader"; - } - root.setAttribute("compositeXmlFileHeader", - compositeXmlFileImplHeaderNameWithPathAndExt); - - if (compositeXmlFileHeaderNoExtorPath == null) { - compositeXmlFileHeaderNoExtorPath = "compositeXmlFileHeaderNoExt"; - } - root.setAttribute("compositeXmlFileHeaderNoExt", - compositeXmlFileHeaderNoExtorPath); - - } catch (ParserConfigurationException pce) { - // Parser with specified options can't be built - pce.printStackTrace(); - } - - return document; - - } - -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java deleted file mode 100644 index dd260c9787..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/XMLFileActor.java +++ /dev/null @@ -1,208 +0,0 @@ -/** - * - * 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. - */ - -/* @version $Rev$ $Date$ */ - -package org.apache.tuscany.sca.cpp.tools.services; - -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMResult; -import javax.xml.transform.dom.DOMSource; - -import org.apache.tuscany.sca.cpp.tools.common.FileActor; -import org.apache.tuscany.sca.cpp.tools.common.Utils; -import org.w3c.dom.Document; -import org.xml.sax.SAXException; - -/** - * The purpose of this abstract class is to provide a home for the standard - * processing that is involved in turning a XML file into an internal DOM. - */ -public abstract class XMLFileActor implements FileActor { - - protected static Map handlers = new HashMap(); - - protected static Map parameters = new HashMap(); - - public boolean failed; - - private int filesActedOn=0; - - protected static TransformerFactory transformerFactory = TransformerFactory - .newInstance(); - - /** - * This method is the main FileActor method - * - * @see FileActor#actOnFile(File, File, int) Here we create an initial DOM - * and kick off the processing (using the handler map that has been set - * up by the concrete subclass). - * - * @param compositeXML - * the composite or fragment file - * @param target - * the target directory - * @param depth - * not uesed here but in the - * @see FileActor#actOnFile(File, File, int) interface to allow for - * recursive diving into a directory structure. - */ - public void actOnFile(File compositeXML, File target, int depth) - throws Exception { - - if (null == compositeXML || null == target) { - return; - } - - filesActedOn++; - - parameters.put("sourceFile", compositeXML); - parameters.put("targetFile", target); - - if (transformerFactory.getFeature(DOMSource.FEATURE) - && transformerFactory.getFeature(DOMResult.FEATURE)) { - Document dom = createDomFromXMLFile(compositeXML); - if (dom != null) { - parameters.put("targetDirectoryFile", target); - DomHandler.handleDom(dom, handlers, parameters); - } - } - } - - /** - * This method builds an in memory DOM from an XML file - * - * @param xmlSourceFile - * the XML file we are handling - * @return the resulting document - */ - protected Document createDomFromXMLFile(File xmlSourceFile) { - Document dom = null; - DocumentBuilderFactory f = DocumentBuilderFactory.newInstance(); - //We do not validate via f.setValidating(true); - f.setNamespaceAware(true); - - try { - DocumentBuilder parser = f.newDocumentBuilder(); - dom = parser.parse(xmlSourceFile); - } catch (SAXException sxe) { - String path; - try { - path = xmlSourceFile.getCanonicalPath(); - } catch (IOException e) { - path = xmlSourceFile.getPath(); - } - Utils.screenMessage("There has been a SAXException of type " - + sxe.getLocalizedMessage()); - if (null != xmlSourceFile) { - Utils.screenMessage(" when processing file " + path); - } else { - Utils.screenMessage(" as the input file is null."); - } - -// Leave for possible future debug option -// Utils.screenMessage(" The returned Java exception is below."); -// if (sxe.getException() != null) -// sxe.getException().printStackTrace(); -// else -// sxe.printStackTrace(); - } catch (ParserConfigurationException pce) { - String path; - try { - path = xmlSourceFile.getCanonicalPath(); - } catch (IOException e) { - path = xmlSourceFile.getPath(); - } - Utils - .screenMessage("There has been a ParserConfigurationException of type " - + pce.getLocalizedMessage()); - if (null != xmlSourceFile) { - Utils.screenMessage(" when processing file " + path); - } else { - Utils.screenMessage(" as the input file is null."); - } - -// Leave for possible future debug option -// Utils.screenMessage(" The returned Java exception is below."); -// pce.printStackTrace(); - - } catch (IOException ioe) { - String path; - try { - path = xmlSourceFile.getCanonicalPath(); - } catch (IOException e) { - path = xmlSourceFile.getPath(); - } - - Utils.screenMessage("Unable to open file " + path); - Utils.screenMessage(this.getContextMessage()); - - - - } - - return dom; - } - - /** - * @return an error message - usually over-ridden. - */ - private String getContextMessage() { - return "Check the file exists and can be read."; - } - - /** - * Set a parameter - * - * @param name - * @param value - */ - public void setParameter(String name, Object value) { - parameters.put(name, value); - } - - /** - * Get a parameter - * - * @param name - * @param value - * @return the value of the parameter - */ - public Object getParameter(String name, Object value) { - return parameters.get(name); - } - - - - /** - * @return Returns the filesActedOn. - */ - public int getFilesActedOn() { - return filesActedOn; - } -}
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html deleted file mode 100644 index ea15ca587b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/package.html +++ /dev/null @@ -1,159 +0,0 @@ -<!-- - 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> -<title>Design documentation for org\apache\tuscany\sca\cpp\tools\services</title> -</head> - -<body lang=EN-GB> - -<div class=Section1> - -<h1>Overview</h1> - - - -<p>This package contains classes that generate C++ wrappers and -proxies for C++ implementations of SCA services. </p> - -<h2>What the package does</h2> - -<p>The Scagen class main method will take in an input and -output directory name. The input directory is taken to be the SCA composite root -directory. The tool will generate the wrapper and proxy headers and methods -bodies in the output directory. </p> - -<p>These proxies and wrappers enable the SCA for C++ runtime to -act as a conduit for SCA C++ calls in a type free manner. Client code can call -the type specific functions that are in the generated proxy classes. The call -is marshalled into a generic format and a SCA for C++ runtime function with a -standard signature is invoked. The details of the call are passed as data. </p> - -<p>On the other end of the runtime, a generated function with a -standard signature is called, this function will inspect the data that -represents the call’s method name and call the appropriate type specific -function in the C++ implementation. </p> - -<h2>The Input Data Used</h2> - -<p>The input directory passed to the Scagen method is taken to -be the SCA composite root directory. All the sca.composite and .fragment files in -that directory are inspected to resolve all the <component/> elements -within them. </p> - -<p>Each <component/> element found is inspected to see if -it has a <implementation.cpp/> element within it. </p> - -<p>Each <implementation.cpp/> element should have a -header attribute that represents a C++ header file that contains function -prototypes for the C++ implementation of the service. An optional class -attribute can be used to select one class if more than one that is present in -the header file. The default class is the one with the same name as the header -file. The tool will verify that the implementation header contains an -appropriate class prototype. </p> - - - -<p>The directory that contains the implementation header should -also contain a matching .componentType file for the equivalent SCA component. So -for example, a MyServiceImpl.h file would have a corresponding MyServiceImpl.componentType -file in the same directory. </p> - - - -<p>Each componentType file is inspected for <service/> -and <reference/> elements. For each <service/> element that is -found that contains a <interface.cpp/> element within it,</p> - -<p>the header attribute of the <interface.cpp/> is taken -as the filename of the C++ interface header for the SCA service. This C++ -header file is opened and used as a means for specifying the SCA service -resulting in an appropriate wrapper and proxy being generated for this service -interface. Both method bodies and headers are generated in the given output -directory. The processing of a <reference/> element is the same except -that only a proxy header and implementation are generated. </p> - - - - - -<h2>Outline Design: How it Works</h2> - - - -<p>The basic approach is to scan in the XML files by first -creating a DOM document tree of them and then recursively rifling through the DOM -with some generic code in the XMLFileActorClass by default this processing will -build up a map which maps the XPath location of attributes to their values. -Additionally subclasses can add to a “handlers map” which maps from the name of -a particular element to an object that implements the DomNodeHandler interface. -If the XMLFileActor code comes across any element that has an equivalent handler -in the handler map the objects handleNode method will be called. </p> - -<p>Typically the DomNodeHandler’s handle node interface will -use XPath to pull out the parameters that it is interested in from the -parameters map that is being built up by the generic code. </p> - -<p>This design was chosen as the Java level specified for the -original implementation did not have direct XPath query of XML data but it was -known that this would be available in Java 1.5 onwards. The design allows the -DOM and parameters map handling to be replaced in the future with JRE 1.5 code -with less impact on the rest of the code.</p> - - - -<p>The processing leads to the parsing of the C++ interface -files using the org\apache\tuscany\sca\cpp\tools\common package. This results -in a Headers object</p> - -<p>that contains a List of Signature objects, each one -representing a function prototype found in the header. </p> - - - -<p>We are aiming to get all the semantic data we want to use -into a DOM document (this represents the model of our input data) and then use -XSLT to create the 4 different views of this data:</p> - -<p>Proxy C++ header</p> - -<p>Proxy C++ body</p> - -<p>Wrapper C++ header</p> - -<p>Wrapper C++ body</p> - - - -<p>So we prepopulate the DOM with parameter data that comes -from the XML files and then iterate through the Signatures that are returned -from the C++ header parser transferring the useful data into the DOM. </p> - - - -<p>We than use 4 XSLT stylesheets to generate the C++ output -files as required. </p> - -</div> - -</body> - -</html> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl deleted file mode 100644 index 3d9dafa103..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyCPP.xsl +++ /dev/null @@ -1,278 +0,0 @@ -<!-- - 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. ---> -<!-- - - TODO There is duplication in the "..no_parms" templates with - the equivalent templates they are based on - that it would be - fairly easy to factor out. ---> -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> -<!-- Part of the org.apache.tuscany.sca.cpp.tools.services packages - - This stylesheet creates the CPP implementation of the - proxy body for a given SCA service - --> -<xsl:output method="text"/> - -<!-- We do not generate output sourced from cppScopes --> -<xsl:template match="cppScope"></xsl:template> - -<!-- We do not generate output sourced from private scaOperations --> -<xsl:template match="scaOperation[@cppScope='private']"> -</xsl:template> - -<!-- We do not generate output sourced from the operation return types --> -<xsl:template match="scaOperationReturnType"> -</xsl:template> - - -<!-- - CPP Header/Root ---> -<xsl:template match="cppHeader">/* - * 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. - */ - -<xsl:apply-templates select="scaService" mode="include_header"/> - -#include "osoa/sca/sca.h" -<xsl:apply-templates/> <!-- should go on to generic scaService below --> -</xsl:template> - -<!-- --> -<!-- Service --> -<!-- --> -<xsl:template match="scaService"> -<xsl:variable name="clazz"> - <xsl:value-of select="../@implClass"/> - <xsl:text>_</xsl:text> - <xsl:value-of select="../@nameOfSorR"/> - <xsl:text>_Proxy</xsl:text> -</xsl:variable> -<xsl:text> -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - </xsl:text><xsl:value-of select="$clazz"/> -<xsl:text>* </xsl:text> -<xsl:value-of select="$clazz"/> -<xsl:text>_Factory(tuscany::sca::ServiceWrapper* target) - { - return new </xsl:text><xsl:value-of select="$clazz"/><xsl:text>(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void </xsl:text> -<xsl:value-of select="$clazz"/> -<xsl:text>_Destructor(void* proxy) - { - delete (</xsl:text><xsl:value-of select="$clazz"/><xsl:text>*)proxy; - } -} - -</xsl:text> -<xsl:value-of select="$clazz"/><xsl:text>::</xsl:text><xsl:value-of select="$clazz"/>(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -<xsl:value-of select="$clazz"/><xsl:text>::~</xsl:text><xsl:value-of select="$clazz"/>() -{ - if (target) - delete target; -}<!-- -OK we have done the stuff that is not specific to any function in the service -now we can do another apply-templates to pick up on the 0, 1 or more scaOperation -DOM nodes that each relate to a function in the service - --> -<xsl:apply-templates/> -<!-- Always make sure we have a (visible) final newline --> -<xsl:text> - -</xsl:text> -</xsl:template> - -<!-- This template is just a small function that will generate the - #include that pulls in the correct C++ header - --> -<xsl:template match="scaService" mode="include_header"> -<xsl:variable name="clazz"> - <xsl:value-of select="../@implClass"/> - <xsl:text>_</xsl:text> - <xsl:value-of select="../@nameOfSorR"/> - <xsl:text>_Proxy</xsl:text> -</xsl:variable> -<xsl:text>#include "</xsl:text> -<xsl:value-of select="$clazz"/> -<xsl:text>.h"</xsl:text> -</xsl:template> - - - -<!-- --> -<!-- Operation --> -<!-- --> -<xsl:template match="scaOperation"> -<xsl:variable name="clazz"> - <xsl:value-of select="../../@implClass"/> - <xsl:text>_</xsl:text> - <xsl:value-of select="../../@nameOfSorR"/> - <xsl:text>_Proxy</xsl:text> -</xsl:variable> - -<!-- ignore the constructor and destructor --> -<xsl:if test="@operationNameAttr != $clazz - and @operationNameAttr != concat('~', $clazz)" > -<xsl:text> -</xsl:text> -<xsl:value-of select="scaOperationReturnType"/> -<xsl:text> </xsl:text> -<xsl:value-of select="$clazz"/><xsl:text>::</xsl:text> -<xsl:value-of select="@operationNameAttr"/><xsl:text>(</xsl:text> -<xsl:for-each select="scaOperationParameter"> -<xsl:if test=".!='void'"> - <xsl:variable name="scaOperationParameterNameAttr"> - <xsl:value-of select="concat('arg', position()-1 )"/> - </xsl:variable> - <xsl:variable name="isConst"> - <xsl:value-of select="@scaOperationParameterConstAttr"/> - </xsl:variable> - <xsl:if test="contains($isConst,'true')">const</xsl:if><xsl:text> </xsl:text> - <xsl:value-of select="."/> <!-- get the actual type --> - <xsl:text> </xsl:text> - <xsl:value-of select="$scaOperationParameterNameAttr"/> - <xsl:choose> - <xsl:when test="position()=last()"> - </xsl:when> - <xsl:otherwise> - <xsl:text>, </xsl:text> - </xsl:otherwise> - </xsl:choose> -</xsl:if> <!-- test=".!='void'" --> - -</xsl:for-each> -<xsl:text>) -{</xsl:text> -<xsl:call-template name="proxy_method_body"/> -<xsl:text> -} -</xsl:text> -</xsl:if> -</xsl:template> - - -<xsl:template name="proxy_method_body"> - <xsl:variable name="noOfParms"> - <xsl:choose> - <xsl:when test=".='void'"> -<xsl:text>0</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="last()"/> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> -<xsl:text> - tuscany::sca::Operation operation("</xsl:text> - <xsl:value-of select="@operationNameAttr"/> - <xsl:text>");</xsl:text> - <xsl:if test="$noOfParms!=0"> - <xsl:for-each select="scaOperationParameter"> - <xsl:call-template name="proxy_method_body_set_parameter"/> - </xsl:for-each> - </xsl:if> - <xsl:call-template name="proxy_method_body_prepare_return_var"/> - <xsl:text> - target->invoke(operation);</xsl:text> - <xsl:call-template name="proxy_method_body_return"/> -</xsl:template> - - -<xsl:template name="proxy_method_body_return"> - <xsl:variable name="type"> - <xsl:value-of select="scaOperationReturnType/text()"/> - </xsl:variable> - <xsl:choose> - <xsl:when test="$type='void'"><!-- nothing --> - <xsl:text> - return;</xsl:text> - </xsl:when> - <xsl:when test="contains($type, '&')"><!-- reference --> - <xsl:variable name="type_no_amp"> - <xsl:value-of select="substring-before($type, '&')"/> - </xsl:variable> - <xsl:text> - return *(</xsl:text><xsl:value-of select="$type_no_amp"/><xsl:text>*)operation.getReturnValue();</xsl:text> - </xsl:when> - <xsl:otherwise><!-- simple type --> - <xsl:text> - return *(</xsl:text><xsl:value-of select="$type"/><xsl:text>*)operation.getReturnValue();</xsl:text> - </xsl:otherwise> - </xsl:choose> -</xsl:template> - -<xsl:template name="proxy_method_body_prepare_return_var"> - <xsl:variable name="type"> - <xsl:value-of select="scaOperationReturnType/text()"/> - </xsl:variable> - <xsl:choose> - <xsl:when test="$type='void'"><!-- nothing --> - <!-- nothing --> - </xsl:when> - <xsl:when test="contains($type, '&')"><!-- reference --> - </xsl:when> - <xsl:otherwise> -<xsl:text> - </xsl:text> <xsl:value-of select="$type"/><xsl:text> ret; - operation.setReturnValue(&ret);</xsl:text> - </xsl:otherwise> - </xsl:choose> - -</xsl:template> - - -<xsl:template name="proxy_method_body_set_parameter"> - <xsl:variable name="scaOperationParameterNameAttrInner"> - <xsl:value-of select="concat('arg', position()-1 )"/> - </xsl:variable> - <xsl:variable name="type"> - <xsl:value-of select="."/> - </xsl:variable> - operation.addParameter("<xsl:value-of select="@scaOperationParameterNameAttr"/>", &<xsl:value-of select="$scaOperationParameterNameAttrInner"/><xsl:text>);</xsl:text> -</xsl:template> -</xsl:stylesheet> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl deleted file mode 100644 index 2f5edb3a93..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfProxyHeader.xsl +++ /dev/null @@ -1,228 +0,0 @@ -<!-- - 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. ---> - -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> -<!-- Part of the org.apache.tuscany.sca.cpp.tools.services packages - - - - This stylesheet creates the CPP implementation of the - - proxy header for a given SCA service - --> - - <xsl:output method="text" /> - - <!-- Delete cppScopes --> - <xsl:template match="cppScope"></xsl:template> - - <!-- Delete private methods cppScopes --> - <xsl:template match="scaOperation[@cppScope='private']"> - </xsl:template> - - <!-- Delete private methods cppScopes --> - <xsl:template match="scaOperationReturnType"></xsl:template> - - - <!-- --> - <!-- CPP Header/Root --> - <!-- --> - <xsl:template match="cppHeader"> - <xsl:variable name="class"> - <xsl:value-of select="concat(@implClass, '_', @nameOfSorR, '_Proxy')"/> - </xsl:variable> -<xsl:text>/* - * 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. - */ - -</xsl:text> - <xsl:call-template name="ifndef_start"> - <xsl:with-param name="class" - select="$class"/> - </xsl:call-template> - - - <xsl:call-template name="include_headers"> - <xsl:with-param name="componentTypeHeader" - select="@componentTypeHeader"/> - </xsl:call-template> - - <xsl:apply-templates select="scaService" mode="class_body"/> - - <xsl:call-template name="ifndef_end"> - <xsl:with-param name="class" - select="$class"/> - </xsl:call-template> -<!-- Always make sure we have a (visible) final newline --> -<xsl:text> - -</xsl:text> -</xsl:template> - - -<!-- Here are the subroutine templates in order --> - - <xsl:template name="ifndef_start"> - <!--For example, - #ifndef CustomerInfoImpl_CustomerInfoService_Proxy_h - #define CustomerInfoImpl_CustomerInfoService_Proxy_h - --> - <xsl:param name="class"/> - <xsl:text>#ifndef </xsl:text><xsl:value-of select="$class"/><xsl:text>_h</xsl:text> -<!-- newline --> -<xsl:text> -</xsl:text> - <xsl:text>#define </xsl:text><xsl:value-of select="$class"/><xsl:text>_h</xsl:text> -<!-- newline --> -<xsl:text> - -</xsl:text> - <xsl:text>#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif </xsl:text> -<!-- newline --> -<xsl:text> - -</xsl:text> - </xsl:template> - - <xsl:template name="include_headers"> - <!--For example, - #include "CustomerInfo.h" - #include "tuscany/sca/core/ServiceWrapper.h" - --> - <xsl:param name="componentTypeHeader"/> - <xsl:text>#include "</xsl:text><xsl:value-of select="translate($componentTypeHeader,'\','/')"/><xsl:text>"</xsl:text> -<!-- newline --> -<xsl:text> -</xsl:text> - <xsl:text>#include "tuscany/sca/core/ServiceWrapper.h"</xsl:text> - </xsl:template> - - <xsl:template match="scaService" mode="class_body"> - <!--For example - class proxyclassname : public interface_class - { - constructor - destructor - then apply operation templates for operations - }; - - E.g. Specifically - - class CustomerInfoImpl_CustomerInfoService_Proxy : public CustomerInfo - { - public: - CustomerInfoImpl_CustomerInfoService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CustomerInfoImpl_CustomerInfoService_Proxy(); - virtual const char* getCustomerInformation(const char* customerID); - private: - tuscany::sca::ServiceWrapper* target; - }; - --> - <!-- TODO second definition, remove? --> - <xsl:variable name="class"> - <xsl:value-of select="concat(../@implClass, '_', ../@nameOfSorR, '_Proxy')"/> - </xsl:variable> -<xsl:text> - -class </xsl:text> -<xsl:value-of select="$class"/> -<xsl:text> : public </xsl:text><xsl:value-of select="../@intfClass"/> -<xsl:text> -{ -public: - </xsl:text><xsl:value-of select="$class"/><xsl:text>(tuscany::sca::ServiceWrapper*);</xsl:text> - <xsl:text> - virtual ~</xsl:text><xsl:value-of select="$class"/><xsl:text>(); -</xsl:text> - <!-- operations --> - <xsl:apply-templates/> -<xsl:text>private: - tuscany::sca::ServiceWrapper* target; -}; -</xsl:text> - </xsl:template> - - <xsl:template name="ifndef_end"> - <!--For example, - #endif // CustomerInfoImpl_CustomerInfoService_Proxy_h - --> - <xsl:param name="class"/> - <xsl:text> -#endif // </xsl:text><xsl:value-of select="$class"/><xsl:text>_h</xsl:text> - </xsl:template> - - - - - - -<!-- Operation --> -<!--For example - virtual const char* getCustomerInformation(const char* customerID); ---> -<xsl:template match="scaOperation"> -<xsl:variable name="class"> - <xsl:value-of select="concat(../../@implClass, '_', ../../@nameOfSorR, '_Proxy')"/> -</xsl:variable> -<xsl:if test="@operationNameAttr != $class - and @operationNameAttr != concat('~', $class)" > -<xsl:text> virtual </xsl:text> -<xsl:value-of select="scaOperationReturnType"/> -<xsl:text> </xsl:text> -<xsl:value-of select="@operationNameAttr"/><xsl:text>(</xsl:text> -<xsl:for-each select="scaOperationParameter"> - <xsl:variable name="isConst"> - <xsl:value-of select="@scaOperationParameterConstAttr"/> - </xsl:variable> - <xsl:variable name="noOfParms"> - <xsl:value-of select="last()"/> - </xsl:variable> - <xsl:if test="contains($isConst,'true')">const</xsl:if><xsl:text> </xsl:text> - <xsl:value-of select="."/> <!-- get the actual type --> - <xsl:text> </xsl:text> - <xsl:value-of select="@scaOperationParameterNameAttr"/> - <xsl:choose> - <xsl:when test="position()=last()"></xsl:when> - <xsl:otherwise> - <xsl:text>, </xsl:text> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> -<xsl:text>); -</xsl:text> -</xsl:if> -</xsl:template> -</xsl:stylesheet> - - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl deleted file mode 100644 index f983917e36..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperCPP.xsl +++ /dev/null @@ -1,290 +0,0 @@ -<!-- - 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. ---> - -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> -<!-- Part of the org.apache.tuscany.sca.cpp.tools.services packages - - - - This stylesheet creates the CPP implementation of the - - wrapper body for a given SCA service - --> -<xsl:output method="text"/> - -<!-- Delete cppScopes --> -<xsl:template match="cppScope"></xsl:template> - -<!-- Delete private methods cppScopes --> -<xsl:template match="scaOperation[@cppScope='private']"> -</xsl:template> - -<!-- Don't act on return types --> -<xsl:template match="scaOperationReturnType"> -</xsl:template> - - -<!-- --> -<!-- CPP Header/Root --> -<!-- --> -<xsl:template match="cppHeader">/* - * 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. - */ - -<xsl:apply-templates select="scaService" mode="include_header"/> - -#include "osoa/sca/sca.h" - -<xsl:if test="not(@implNamespace = '')">using <xsl:value-of select="@implNamespace"/><xsl:value-of select="@implClass"/>;</xsl:if> -<xsl:text><!-- newline --> - -</xsl:text> -<!-- thats the prologue over and done with - now continue with the scaServiceElement --> -<xsl:apply-templates/> <!-- will be applied to scaService --> -<!-- Always make sure we have a final newline --> -<xsl:text> - -</xsl:text> -</xsl:template> - -<!-- --> -<!-- Service --> -<!-- --> -<xsl:template match="scaService"> -<xsl:variable name="class"> - <xsl:value-of select="../@implClass"/> - <xsl:text>_</xsl:text> - <xsl:value-of select="../@serviceName"/> - <xsl:text>_Wrapper</xsl:text> -</xsl:variable> -<xsl:text>extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - </xsl:text><xsl:value-of select="$class"/> -<xsl:text>* </xsl:text> -<xsl:value-of select="$class"/> -<xsl:text>_Factory(tuscany::sca::model::Service* target) - { - return new </xsl:text><xsl:value-of select="$class"/><xsl:text>(target); - } -} - -</xsl:text> -<xsl:value-of select="$class"/><xsl:text>::</xsl:text><xsl:value-of select="$class"/><xsl:text>(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (</xsl:text><xsl:value-of select="../@implClass"/><xsl:text>*)getImplementation(); -} - -</xsl:text> -<xsl:value-of select="$class"/><xsl:text>::~</xsl:text><xsl:value-of select="$class"/><xsl:text>() -{ - releaseImplementation(); -} - -void* </xsl:text> -<xsl:value-of select="$class"/><xsl:text>::newImplementation() -{ - return new </xsl:text><xsl:value-of select="../@implClass"/><xsl:text>; -} - -void </xsl:text> -<xsl:value-of select="$class"/><xsl:text>::deleteImplementation() -{ - delete impl; -} - -void </xsl:text><xsl:value-of select="$class"/><xsl:text>::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - -</xsl:text> -<xsl:apply-templates/><!-- an if statment for each operation --> -<xsl:text> - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -}</xsl:text> -</xsl:template> - -<xsl:template match="scaService" mode="include_header"> -<xsl:variable name="class"> - <xsl:value-of select="../@implClass"/> - <xsl:text>_</xsl:text> - <xsl:value-of select="../@serviceName"/> - <xsl:text>_Wrapper</xsl:text> -</xsl:variable> -<xsl:text>#include "</xsl:text> -<xsl:value-of select="$class"/> -<xsl:text>.h"</xsl:text> -</xsl:template> - -<!-- --> -<!-- Operation --> -<!-- --> -<xsl:template match="scaOperation"> -<!--For example - if (operationName == "getCustomerInformation") - { - operation.setReturnValue(impl->getCustomerInformation((const char*)parms[0])); - return; - } ---> -<xsl:if test="@operationNameAttr != ../../@intfClass - and @operationNameAttr != concat('~', ../../@intfClass)" > -<xsl:text> if (operationName == "</xsl:text> -<xsl:value-of select="@operationNameAttr"/> -<xsl:text>") - { -</xsl:text> - <xsl:call-template name="this_operation_body"/> -<xsl:text> - } -</xsl:text> - -</xsl:if> -</xsl:template> - -<xsl:template name="this_operation_body"> -<xsl:if test="./scaOperationParameter/text() != 'void' "> - <xsl:if test="normalize-space(./scaOperationParameter/text()) != ' ' "> - <xsl:if test="./scaOperationParameter/text() != '' "> - <xsl:for-each select="scaOperationParameter"> - <xsl:call-template name="prepare_parameter_n"/> - </xsl:for-each> - </xsl:if> - </xsl:if> -</xsl:if> -<xsl:call-template name="invoke_for_return_type"/> -<xsl:text> - return;</xsl:text> -</xsl:template> - -<xsl:template name="prepare_parameter_n"> - <xsl:variable name="isConst"> - <xsl:value-of select="@scaOperationParameterConstAttr"/> - </xsl:variable> - <xsl:variable name="type"> - <xsl:value-of select="."/> - </xsl:variable> -<xsl:text> </xsl:text> - <xsl:choose> - <xsl:when test="contains($type, '&')"><!-- reference --> - <xsl:variable name="type_no_amp"> - <xsl:value-of select="substring-before($type, '&')"/> - </xsl:variable> - <xsl:value-of select="$type"/><xsl:text> p</xsl:text><xsl:value-of select="position()-1"/><xsl:text> = *(</xsl:text><xsl:value-of select="$type_no_amp"/> - <xsl:text>*)operation.getParameterValue(</xsl:text><xsl:value-of select="position()-1"/><xsl:text>); -</xsl:text> - </xsl:when> - <xsl:when test="contains($type, '*')"><!-- pointer --> - <xsl:if test="contains($isConst,'true')">const </xsl:if> - <xsl:value-of select="."/><xsl:text> p</xsl:text><xsl:value-of select="position()-1"/><xsl:text> = *(</xsl:text> - <xsl:if test="contains($isConst,'true')">const</xsl:if><xsl:text> </xsl:text> - <xsl:value-of select="$type"/> - <xsl:text>*)operation.getParameterValue(</xsl:text><xsl:value-of select="position()-1"/><xsl:text>); -</xsl:text> - </xsl:when> - <xsl:when test="contains($type, 'DataObjectPtr')"><!-- DataObjectPtr --> - <xsl:text>commonj::sdo::DataObjectPtr& p</xsl:text><xsl:value-of select="position()-1"/><xsl:text> = *(commonj::sdo::DataObjectPtr*)operation.getParameterValue(</xsl:text><xsl:value-of select="position()-1"/><xsl:text>);</xsl:text> - </xsl:when> - <xsl:otherwise><!-- simple type --> - <xsl:if test="contains($isConst,'true')">const </xsl:if><xsl:value-of select="$type"/><xsl:text>& p</xsl:text><xsl:value-of select="position()-1"/><xsl:text> = *(</xsl:text> - <xsl:if test="contains($isConst,'true')">const</xsl:if><xsl:text> </xsl:text> - <xsl:value-of select="$type"/> - <xsl:text>*)operation.getParameterValue(</xsl:text><xsl:value-of select="position()-1"/><xsl:text>); -</xsl:text> - - </xsl:otherwise> - </xsl:choose> -</xsl:template> - -<xsl:template name="invoke_for_return_type"> - <xsl:variable name="type"> - <xsl:value-of select="./scaOperationReturnType/text()"/> - </xsl:variable> - <xsl:choose> - <!-- VOID --> - <xsl:when test="$type='void'"> -<xsl:text> </xsl:text> - <xsl:call-template name="impl_arrow_op_brackets_and_parms"/><xsl:text>;</xsl:text> - </xsl:when> - <xsl:when test="contains($type, '&')"><!-- reference --> - <xsl:text> </xsl:text><xsl:value-of select="$type"/><xsl:text> ret = </xsl:text><xsl:call-template name="impl_arrow_op_brackets_and_parms"/><xsl:text>;</xsl:text> - <xsl:text> - operation.setReturnValue(&ret);</xsl:text> - </xsl:when> - <xsl:otherwise><!-- simple type --> - <xsl:text> - if(operation.getReturnValue() != NULL) - { - *(</xsl:text><xsl:value-of select="$type"/><xsl:text>*)operation.getReturnValue() = </xsl:text><xsl:call-template name="impl_arrow_op_brackets_and_parms"/><xsl:text>; - } - else - { - </xsl:text><xsl:value-of select="$type"/><xsl:text>* ret = new </xsl:text><xsl:value-of select="$type"/><xsl:text>; - *ret = </xsl:text><xsl:call-template name="impl_arrow_op_brackets_and_parms"/><xsl:text>; - operation.setReturnValue((const </xsl:text><xsl:value-of select="$type"/><xsl:text>*)ret); - }</xsl:text> - </xsl:otherwise> - </xsl:choose> -</xsl:template> - -<xsl:template name="impl_arrow_op_brackets_and_parms"><!-- context is "scaOperation" --> - <xsl:text>impl-></xsl:text><xsl:value-of select="./@operationNameAttr"/><xsl:text>(</xsl:text> -<xsl:if test="./scaOperationParameter/text() != 'void' "> - <xsl:if test="./scaOperationParameter/text() != '' "> - <xsl:if test="normalize-space(./scaOperationParameter/text()) != ' ' "> - <xsl:for-each select="scaOperationParameter"> - <xsl:call-template name="parameter_for_parameter_list"/> - </xsl:for-each> -</xsl:if> -</xsl:if> -</xsl:if> -<xsl:text>)</xsl:text> -</xsl:template> - -<xsl:template name="parameter_for_parameter_list"> -<xsl:text>p</xsl:text><xsl:value-of select="position()-1"/> - <xsl:choose> - <xsl:when test="position()=last()"></xsl:when> - <xsl:otherwise> - <xsl:text>, </xsl:text> - </xsl:otherwise> - </xsl:choose> -</xsl:template> - - - -</xsl:stylesheet> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl b/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl deleted file mode 100644 index c8157fe2f6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/tools/scagen/src/org/apache/tuscany/sca/cpp/tools/services/xsl/SCA4CPPIntfWrapperHeader.xsl +++ /dev/null @@ -1,191 +0,0 @@ -<!-- - 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. ---> - -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> -<!-- Part of the org.apache.tuscany.sca.cpp.tools.services packages - - - - This stylesheet creates the CPP implementation of the - - wrapper header for a given SCA service - --> - <xsl:output method="text" /> - - <!-- Delete cppScopes --> - <xsl:template match="cppScope"></xsl:template> - - <!-- Delete private methods cppScopes --> - <xsl:template match="scaOperation[@cppScope='private']"> - </xsl:template> - - <!-- Delete private methods cppScopes --> - <xsl:template match="scaOperationReturnType"></xsl:template> - - - <!-- --> - <!-- CPP Header/Root --> - <!-- --> - <xsl:template match="cppHeader"> - <xsl:variable name="class"> - <xsl:value-of select="concat(@implClass, '_', @serviceName, '_Wrapper')"/> - </xsl:variable> -<xsl:text>/* - * 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. - */ - -</xsl:text> - <xsl:call-template name="ifndef_start"> - <xsl:with-param name="class" - select="$class"/> - </xsl:call-template> - - - <xsl:call-template name="include_headers"> - <xsl:with-param name="header" - select="@compositeXmlFileHeader"/> - </xsl:call-template> - - <xsl:apply-templates select="scaService" mode="class_body"/> - - <xsl:call-template name="ifndef_end"> - <xsl:with-param name="class" - select="$class"/> - </xsl:call-template> -<!-- Always make sure we have a (visible) final return --> -<xsl:text> - -</xsl:text> -</xsl:template> - - -<!-- Here are the subroutine templates in order --> - - <xsl:template name="ifndef_start"> - <!--For example, - #ifndef CustomerInfoImpl_CustomerInfoService_Wrapper_h - #define CustomerInfoImpl_CustomerInfoService_Wrapper_h - --> - <xsl:param name="class"/> - <xsl:text>#ifndef </xsl:text><xsl:value-of select="$class"/><xsl:text>_h</xsl:text> -<!-- newline --> -<xsl:text> -</xsl:text> - <xsl:text>#define </xsl:text><xsl:value-of select="$class"/><xsl:text>_h</xsl:text> -<!-- newline --> -<xsl:text> - -</xsl:text> - <xsl:text>#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif </xsl:text> -<!-- newline --> -<xsl:text> - -</xsl:text> - </xsl:template> - - <xsl:template name="include_headers"> - <!--For example, - #include "CustomerInfoImpl.h" - #include "tuscany/sca/cpp/CPPServiceWrapper.h" - --> - <xsl:param name="header"/> - <xsl:text>#include "</xsl:text><xsl:value-of select="translate($header,'\','/')"/><xsl:text>"</xsl:text> -<!-- newline --> -<xsl:text> -</xsl:text> - <xsl:text>#include "tuscany/sca/cpp/CPPServiceWrapper.h"</xsl:text> - </xsl:template> - - <xsl:template match="scaService" mode="class_body"> - <!--For example - class wrapperclassname : public tuscany::sca::cpp::CPPServiceWrapper - { - constructor - destructor - then apply operation templates for operations - }; - - E.g. Specifically - - class CustomerInfoImpl_CustomerInfoService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper - { - public: - CustomerInfoImpl_CustomerInfoService_Wrapper(tuscany::sca::model::Component*); - virtual ~CustomerInfoImpl_CustomerInfoService_Wrapper(); - virtual void invoke(tuscany::sca::Operation& operation); - - private: - CustomerInfoImpl* impl; - }; - --> - <!-- TODO second definition, remove? --> - <xsl:variable name="class"> - <xsl:value-of select="concat(../@implClass, '_', ../@serviceName, '_Wrapper')"/> - </xsl:variable> -<xsl:text> - -class </xsl:text> -<xsl:value-of select="$class"/> -<xsl:text> : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - </xsl:text><xsl:value-of select="$class"/><xsl:text>(tuscany::sca::model::Service* target);</xsl:text> - <xsl:text> - virtual ~</xsl:text><xsl:value-of select="$class"/><xsl:text>(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -</xsl:text> -<xsl:text>private: - </xsl:text> - <xsl:value-of select="../@implNamespace"/><xsl:value-of select="../@implClass"/><xsl:text>* impl; -}; -</xsl:text> - </xsl:template> - - <xsl:template name="ifndef_end"> - <!--For example, - #endif // CustomerInfoImpl_CustomerInfoService_Wrapper_h - --> - <xsl:param name="class"/> - <xsl:text> -#endif // </xsl:text><xsl:value-of select="$class"/><xsl:text>_h</xsl:text> - </xsl:template> - -<xsl:template match="scaOperation"> -</xsl:template> - -</xsl:stylesheet> - - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/xsd/sca-implementation-cpp.xsd b/sca-cpp/trunk/contrib/runtime/extensions/cpp/xsd/sca-implementation-cpp.xsd deleted file mode 100644 index ac2004bd73..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/xsd/sca-implementation-cpp.xsd +++ /dev/null @@ -1,51 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <include schemaLocation="../../../xsd/sca-core.xsd"></include> - - <element name="implementation.cpp" type="sca:CPPImplementation" substitutionGroup="sca:implementation"/> - <complexType name="CPPImplementation"> - <complexContent> - <extension base="sca:Implementation"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="library" type="NCName" use="required"/> - <attribute name="path" type="NCName" use="optional"/> - <attribute name="header" type="NCName" use="required"/> - <attribute name="class" type="Name" use="optional"/> - <attribute name="scope" type="sca:CPPImplementationScope" use="optional" /> - <anyAttribute namespace="##any" processContents="lax"/> - </extension> - </complexContent> - </complexType> - - <simpleType name="CPPImplementationScope"> - <restriction base="string"> - <enumeration value="stateless" /> - <enumeration value="composite" /> - </restriction> - </simpleType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/cpp/xsd/sca-interface-cpp.xsd b/sca-cpp/trunk/contrib/runtime/extensions/cpp/xsd/sca-interface-cpp.xsd deleted file mode 100644 index a8493fe726..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/cpp/xsd/sca-interface-cpp.xsd +++ /dev/null @@ -1,45 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <include schemaLocation="../../../xsd/sca-core.xsd"/> - - <element name="interface.cpp" type="sca:CPPInterface" substitutionGroup="sca:interface"/> - <complexType name="CPPInterface"> - <complexContent> - <extension base="sca:Interface"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="header" type="NCName" use="required" /> - <attribute name="class" type="Name" use="optional" /> - <attribute name="callbackHeader" type="NCName" use="optional" /> - <attribute name="callbackClass" type="Name" use="optional" /> - <attribute name="remotable" type="boolean" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> - -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/AUTHORS b/sca-cpp/trunk/contrib/runtime/extensions/php/AUTHORS deleted file mode 100644 index e69de29bb2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/AUTHORS +++ /dev/null diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/COPYING b/sca-cpp/trunk/contrib/runtime/extensions/php/COPYING deleted file mode 100755 index 6b0b1270ff..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/COPYING +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/ChangeLog b/sca-cpp/trunk/contrib/runtime/extensions/php/ChangeLog deleted file mode 100644 index e69de29bb2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/ChangeLog +++ /dev/null diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/INSTALL b/sca-cpp/trunk/contrib/runtime/extensions/php/INSTALL deleted file mode 100644 index 059a43057b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/INSTALL +++ /dev/null @@ -1,2 +0,0 @@ -Please read the GettingStarted.html document for information on -building and installing Tuscany SCA Native PHP extemstion diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/LICENSE b/sca-cpp/trunk/contrib/runtime/extensions/php/LICENSE deleted file mode 100755 index f433b1a53f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/LICENSE +++ /dev/null @@ -1,177 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/php/Makefile.am deleted file mode 100644 index fb661fec63..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -# 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. - -SUBDIRS = src samples - -datadir=$(prefix) - -nobase_data_DATA = xsd/*.xsd - -EXTRA_DIST = xsd
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/NEWS b/sca-cpp/trunk/contrib/runtime/extensions/php/NEWS deleted file mode 100644 index e69de29bb2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/NEWS +++ /dev/null diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/NOTICE b/sca-cpp/trunk/contrib/runtime/extensions/php/NOTICE deleted file mode 100644 index b240b0a121..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/NOTICE +++ /dev/null @@ -1,5 +0,0 @@ -Apache Tuscany SCA Native -Copyright 2005, 2007 The Apache Software Foundation - -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/)
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/README b/sca-cpp/trunk/contrib/runtime/extensions/php/README deleted file mode 100644 index ad96622516..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/README +++ /dev/null @@ -1,276 +0,0 @@ -PHP Extension for C++ SCA README -================================ - -Overview --------- - -The PHP extension for C++ SCA allows PHP scripts to be used to implement SCA components. -This is achieved by using the C++ SCA extension API to drive script execution through the -PHP embedding SAPI. In its current incarnation the PHP Extension requires that a full SCDL -description is provided for each PHP component, i.e. we are not yet making use of the meta data -provided by the annotations that can appear in PHP SCA components. - -There are various styles of PHP script that are supported. The examples here are taken from -the PHPCalculator sample and if you look at the SCDL files provided with the sample you can -see the component type and composite files that tie these components into the working system - -SCA Service ------------ - -/** - * @service - * @binding.ws - */ -class Divide { - - /** - * @reference - * @binding.tuscany cppDivideService - */ - public $another_divide; - - /** - * Division - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function div($num1, $num2) { - return $this->another_divide->div($num1, $num2); - } - -} - -PHP Class ---------- - -class Multiply { - function mul($num1, $num2) { - $result = $num1 * $num2; - - $log_proxy = SCA::getService("log_service"); - $log_proxy->log_message($result); - - return $result; - } -} - -PHP Function ------------- - -function sub($num1, $num2){ - $result = $num1 - $num2; - - $log_proxy = SCA::getService("log_service"); - $log_proxy->log_message($result); - - return $result; -} - -PHP Script ----------- - -$num1 = $_REQUEST[0]; -$num2 = $_REQUEST[1]; - -$result = $num1 + $num2; - -$log_proxy = SCA::getService("log_service"); -$log_proxy->log_message($result); - -echo $result; - -TODO ----- -* I struggled for a long time with a missing symbol problem loading sdo.so at runtime on linux. - I got round this by creating a standalone Makefile for the CalculatorClient exe. All the - shared objects that are loaded are compiled with the normal automake toolchain still but this - solves the problem. I need to investigate in detail what's going on here. Having someone - else try building with the full automake configuration would be insteresting -* The problem from above does appear when running SCA behind axis hence I am unable to test with - remote clients -* The SCA_SDO build generates sdo.so and the Tuscany PHP Extension tries to load libsdo.so. - One side needs fixing. For now I just copy the library -* SDO passing in and out of components is coded but not tested -* Returning values from plain PHP scripts (scripts without classes and functions) is not - operating correctly -* Error handling needs looking at. Many situations are not trapped and those - that are may not be reported correctly -* Reorganize the extension code so that Tuscany SCA can be loaded by PHP running in Apache - and accessed through SCA references. This will play the same role as SCA running hosted - in Axis2C and will open up the service bindings implemented in PHP SCA_SDO. -* Implement meta data exchange between the PHP SCA implementation and the Tuscany C++ SCA - implementations so that selected parts of the SCDL definition can be omitted. -* There is a threading issue with the way that we are firing up the PHP embedding SAPI - TSRM should solve it fails on the embedding initialization for some reason. - -Dependencies ------------- -PHP5.2.0 source code - - (http://php.net/) - The binary release of PHP doesn't ship with the header files required to build - against the PHP embedding SAPI and runtime libraries. So go get the PHP source - code and build PHP. PHP will need to be configured correctly in order to - work properly when embedded in C++ SCA. Here are some sample configuration - statements but they will need to be tailored for you specific environment: - - Winodws - ------- - cscript configure.js --with-extra-includes=win32build\include; - libxml2-2.6.26.threads\include; - iconv-1.9.1.win32\include; - libcurl-7.15.4-nossl\include - --with-extra-libs=win32build\lib; - libxml2-2.6.26.threads\lib; - iconv-1.9.1.win32\lib; - libcurl-7.15.4-nossl\lib - --enable-debug - --enable-soap - --enable-apache2handler=shared - --enable-embed - --with-curl=C:\simon\apps\libcurl-7.15.4-nossl - - Note. This configure line is artificially broken across sever lines to aid - readability here. You will need to join it all back together on one line to - run it. - - Linux - ----- - ./configure --enable-debug \ - --enable-soap \ - --enable-fastcgi \ - --with-zlib \ - --enable-embed \ - --with-tsrm-pthreads \ - --enable-maintainer-zts - Note. debug, pthreads, maintainer-zts, fastcgi are not absolute requirements but just - represent the environment I was testing with when I wrote this. - -SCA_SDO PECL extension AVOCET branch source code - (http://pecl.php.net/package/SCA_SDO) - Provides the SCA framework for PHP and the necessary mediation code to translate - between Tuscany SCA and PHP SCA. Go get the AVOCET branch from PECL cvs - - export CVSROOT=:pserver:cvsread@cvs.php.net/repository - cvs export -r AVOCET pecl/sdo - - The process to build this code varies quite considerably between windows and Linux. - Take a look at the instructions in the SCA_SDO manual, follow the documentation link - from the projects PECL page (http://uk2.php.net/sdo/). - - Once built you will need to copy the library sdo.so to - libsdo.so so that the Tuscany PHPExtension can load it given the makefile - configuration as it stands. For example, on linux - - ln -s sdo.so libsdo.so - - -Building on windows -------------------- - -The Visual C++ Express solution provided with C++ SCA includes a project -to build the PHP extension. This project relies on being able to access the -PHP include files from the source code directory and the PHP lib files from the -binary install. Make sure your environment is set as follows before you start -Visual C++ Express (if you do this after you start Visual C++ Express it will -not pick up the changes) - -PHP_HOME = the root directory of the PHP 5.2.0 source code install -PATH = ensure that the root directory of the PHP 5.2.0 binary install appears - -PHP_SCA_SDO_HOME = the directory in which the SCA_SDO pecl extension source is installed - -These changes come over and above the environment changes you need to make -to build the core C++ SCA software. I have the following set in my environment but -of course the details depend on where you have the various bits of software installed. - -AXIS2C_HOME=c:\axis2c-bin-0.96-win32 -LIBXML2_HOME=c:\libxml2-2.6.26.ein32 -ICONV_HOME=c:\iconv-1.9.2.win32 -ZLIB_HOME=c:\zlib-1.2.3.win32 -TUSCANY_SCACPP=c:\sca\deploy -TUSCANY_SDOCPP=c:\sdo\deploy - -Now compile the PHP extension. Compiling with VC++ Express requires some care - -1/ Ensure that the PHP include files are configured correctly for - compiling against C++ SCA in Visual C++ express - - See - http://bugs.php.net/bug.php?id=39130 - - Comment out two lines in $(PHP_HOME)/main/config.w32.h: - #define _USE_32BIT_TIME_T 1 - #define HAVE_STDLIB_H 1 - - -Building on Linux ------------------ - -The PHP extension comes with a set of automake files so that the PHP extension is built -at the same time as all of the other extensions assuming that appropriate environment -variables are set. The build.sh script that can be found under the top level sca directory -checks whether the PHP_LIB and PHP_INCLUDE variables are set and if so enables compilation -of the PHP extension automatically by adding --enable-php to the configure line. - -There are a number of environment variables that the build depends on. I find setting the -following variables useful. - -# the location of libxm2 -export LIBXML2_LIB=/usr/lib -export LIBXML2_INCLUDE=/usr/include/libxml2 - -# the location of PHP -export PHP_LIB=/usr/local/lib -export PHP_INCLUDE=/usr/local/include/php - -# the location of the PHP SCA_SDO extension source -# the lib location depends oh the configuration options used -# when building PHP so beware -export PHP_SCA_SDO_INCLUDE=where ever you install the SCA_SDO package source -export PHP_SCA_SDO_LIB=$PHP_LIB/php/extensions/no-debug-zts-20060613/ - -# the location of axis2 -export AXIS2C_HOME=/usr/local/axis2c-bin-0.96-linux - -# the install directories for the tuscany sca and sdo projects -export TUSCANY_SDOCPP=/usr/local/tuscany/cpp/sdo/deploy -export TUSCANY_SCACPP=/usr/local/tuscany/cpp/sca/deploy - -Once these are set running sca/build.sh should compile and install the PHP extension. - -Testing the PHP Extension -------------------------- - -In order to run the PHP extension successfully as an embedded component of the -C++ SCA runtime the PHP environment must be configured correctly. This configuration -is provided by the php.ini file. The location of this file depends on your installation -of PHP but by default is as follows. - -/usr/local/bin - PHP executables -/usr/local/lib/php.ini - the ini file that tell PHP where to look for scripts and - extension libraries -/usr/local/lib/php - PHP runtime installation, extension files and tests - -As is usually the case your milage may vary but wherever PHP is installed you will find -a similar set of directories. To force PHP to look in the correct place use the following -setting - -# tell PHP specifically where to find php.ini rather than relying on the default -set PHPRC=/usr/local/lib - -The php.ini file must be configured to load the SCA_SDO extension so you would expect to -see the following modifications to the file. - -; around line 528 you need to set the variable that tells PHP where to -; load extension libraries from. This varies depending on how PHP has been -; compiled and installed, for example, -extension_dir = "/usr/local/lib/php/extensions/no-debug-zts-20060613/" - -; around line 512 you need to set the variable that tells PHP where to -; load included scripts from. There are windows and unix versions. Here -; is a Unix example -include_path=".:/usr/local/lib/php:/usr/local/lib/php/PEAR:/usr/local/tuscany/cppsca/samples/PHPCalculator/deploy/sample.calculator" - -; around line 673 you will find the end of the list of enabled extensions. We need to turn -; on SDO so add the following line. sdo.so should be found in "extension_dir". -extension=sdo.so - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/autogen.sh b/sca-cpp/trunk/contrib/runtime/extensions/php/autogen.sh deleted file mode 100755 index af38864985..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/autogen.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -# 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. - -for i in "libtoolize --force" aclocal autoconf autoheader -do - echo -n "Running $i..." - $i || exit 1 - echo 'done.' -done - -echo -n 'Running automake...' -automake --add-missing -echo 'done.' -exit 0 - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/build.sh b/sca-cpp/trunk/contrib/runtime/extensions/php/build.sh deleted file mode 100755 index 41e96d0565..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/build.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/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. - -SCA_PHP_EXTENSION_HOME=`pwd` - -if [ x$TUSCANY_SCACPP = x ]; then -echo "TUSCANY_SCACPP not set" -exit; -fi - -echo "Using SCA installed at $TUSCANY_SCACPP" - -if [ x$PHP_LIB = x ]; then -echo "PHP_LIB not set." -exit; -elif [ x$PHP_INCLUDE = x ]; then -echo "PHP_INCLUDE not set." -exit; -elif [ x$PHP_SCA_SDO_INCLUDE = x ]; then -echo "PHP_SCA_SDO_INCLUDE not set." -exit; -elif [ x$PHP_SCA_SDO_LIB = x ]; then -echo "PHP_SCA_SDO_LIB not set." -exit; -fi -echo "Building PHP extension with PHP installed at $PHP_LIB, $PHP_INCLUDE" -echo "and PHP SCA and SDO installed at $PHP_SCA_SDO_LIB, $PHP_SCA_SDO_INCLUDE" - -#cd ${TUSCANY_SCACPP_HOME}/samples -#./autogen.sh - -cd ${SCA_PHP_EXTENSION_HOME} -./autogen.sh - - -./configure --prefix=${TUSCANY_SCACPP}/extensions/php -make -make install - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/configure.ac b/sca-cpp/trunk/contrib/runtime/extensions/php/configure.ac deleted file mode 100644 index d68d262b78..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/configure.ac +++ /dev/null @@ -1,79 +0,0 @@ -# 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. - -dnl run autogen.sh to generate the configure script. - -AC_PREREQ(2.59) -AC_INIT(tuscany_sca_php, 1.0-incubator-M3) -AC_CANONICAL_SYSTEM -AM_CONFIG_HEADER(tuscany_sca_php_config.h) -AM_INIT_AUTOMAKE([tar-ustar]) -AC_PREFIX_DEFAULT(/usr/local/tuscany/sca/extensions/php) - -# Checks for programs. -AC_PROG_CXX -AC_PROG_CC -AC_PROG_CPP -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PROG_MAKE_SET -AC_PROG_LIBTOOL - -# Check for running on Darwin -AC_MSG_CHECKING([Checking if running on Darwin]) -UNAME=`uname -s` -if test "x$UNAME" = "xDarwin"; then - AC_DEFINE([IS_DARWIN], [1], [Set to 1 when running on Darwin - Mac OSX]) - AC_MSG_RESULT(yes) - AC_SUBST([libsuffix],[".dylib"]) - is_darwin=true -else - AC_MSG_RESULT(no) - AC_SUBST([libsuffix],[".so"]) - is_darwin=false -fi -AM_CONDITIONAL([DARWIN], [test x$is_darmin = xtrue]) - -# Checks for libraries. - -# Checks for header files. -AC_HEADER_DIRENT -AC_HEADER_STDC -AC_CHECK_HEADERS([inttypes.h stdlib.h string.h sys/time.h unistd.h]) - -# Checks for typedefs, structures, and compiler characteristics. -AC_HEADER_STDBOOL -AC_C_CONST -AC_C_INLINE - -# Checks for library functions. -AC_FUNC_CLOSEDIR_VOID -AC_FUNC_STAT -AC_FUNC_VPRINTF -AC_CHECK_FUNCS([getcwd putenv strdup]) -# AC_CONFIG_SUBDIRS([samples]) - - -AC_CONFIG_FILES([Makefile - src/Makefile - samples/Makefile - samples/PHPCalculator/Makefile - samples/PHPCalculator/sample.calculator/Makefile - samples/PHPCalculator/sample.calculator.client/Makefile - ]) -AC_OUTPUT - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/Makefile.am deleted file mode 100644 index 920828ef4f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -# 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. - -SUBDIRS = PHPCalculator
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/Makefile.am deleted file mode 100644 index fd34c6442a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# 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)/samples/PHPCalculator/deploy -SUBDIRS = sample.calculator sample.calculator.client -EXTRA_DIST = *.composite -deploy_DATA = *.composite diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/README b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/README deleted file mode 100644 index dbee1f5f85..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/README +++ /dev/null @@ -1,32 +0,0 @@ -Tuscany SCA for C++ Samples - PHP Calculator Sample -=================================================== - -This is a simple sample to show how an SCA composite can wire together -a number of components to implement a Calculator service and expose that service as -to a number of different tpyes of client. The sample components are implemented in various -ways to demonstrate the different features of the PHP SCA extension. - -There are two sub projects in this workspace: - - sample.calculator - This contains the source code and SCDL artifacts for the SCA Calculator - composite implementing the sample Calculator - - - sample.calculator.client - A sample client which does a local call to the Calculator service - -A Python client is used because the work to enable PHP to host SCA is not done yet - -Windows -======= -tba - -Linux -===== - -The make install will deploy this under $TUSCANY_SCACPP/extensions/php/samples - -To run the sample - -cd $TUSCANY_SCACPP/extensions/php/samples/PHPCalculator/deploy/sample.calculator.client -./runclient.sh - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.app.composite b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.app.composite deleted file mode 100644 index ada4d89a1c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.app.composite +++ /dev/null @@ -1,28 +0,0 @@ -<?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.calculator.app"> - - <component name="sample.calculator.CalculatorComponent"> - <implementation.composite name="sample.calculator" /> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.client/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.client/Makefile.am deleted file mode 100644 index 548f9bdcb8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.client/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -# 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)/samples/PHPCalculator/deploy -clientdir=$(deploydir)/sample.calculator.client - -client_DATA = *.py -client_SCRIPTS = runclient.sh -EXTRA_DIST = *.py *.php runclient.sh - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.client/calculator_client.py b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.client/calculator_client.py deleted file mode 100644 index d4b37ee2b2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.client/calculator_client.py +++ /dev/null @@ -1,50 +0,0 @@ -# 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. -# -# -# -# -# This Python code is a simple sample that provides a Python -# client for the Calculator sample - - -import sys -import sca - -op = sys.argv[1] -val1 = sys.argv[2] -val2 = sys.argv[3] - -# Locate the calculator service -calc = sca.locateservice("CalculatorComponent/CalculatorService") - -# Invoke the calculator operations -if op == 'add': - result = calc.add(val1, val2) - -elif op == 'sub': - result = calc.sub(val1, val2) - -elif op == 'mul': - result = calc.mul(val1, val2) - -elif op == 'div': - result = calc.div(val1, val2) - - -print "calculator_client: ",op,"(",val1,",",val2,") = ",result - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.client/runclient.sh b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.client/runclient.sh deleted file mode 100755 index 54ebfdbde4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator.client/runclient.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/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" - -if [ x$PYTHON_LIB != x ]; then -echo "Using Python library installed at $PYTHON_LIB" -export LD_LIBRARY_PATH=$PYTHON_LIB:$LD_LIBRARY_PATH -export PATH=$PYTHON_LIB/../bin:$PATH -fi - -export LD_LIBRARY_PATH=$PHP_SCA_SDO_LIB:$TUSCANY_SCACPP/lib:$TUSCANY_SCACPP/extensions/python/lib:$TUSCANY_SDOCPP/lib:$LD_LIBRARY_PATH -export PYTHONPATH=$TUSCANY_SCACPP/extensions/python/lib:$PYTHONPATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorComponent -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd $TUSCANY_SCACPP_ROOT/sample.calculator.client -python calculator_client.py mul 7 6 diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Calculator.componentType b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Calculator.componentType deleted file mode 100644 index 5a6c3a199e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Calculator.componentType +++ /dev/null @@ -1,31 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - - <service name="CalculatorService"> - <interface.php/> - </service> - - <reference name="div_service"> - <interface.php/> - </reference> - -</componentType> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Calculator.php b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Calculator.php deleted file mode 100644 index f0f35bab56..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Calculator.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php -# 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. -# -# -include 'SCA/SCA.php'; - -/** - * @service - * @binding.ws - */ -class Calculator { - - - /** - * @reference - * @binding.php Multiply.php - */ - public $mul_service; - - /** - * @reference - * @binding.tuscany div_service - */ - public $div_service; - - /** - * Addition - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function add($num1, $num2) { - printf("in Calculator::add"); - return $num1 + $num2; -// return $this->add_service->add($num1, $num2); - } - - /** - * Subtraction - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function sub($num1, $num2) { - return $num1 - $num2; -// return $this->sub_service->sub($num1, $num2); - } - - /** - * Multiplication - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function mul($num1, $num2) { - return $this->mul_service->mul($num1, $num2); - } - - /** - * Division - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function div($num1, $num2) { - return $this->div_service->div($num1, $num2); - } -} - -?> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Divide.componentType b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Divide.componentType deleted file mode 100644 index b50b20d9c6..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Divide.componentType +++ /dev/null @@ -1,29 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - <service name="DivideService"> - <interface.php/> - </service> - - <reference name="log_service"> - <interface.php/> - </reference> -</componentType> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Divide.php b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Divide.php deleted file mode 100644 index 5a08e5b063..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Divide.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -# 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. -# -# - -/** - * @service - * @binding.php - */ -class Divide { - - /** - * Division - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function div($num1, $num2) { - - $result = $num1 / $num2; - - $log_proxy = SCA::getService("log_service"); - $log_proxy->log_message($result); - - return $result; - - } - -} - -?> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Log.componentType b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Log.componentType deleted file mode 100644 index f945c6af8c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Log.componentType +++ /dev/null @@ -1,25 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - <service name="LogService"> - <interface.php/> - </service> -</componentType> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Log.php b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Log.php deleted file mode 100644 index 0a955f36d3..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Log.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -# 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. -# -# - -/** - * @service - */ -class Log { - - /** - * Log - * - * @param string $message (the message to be logged) - */ - function log_message($message) { - SCA::$logger->toLog('>>> ' . $message); - } -} - -?> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Makefile.am deleted file mode 100644 index 10020c4f03..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/samples/PHPCalculator/deploy -compositedir=$(deploydir)/sample.calculator - -composite_DATA = *.composite *.componentType *.php -EXTRA_DIST = *.composite *.componentType *.php - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Multiply.php b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Multiply.php deleted file mode 100644 index ed2e75edc8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/Multiply.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -# 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 'SCA/SCA.php'; - -class Multiply { - - /** - * @reference - * @binding.php Log.php - */ - public $log_service; - - function mul($num1, $num2) { - $result = $num1 * $num2; - -// $this->log_service->log_message($result); - - return $result; - } -} - -?> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/sample.calculator.composite b/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/sample.calculator.composite deleted file mode 100644 index f1a82a70db..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/samples/PHPCalculator/sample.calculator/sample.calculator.composite +++ /dev/null @@ -1,44 +0,0 @@ -<?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.calculator"> - - <component name="CalculatorComponent"> - <implementation.php module="Calculator" class="Calculator" scope="composite"/> - <reference name="div_service">DivideComponent</reference> - </component> - - - <component name="DivideComponent"> - <implementation.php module="Divide" class="Divide" scope="composite"/> - <reference name="log_service">LogComponent</reference> - </component> - - <component name="LogComponent"> - <implementation.php module="Log" class="Log" scope="composite"/> - </component> - - - - - -</composite> - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/php/src/Makefile.am deleted file mode 100644 index d0b04262f5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/Makefile.am +++ /dev/null @@ -1,57 +0,0 @@ -# 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. - -libdir=$(prefix)/lib -lib_LTLIBRARIES = libtuscany_sca_php.la - -noinst_HEADERS = \ -tuscany/sca/php/*.h \ -tuscany/sca/php/model/*.h - -libtuscany_sca_php_la_SOURCES = \ -tuscany/sca/php/PHPExtension.cpp \ -tuscany/sca/php/PHPImplementationExtension.cpp \ -tuscany/sca/php/PHPInterfaceExtension.cpp \ -tuscany/sca/php/PHPServiceWrapper.cpp \ -tuscany/sca/php/PHPServiceProxy.cpp \ -tuscany/sca/php/sca.cpp \ -tuscany/sca/php/model/PHPImplementation.cpp \ -tuscany/sca/php/model/PHPInterface.cpp \ -tuscany/sca/php/model/PHPReferenceBinding.cpp \ -tuscany/sca/php/model/PHPServiceBinding.cpp - -libtuscany_sca_php_la_LIBADD = -L${TUSCANY_SCACPP}/lib -ltuscany_sca \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo \ - -L${PHP_LIB} -lphp5 \ - -L${PHP_SCA_SDO_LIB} -lsdo - -INCLUDES = -I${TUSCANY_SCACPP}/include \ - -I${TUSCANY_SDOCPP}/include \ - -I${PHP_INCLUDE} \ - -I${PHP_INCLUDE}/main \ - -I${PHP_INCLUDE}/Zend \ - -I${PHP_INCLUDE}/TSRM \ - -I${PHP_INCLUDE}/sapi/embed \ - -I${PHP_SCA_SDO_INCLUDE} - -moduledir=$(prefix)/module -extension = libtuscany_sca_php$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPExtension.cpp deleted file mode 100644 index 0ffb660139..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPExtension.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/php/PHPExtension.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/php/PHPImplementationExtension.h" -#include "tuscany/sca/php/PHPInterfaceExtension.h" - - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_php_initialize() - { - tuscany::sca::php::PHPExtension::initialize(); - } -} - -namespace tuscany -{ - namespace sca - { - namespace php - { - // =================================================================== - // Constructor for the PHPExtension class. - // =================================================================== - PHPExtension::PHPExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the PHPExtension class. - // =================================================================== - PHPExtension::~PHPExtension() - { - logentry(); - } - - void PHPExtension::initialize() - { - logentry(); - SCARuntime::getCurrentRuntime()->registerImplementationExtension(new PHPImplementationExtension()); - SCARuntime::getCurrentRuntime()->registerInterfaceExtension(new PHPInterfaceExtension()); - } - - } // End namespace php - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPExtension.h deleted file mode 100644 index 971ed93c86..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPExtension.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_php_phpextension_h -#define tuscany_sca_php_phpextension_h - -namespace tuscany -{ - namespace sca - { - namespace php - { - - class PHPExtension - { - public: - /** - * Default constructor - */ - PHPExtension(); - - /** - * Destructor - */ - virtual ~PHPExtension(); - - static void initialize(); - - private: - - }; - - - } // End namespace php - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_php_phpextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPImplementationExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPImplementationExtension.cpp deleted file mode 100644 index 101667302f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPImplementationExtension.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/php/PHPImplementationExtension.h" -#include "tuscany/sca/php/model/PHPImplementation.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace php - { - // =================================================================== - // Constructor for the PHPImplementationExtension class. - // =================================================================== - PHPImplementationExtension::PHPImplementationExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the PHPImplementationExtension class. - // =================================================================== - PHPImplementationExtension::~PHPImplementationExtension() - { - logentry(); - } - - const string PHPImplementationExtension::extensionName("php"); - const string PHPImplementationExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#PHPImplementation"); - - // =================================================================== - // loadModelElement - load the info from implementation.php - // =================================================================== - ComponentType* PHPImplementationExtension::getImplementation(Composite *composite, DataObjectPtr scdlImplementation) - { - logentry(); - - string module = scdlImplementation->getCString("module"); - string className = scdlImplementation->getCString("class"); - - PHPImplementation* phpImpl = new PHPImplementation(composite, module, className); - - return phpImpl; - } - - } // End namespace php - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPImplementationExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPImplementationExtension.h deleted file mode 100644 index 604c4ea102..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPImplementationExtension.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_php_phpimplementationextension_h -#define tuscany_sca_php_phpimplementationextension_h - -#include "tuscany/sca/extension/ImplementationExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace php - { - - class PHPImplementationExtension : public ImplementationExtension - { - public: - /** - * Default constructor - */ - PHPImplementationExtension(); - - /** - * Destructor - */ - virtual ~PHPImplementationExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema element for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#implementation.phpn") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::ComponentType* getImplementation( - tuscany::sca::model::Composite* composite, - commonj::sdo::DataObjectPtr scdlImplementation); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace php - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_php_phpimplementationextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPInterfaceExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPInterfaceExtension.cpp deleted file mode 100644 index a07c499dec..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPInterfaceExtension.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/php/PHPInterfaceExtension.h" -#include "tuscany/sca/php/model/PHPInterface.h" -#include "tuscany/sca/util/Logging.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace php - { - // =================================================================== - // Constructor for the PHPInterfaceExtension class. - // =================================================================== - PHPInterfaceExtension::PHPInterfaceExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the PHPInterfaceExtension class. - // =================================================================== - PHPInterfaceExtension::~PHPInterfaceExtension() - { - logentry(); - } - - const string PHPInterfaceExtension::extensionName("php"); - const string PHPInterfaceExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#PHPInterface"); - - // =================================================================== - // loadModelElement - load the info from interface.php - // =================================================================== - tuscany::sca::model::Interface* PHPInterfaceExtension::getInterface(Composite* composite, DataObjectPtr scdlInterface) - { - logentry(); - - // Determine the type - string ifType = scdlInterface->getType().getName(); - if (ifType == "PHPInterface") - { - bool remotable = scdlInterface->getBoolean("remotable"); - bool conversational = scdlInterface->getBoolean("conversational"); - - return new PHPInterface(remotable, conversational); - } - return 0; - } - - } // End namespace php - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPInterfaceExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPInterfaceExtension.h deleted file mode 100644 index 4279376300..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPInterfaceExtension.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_php_phpinterfaceextension_h -#define tuscany_sca_php_phpinterfaceextension_h - -#include "tuscany/sca/extension/InterfaceExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace php - { - - class PHPInterfaceExtension : public InterfaceExtension - { - public: - /** - * Default constructor - */ - PHPInterfaceExtension(); - - /** - * Destructor - */ - virtual ~PHPInterfaceExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#PHPInterface") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::Interface* getInterface( - tuscany::sca::model::Composite* composite, - commonj::sdo::DataObjectPtr scdlInterface); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace php - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_php_phpinterfaceextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceProxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceProxy.cpp deleted file mode 100644 index 4b66c42a5b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceProxy.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/php/PHPServiceProxy.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/php/model/PHPReferenceBinding.h" - -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace php - { - - // ============================================ - // Constructor: Create a proxy from a reference - // ============================================ - PHPServiceProxy::PHPServiceProxy(Reference* reference) - : ServiceProxy(reference) - { - logentry(); - - // Get the service wrapper - PHPReferenceBinding* referenceBinding = (PHPReferenceBinding*)reference->getBinding(); - serviceWrapper = referenceBinding->getTargetServiceBinding()->getServiceWrapper(); - } - - // ========================================== - // Constructor: Create a proxy from a service - // ========================================== - PHPServiceProxy::PHPServiceProxy(Service* service) - : ServiceProxy(NULL) - { - logentry(); - - // Get the service wrapper - serviceWrapper = service->getBinding()->getServiceWrapper(); - } - - // ========== - // Destructor - // ========== - PHPServiceProxy::~PHPServiceProxy() - { - logentry(); - } - - // ===================================================== - // invokeService: invoke the service wired to this proxy - // ===================================================== - void PHPServiceProxy::invokeService(Operation& operation) - { - logentry(); - - // Invoke the service - serviceWrapper->invoke(operation); - } - } // End namespace php - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceProxy.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceProxy.h deleted file mode 100644 index bddb262617..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceProxy.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_php_phpserviceproxy_h -#define tuscany_sca_php_phpserviceproxy_h - -#include "tuscany/sca/php/export.h" -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/util/Library.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/Service.h" - - -namespace tuscany -{ - namespace sca - { - namespace php - { - - /** - * Holds a proxy for a given reference from a component implemented in PHP. - */ - class PHPServiceProxy : public ServiceProxy - { - public: - /** - * Create a new service proxy for a reference. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The reference on the source component. - */ - PHPServiceProxy(tuscany::sca::model::Reference* reference); - - /** - * Create a new service proxy for a service. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param service The service on the target component. - */ - PHPServiceProxy(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~PHPServiceProxy(); - - /** - * Invoke the wired service. - */ - virtual void invokeService(Operation& operation); - - private: - - /** - * The target service wrapper - */ - ServiceWrapper* serviceWrapper; - }; - - } // End namespace php - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_php_phpserviceproxy_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceWrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceWrapper.cpp deleted file mode 100644 index 8c92be0d83..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceWrapper.cpp +++ /dev/null @@ -1,505 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifdef WIN32 - -// some strangeness in the build that causes -// WinSock.h and WinSock2.h to be included leading to redefinitions -#define _WINSOCKAPI_ - -// sdo.cpp also includes the math libraries and causes redeclarations -// of all the math functions -#define _INC_MATH - -#endif //WIN32 - -#include <iostream> -#include <sstream> - -#include <sapi/embed/php_embed.h> - - -#include "tuscany/sca/php/PHPServiceWrapper.h" -#include "tuscany/sca/php/PHPServiceProxy.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/php/model/PHPImplementation.h" - - -#include "sca.h" -#include "php_sdo_int.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace php - { - - int embedSAPIInitializeCount = 0; - - // Global callbacks used by the PHP engine - - // Callback for SAPI error - void php_sapi_error(int type, const char *error_msg, ...) - { - logwarning("PHP sapi error: %s", error_msg); - //TODO - do something sensible with this output - zend_bailout(); - } - - // Callback for log messages - void php_log_message(char *message) - { - loginfo("PHP log: %s", message); - //TODO - do something sensible with this output - } - - // Callback for unbuffered writes (echo, print etc.) - int php_ub_write(const char *str, unsigned int str_length TSRMLS_DC) - { - logentry(); - loginfo("PHP Output: %s", str); - //TODO - do something sensible with this output - return str_length; - } - - // Callback for errors - void php_error_cb(int type, - const char *error_filename, - const uint error_lineno, - const char *format, va_list args) - { - logentry(); - - char buffer[2048]; - int len; - - len = snprintf(buffer, 2048, "Error in file %s on line %d: ", error_filename, error_lineno); - vsnprintf(buffer + len, (2048 - len), format, args); - logwarning("PHP error: %s", buffer); - //TODO - do something sensible with this output - zend_bailout(); - } - - - // =========== - // Constructor - // =========== - PHPServiceWrapper::PHPServiceWrapper(Service* service) - : ServiceWrapper(service) - { - logentry(); - - component = service->getComponent(); - interf = service->getType()->getInterface(); - remotable = interf->isRemotable(); - - // ----------------------------------------------- - // Get the implementation for the target component - // ----------------------------------------------- - PHPImplementation* impl = (PHPImplementation*)component->getType(); - if (!impl) - { - string msg = "Component " + component->getName() + " has no implementation defined"; - throwException(SystemConfigurationException, msg.c_str()); - } - - loginfo("Module: %s", impl->getModule().c_str()); - loginfo("Class: %s", impl->getClass().c_str()); - } - - // ========== - // Destructor - // ========== - PHPServiceWrapper::~PHPServiceWrapper() - { - logentry(); - } - - - // ====================================================================== - // invoke: wrapper call to service with setting the component context - // ====================================================================== - void PHPServiceWrapper::invoke(Operation& operation) - { - zval z_func_name, retval, z_component_name, z_class_name, z_operation_name, z_arg_array; - zval *params[5]; - - logentry(); - - // set the current component in the SCA runtime - // so that other things can get at it thorugh this - // static class - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - runtime->setCurrentComponent(component); - - try - { - // get the component type information - PHPImplementation* impl = (PHPImplementation*)component->getType(); - - // get the directory containing the component type - const string &compositeDir = impl->getComposite()->getRoot(); - - // get some useful information that will be used later - // when we construct the wrapper script - string componentName = component->getName(); - string className = impl->getClass(); - string operationName = operation.getName(); - loginfo("Component %s class %s operation: %s", - componentName.c_str(), - className.c_str(), - operationName.c_str()); - - // load the PHP logging and error callback methods - php_embed_module.log_message = php_log_message; - php_embed_module.ub_write = php_ub_write; - php_embed_module.sapi_error = php_sapi_error; - - // would normally use the following macro before the embeded call - // but we need to take account of multiple nested calls - // and ZTS threading safety is not behaving itself - // PHP_EMBED_START_BLOCK(/* argc */ 0, /* argv */ NULL) - // ===================================================================== - { -#ifdef ZTS - static void ***tsrm_ls; - loginfo("ZTS enabled"); - - printf("tsrm_ls = %x, embedSAPIInitializeCount = %d\n", - tsrm_ls, embedSAPIInitializeCount); -#endif - - if ( embedSAPIInitializeCount == 0 ) - { - embedSAPIInitializeCount = 1; - - php_embed_init(0, NULL PTSRMLS_CC); - - // load up the sca module that provides the interface between - // C++ and user space PHP - zend_first_try { - zend_startup_module(&sca_module_entry); - } zend_end_try(); - } else { - embedSAPIInitializeCount++; - } - - zend_try { - // set error handler - zend_error_cb = php_error_cb; - - /* - * Open the include files - */ - // includeFile("SCA/SCA.php" TSRMLS_CC); - // includeFile("SCA/Bindings/tuscany/SCA_TuscanyWrapper.php" TSRMLS_CC); - - /* Instantiate a SCA_Tuscany (mediator) object, and - * set its operation property - */ - zval z_tuscany_mediator; - zval *pz_mediator = &z_tuscany_mediator; - INIT_ZVAL(z_tuscany_mediator); - zend_class_entry *ce_mediator = - zend_fetch_class("SCA_Tuscany", sizeof("SCA_Tuscany") - 1, 0 TSRMLS_CC); - object_init_ex(pz_mediator, ce_mediator); - z_tuscany_mediator.value.obj.handlers->add_ref(pz_mediator TSRMLS_CC); - - zend_update_property_long(ce_mediator, pz_mediator, - "operation", sizeof("operation") - 1, (long)&operation TSRMLS_CC); - - /* get the class info loaded up */ - zend_eval_string("include 'SCA/SCA.php';", - NULL, "Include SCA" TSRMLS_CC); - zend_eval_string("include 'SCA/Bindings/tuscany/SCA_TuscanyWrapper.php';", - NULL, "Include SCA_TuscanyWrapper" TSRMLS_CC); - - /* Now instantiate an SCA_TuscanyWrapper object and call its constructor */ - zval z_tuscany_wrapper; - zval *pz_tuscany_wrapper = &z_tuscany_wrapper; - INIT_ZVAL(z_tuscany_wrapper); - object_init_ex(pz_tuscany_wrapper, - zend_fetch_class("SCA_TuscanyWrapper", sizeof("SCA_TuscanyWrapper") - 1, 0 TSRMLS_CC)); - z_tuscany_wrapper.value.obj.handlers->add_ref(pz_tuscany_wrapper TSRMLS_CC); - - ZVAL_STRING(&z_func_name, "__construct", 1); - ZVAL_STRING(&z_component_name, (char *)componentName.c_str(), 1); - if( &className != NULL && className.size() > 0) { - ZVAL_STRING(&z_class_name, (char *)className.c_str(), 1); - } else { - ZVAL_NULL(&z_class_name); - } - ZVAL_STRING(&z_operation_name, (char *)operationName.c_str(), 1); - - array_init(&z_arg_array); - - // get the parameters from the operation structure - for(unsigned int i = 0; i < operation.getNParms(); i++) - { - const Operation::Parameter& parm = operation.getParameter(i); - //printf("Arg %d type %d\n", i, parm.getType()); - switch(parm.getType()) - { - case Operation::BOOL: - { - add_next_index_bool(&z_arg_array, (int)*(bool*)parm.getValue() ); - break; - } - case Operation::SHORT: - case Operation::USHORT: - case Operation::LONG: - case Operation::ULONG: - { - add_next_index_long(&z_arg_array, *(long*)parm.getValue() ); - break; - } - case Operation::FLOAT: - { - add_next_index_double(&z_arg_array,( double)*(float*)parm.getValue() ); - break; - } - case Operation::DOUBLE: - case Operation::LONGDOUBLE: - { - add_next_index_double(&z_arg_array, *(double*)parm.getValue() ); - break; - } - case Operation::CHARS: - { - add_next_index_string(&z_arg_array, *(char**)parm.getValue(), 1 ); - break; - } - case Operation::STRING: - { - add_next_index_string(&z_arg_array, (char*)(*(string*)parm.getValue()).c_str(), 1 ); - break; - } - case Operation::DATAOBJECT: - { - // convert the tuscany SDO into a PHP SDO - - // create the object - zval *sdo; - ALLOC_INIT_ZVAL(sdo); - sdo_do_new(sdo, *(DataObjectPtr*)parm.getValue() TSRMLS_CC); - - // add it to the arg array - add_next_index_zval(&z_arg_array, sdo); - break; - } - default: - { - char *class_name; - char *space; - class_name = get_active_class_name(&space TSRMLS_CC); - php_error(E_ERROR, - "%s%s%s(): Argument type %d not supported", - class_name, - space, - get_active_function_name(TSRMLS_C), - parm.getType()); - } - } - } - - params[0] = &z_tuscany_mediator; - params[1] = &z_component_name; - params[2] = &z_class_name; - params[3] = &z_operation_name; - params[4] = &z_arg_array; - - call_user_function(EG(function_table), - &pz_tuscany_wrapper, - &z_func_name, - &retval, - 5, - params TSRMLS_CC); - - zval_dtor(&z_func_name); - zval_dtor(&z_component_name); - zval_dtor(&z_class_name); - zval_dtor(&z_operation_name); - zval_dtor(&z_arg_array); - - string script; - script = "include '" + compositeDir + "/" + impl->getModule() + ".php';"; - loginfo("Script: %s", script.c_str()); - - // call the dynamically created script - // I'm not trapping the return value here - // as it seems to prevent any kind of output - // being produced. Needs investigation. - //zval retval; - zend_eval_string((char *) script.c_str(), - NULL, //&retval, - "Include module" TSRMLS_CC); - - loginfo(">>>> About to call SCA_TuscanyWrapper->invoke()"); - - /* Now call SCA_TuscanyWrapper->invoke() ... */ - ZVAL_STRING(&z_func_name, "invoke", 1); - call_user_function(EG(function_table), - &pz_tuscany_wrapper, &z_func_name, - &retval, 0, NULL TSRMLS_CC); - - loginfo("<<<< Return from SCA_TuscanyWrapper->invoke()"); - - zval_dtor(&z_func_name); - - /* ... and copy the return value into the operation */ - switch(Z_TYPE(retval)) - { - case IS_NULL: - { - //printf("NULL response"); - break; - } - case IS_BOOL: - { - bool *newBool = new bool; - *newBool = ZEND_TRUTH(Z_BVAL(retval)); - operation.setReturnValue(newBool); - break; - } - case IS_LONG: - { - long *newLong = new long; - *newLong = Z_LVAL(retval); - operation.setReturnValue(newLong); - break; - } - case IS_DOUBLE: - { - //double *newDouble = new double; - float *newDouble = new float; - *newDouble = (float)Z_DVAL(retval); - operation.setReturnValue(newDouble); - break; - } - case IS_STRING: - { - string newString (Z_STRVAL(retval)); - operation.setReturnValue(&newString); - break; - } - case IS_OBJECT: - { - // convert the PHP SDO into a Tuscany SDO - DataObjectPtr sdo = sdo_do_get(&retval TSRMLS_CC); - operation.setReturnValue(&sdo); - break; - } - default: - { - char *class_name; - char *space; - class_name = get_active_class_name(&space TSRMLS_CC); - php_error(E_ERROR, - "%s%s%s(): Input argument type %d not supported on invoke", - class_name, - space, - get_active_function_name(TSRMLS_C), - Z_TYPE(retval)); - } - } - } zend_catch { - /* int exit_status = EG(exit_status); */ - } - zend_end_try(); - - if ( embedSAPIInitializeCount == 1 ) - { - php_embed_shutdown(TSRMLS_C); - loginfo("Engine shutdown"); - } - else - { - embedSAPIInitializeCount--; - } - } - // ===================================================================== - } - catch (...) - { - runtime->unsetCurrentComponent(); - throw; - } - runtime->unsetCurrentComponent(); - - } - - // ====================================================================== - // getServiceWrapper: create a wrapper for the target ComponentService - // ====================================================================== - PHPServiceWrapper* PHPServiceWrapper::getServiceWrapper(Service* service) - { - logentry(); - PHPServiceWrapper* serviceWrapper = 0; - - // --------------------------------- - // Create an instance of the wrapper - // --------------------------------- - serviceWrapper = new PHPServiceWrapper(service); - if (!serviceWrapper) - { - string msg = "Could not create new PHPServiceWrapper"; - throwException(SystemConfigurationException, msg.c_str()); - } - - return serviceWrapper; - } - - /* Not used at the moment - * Can find the include file and execute it, - * but doesn't make the contents available - */ - void PHPServiceWrapper::includeFile(char *includeFileName TSRMLS_DC) - { - zend_file_handle include_file_handle; - - include_file_handle.type = ZEND_HANDLE_FP; - include_file_handle.filename = includeFileName; - include_file_handle.opened_path = NULL; - include_file_handle.free_filename = 0; - if (!(include_file_handle.handle.fp = php_fopen_with_path( - include_file_handle.filename, "rb", PG(include_path), - &include_file_handle.opened_path TSRMLS_CC))) { - php_error(E_ERROR, - "Could not open %s", include_file_handle.filename); - return; - } - php_execute_script(&include_file_handle TSRMLS_CC); - } - - } // End namespace php - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceWrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceWrapper.h deleted file mode 100644 index be20f34217..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/PHPServiceWrapper.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_php_phpservicewrapper_h -#define tuscany_sca_php_phpservicewrapper_h - -#include "tuscany/sca/php/export.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Interface.h" - -#include <TSRM/TSRM.h> - -namespace tuscany -{ - namespace sca - { - namespace php - { - class PHPInterface; - - /** - * Wraps the service on a component implementation. - * This abstract class is extended by generated code which provides - * the implementation of some of the methods. - * An instance of this class wraps the actual component implementation which - * has been written by a developer of an SCA application. - */ - class SCA_PHP_API PHPServiceWrapper : public ServiceWrapper - { - public: - /** - * Factory method to create a new PHPServiceWrapper for a given target - * service. This method will provide all the loading of dlls required to - * create the target component. - * @param target The service on the component for which this wrapper is to be - * created. - * @return A wrapper that references the given target. - */ - static PHPServiceWrapper* getServiceWrapper(tuscany::sca::model::Service* service); - - /** - * Constructor. - * @param target The component service to which this wrapper refers. - */ - PHPServiceWrapper(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~PHPServiceWrapper(); - - /** - * All business method calls to the target component go through the invoke method. - * @param operation The details of the method, paramaters and return value for the - * business method to be called on the target component. - */ - virtual void invoke(Operation& operation); - - - protected: - - - private: - - /** - * Utility method to execute a script on the include_path. - */ - static void includeFile(char *includeFileName TSRMLS_DC); - - /** - * The component to which this wrapper refers. - */ - tuscany::sca::model::Component* component; - - /** - * Set to true if the service is remotable. - */ - bool remotable; - - /** - * A pointer to the interface which the service exposes. - */ - tuscany::sca::model::Interface* interf; - - }; - - } // End namespace php - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_php_phpservicewrapper_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/export.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/export.h deleted file mode 100644 index 11a9519361..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/export.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_php_export_h -#define tuscany_sca_php_export_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) - -#ifdef TUSCANY_SCA_PHP_EXPORTS -#define SCA_PHP_API __declspec(dllexport) -#else -#define SCA_PHP_API __declspec(dllimport) -#endif - -#else -#include <sys/time.h> -#include <inttypes.h> -#include <stdlib.h> -#define SCA_PHP_API -#endif - -#endif // tuscany_sca_export_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPImplementation.cpp b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPImplementation.cpp deleted file mode 100644 index 63f1672ec5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPImplementation.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/php/model/PHPImplementation.h" -#include "tuscany/sca/php/model/PHPServiceBinding.h" -#include "tuscany/sca/php/model/PHPReferenceBinding.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - - namespace php - { - - // Constructor - PHPImplementation::PHPImplementation(Composite* composite, const string& module, const string& className) - : ComponentType(composite, module), - module(module), className(className) - { - logentry(); - } - - PHPImplementation::~PHPImplementation() - { - logentry(); - } - - void PHPImplementation::initializeComponent(Component* component) - { - logentry(); - ComponentType::initializeComponent(component); - - // Create PHP bindings for all the services - const Component::SERVICE_MAP& services = component->getServices(); - Component::SERVICE_MAP::const_iterator iter = services.begin(); - for (unsigned int i=0; i< services.size(); i++) - { - Service *service = iter->second; - PHPServiceBinding* binding = new PHPServiceBinding(service); - service->setBinding(binding); - iter++; - } - - // Create PHP bindings for all the references - const Component::REFERENCE_MAP& references = component->getReferences(); - Component::REFERENCE_MAP::const_iterator refiter = references.begin(); - for (int ri=0; ri< references.size(); ri++) - { - Reference *reference = refiter->second; - PHPReferenceBinding* binding = new PHPReferenceBinding(reference); - reference->setBinding(binding); - refiter++; - } - } - - } // End namespace php - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPImplementation.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPImplementation.h deleted file mode 100644 index 78e678dff5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPImplementation.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_php_model_phpimplementation_h -#define tuscany_sca_php_model_phpimplementation_h - -#include <string> - -#include "tuscany/sca/model/ComponentType.h" - - -namespace tuscany -{ - namespace sca - { - namespace php - { - /** - * Holds information about an SCA implementation written in PHP - */ - class PHPImplementation : public tuscany::sca::model::ComponentType - { - - public: - /** - * Constructor. - * @param composite Composite containing this implementation. - * @param module Name of the module. - * @param modulePath Path to the module (could be a blank string - * if this is not specified). - * @param className Name of the class in the module (could be a blank string - * if this is not specified). - */ - PHPImplementation(tuscany::sca::model::Composite* composite, const std::string& module, const std::string& className); - - /** - * Destructor - */ - virtual ~PHPImplementation(); - - /** - * Initialize a component of this type. - * @param component The component to initialize. - */ - virtual void initializeComponent(tuscany::sca::model::Component* component); - - /** - * Returns the name of the module. - * @return The name of the module. - */ - const std::string& getModule() const { return module; } - - /** - * Get the name of the class. - * @return The class name if specified. - */ - const std::string& getClass() const { return className; } - - private: - - /** - * Name of the module. - */ - std::string module; - - /** - * Name of the class in the header file declaring the implementation. - * May be an empty string if not set in the SCDL file. - */ - std::string className; - }; - - } // End namespace php - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_php_model_phpimplementation_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPInterface.cpp b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPInterface.cpp deleted file mode 100644 index cbea3f2b71..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPInterface.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/php/export.h" -#include "tuscany/sca/php/model/PHPInterface.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace php - { - const string PHPInterface::typeQName("http://www.osoa.org/xmlns/sca/1.0#PHPInterface"); - - // Constructor - PHPInterface::PHPInterface( - bool remotable, - bool conversational) - : Interface(remotable, conversational) - { - logentry(); - } - - PHPInterface::~PHPInterface() - { - logentry(); - } - - } // End namespace php - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPInterface.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPInterface.h deleted file mode 100644 index 9a4f658eb0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPInterface.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_php_model_phpinterface_h -#define tuscany_sca_php_model_phpinterface_h - -#include <string> - -#include "tuscany/sca/php/export.h" -#include "tuscany/sca/model/Interface.h" - -namespace tuscany -{ - namespace sca - { - namespace php - { - /** - * Holds information about an interface described using a PHP - * header file. - */ - class PHPInterface : public tuscany::sca::model::Interface - { - - public: - /** - * Constuctor. - * @param scope The scope of the interface (stateless or composite). - * @param remotable True if the interface is remotable. - */ - PHPInterface( - bool remotable, - bool conversational); - - /** - * Destructor. - */ - virtual ~PHPInterface(); - - /** - * return the QName of the schema type for this interface type - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#interface.cpp") - */ - const std::string& getInterfaceTypeQName() { return typeQName; }; - - /** - * The QName of the schema type for this interface type. - */ - SCA_PHP_API static const std::string typeQName; - - }; - - } // End namespace php - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_php_model_phpinterface_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPReferenceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPReferenceBinding.cpp deleted file mode 100644 index 919d4c8646..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPReferenceBinding.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/php/model/PHPReferenceBinding.h" -#include "tuscany/sca/php/PHPServiceProxy.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace php - { - - // Constructor - PHPReferenceBinding::PHPReferenceBinding(Reference* reference) - : ReferenceBinding(reference, ""), serviceProxy(NULL) - { - } - - // Destructor - PHPReferenceBinding::~PHPReferenceBinding() - { - } - - ServiceProxy* PHPReferenceBinding::getServiceProxy() - { - return serviceProxy; - } - - void PHPReferenceBinding::configure(ServiceBinding* binding) - { - setTargetServiceBinding(binding); - - serviceProxy = new PHPServiceProxy(getReference()); - } - - } // End namespace - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPReferenceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPReferenceBinding.h deleted file mode 100644 index 45b422da2c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPReferenceBinding.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_php_model_phpreferencebinding_h -#define tuscany_sca_php_model_phpreferencebinding_h - -#include <string> - -#include "tuscany/sca/model/ReferenceBinding.h" - - -namespace tuscany -{ - namespace sca - { - namespace php - { - /** - * Information about a PHP service binding for service or a reference. - */ - class PHPReferenceBinding : public tuscany::sca::model::ReferenceBinding - { - public: - - /** - * Constructor. - */ - PHPReferenceBinding(tuscany::sca::model::Reference* reference); - - /** - * Destructor. - */ - virtual ~PHPReferenceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#PHPImplementationBinding"; }; - - /** - * Create a proxy representing the reference to the - * client component. - */ - virtual ServiceProxy* getServiceProxy(); - - /** - * Configure this binding from a service binding. - */ - virtual void configure(tuscany::sca::model::ServiceBinding* serviceBinding); - - private: - - /** - * The proxy representing the reference to the client - * component. - */ - ServiceProxy* serviceProxy; - }; - - } // End namespace php - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_php_model_phpreferencebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPServiceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPServiceBinding.cpp deleted file mode 100644 index 4d18424ae2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPServiceBinding.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/php/model/PHPServiceBinding.h" -#include "tuscany/sca/php/PHPServiceWrapper.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace php - { - - // Constructor - PHPServiceBinding::PHPServiceBinding(Service* service) - : ServiceBinding(service, "") - { - logentry(); - serviceWrapper = PHPServiceWrapper::getServiceWrapper(service); - } - - // Destructor - PHPServiceBinding::~PHPServiceBinding() - { - logentry(); - } - - ServiceWrapper* PHPServiceBinding::getServiceWrapper() - { - logentry(); - return (ServiceWrapper*)serviceWrapper; - } - - } // End namespace php - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPServiceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPServiceBinding.h deleted file mode 100644 index ef3d6b1604..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/model/PHPServiceBinding.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_php_model_phpservicebinding_h -#define tuscany_sca_php_model_phpservicebinding_h - -#include <string> - -#include "tuscany/sca/model/ServiceBinding.h" - - -namespace tuscany -{ - namespace sca - { - namespace php - { - /** - * Information about a PHP service binding for service or a reference. - */ - class PHPServiceBinding : public tuscany::sca::model::ServiceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - * @param port The definition of the port to which the entrypoint - * or external service is to be bound. This is of the form - * "namespace"#endpoint("service"/"port") - */ - PHPServiceBinding(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~PHPServiceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#PHPImplementationBinding"; }; - - /** - * Create a wrapper for the service configured by this - * binding. - */ - virtual ServiceWrapper* getServiceWrapper(); - - private: - - /** - * The wrapper for the service configured by this binding. - */ - ServiceWrapper* serviceWrapper; - - }; - - } // End namespace php - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_php_model_phpservicebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/php_sca.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/php_sca.h deleted file mode 100644 index 8aea8dadb2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/php_sca.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * 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. - */ - -/* $ Id: $ */ - -#ifndef PHP_SCA_H -#define PHP_SCA_H - -#include "tuscany/sca/core/Operation.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <main/php.h> - -#ifdef HAVE_SCA - -#include <main/php_ini.h> -#include <main/SAPI.h> -#include <ext/standard/info.h> -#include <Zend/zend_extensions.h> -#ifdef __cplusplus -} // extern "C" -#endif -#ifdef __cplusplus -extern "C" { -#endif - - -//extern zend_module_entry sca_module_entry; -#define phpext_sca_ptr &sca_module_entry - -#ifdef PHP_WIN32 -#define PHP_SCA_API __declspec(dllexport) -#else -#define PHP_SCA_API -#endif - -PHP_MINIT_FUNCTION(sca); -PHP_MSHUTDOWN_FUNCTION(sca); -PHP_MINFO_FUNCTION(sca); - -#ifdef ZTS -#include "TSRM/TSRM.h" -#endif - -#define FREE_RESOURCE(resource) zend_list_delete(Z_LVAL_P(resource)) - -#define PROP_GET_LONG(name) Z_LVAL_P(zend_read_property(_this_ce, _this_zval, #name, strlen(#name), 1 TSRMLS_CC)) -#define PROP_SET_LONG(name, l) zend_update_property_long(_this_ce, _this_zval, #name, strlen(#name), l TSRMLS_CC) - -#define PROP_GET_DOUBLE(name) Z_DVAL_P(zend_read_property(_this_ce, _this_zval, #name, strlen(#name), 1 TSRMLS_CC)) -#define PROP_SET_DOUBLE(name, d) zend_update_property_double(_this_ce, _this_zval, #name, strlen(#name), d TSRMLS_CC) - -#define PROP_GET_STRING(name) Z_STRVAL_P(zend_read_property(_this_ce, _this_zval, #name, strlen(#name), 1 TSRMLS_CC)) -#define PROP_GET_STRLEN(name) Z_STRLEN_P(zend_read_property(_this_ce, _this_zval, #name, strlen(#name), 1 TSRMLS_CC)) -#define PROP_SET_STRING(name, s) zend_update_property_string(_this_ce, _this_zval, #name, strlen(#name), s TSRMLS_CC) -#define PROP_SET_STRINGL(name, s, l) zend_update_property_string(_this_ce, _this_zval, #name, strlen(#name), s, l TSRMLS_CC) - - -PHP_METHOD(SCA_Tuscany, __construct); -#if (PHP_MAJOR_VERSION >= 5) -ZEND_BEGIN_ARG_INFO_EX(SCA_Tuscany____construct_args, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 1) -ZEND_END_ARG_INFO() -#else /* PHP 4.x */ -#define SCA_Tuscany____construct_args NULL -#endif - -PHP_METHOD(SCA_Tuscany, invoke); -#if (PHP_MAJOR_VERSION >= 5) -ZEND_BEGIN_ARG_INFO_EX(SCA_Tuscany__invoke_args, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 4) - ZEND_ARG_INFO(0, component_name) - ZEND_ARG_INFO(0, reference_name) - ZEND_ARG_INFO(0, method_name) -#if (PHP_MINOR_VERSION > 0) - ZEND_ARG_ARRAY_INFO(0, arguments, 1) -#else - ZEND_ARG_INFO(0, arguments) -#endif -ZEND_END_ARG_INFO() -#else /* PHP 4.x */ -#define SCA_Tuscany__invoke_args NULL -#endif - -PHP_METHOD(SCA_Tuscany, getArgArray); -#if (PHP_MAJOR_VERSION >= 5) -ZEND_BEGIN_ARG_INFO_EX(SCA_Tuscany__getArgArray_args, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 0) -ZEND_END_ARG_INFO() -#else /* PHP 4.x */ -#define SCA_Tuscany__getArgArray_args NULL -#endif - -#ifdef __cplusplus -} // extern "C" -#endif - - - -#endif /* PHP_HAVE_SCA */ - -#endif /* PHP_SCA_H */ - - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: noet sw=4 ts=4 fdm=marker - * vim<600: noet sw=4 ts=4 - */ diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/sca.cpp b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/sca.cpp deleted file mode 100644 index 4078226f63..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/sca.cpp +++ /dev/null @@ -1,517 +0,0 @@ -/* - * 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. - */ - -/* $ Id: $ */ - -#ifdef WIN32 - -// some strangeness in the build that causes -// WinSock.h and WinSock2.h to be included leading to redefinitions -#define _WINSOCKAPI_ - -#endif //WIN32 - -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/php/PHPServiceProxy.h" -#include "commonj/sdo/RefCountingPointer.h" - -using namespace std; -using namespace tuscany::sca; -using namespace tuscany::sca::model; -using namespace tuscany::sca::php; -using namespace commonj::sdo; - -#define HAVE_SCA 1 - - -#include "php_sca.h" -#include "sca.h" - -#if HAVE_SCA - -#include "php_sdo.h" -#include "php_sdo_int.h" -/* {{{ Class definitions */ - -/* {{{ Class SCA_Tuscany */ - -static zend_class_entry * SCA_Tuscany_ce_ptr = NULL; - -/* {{{ Methods */ - -/* {{{ proto void __construct(int operation_handle) - */ -PHP_METHOD(SCA_Tuscany, __construct) -{ - zval *_this_zval = getThis(); - zend_class_entry *_this_ce = Z_OBJCE_P(_this_zval); - - long operation_handle = 0; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &operation_handle) == FAILURE) { - return; - } - - if (!operation_handle) { - php_error(E_ERROR, "SCA_Tuscany ctor called with NULL operation"); - } - - PROP_SET_LONG(operation, operation_handle); -} -/* }}} __construct */ - -/* {{{ proto int invoke(string component_name, string reference_name, string method_name, array arguments) - Invoke a Tuscany component */ -PHP_METHOD(SCA_Tuscany, invoke) -{ - //zval * _this_zval = NULL; - const char * component_name = NULL; - int component_name_len = 0; - const char * reference_name = NULL; - int reference_name_len = 0; - const char * method_name = NULL; - int method_name_len = 0; - zval * arguments = NULL; - HashTable * arguments_hash = NULL; - - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sssa/", - &component_name, &component_name_len, - &reference_name, &reference_name_len, - &method_name, &method_name_len, - &arguments) == FAILURE) { - return; - } - - arguments_hash = HASH_OF(arguments); - - // find the correct service proxy - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - Component* component = runtime->getCurrentComponent(); - Reference* ref = component->findReference(reference_name); - if(!ref) { - char *class_name; - char *space; - class_name = get_active_class_name(&space TSRMLS_CC); - php_error(E_ERROR, - "%s%s%s(): Can't find reference %s", - class_name, - space, - get_active_function_name(TSRMLS_C), - reference_name); - return; - } - - ReferenceBinding* refBinding = ref->getBinding(); - PHPServiceProxy *serviceProxy = (PHPServiceProxy*) refBinding->getServiceProxy(); - - // construct an operation structure - Operation operation(method_name); - - // add the parameters to the operation - for ( zend_hash_internal_pointer_reset(arguments_hash); - zend_hash_has_more_elements(arguments_hash) == SUCCESS; - zend_hash_move_forward(arguments_hash) ) - { - zval **data; - - if ( zend_hash_get_current_data(arguments_hash, - (void**)&data ) == FAILURE ) - { - continue; - } - - char *hashKey; - uint hashKeyLength; - ulong hashIndex; - int type; - - type = zend_hash_get_current_key_ex(arguments_hash, - &hashKey, - &hashKeyLength, - &hashIndex, - 0, - NULL); - - switch(Z_TYPE_PP(data)) - { - case IS_NULL: - { - //printf("NULL argument"); - break; - } - case IS_BOOL: - { - convert_to_boolean(*data); - bool *newBool = new bool; - *newBool = ZEND_TRUTH(Z_BVAL_PP(data)); - operation.addParameter(newBool); - break; - } - case IS_LONG: - { - convert_to_long(*data); - long *newLong = new long; - *newLong = Z_LVAL_PP(data); - operation.addParameter(newLong); - break; - } - case IS_DOUBLE: - { - //convert_to_double(*data); - //double *newDouble = new double; - convert_to_double(*data); - float *newDouble = new float; - *newDouble = (float)Z_DVAL_PP(data); - operation.addParameter(newDouble); - break; - } - case IS_STRING: - { - convert_to_string(*data); - string newString (Z_STRVAL_PP(data)); - operation.addParameter(&newString); - break; - } - case IS_OBJECT: - { - // convert the PHP SDO into a Tuscany SDO - DataObjectPtr sdo = sdo_do_get(*data TSRMLS_CC); - operation.addParameter(&sdo); - break; - } - default: - { - char *class_name; - char *space; - class_name = get_active_class_name(&space TSRMLS_CC); - php_error(E_ERROR, - "%s%s%s(): Input argument type %d not supported on invoke", - class_name, - space, - get_active_function_name(TSRMLS_C), - Z_TYPE_PP(data)); - } - } - } - - // call the proxy - serviceProxy->invokeService(operation); - - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - ZVAL_BOOL(return_value, *(bool*)operation.getReturnValue()); - break; - } - case Operation::SHORT: - case Operation::USHORT: - case Operation::LONG: - case Operation::ULONG: - { - ZVAL_LONG(return_value, *(long*)operation.getReturnValue()); - break; - } - case Operation::FLOAT: - case Operation::DOUBLE: - case Operation::LONGDOUBLE: - { - ZVAL_DOUBLE(return_value, (double)*(float*)operation.getReturnValue()); - break; - } - case Operation::CHARS: - { - ZVAL_STRING(return_value, (char*)operation.getReturnValue(), 1); - break; - } - case Operation::STRING: - { - ZVAL_STRING(return_value, (char*)((string*)operation.getReturnValue())->c_str(), 1); - break; - } - case Operation::VOID_TYPE: - { - // do nothing - break; - } - case Operation::DATAOBJECT: - { - // convert the tuscany SDO into a PHP SDO - sdo_do_new(return_value, *(DataObjectPtr*)operation.getReturnValue() TSRMLS_CC); - break; - } - default: - { - char *class_name; - char *space; - class_name = get_active_class_name(&space TSRMLS_CC); - php_error(E_ERROR, - "%s%s%s(): Response type %d not supported on invoke", - class_name, - space, - get_active_function_name(TSRMLS_C), - operation.getReturnType()); - } - } - -} -/* }}} invoke */ - -/* {{{ proto array getArgArray() - return the arguments for the operation as an array */ -PHP_METHOD(SCA_Tuscany, getArgArray) -{ - zval * _this_zval = getThis(); - zend_class_entry *_this_ce = Z_OBJCE_P(_this_zval); - - if (ZEND_NUM_ARGS() > 0) { - WRONG_PARAM_COUNT; - } - - array_init(return_value); - - // get the operation object from the object properties - Operation *operation = (Operation *)PROP_GET_LONG(operation); - - // get the parameters from the operation structure - for(unsigned int i = 0; i < operation->getNParms(); i++) - { - const Operation::Parameter& parm = operation->getParameter(i); - //printf("Arg %d type %d\n", i, parm.getType()); - switch(parm.getType()) - { - case Operation::BOOL: - { - add_next_index_bool(return_value,(int)*(bool*)parm.getValue() ); - break; - } - case Operation::SHORT: - case Operation::USHORT: - case Operation::LONG: - case Operation::ULONG: - { - add_next_index_long(return_value,*(long*)parm.getValue() ); - break; - } - case Operation::FLOAT: - { - add_next_index_double(return_value,(double)*(float*)parm.getValue() ); - break; - } - case Operation::DOUBLE: - case Operation::LONGDOUBLE: - { - add_next_index_double(return_value,*(double*)parm.getValue() ); - break; - } - case Operation::CHARS: - { - add_next_index_string(return_value,*(char**)parm.getValue(), 1 ); - break; - } - case Operation::STRING: - { - add_next_index_string(return_value,(char*)(*(string*)parm.getValue()).c_str(), 1 ); - break; - } - case Operation::DATAOBJECT: - { - // convert the tuscany SDO into a PHP SDO - - // create the object - zval *sdo; - ALLOC_INIT_ZVAL(sdo); - sdo_do_new(sdo, *(DataObjectPtr*)parm.getValue() TSRMLS_CC); - - // add it to the arg array - add_next_index_zval(return_value, sdo); - break; - } - default: - { - char *class_name; - char *space; - class_name = get_active_class_name(&space TSRMLS_CC); - php_error(E_ERROR, - "%s%s%s(): Argument type %d not supported", - class_name, - space, - get_active_function_name(TSRMLS_C), - parm.getType()); - } - } - } -} -/* }}} getArgArray */ - -static zend_function_entry SCA_Tuscany_methods[] = { - PHP_ME(SCA_Tuscany, __construct, SCA_Tuscany____construct_args, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) - PHP_ME(SCA_Tuscany, invoke, SCA_Tuscany__invoke_args, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) - PHP_ME(SCA_Tuscany, getArgArray, SCA_Tuscany__getArgArray_args, ZEND_ACC_PUBLIC) - { NULL, NULL, NULL } -}; - -/* }}} Methods */ - -static void class_init_SCA_Tuscany(TSRMLS_D) -{ - zend_class_entry ce; - - INIT_CLASS_ENTRY(ce, "SCA_Tuscany", SCA_Tuscany_methods); - SCA_Tuscany_ce_ptr = zend_register_internal_class(&ce TSRMLS_CC); - - /* {{{ Property registration */ - - zend_declare_property_null(SCA_Tuscany_ce_ptr, - "operation", sizeof("operation") -1, - ZEND_ACC_PUBLIC TSRMLS_CC); - - /* }}} Property registration */ - -} - -/* }}} Class SCA_Tuscany */ - -/* }}} Class definitions*/ - -/* {{{ sca_functions[] */ -function_entry sca_functions[] = { - { NULL, NULL, NULL } -}; -/* }}} */ - -/* {{{ cross-extension dependencies */ - -#if ZEND_EXTENSION_API_NO >= 220050617 -static zend_module_dep sca_deps[] = { - ZEND_MOD_REQUIRED("sdo") - {NULL, NULL, NULL, 0} -}; -#endif -/* }}} */ - -/* {{{ sca_module_entry */ -zend_module_entry sca_module_entry = { -#if ZEND_EXTENSION_API_NO >= 220050617 - STANDARD_MODULE_HEADER_EX, NULL, - sca_deps, -#else - STANDARD_MODULE_HEADER, -#endif - - "sca", - sca_functions, - PHP_MINIT(sca), /* Replace with NULL if there is nothing to do at php startup */ - PHP_MSHUTDOWN(sca), /* Replace with NULL if there is nothing to do at php shutdown */ - NULL, /* Replace with NULL if there is nothing to do at request start */ - NULL, /* Replace with NULL if there is nothing to do at request end */ - PHP_MINFO(sca), - "0.0.1", - STANDARD_MODULE_PROPERTIES -}; -/* }}} */ - -#ifdef COMPILE_DL_SCA -extern "C" { -ZEND_GET_MODULE(sca) -} // extern "C" -#endif - - -/* {{{ PHP_MINIT_FUNCTION */ -PHP_MINIT_FUNCTION(sca) -{ - /* We use the SDO extension for reference because it is a prereq */ - zend_module_entry *req_module_entry; - char *req_module_name = "libxml"; - if (zend_hash_find(&module_registry, req_module_name, strlen(req_module_name)+1, (void**)&req_module_entry) == SUCCESS) { - if (req_module_entry->zend_debug != ZEND_DEBUG || - req_module_entry->zts != USING_ZTS || - req_module_entry->zend_api != ZEND_MODULE_API_NO) { - php_error(E_ERROR, - "Cannot initialize module sca.\nModule sca compiled with module API=%d, debug=%d, thread-safety=%d\nModule %n compiled with module API=%d, debug=%d, thread-safety=%d\nThese options need to match", - req_module_name, - ZEND_MODULE_API_NO, ZEND_DEBUG, USING_ZTS, - req_module_entry->zend_api, req_module_entry->zend_debug, req_module_entry->zts); - return FAILURE; - } - } else { - /* The dependency checker should already have found this, but to be on the safe side ... */ - php_error (E_ERROR, - "Cannot load module sca because required module %n is not loaded", - req_module_name); - return FAILURE; - } - - class_init_SCA_Tuscany(TSRMLS_C); - - return SUCCESS; -} -/* }}} */ - - -/* {{{ PHP_MSHUTDOWN_FUNCTION */ -PHP_MSHUTDOWN_FUNCTION(sca) -{ - /* - * There is some corruption going on at shutdown. - * The following hack eliminates the symptom, but there's probably still - * an underlying problem. - */ - free(SCA_Tuscany_ce_ptr->name); - SCA_Tuscany_ce_ptr->name = NULL; - destroy_zend_class(&SCA_Tuscany_ce_ptr); - SCA_Tuscany_ce_ptr = NULL; - - return SUCCESS; -} -/* }}} */ - -/* {{{ PHP_MINFO_FUNCTION */ -PHP_MINFO_FUNCTION(sca) -{ - php_info_print_box_start(0); - php_printf("<p>SCA Extension</p>\n"); - php_printf("<p>Version 0.0.1alpha (2007-01-15)</p>\n"); - php_printf("<p><b>Authors:</b></p>\n"); - php_printf("<p>Simon Laws <slaws@php.net> (lead)</p>\n"); - php_printf("<p>Caroline Maynard <cem@php.net> (lead)</p>\n"); - php_info_print_box_end(); - php_info_print_table_start(); - php_info_print_table_header(2, "SCA", "enabled"); - php_info_print_table_row(2, "SCA Version", "0.0.1"); - php_info_print_table_end(); - -} -/* }}} */ - -/* Other functions not directly related to implementing the - SCA_Tuscany extension */ - -#endif /* HAVE_SCA */ - - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: noet sw=4 ts=4 fdm=marker - * vim<600: noet sw=4 ts=4 - */ diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/sca.h b/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/sca.h deleted file mode 100644 index 5bbc9001dc..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/src/tuscany/sca/php/sca.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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. - */ - -/* $ Id: $ */ - -#ifndef SCA_H -#define SCA_H - -#include "tuscany/sca/core/Operation.h" - -#include <main/php.h> - -#ifdef __cplusplus -extern "C" { -#endif - -extern zend_module_entry sca_module_entry; - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif /* SCA_H */ - - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: noet sw=4 ts=4 fdm=marker - * vim<600: noet sw=4 ts=4 - */ diff --git a/sca-cpp/trunk/contrib/runtime/extensions/php/xsd/sca-implementation-php.xsd b/sca-cpp/trunk/contrib/runtime/extensions/php/xsd/sca-implementation-php.xsd deleted file mode 100644 index c40d63799a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/php/xsd/sca-implementation-php.xsd +++ /dev/null @@ -1,41 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <include schemaLocation="../../../xsd/sca-core.xsd"/> - - <element name="implementation.php" type="sca:PHPImplementation" substitutionGroup="sca:implementation"/> - <complexType name="PHPImplementation"> - <complexContent> - <extension base="sca:Implementation"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="module" type="NCName" use="required"/> - <attribute name="class" type="Name" use="optional"/> - <anyAttribute namespace="##any" processContents="lax"/> - </extension> - </complexContent> - </complexType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/python/Makefile.am deleted file mode 100644 index 83e70b4b94..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -# 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. - -SUBDIRS = src - -datadir=$(prefix)/extensions/python - -nobase_data_DATA = xsd/*.xsd - -EXTRA_DIST = xsd
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/python/src/Makefile.am deleted file mode 100644 index 15d75f8c42..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/Makefile.am +++ /dev/null @@ -1,63 +0,0 @@ -# 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. - -libdir=$(prefix)/extensions/python/lib -lib_LTLIBRARIES = libtuscany_sca_python.la - -pydir=$(prefix)/extensions/python/lib -py_DATA = tuscany/sca/python/sca_proxy.py -EXTRA_DIST = tuscany/sca/python/sca_proxy.py - -rootdir=$(prefix)/extensions/python - -noinst_HEADERS = \ -tuscany/sca/python/*.h \ -tuscany/sca/python/model/*.h - -libtuscany_sca_python_la_SOURCES = \ -tuscany/sca/python/PythonExtension.cpp \ -tuscany/sca/python/PythonImplementationExtension.cpp \ -tuscany/sca/python/PythonInterfaceExtension.cpp \ -tuscany/sca/python/PythonServiceWrapper.cpp \ -tuscany/sca/python/PythonServiceProxy.cpp \ -tuscany/sca/python/sca_module.cpp \ -tuscany/sca/python/model/PythonImplementation.cpp \ -tuscany/sca/python/model/PythonInterface.cpp \ -tuscany/sca/python/model/PythonReferenceBinding.cpp \ -tuscany/sca/python/model/PythonServiceBinding.cpp - -# Need python env varibles set. e.g: -# PYTHON_LIB=/usr/lib -# PYTHON_INCLUDE=/usr/include/python2.4 -# PYTHON_VERSION=python2.4 -libtuscany_sca_python_la_LIBADD = -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca \ - -L${PYTHON_LIB} -l${PYTHON_VERSION} - -INCLUDES = -Imodel -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include \ - -I${PYTHON_INCLUDE} - -moduledir=$(prefix)/extensions/python/module -extension = libtuscany_sca_python$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) - -rm -f $(libdir)/sca.so - $(LN_S) $(libdir)/libtuscany_sca_python$(libsuffix) $(libdir)/sca.so diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonExtension.cpp deleted file mode 100644 index 0274ffc774..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonExtension.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#include "tuscany/sca/python/PythonExtension.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/python/PythonImplementationExtension.h" -#include "tuscany/sca/python/PythonInterfaceExtension.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_python_initialize() - { - tuscany::sca::python::PythonExtension::initialize(); - } -} - -namespace tuscany -{ - namespace sca - { - namespace python - { - // =================================================================== - // Constructor for the PythonExtension class. - // =================================================================== - PythonExtension::PythonExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the PythonExtension class. - // =================================================================== - PythonExtension::~PythonExtension() - { - logentry(); - } - - void PythonExtension::initialize() - { - logentry(); - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - runtime->registerImplementationExtension(new PythonImplementationExtension()); - runtime->registerInterfaceExtension(new PythonInterfaceExtension()); - } - - } // End namespace python - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonExtension.h deleted file mode 100644 index 783f37a228..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonExtension.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_python_pythonextension_h -#define tuscany_sca_python_pythonextension_h - -namespace tuscany -{ - namespace sca - { - namespace python - { - - class PythonExtension - { - public: - /** - * Default constructor - */ - PythonExtension(); - - /** - * Destructor - */ - virtual ~PythonExtension(); - - static void initialize(); - - private: - - }; - - - } // End namespace python - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_python_pythonextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonImplementationExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonImplementationExtension.cpp deleted file mode 100644 index 84cc34c6a4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonImplementationExtension.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#include "tuscany/sca/python/PythonImplementationExtension.h" -#include "tuscany/sca/python/model/PythonImplementation.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace python - { - // =================================================================== - // Constructor for the PythonImplementationExtension class. - // =================================================================== - PythonImplementationExtension::PythonImplementationExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the PythonImplementationExtension class. - // =================================================================== - PythonImplementationExtension::~PythonImplementationExtension() - { - logentry(); - } - - const string PythonImplementationExtension::extensionName("python"); - const string PythonImplementationExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#PythonImplementation"); - - // =================================================================== - // loadModelElement - load the info from implementation.python - // =================================================================== - ComponentType* PythonImplementationExtension::getImplementation(Composite *composite, DataObjectPtr scdlImplementation) - { - logentry(); - - string module = scdlImplementation->getCString("module"); - string path = scdlImplementation->getCString("path"); - string className = scdlImplementation->getCString("class"); - string scopeName = scdlImplementation->getCString("scope"); - - PythonImplementation::Scope scope; - if (scopeName == "composite") - { - scope = PythonImplementation::COMPOSITE; - } - else - { - scope = PythonImplementation::STATELESS; - } - - PythonImplementation* pythonImpl = new PythonImplementation(composite, module, path, className, scope); - - return pythonImpl; - } - - } // End namespace python - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonImplementationExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonImplementationExtension.h deleted file mode 100644 index c94925c3fc..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonImplementationExtension.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_python_pythonimplementationextension_h -#define tuscany_sca_python_pythonimplementationextension_h - -#include "tuscany/sca/extension/ImplementationExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace python - { - - class PythonImplementationExtension : public ImplementationExtension - { - public: - /** - * Default constructor - */ - PythonImplementationExtension(); - - /** - * Destructor - */ - virtual ~PythonImplementationExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#implementation.python") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::ComponentType* getImplementation( - tuscany::sca::model::Composite* composite, - commonj::sdo::DataObjectPtr scdlImplementation); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace python - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_python_pythonimplementationextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonInterfaceExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonInterfaceExtension.cpp deleted file mode 100644 index 1d5e3b6361..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonInterfaceExtension.cpp +++ /dev/null @@ -1,123 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/python/PythonInterfaceExtension.h" -#include "tuscany/sca/python/model/PythonInterface.h" -#include "tuscany/sca/util/Logging.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace python - { - // =================================================================== - // Constructor for the PythonInterfaceExtension class. - // =================================================================== - PythonInterfaceExtension::PythonInterfaceExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the PythonInterfaceExtension class. - // =================================================================== - PythonInterfaceExtension::~PythonInterfaceExtension() - { - logentry(); - } - - const string PythonInterfaceExtension::extensionName("python"); - const string PythonInterfaceExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#PythonInterface"); - - // =================================================================== - // loadModelElement - load the info from interface.python - // =================================================================== - tuscany::sca::model::Interface* PythonInterfaceExtension::getInterface(Composite* composite, DataObjectPtr scdlInterface) - { - logentry(); - - // Determine the type - string ifType = scdlInterface->getType().getName(); - if (ifType == "PythonInterface") - { - bool remotable = scdlInterface->getBoolean("remotable"); - bool conversational = scdlInterface->getBoolean("conversational"); - - return new PythonInterface(remotable, conversational); - //DataObjectList& operationList = scdlInterface->getList("operation"); - - //for(int i=0; i<operationList.size(); i++) - //{ - // string opName = operationList[i]->getCString("name"); - - // if(operationList[i]->hasProperty("returnType")) - // { - // string returnType = operationList[i]->getCString("returnType"); - - // if(returnType == "string") - // { - // pythonInterface->addOperation(opName, PythonInterface::STRING); - // } - // else if(returnType == "int") - // { - // pythonInterface->addOperation(opName, PythonInterface::INT); - // } - // else if(returnType == "long") - // { - // pythonInterface->addOperation(opName, PythonInterface::LONG); - // } - // else if(returnType == "boolean") - // { - // pythonInterface->addOperation(opName, PythonInterface::BOOLEAN); - // } - // else if(returnType == "float") - // { - // pythonInterface->addOperation(opName, PythonInterface::FLOAT); - // } - // else if(returnType == "other") - // { - // pythonInterface->addOperation(opName, PythonInterface::OTHER); - // } - // else - // { - // pythonInterface->addOperation(opName, PythonInterface::NONE); - // } - // } - // else - // { - // // No return Type provided - set as NONE - // pythonInterface->addOperation(opName, PythonInterface::NONE); - // } - //} - // - //return pythonInterface; - } - return 0; - } - - } // End namespace python - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonInterfaceExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonInterfaceExtension.h deleted file mode 100644 index 803d94743d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonInterfaceExtension.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_python_pythoninterfaceextension_h -#define tuscany_sca_python_pythoninterfaceextension_h - -#include "tuscany/sca/extension/InterfaceExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace python - { - - class PythonInterfaceExtension : public InterfaceExtension - { - public: - /** - * Default constructor - */ - PythonInterfaceExtension(); - - /** - * Destructor - */ - virtual ~PythonInterfaceExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#PythonInterface") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::Interface* getInterface( - tuscany::sca::model::Composite* composite, - commonj::sdo::DataObjectPtr scdlInterface); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace python - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_python_pythoninterfaceextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceProxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceProxy.cpp deleted file mode 100644 index 9282bb953c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceProxy.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/python/PythonServiceProxy.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/python/model/PythonReferenceBinding.h" - -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace python - { - - // ============================================ - // Constructor: Create a proxy from a reference - // ============================================ - PythonServiceProxy::PythonServiceProxy(Reference* reference) - : ServiceProxy(reference) - { - logentry(); - - // Get the service wrapper - PythonReferenceBinding* referenceBinding = (PythonReferenceBinding*)reference->getBinding(); - serviceWrapper = referenceBinding->getTargetServiceBinding()->getServiceWrapper(); - } - - // ========================================== - // Constructor: Create a proxy from a service - // ========================================== - PythonServiceProxy::PythonServiceProxy(Service* service) - : ServiceProxy(NULL) - { - logentry(); - - // Get the service wrapper - serviceWrapper = service->getBinding()->getServiceWrapper(); - } - - // ========== - // Destructor - // ========== - PythonServiceProxy::~PythonServiceProxy() - { - logentry(); - } - - // ===================================================== - // invokeService: invoke the service wired to this proxy - // ===================================================== - void PythonServiceProxy::invokeService(Operation& operation) - { - logentry(); - - // Invoke the service - serviceWrapper->invoke(operation); - } - } // End namespace python - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceProxy.h b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceProxy.h deleted file mode 100644 index 64f856f51d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceProxy.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_python_pythonserviceproxy_h -#define tuscany_sca_python_pythonserviceproxy_h - -#include "export.h" -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/util/Library.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/Service.h" - - -namespace tuscany -{ - namespace sca - { - namespace python - { - - /** - * Holds a proxy for a given reference from a component implemented in Python. - */ - class PythonServiceProxy : public ServiceProxy - { - public: - /** - * Create a new service proxy for a reference. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The reference on the source component. - */ - PythonServiceProxy(tuscany::sca::model::Reference* reference); - - /** - * Create a new service proxy for a service. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param service The service on the target component. - */ - SCA_PYTHON_API PythonServiceProxy(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~PythonServiceProxy(); - - /** - * Invoke the wired service. - */ - virtual void invokeService(Operation& operation); - - private: - - /** - * The target service wrapper - */ - ServiceWrapper* serviceWrapper; - }; - - } // End namespace python - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_python_pythonserviceproxy_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceWrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceWrapper.cpp deleted file mode 100644 index cb876827bd..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceWrapper.cpp +++ /dev/null @@ -1,1095 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/python/PythonServiceWrapper.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/python/model/PythonImplementation.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace python - { - - /** - * Prints out PyObject and dir(PyObject) - * for debugging purposes - */ - void printPyObject(char * name, PyObject *pObj) - { - PyObject* pObjRepr = PyObject_Repr(pObj); - loginfo("PyObject %s: %s", name, PyString_AsString(pObjRepr)); - Py_DECREF(pObjRepr); - - PyObject* pObjDir = PyObject_Dir(pObj); - PyObject* pObjDirRepr = PyObject_Repr(pObjDir); - loginfo("PyObject dir(%s): %s", name, PyString_AsString(pObjDirRepr)); - Py_DECREF(pObjDirRepr); - Py_DECREF(pObjDir); - } - - // =========== - // Constructor - // =========== - PythonServiceWrapper::PythonServiceWrapper(Service* service) - : ServiceWrapper(service) - { - logentry(); - - component = service->getComponent(); - implementation = (PythonImplementation*)component->getType(); - - pythonModule = NULL; - pythonClassInstance = NULL; - - // ----------------------------------------------- - // Get the implementation for the target component - // ----------------------------------------------- - PythonImplementation* impl = (PythonImplementation*)component->getType(); - if (!impl) - { - string msg = "Component " + component->getName() + " has no implementation defined"; - throwException(SystemConfigurationException, msg.c_str()); - } - - // Initialize the Python environment - Py_Initialize(); - - // Add the path to the composite (+ any further path specified) to the Python sys.path - string path = component->getComposite()->getRoot(); - if(impl->getModulePath().size() > 0) - { - path += "/" + impl->getModulePath(); - } - - loginfo("Module: %s", impl->getModule().c_str()); - loginfo("Path: %s", path.c_str()); - loginfo("Class: %s", impl->getClass().c_str()); - - PyObject* pSysName = PyString_FromString("sys"); - PyObject* pSys = PyImport_Import(pSysName); - Py_DECREF(pSysName); - - if(pSys != NULL) - { - PyObject* pSysPath = PyObject_GetAttrString(pSys, "path"); - - if(pSysPath != NULL && PyList_Check(pSysPath)) - { - PyObject* pPath = PyString_FromString(path.c_str()); - PyList_Append(pSysPath, pPath); - - Py_DECREF(pPath); - Py_DECREF(pSysPath); - } - Py_DECREF(pSys); - } - - if(&(impl->getModule()) != NULL && impl->getModule().size() > 0) - { - // Now import the module - PyObject* pModuleName = PyString_FromString(impl->getModule().c_str()); - - pythonModule = PyImport_Import(pModuleName); - Py_DECREF(pModuleName); - } - - if (!pythonModule) - { - if(PyErr_Occurred()) - { - PyErr_Print(); - } - string msg = "Failed to load module named " + impl->getModule() + " on path " + path; - throwException(SystemConfigurationException, msg.c_str()); - } - printPyObject("pythonModule",pythonModule); - } - - // ========== - // Destructor - // ========== - PythonServiceWrapper::~PythonServiceWrapper() - { - logentry(); - - Py_XDECREF(pythonClassInstance); - Py_XDECREF(pythonModule); - Py_Finalize(); - } - - // ====================================================================== - // newInstance: create a new class instance - // ====================================================================== - PyObject* PythonServiceWrapper::newInstance() - { - logentry(); - - PythonImplementation* impl = (PythonImplementation*)component->getType(); - string className = impl->getClass(); - - PyObject* pClassInstance = NULL; - if (pythonModule != NULL) - { - if(&className != NULL && className.size() > 0) - { - // We have a class name, so create an instance and use this to invoke the correct function - PyObject* pClass = PyObject_GetAttrString(pythonModule, (char*) className.c_str()); - - if(pClass == NULL) - { - if(PyErr_Occurred()) - { - PyErr_Print(); - } - string msg = "Cannot find class named " + className + " in Python module"; - throwException(SystemConfigurationException, msg.c_str()); - } - - pClassInstance = PyInstance_New(pClass, NULL, NULL); - - if(pClassInstance == NULL || !PyInstance_Check(pClassInstance)) - { - if(PyErr_Occurred()) - { - PyErr_Print(); - } - string msg = "Could not create new instance of class named " + className + " in Python module"; - throwException(ServiceInvocationException, msg.c_str()); - } - Py_XDECREF(pClass); - } - } - return pClassInstance; - } - - // ====================================================================== - // getInstance: get a class instance for this scope - // ====================================================================== - PyObject* PythonServiceWrapper::getInstance() - { - logentry(); - - PythonImplementation::Scope scope = implementation->getScope(); - if (scope == PythonImplementation::COMPOSITE) - { - if (!pythonClassInstance) - { - pythonClassInstance = newInstance(); - } - return pythonClassInstance; - } - else // (scope == PythonImplementation::STATELESS) - { - return newInstance(); - } - } - - // ====================================================================== - // releaseImplementation: release the implementation for this scope - // ====================================================================== - void PythonServiceWrapper::releaseInstance() - { - logentry(); - - PythonImplementation::Scope scope = implementation->getScope(); - if(scope == PythonImplementation::STATELESS) - { - // Delete the class instance if there is one - if(pythonClassInstance != NULL && PyInstance_Check(pythonClassInstance)) - { - Py_DECREF(pythonClassInstance); - pythonClassInstance = NULL; - } - - // Need to reload the module - PyObject* reloadedPythonModule = PyImport_ReloadModule(pythonModule); - - if(reloadedPythonModule != NULL) - { - // Get rid of old pythonModule and replace with the reloaded one - Py_DECREF(pythonModule); - pythonModule = reloadedPythonModule; - } - } - } - - // ====================================================================== - // invoke: wrapper call to service with setting the component context - // ====================================================================== - void PythonServiceWrapper::invoke(Operation& operation) - { - logentry(); - - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - runtime->setCurrentComponent(component); - - - // Load the references & properties into the module - addReferences(pythonModule); - addProperties(pythonModule); - - try - { - loginfo("Operation: %s", operation.getName().c_str()); - - PyObject* pFunc = NULL; - pythonClassInstance = getInstance(); - - if(pythonClassInstance != NULL && PyInstance_Check(pythonClassInstance)) - { - // Get the function from the instance - pFunc = PyObject_GetAttrString(pythonClassInstance, (char*) operation.getName().c_str()); - } - if(pFunc == NULL && pythonModule != NULL) - { - // Get the function directly from the module if it could not be got from an instance - pFunc = PyObject_GetAttrString(pythonModule, (char*) operation.getName().c_str()); - } - if(pFunc == NULL) - { - // Can't get the function from the class or module - string msg = "Python module or class instance has not been created"; - throwException(ServiceInvocationException, msg.c_str()); - } - - if (pFunc && PyCallable_Check(pFunc)) - { - PyObject* pArgs = PyTuple_New(operation.getNParms()); - PyObject* pKeywordsDict = PyDict_New(); - PyObject* pValue = NULL; - - // Load up the xml.etree.ElementTree module for dealing with SDO params and return values - PyObject* elementTreeModuleName = PyString_FromString("xml.etree.ElementTree"); - PyObject* elementTreeModule = PyImport_Import(elementTreeModuleName); - - if(elementTreeModule == NULL) - { - // pre-Python2.5? - try to get an installed elementtree package - elementTreeModuleName = PyString_FromString("elementtree.ElementTree"); - elementTreeModule = PyImport_Import(elementTreeModuleName); - } - if(elementTreeModule == NULL) - { - // Still null - throw a warning but carry on - user may not need XML - logwarning("Could not load Python ElementTree module - is it installed? SDO and XML will not be supported"); - } - - for(unsigned int i = 0; i < operation.getNParms(); i++) - { - const Operation::Parameter& parm = operation.getParameter(i); - switch(parm.getType()) - { - case Operation::BOOL: - { - if( *(bool*)parm.getValue()) - { - //boolean true - pValue = Py_True; - } - else - { - pValue = Py_False; - } - break; - } - case Operation::SHORT: - { - pValue = PyInt_FromLong(*(short*)parm.getValue()); - break; - } - case Operation::USHORT: - { - pValue = PyInt_FromLong(*(unsigned short*)parm.getValue()); - break; - } - case Operation::INT: - { - pValue = PyInt_FromLong(*(int*)parm.getValue()); - break; - } - case Operation::UINT: - { - pValue = PyInt_FromLong(*(unsigned int*)parm.getValue()); - break; - } - case Operation::LONG: - { - pValue = PyLong_FromLong(*(long*)parm.getValue()); - break; - } - case Operation::ULONG: - { - pValue = PyLong_FromUnsignedLong(*(unsigned long*)parm.getValue()); - break; - } - case Operation::FLOAT: - { - pValue = PyFloat_FromDouble(*(float*)parm.getValue()); - break; - } - case Operation::DOUBLE: - { - pValue = PyFloat_FromDouble(*(double*)parm.getValue()); - break; - } - case Operation::LONGDOUBLE: - { - pValue = PyFloat_FromDouble(*(long double*)parm.getValue()); - break; - } - case Operation::CHARS: - { - pValue = PyString_FromString(*(char**)parm.getValue()); - break; - } - case Operation::STRING: - { - pValue = PyString_FromString((*(string*)parm.getValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - if(elementTreeModule != NULL) - { - DataObjectPtr dob = *(DataObjectPtr*)parm.getValue(); - - // Convert a DataObject to a xml.etree.ElementTree Element object - Composite* composite = component->getComposite(); - XMLHelperPtr xmlHelper = composite->getXMLHelper(); - char* str = xmlHelper->save( - dob, - dob->getType().getURI(), - dob->getType().getName()); - - loginfo("Converting SDO DataObject to Python ElementTree: %s", str); - - // Get the xml.etree.ElementTree.XML function - PyObject* elementTreeXMLFunc = PyObject_GetAttrString(elementTreeModule, "XML"); - - // Call the XML() function with the XML string - pValue = PyObject_CallFunction(elementTreeXMLFunc, "s", str); - - Py_DECREF(elementTreeXMLFunc); - } - else - { - throwException(ServiceDataException, "Could not convert SDO DataObject to Python ElementTree as ElementTree module could not be loaded"); - } - break; - } - default: - throwException(ServiceDataException, "Operation parameter type not supported"); - } - - if (!pValue) - { - Py_DECREF(pArgs); - - if(PyErr_Occurred()) - { - PyErr_Print(); - } - - string msg = "Error converting parameter into Python type"; - throwException(ServiceDataException, msg.c_str()); - - } - //printPyObject("Param value", pValue); - - // If we have a param name, put it in the keyword args - if(parm.hasName()) - { - PyDict_SetItemString(pKeywordsDict, parm.getName().c_str(), pValue); - Py_DECREF(pValue); - } - else - { - /* pValue reference stolen here: */ - PyTuple_SetItem(pArgs, i, pValue); - } - } - - // Resize the args to the correct length - _PyTuple_Resize(&pArgs, operation.getNParms() - PyDict_Size(pKeywordsDict)); - - loginfo("Calling python func with %d args and %d keyword args", PyTuple_Size(pArgs), PyDict_Size(pKeywordsDict)); - - pValue = PyObject_Call(pFunc, pArgs, pKeywordsDict); - //printPyObject("Return value", pValue); - - Py_DECREF(pArgs); - if (pValue != NULL) - { - char buf[20]; - if(PyInt_Check(pValue) || PyLong_Check(pValue)) - { - long* data = new long; - if(PyInt_Check(pValue)) - { - loginfo("Int return value: %d", PyInt_AsLong(pValue)); - *data = PyInt_AsLong(pValue); - } - else - { - loginfo("Long return value: %l", PyLong_AsLong(pValue)); - *data = PyLong_AsLong(pValue); - } - - // Check if the return type has already been set (for typed languages) - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - *(bool*)operation.getReturnValue() = (*data != 0); - break; - } - case Operation::SHORT: - { - *(short*)operation.getReturnValue() = (short)*data; - break; - } - case Operation::USHORT: - { - *(unsigned short*)operation.getReturnValue() = (unsigned short)*data; - break; - } - case Operation::INT: - { - *(int*)operation.getReturnValue() = (int)*data; - break; - } - case Operation::UINT: - { - *(unsigned int*)operation.getReturnValue() = (unsigned int)*data; - break; - } - case Operation::LONG: - { - *(long*)operation.getReturnValue() = (long)*data; - break; - } - case Operation::ULONG: - { - *(unsigned long*)operation.getReturnValue() = (unsigned long)*data; - break; - } - case Operation::FLOAT: - { - *(float*)operation.getReturnValue() = (float)*data; - break; - } - case Operation::DOUBLE: - { - *(double*)operation.getReturnValue() = (double)*data; - break; - } - case Operation::LONGDOUBLE: - { - *(long double*)operation.getReturnValue() = (long double)*data; - break; - } - case Operation::CHARS: - { - sprintf(buf, "%d", *data); - *(char**)operation.getReturnValue() = buf; - break; - } - case Operation::STRING: - { - sprintf(buf, "%d", *data); - *(string*)operation.getReturnValue() = buf; - break; - } - default: - { - // The type is set as something else or has not been set - operation.setReturnValue(data); - } - } - } - else if(PyBool_Check(pValue)) - { - loginfo("Bool return value: %d", (pValue == Py_True)); - bool* data = new bool; - *data = (pValue == Py_True); - - // Check if the return type has already been set (for typed languages) - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - *(bool*)operation.getReturnValue() = *data; - break; - } - case Operation::SHORT: - { - *(short*)operation.getReturnValue() = (short)*data; - break; - } - case Operation::USHORT: - { - *(unsigned short*)operation.getReturnValue() = (unsigned short)*data; - break; - } - case Operation::INT: - { - *(int*)operation.getReturnValue() = (int)*data; - break; - } - case Operation::UINT: - { - *(unsigned int*)operation.getReturnValue() = (unsigned int)*data; - break; - } - case Operation::LONG: - { - *(long*)operation.getReturnValue() = (long)*data; - break; - } - case Operation::ULONG: - { - *(unsigned long*)operation.getReturnValue() = (unsigned long)*data; - break; - } - case Operation::FLOAT: - { - *(float*)operation.getReturnValue() = (float)*data; - break; - } - case Operation::DOUBLE: - { - *(double*)operation.getReturnValue() = (double)*data; - break; - } - case Operation::LONGDOUBLE: - { - *(long double*)operation.getReturnValue() = (long double)*data; - break; - } - case Operation::CHARS: - { - if(*data) - { - *(char**)operation.getReturnValue() = "true"; - } - else - { - *(char**)operation.getReturnValue() = "false"; - } - break; - } - case Operation::STRING: - { - if(*data) - { - *(string*)operation.getReturnValue() = "true"; - } - else - { - *(string*)operation.getReturnValue() = "false"; - } - break; - } - default: - { - // The type is set as something else or has not been set - operation.setReturnValue(data); - } - } - } - else if(PyFloat_Check(pValue)) - { - loginfo("Float return value: %f", PyFloat_AsDouble(pValue)); - - double* data = new double; - *data = PyFloat_AsDouble(pValue); - - // Check if the return type has already been set (for typed languages) - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - *(bool*)operation.getReturnValue() = (*data != 0.0); - break; - } - case Operation::SHORT: - { - *(short*)operation.getReturnValue() = (short)*data; - break; - } - case Operation::USHORT: - { - *(unsigned short*)operation.getReturnValue() = (unsigned short)*data; - break; - } - case Operation::INT: - { - *(int*)operation.getReturnValue() = (int)*data; - break; - } - case Operation::UINT: - { - *(unsigned int*)operation.getReturnValue() = (unsigned int)*data; - break; - } - case Operation::LONG: - { - *(long*)operation.getReturnValue() = (long)*data; - break; - } - case Operation::ULONG: - { - *(unsigned long*)operation.getReturnValue() = (unsigned long)*data; - break; - } - case Operation::FLOAT: - { - *(float*)operation.getReturnValue() = (float)*data; - break; - } - case Operation::DOUBLE: - { - *(double*)operation.getReturnValue() = (double)*data; - break; - } - case Operation::LONGDOUBLE: - { - *(long double*)operation.getReturnValue() = (long double)*data; - break; - } - case Operation::CHARS: - { - sprintf(buf, "%f", *data); - *(char**)operation.getReturnValue() = buf; - break; - } - case Operation::STRING: - { - sprintf(buf, "%f", *data); - *(string*)operation.getReturnValue() = buf; - break; - } - default: - { - // The type is set as something else or has not been set - operation.setReturnValue(data); - } - } - } - else if(PyString_Check(pValue)) - { - loginfo("String return value: %s", PyString_AsString(pValue)); - const char** data = new const char*; - *data = PyString_AsString(pValue); - - // Check if the return type has already been set (for typed languages) - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - // If the string is empty or "0" or "false" set to false, otherwise true - if(strlen(*data) == 0 || strcmp(*data, "0") == 0 || strcmp(*data, "false") == 0) - { - *(bool*)operation.getReturnValue() = false; - } - else - { - *(bool*)operation.getReturnValue() = true; - } - break; - } - case Operation::SHORT: - { - *(short*)operation.getReturnValue() = (short)atoi(*data); - break; - } - case Operation::USHORT: - { - *(unsigned short*)operation.getReturnValue() = (unsigned short)atoi(*data); - break; - } - case Operation::INT: - { - *(int*)operation.getReturnValue() = (int)atoi(*data); - break; - } - case Operation::UINT: - { - *(unsigned int*)operation.getReturnValue() = (unsigned int)atoi(*data); - break; - } - case Operation::LONG: - { - *(long*)operation.getReturnValue() = (long)atol(*data); - break; - } - case Operation::ULONG: - { - *(unsigned long*)operation.getReturnValue() = (unsigned long)atol(*data); - break; - } - case Operation::FLOAT: - { - *(float*)operation.getReturnValue() = (float)atof(*data); - break; - } - case Operation::DOUBLE: - { - *(double*)operation.getReturnValue() = (double)atof(*data); - break; - } - case Operation::LONGDOUBLE: - { - *(long double*)operation.getReturnValue() = (long double)atof(*data); - break; - } - case Operation::CHARS: - { - *(const char**)operation.getReturnValue() = *data; - break; - } - case Operation::STRING: - { - *(string*)operation.getReturnValue() = *data; - break; - } - default: - { - // The type is set as something else or has not been set - string* stringData = new string; - *stringData = *data; - operation.setReturnValue(stringData); - } - } - } - else - { - PyObject* pIsElement = Py_False; - - if(elementTreeModule != NULL) - { - // Get the xml.etree.ElementTree.iselement function - PyObject* elementTreeIsElementFunc = PyObject_GetAttrString(elementTreeModule, "iselement"); - - // Call the iselement() function with pValue to check it - pIsElement = PyObject_CallFunction(elementTreeIsElementFunc, "O", pValue); - Py_DECREF(elementTreeIsElementFunc); - } - - if(PyObject_IsTrue(pIsElement) == 1) - { - // pValue is an xml.etree.ElementTree.Element - convert to SDO - PyObject* elementTreeToStringFunc = PyObject_GetAttrString(elementTreeModule, "tostring"); - PyObject* pElemString = PyObject_CallFunction(elementTreeToStringFunc, "O", pValue); - char* data = PyString_AsString(pElemString); - - loginfo("Converting Python ElementTree to SDO DataObject: %s", data); - - Composite* composite = component->getComposite(); - XMLHelperPtr xmlHelper = composite->getXMLHelper(); - XMLDocumentPtr xmlDoc = xmlHelper->load(data); - DataObjectPtr* dataObjectData = new DataObjectPtr; - if (xmlDoc != NULL) - { - *dataObjectData = xmlDoc->getRootDataObject(); - } - else - { - *dataObjectData = NULL; - } - - if (*dataObjectData != NULL) - { - operation.setReturnValue(dataObjectData); - } - else - { - string msg = "xml.etree.ElementTree.Element could not be converted to a DataObject"; - throwException(ServiceDataException, msg.c_str()); - } - - Py_DECREF(elementTreeToStringFunc); - Py_DECREF(pElemString); - } - else - { - PyObject* valueRepr = PyObject_Repr(pValue); - PyObject* valueType = PyObject_Type(pValue); - PyObject* valueTypeRepr = PyObject_Repr(valueType); - loginfo("Return value of unknown type (%s) has repr: %s", PyString_AsString(valueTypeRepr), PyString_AsString(valueRepr)); - Py_DECREF(valueTypeRepr); - Py_DECREF(valueType); - Py_DECREF(valueRepr); - } - - Py_DECREF(pIsElement); - } - - Py_DECREF(elementTreeModule); - Py_DECREF(elementTreeModuleName); - Py_DECREF(pValue); - } - else - { - Py_DECREF(pFunc); - Py_XDECREF(elementTreeModule); - Py_XDECREF(elementTreeModuleName); - - string msg = "Error whilst calling Python function "+operation.getName()+": "; - if(PyErr_Occurred()) - { - PyObject *pErrorType, *pErrorValue, *pErrorTraceback; - PyErr_Fetch(&pErrorType, &pErrorValue, &pErrorTraceback); - - if (pErrorType != NULL && pErrorValue != NULL) - { - PyObject* pErrorTypeStr = PyObject_Str(pErrorType); - PyObject* pErrorValueStr = PyObject_Str(pErrorValue); - msg += PyString_AsString(pErrorTypeStr); - msg += " : "; - msg += PyString_AsString(pErrorValueStr); - Py_DECREF(pErrorTypeStr); - Py_DECREF(pErrorValueStr); - } - else - { - msg += "No Python Error information provided"; - } - Py_XDECREF(pErrorType); - Py_XDECREF(pErrorValue); - Py_XDECREF(pErrorTraceback); - - PyErr_Print(); - } - - throwException(ServiceInvocationException, msg.c_str()); - } - } - else - { - if (PyErr_Occurred()) - { - PyErr_Print(); - } - string msg = "Cannot find the operation named " + operation.getName() + " in the Python module"; - throwException(ServiceInvocationException, msg.c_str()); - } - Py_XDECREF(pFunc); - - } - catch (...) - { - releaseInstance(); - runtime->unsetCurrentComponent(); - throw; - } - releaseInstance(); - runtime->unsetCurrentComponent(); - } - - - // ========================================================================== - // Add any properties into the loaded implementation module as Python objects - // ========================================================================== - void PythonServiceWrapper::addProperties(PyObject* module) - { - logentry(); - - // Set all the configured properties - DataObjectPtr properties = component->getProperties(); - PropertyList pl = properties->getInstanceProperties(); - - for (unsigned int i = 0; i < pl.size(); i++) - { - if (properties->isSet(pl[i])) - { - string propName = pl[i].getName(); - string propValue = properties->getCString(pl[i]); - PyObject* property; - - if(pl[i].isMany()) - { - //TODO - deal with properties that are many - } - - switch(pl[i].getTypeEnum()) - { - case Type::BooleanType: - { - if(properties->getBoolean(pl[i])) - { - property = Py_True; - } - else - { - property = Py_False; - } - Py_INCREF(property); - break; - } - case Type::BigIntegerType: - case Type::BigDecimalType: - case Type::LongType: - { - property = PyLong_FromLongLong(properties->getLong(pl[i])); - break; - } - case Type::ShortType: - case Type::IntType: - { - property = PyInt_FromLong(properties->getInt(pl[i])); - break; - } - case Type::DoubleType: - case Type::FloatType: - { - property = PyFloat_FromDouble(properties->getDouble(pl[i])); - break; - } - case Type::DataObjectType: - { - // Serialize a DataObject and create a python string object from the XML - DataObjectPtr data = properties->getDataObject(pl[i]); - XMLHelperPtr helper = HelperProvider::getXMLHelper(properties->getDataFactory()); - string serializedData = helper->save(data, - data->getType().getURI(), - data->getType().getName()); - - loginfo("Converting SDO DataObject to Python ElementTree: %s", serializedData.c_str()); - - // Get the xml.etree.ElementTree.XML function - PyObject* elementTreeModuleName = PyString_FromString("xml.etree.ElementTree"); - PyObject* elementTreeModule = PyImport_Import(elementTreeModuleName); - PyObject* elementTreeXMLFunc = PyObject_GetAttrString(elementTreeModule, "XML"); - - // Call the XML() function with the XML string - property = PyObject_CallFunction(elementTreeXMLFunc, "s", serializedData.c_str()); - - Py_DECREF(elementTreeXMLFunc); - Py_DECREF(elementTreeModule); - Py_DECREF(elementTreeModuleName); - break; - } - case Type::CharacterType: - case Type::StringType: - case Type::TextType: - case Type::UriType: - default: - { - // For strings and by default create a python string object - property = PyString_FromString(propValue.c_str()); - break; - } - } - - int success = PyModule_AddObject(module, (char*)propName.c_str(), property); - - if(success == 0) - { - loginfo("Added property named %s with type %s and value %s to python module", propName.c_str(), pl[i].getType().getName(), propValue.c_str()); - } - else - { - logwarning("Failed to add property named %s to python module", propName.c_str()); - } - } - } - } - - - // ====================================================================== - // Add any references into the loaded implementation module as class instances that look like - // the classes defined in the interface.python xml - // ====================================================================== - void PythonServiceWrapper::addReferences(PyObject* module) - { - logentry(); - - // Import the TuscanySCA python-extension module - PyObject* pModuleName = PyString_FromString("sca_proxy"); - PyObject* sca_proxy_module = PyImport_Import(pModuleName); - Py_DECREF(pModuleName); - - if(!sca_proxy_module) - { - if(PyErr_Occurred()) - { - PyErr_Print(); - } - string msg = "Failed to load the sca_proxy Python module - has it been successfully installed?\nReferences from Python components will not be supported"; - logwarning(msg.c_str()); - } - else - { - // Get the sca_proxy class - PyObject* sca_proxy_class = PyObject_GetAttrString(sca_proxy_module, "sca_proxy_class"); - - // Iterate through the references of the current component, adding - // each reference to the module - Component::REFERENCE_MAP references = component->getReferences(); - Component::REFERENCE_MAP::iterator pos; - for( pos = references.begin(); pos != references.end(); ++pos) - { - ReferenceType* referenceType = ((Reference*) pos->second)->getType(); - string referenceName = referenceType->getName(); - - PyObject* tuscanySCAArgs = PyTuple_New(2); - PyObject* refName = PyString_FromString(referenceType->getName().c_str()); - PyTuple_SetItem(tuscanySCAArgs, 0, refName); - Py_INCREF(Py_True); - PyTuple_SetItem(tuscanySCAArgs, 1, Py_True); - - // Create the instance of the TuscanySCAReference class - PyObject* sca_proxy_classInstance = PyInstance_New(sca_proxy_class, tuscanySCAArgs, NULL); - Py_DECREF(tuscanySCAArgs); - - int success = PyModule_AddObject(module, (char*)referenceName.c_str(), sca_proxy_classInstance); - - if(success == 0) - { - loginfo("Successfully added sca_proxy_class instance as %s to pythonModule", referenceName.c_str()); - } - else - { - logwarning("Failed to add sca_proxy_class instance as %s to pythonModule", referenceName.c_str()); - } - } - Py_DECREF(sca_proxy_module); - } - } - } // End namespace python - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceWrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceWrapper.h deleted file mode 100644 index fbf75b3223..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/PythonServiceWrapper.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_python_pythonservicewrapper_h -#define tuscany_sca_python_pythonservicewrapper_h - - -// undefine _DEBUG so Python does not need it's deebug dll -#ifdef _DEBUG -#undef _DEBUG -#define _SCA_PYTHON_DEBUG -#endif -#include <Python.h> -#ifdef _SCA_PYTHON_DEBUG -#define _DEBUG -#endif - -#include "tuscany/sca/python/export.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/python/model/PythonImplementation.h" - - -namespace tuscany -{ - namespace sca - { - namespace python - { - class PythonInterface; - - /** - * Wraps the service on a component implementation. - * This abstract class is extended by generated code which provides - * the implementation of some of the methods. - * An instance of this class wraps the actual component implementation which - * has been written by a developer of an SCA application. - */ - class PythonServiceWrapper : public ServiceWrapper - { - public: - - /** - * Constructor. - * @param target The component service to which this wrapper refers. - */ - PythonServiceWrapper(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~PythonServiceWrapper(); - - /** - * All business method calls to the target component go through the invoke method. - * @param operation The details of the method, paramaters and return value for the - * business method to be called on the target component. - */ - virtual void invoke(Operation& operation); - - - protected: - - /** - * Return the current instance of the python class. - * @return A pointer to an instance of the python class. - */ - virtual PyObject* getInstance(); - - /** - * Creates a new instance of the python class. - * @return A pointer to a new instance of the python class. - */ - virtual PyObject* newInstance(); - - /** - * Indicates that the current instance of the python module or class - * has been finished with. - */ - virtual void releaseInstance(); - - - private: - /** - * Holds a class instance if a classname is provided. - * Will be constructed each time if scope is set to STATELESS - */ - PyObject* pythonClassInstance; - - /** - * Holds the module - */ - PyObject* pythonModule; - - /** - * Adds references to the provided implementation module or class instance - */ - void addReferences(PyObject* module); - - /** - * Adds properties to the provided implementation module or class instance - */ - void addProperties(PyObject* module); - - /** - * The component to which this wrapper refers. - */ - tuscany::sca::model::Component* component; - - /** - * The component implementation - */ - PythonImplementation* implementation; - - }; - - } // End namespace python - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_python_pythonservicewrapper_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/export.h b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/export.h deleted file mode 100644 index b608a50711..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/export.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_python_export_h -#define tuscany_sca_python_export_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) - -#ifdef TUSCANY_SCA_PYTHON_EXPORTS -#define SCA_PYTHON_API __declspec(dllexport) -#else -#define SCA_PYTHON_API __declspec(dllimport) -#endif - -#else -#include <sys/time.h> -#include <inttypes.h> -#include <stdlib.h> -#define SCA_PYTHON_API -#endif - -#endif // tuscany_sca_export_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonImplementation.cpp b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonImplementation.cpp deleted file mode 100644 index 235468eca9..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonImplementation.cpp +++ /dev/null @@ -1,131 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/python/model/PythonImplementation.h" -#include "tuscany/sca/python/model/PythonServiceBinding.h" -#include "tuscany/sca/python/model/PythonReferenceBinding.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - - namespace python - { - - // Constructor - PythonImplementation::PythonImplementation( - Composite* composite, const string& module, const string& modulePath, const string& className, Scope scope) - : ComponentType(composite, modulePath + "/" + module), - module(module), modulePath(modulePath), className(className), scope(scope) - { - logentry(); - - // Create a default service for this componentType - ServiceType* defaultServiceType = new ServiceType(this, "", NULL, NULL); - addServiceType(defaultServiceType); - } - - PythonImplementation::~PythonImplementation() - { - logentry(); - } - - /** - * Overrides the findReferenceType method in ComponentType. - * This allows us to create references without needing a componentType file. - */ - ReferenceType* PythonImplementation::findReferenceType(const string& referenceName) - { - logentry(); - - ReferenceType* refType = ComponentType::findReferenceType(referenceName); - if(!refType) - { - // The reference has not yet been created - try creating it - refType = new ReferenceType(this, referenceName, NULL, NULL, ReferenceType::ONE_ONE); - addReferenceType(refType); - } - - return refType; - } - - /** - * Overrides the findPropertyType method in ComponentType. - * This allows us to create properties without needing a componentType file. - */ - const commonj::sdo::Property* PythonImplementation::findPropertyType(const string& propertyName) - { - logentry(); - - const commonj::sdo::Property* prop = ComponentType::findPropertyType(propertyName); - if(!prop) - { - ComponentType::addPropertyType(propertyName, "http://www.w3.org/2001/XMLSchema#string", false, NULL); - // Just added it so it should now be available - prop = ComponentType::findPropertyType(propertyName); - loginfo("Added string property named %s to Python component", propertyName.c_str()); - } - - return prop; - } - - void PythonImplementation::initializeComponent(Component* component) - { - logentry(); - ComponentType::initializeComponent(component); - - // Create Python bindings for all the services - const Component::SERVICE_MAP& services = component->getServices(); - Component::SERVICE_MAP::const_iterator iter = services.begin(); - for (unsigned int i=0; i< services.size(); i++) - { - Service *service = iter->second; - PythonServiceBinding* binding = new PythonServiceBinding(service); - service->setBinding(binding); - iter++; - } - - // Create Python bindings for all the references - const Component::REFERENCE_MAP& references = component->getReferences(); - Component::REFERENCE_MAP::const_iterator refiter = references.begin(); - for (int ri=0; ri< references.size(); ri++) - { - Reference *reference = refiter->second; - PythonReferenceBinding* binding = new PythonReferenceBinding(reference); - reference->setBinding(binding); - refiter++; - } - } - - } // End namespace python - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonImplementation.h b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonImplementation.h deleted file mode 100644 index 75b14529bf..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonImplementation.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_python_model_pythonimplementation_h -#define tuscany_sca_python_model_pythonimplementation_h - -#include <string> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/model/ComponentType.h" - - -namespace tuscany -{ - namespace sca - { - namespace python - { - /** - * Holds information about an SCA implementation written in Python - */ - class PythonImplementation : public tuscany::sca::model::ComponentType - { - - public: - /** - * Scope of the component implementation. - */ - enum Scope - { - COMPOSITE, - STATELESS - }; - - /** - * Constructor. - * @param composite The composite containing this implementation. - * @param module Name of the module. - * @param modulePath Path to the module (could be a blank string - * if this is not specified). - * @param className Name of the class in the module (could be a blank string - * if this is not specified). - */ - PythonImplementation(tuscany::sca::model::Composite* composite, - const std::string& module, const std::string& modulePath, const std::string& className, - Scope scope); - - /** - * Destructor - */ - virtual ~PythonImplementation(); - - /** - * Initialize a component of this type. - * @param component The component to initialize. - */ - virtual void initializeComponent(tuscany::sca::model::Component* component); - - /** - * Override the ComponentType::findReferenceType method - * to allow Python components to be defined without requiring - * a componentType side-file - */ - virtual tuscany::sca::model::ReferenceType* findReferenceType(const std::string& referenceName); - - /** - * Override the ComponentType::findPropertyType method - * to allow Python components to be defined without requiring - * a componentType side-file - */ - virtual const commonj::sdo::Property* findPropertyType(const std::string& propertyName); - - - /** - * Returns the name of the module. - * @return The name of the module. - */ - const std::string& getModule() const { return module; } - - /** - * Get the header path. - * @return The pathe element of the header. - */ - const std::string& getModulePath() const { return modulePath; } - - /** - * Get the name of the class. - * @return The class name if specified. - */ - const std::string& getClass() const { return className; } - - /** - * Returns the implementation scope - */ - Scope getScope() const { return scope; } - - private: - - /** - * Name of the module. - */ - std::string module; - - /** - * Path to the module. - */ - std::string modulePath; - - /** - * Name of the class in the header file declaring the implementation. - * May be an empty string if not set in the SCDL file. - */ - std::string className; - - /** - * The implementation scope - */ - Scope scope; - }; - - } // End namespace python - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_python_model_pythonimplementation_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonInterface.cpp b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonInterface.cpp deleted file mode 100644 index 3c30f363b8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonInterface.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/python/export.h" -#include "tuscany/sca/python/model/PythonInterface.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace python - { - const string PythonInterface::typeQName("http://www.osoa.org/xmlns/sca/1.0#PythonInterface"); - - // Constructor - PythonInterface::PythonInterface( - bool remotable, - bool conversational) - : Interface(remotable, conversational) - { - logentry(); - } - - PythonInterface::~PythonInterface() - { - logentry(); - } - - } // End namespace python - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonInterface.h b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonInterface.h deleted file mode 100644 index cfc2ca8914..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonInterface.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_python_model_pythoninterface_h -#define tuscany_sca_python_model_pythoninterface_h - -#include <string> - -#include "tuscany/sca/python/export.h" -#include "tuscany/sca/model/Interface.h" - -namespace tuscany -{ - namespace sca - { - namespace python - { - /** - * Holds information about an interface described using a Python - * header file. - */ - class PythonInterface : public tuscany::sca::model::Interface - { - - public: - /** - * Constuctor. - * @param scope The scope of the interface (stateless or composite). - * @param remotable True if the interface is remotable. - */ - PythonInterface( - bool remotable, - bool conversational); - - /** - * Destructor. - */ - virtual ~PythonInterface(); - - /** - * return the QName of the schema type for this interface type - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#interface.cpp") - */ - const std::string& getInterfaceTypeQName() { return typeQName; }; - - /** - * The QName of the schema type for this interface type. - */ - SCA_PYTHON_API static const std::string typeQName; - - }; - - } // End namespace python - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_python_model_pythoninterface_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonReferenceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonReferenceBinding.cpp deleted file mode 100644 index 958a3a86ac..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonReferenceBinding.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/python/model/PythonReferenceBinding.h" -#include "tuscany/sca/python/PythonServiceProxy.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace python - { - - // Constructor - PythonReferenceBinding::PythonReferenceBinding(Reference* reference) - : ReferenceBinding(reference, ""), serviceProxy(NULL) - { - } - - // Destructor - PythonReferenceBinding::~PythonReferenceBinding() - { - } - - ServiceProxy* PythonReferenceBinding::getServiceProxy() - { - return serviceProxy; - } - - void PythonReferenceBinding::configure(ServiceBinding* binding) - { - setTargetServiceBinding(binding); - - serviceProxy = new PythonServiceProxy(getReference()); - } - - } // End namespace python - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonReferenceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonReferenceBinding.h deleted file mode 100644 index 65028f4613..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonReferenceBinding.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_python_model_pythonreferencebinding_h -#define tuscany_sca_python_model_pythonreferencebinding_h - -#include <string> - -#include "tuscany/sca/model/ReferenceBinding.h" - - -namespace tuscany -{ - namespace sca - { - namespace python - { - /** - * Information about a Python service binding for service or a reference. - */ - class PythonReferenceBinding : public tuscany::sca::model::ReferenceBinding - { - public: - - /** - * Constructor. - */ - PythonReferenceBinding(tuscany::sca::model::Reference* reference); - - /** - * Destructor. - */ - virtual ~PythonReferenceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#PythonImplementationBinding"; }; - - /** - * Create a proxy representing the reference to the - * client component. - */ - virtual ServiceProxy* getServiceProxy(); - - /** - * Configure this binding from a service binding. - */ - virtual void configure(tuscany::sca::model::ServiceBinding* serviceBinding); - - private: - - /** - * The proxy representing the reference to the client - * component. - */ - ServiceProxy* serviceProxy; - }; - - } // End namespace python - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_python_model_pythonreferencebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonServiceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonServiceBinding.cpp deleted file mode 100644 index 061aeb7515..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonServiceBinding.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/python/model/PythonServiceBinding.h" -#include "tuscany/sca/python/PythonServiceWrapper.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace python - { - - // Constructor - PythonServiceBinding::PythonServiceBinding(Service* service) - : ServiceBinding(service, "") - { - logentry(); - serviceWrapper = new PythonServiceWrapper(service); - } - - // Destructor - PythonServiceBinding::~PythonServiceBinding() - { - logentry(); - } - - ServiceWrapper* PythonServiceBinding::getServiceWrapper() - { - logentry(); - return (ServiceWrapper*)serviceWrapper; - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonServiceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonServiceBinding.h deleted file mode 100644 index 9a803cdced..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/model/PythonServiceBinding.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_python_model_pythonservicebinding_h -#define tuscany_sca_python_model_pythonservicebinding_h - -#include <string> - -#include "tuscany/sca/model/ServiceBinding.h" - -namespace tuscany -{ - namespace sca - { - namespace python - { - /** - * Information about a Python service binding for service or a reference. - */ - class PythonServiceBinding : public tuscany::sca::model::ServiceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - * @param port The definition of the port to which the entrypoint - * or external service is to be bound. This is of the form - * "namespace"#endpoint("service"/"port") - */ - PythonServiceBinding(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~PythonServiceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#PythonImplementationBinding"; }; - - /** - * Create a wrapper for the service configured by this - * binding. - */ - virtual ServiceWrapper* getServiceWrapper(); - - private: - - /** - * The wrapper for the service configured by this binding. - */ - ServiceWrapper* serviceWrapper; - - }; - - } // End namespace python - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_python_model_pythonservicebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/sca_module.cpp b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/sca_module.cpp deleted file mode 100644 index dc2c7bfe22..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/sca_module.cpp +++ /dev/null @@ -1,540 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <string> -#include <iostream> -#include <sstream> - -// undefine _DEBUG so Python does not need it's debug dll -#ifdef _DEBUG -#undef _DEBUG -#define _SCA_PYTHON_DEBUG -#endif -#include <Python.h> -#ifdef _SCA_PYTHON_DEBUG -#define _DEBUG -#endif - -#include "commonj/sdo/SDO.h" - -#include "PythonServiceProxy.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/core/Operation.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca; -using namespace tuscany::sca::model; - -static PyObject* scaError; - -/** -* Prints out PyObject and dir(PyObject) -* for debugging purposes -*/ -static void printPyObject(char* prefix, char* name, PyObject* pObj) -{ - PyObject* pObjRepr = PyObject_Repr(pObj); - PyTypeObject* type = pObj->ob_type; - loginfo("%s printPyObject (%s) %s = %s", prefix, type->tp_name, name, PyString_AsString(pObjRepr)); - Py_XDECREF(pObjRepr); - - if(pObj != NULL) - { - PyObject* pObjDir = PyObject_Dir(pObj); - PyObject* pObjDirRepr = PyObject_Repr(pObjDir); - loginfo("%s printPyObject dir(%s): %s", prefix, name, PyString_AsString(pObjDirRepr)); - Py_DECREF(pObjDirRepr); - Py_DECREF(pObjDir); - } -} - -static PyObject* sca_locateservice(PyObject *self, PyObject *args) -{ - logentry(); - - // Get the service name - PyObject* pServiceName = PyTuple_GetItem(args, 0); - - // Import the SCA python-extension module - PyObject* pModuleName = PyString_FromString("sca_proxy"); - PyObject* sca_proxy_module = PyImport_Import(pModuleName); - Py_DECREF(pModuleName); - - if(!sca_proxy_module) - { - if(PyErr_Occurred()) - { - PyErr_Print(); - } - string msg = "Failed to load the sca_proxy Python module - has it been successfully installed?\nReferences from Python components will not be supported"; - logerror(msg.c_str()); - } - else - { - // Get the sca_proxy class - PyObject* sca_proxy_class = PyObject_GetAttrString(sca_proxy_module, "sca_proxy_class"); - - PyObject* scaArgs = PyTuple_New(2); - PyTuple_SetItem(scaArgs, 0, pServiceName); - Py_INCREF(Py_True); - PyTuple_SetItem(scaArgs, 1, Py_False); - - // Create the instance of the scaReference class - PyObject* sca_proxy_classInstance = PyInstance_New(sca_proxy_class, scaArgs, NULL); - Py_DECREF(scaArgs); - - return sca_proxy_classInstance; - } - - Py_INCREF(Py_None); - return Py_None; -} - - -static tuscany::sca::python::PythonServiceProxy* getServiceProxy(PyObject *args) -{ - logentry(); - - tuscany::sca::python::PythonServiceProxy* serviceProxy = NULL; - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - - // The first argument holds the name - string name; - PyObject* pName = PyTuple_GetItem(args, 0); - if(pName && PyString_Check(pName)) - { - name = PyString_AsString(pName); - } - if(name.size() > 0) - { - loginfo("Service/Reference name is %s", name.c_str()); - } - else - { - string msg = "Service/Reference name has not been set"; - logwarning(msg.c_str()); - PyErr_SetString(scaError, msg.c_str()); - return NULL; - } - - // The second argument is a boolean - PyObject* isReference = PyTuple_GetItem(args, 1); - - // Get the serviceProxy from the reference or service name provided - if(PyObject_IsTrue(isReference)) - { - Component* component = runtime->getCurrentComponent(); - Reference* ref = component->findReference(name); - if(!ref) - { - string msg = "Could not find the reference: "+name; - logwarning(msg.c_str()); - PyErr_SetString(scaError, msg.c_str()); - - return NULL; - } - - ReferenceBinding* refBinding = ref->getBinding(); - serviceProxy = (tuscany::sca::python::PythonServiceProxy*) refBinding->getServiceProxy(); - } - else - { - Component* component = runtime->getDefaultComponent(); - Composite* composite = (Composite*)component->getType(); - Service* service = composite->findComponentService(name); - - if(!service) - { - string msg = "Could not find service: "+name; - logwarning(msg.c_str()); - PyErr_SetString(scaError, msg.c_str()); - return NULL; - } - - serviceProxy = new tuscany::sca::python::PythonServiceProxy(service); - } - - return serviceProxy; -} - - -static PyObject* sca_invoke(PyObject *self, PyObject *args) -{ - logentry(); - - tuscany::sca::python::PythonServiceProxy* pythonServiceProxy = getServiceProxy(args); - if(!pythonServiceProxy) - { - return NULL; - } - - // Get the component from the reference or service provided - Component* component = NULL; - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - - PyObject* isReference = PyTuple_GetItem(args, 1); - if(PyObject_IsTrue(isReference)) - { - component = runtime->getCurrentComponent(); - } - else - { - component = runtime->getDefaultComponent(); - } - - // Get the name of the operation to invoke - string operationName; - PyObject* opName = PyTuple_GetItem(args, 2); - if(opName && PyString_Check(opName)) - { - operationName = PyString_AsString(opName); - } - - if(operationName.size() > 0) - { - loginfo("sca_invoke Operation name: %s", operationName.c_str()); - } - else - { - string msg = "Operation name has not been set"; - logwarning(msg.c_str()); - PyErr_SetString(scaError, msg.c_str()); - return NULL; - } - - // Create the Operation object - Operation operation(operationName.c_str()); - - // Load up the xml.etree.ElementTree module for dealing with SDO params and return values - PyObject* elementTreeModuleName = PyString_FromString("xml.etree.ElementTree"); - PyObject* elementTreeModule = PyImport_Import(elementTreeModuleName); - - if(elementTreeModule == NULL) - { - // pre-Python2.5? - try to get an installed elementtree package - elementTreeModuleName = PyString_FromString("elementtree.ElementTree"); - elementTreeModule = PyImport_Import(elementTreeModuleName); - } - if(elementTreeModule == NULL) - { - // Still null - throw a warning but carry on - user may not need XML - logwarning("Could not load Python ElementTree module - is it installed? SDO and XML will not be supported"); - } - - // Parameters are the fourth argument - PyObject* paramTuple = PyTuple_GetItem(args, 3); - unsigned int numberOfArgs = (unsigned int) PyTuple_Size(paramTuple); - loginfo("sca_invoke %d arg parameters supplied", numberOfArgs); - - // Keyword parameters (AKA named arguments) are the fifth argument - PyObject* keywordParamDict = PyTuple_GetItem(args, 4); - loginfo("sca_invoke %d keyword parameters supplied", PyDict_Size(keywordParamDict)); - - PyObject* paramKeys = PyDict_Keys(keywordParamDict); - - // Go through all the supplied parameters (args and keyword args) - for(unsigned int i=0; i < (numberOfArgs + PyList_Size(paramKeys)); i++) - { - string* paramName; - PyObject* param; - - if(i < PyTuple_Size(paramTuple)) - { - param = PyTuple_GetItem(paramTuple, i); - paramName = new string(); - } - else - { - PyObject* key = PyList_GetItem(paramKeys, i-numberOfArgs); - param = PyDict_GetItem(keywordParamDict, key); - paramName = new string(PyString_AsString(key)); - } - - if(PyInt_Check(param)) - { - loginfo("Int param %d %s: %d", i, (*paramName).c_str(), PyInt_AsLong(param)); - long* intData = new long; - *intData = PyInt_AsLong(param); - operation.addParameter(*paramName, intData); - } - else if(PyBool_Check(param)) - { - loginfo("Bool param %d %s: %d", i, (*paramName).c_str(), (param == Py_True)); - bool* boolData = new bool; - *boolData = (param == Py_True); - operation.addParameter(*paramName, boolData); - } - else if(PyLong_Check(param)) - { - loginfo("Long param %d %s: %l", i, (*paramName).c_str(), PyLong_AsLong(param)); - long* longData = new long; - *longData = PyLong_AsLong(param); - operation.addParameter(*paramName, longData); - } - else if(PyFloat_Check(param)) - { - loginfo("Float param %d %s: %f", i, (*paramName).c_str(), PyFloat_AsDouble(param)); - double* doubleData = new double; - *doubleData = PyFloat_AsDouble(param); - operation.addParameter(*paramName, doubleData); - } - else if(PyString_Check(param)) - { - loginfo("String param %d %s: %s", i, (*paramName).c_str(), PyString_AsString(param)); - const char** stringData = new const char*; - *stringData = PyString_AsString(param); - operation.addParameter(*paramName, stringData); - } - else - { - PyObject* pIsElement = Py_False; - if(elementTreeModule != NULL) - { - // Get the xml.etree.ElementTree.iselement function - PyObject* elementTreeIsElementFunc = PyObject_GetAttrString(elementTreeModule, "iselement"); - - // Call the iselement() function with pValue to check it - pIsElement = PyObject_CallFunction(elementTreeIsElementFunc, "O", param); - } - - if(PyObject_IsTrue(pIsElement) == 1) - { - // pValue is an xml.etree.ElementTree.Element - convert to SDO - PyObject* elementTreeToStringFunc = PyObject_GetAttrString(elementTreeModule, "tostring"); - PyObject* pElemString = PyObject_CallFunction(elementTreeToStringFunc, "O", param); - char* data = PyString_AsString(pElemString); - loginfo("SDO param %d %s: %s", i, (*paramName).c_str(), data); - - loginfo("Converting Python ElementTree to SDO DataObject: %s", data); - - Composite* composite = component->getComposite(); - XMLHelperPtr xmlHelper = composite->getXMLHelper(); - XMLDocumentPtr xmlDoc = xmlHelper->load(data); - - DataObjectPtr* dataObjectData = new DataObjectPtr; - if (xmlDoc != NULL) - { - *dataObjectData = xmlDoc->getRootDataObject(); - } - else - { - *dataObjectData = NULL; - } - if (*dataObjectData != NULL) - { - operation.addParameter(*paramName, dataObjectData); - } - else - { - string msg = "xml.etree.ElementTree.Element could not be converted to a DataObject"; - logerror(msg.c_str()); - PyErr_SetString(scaError, msg.c_str()); - return NULL; - } - Py_DECREF(elementTreeToStringFunc); - Py_DECREF(pElemString); - } - else - { - - PyObject* paramRepr = PyObject_Repr(param); - PyObject* paramType = PyObject_Type(param); - PyObject* paramTypeRepr = PyObject_Repr(paramType); - - string msg = "sca_invoke Param "; - msg += i; - msg += "is of unknown type ("; - msg += PyString_AsString(paramTypeRepr); - msg += ") and has repr: "; - msg += PyString_AsString(paramRepr); - - logerror(msg.c_str()); - PyErr_SetString(scaError, msg.c_str()); - - Py_DECREF(paramTypeRepr); - Py_DECREF(paramType); - Py_DECREF(paramRepr); - - return NULL; - } - } - } - - PyObject* returnValue = NULL; - - try - { - // Invoke the wired service - pythonServiceProxy->invokeService(operation); - } - catch(TuscanyRuntimeException& ex) - { - string msg = "Exception whilst invoking the "; - msg += operationName.c_str(); - msg += " operation on an SCA service/reference: "; - msg += ex.getEClassName(); - msg += ": "; - msg += ex.getMessageText(); - logwarning(msg.c_str()); - PyErr_SetString(scaError, msg.c_str()); - return NULL; - } - catch(...) - { - string msg = "Exception whilst invoking the "; - msg += operationName.c_str(); - msg += " operation on an SCA service/reference"; - - logwarning(msg.c_str()); - PyErr_SetString(scaError, msg.c_str()); - return NULL; - } - - - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - if(*(bool*)operation.getReturnValue()) - { - returnValue = Py_True; - } - else - { - returnValue = Py_False; - } - break; - } - case Operation::SHORT: - { - returnValue = PyInt_FromLong(*(short*)operation.getReturnValue()); - break; - } - case Operation::LONG: - { - returnValue = PyLong_FromLong(*(long*)operation.getReturnValue()); - break; - } - case Operation::USHORT: - { - returnValue = PyInt_FromLong(*(unsigned short*)operation.getReturnValue()); - break; - } - case Operation::ULONG: - { - returnValue = PyLong_FromLong(*(unsigned long*)operation.getReturnValue()); - break; - } - case Operation::FLOAT: - { - returnValue = PyFloat_FromDouble(*(float*)operation.getReturnValue()); - break; - } - case Operation::DOUBLE: - { - returnValue = PyFloat_FromDouble(*(double*)operation.getReturnValue()); - break; - } - case Operation::LONGDOUBLE: - { - returnValue = PyFloat_FromDouble(*(long double*)operation.getReturnValue()); - break; - } - case Operation::CHARS: - { - returnValue = PyString_FromString(*(char**)operation.getReturnValue()); - break; - } - case Operation::STRING: - { - returnValue = PyString_FromString((*(string*)operation.getReturnValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - if(elementTreeModule != NULL) - { - DataObjectPtr dob = *(DataObjectPtr*)operation.getReturnValue(); - - // Convert a DataObject to a xml.etree.ElementTree Element object - Composite* composite = component->getComposite(); - XMLHelperPtr xmlHelper = composite->getXMLHelper(); - char* str = xmlHelper->save( - dob, - dob->getType().getURI(), - dob->getType().getName()); - - loginfo("Converting SDO DataObject to Python ElementTree: %s", str); - - // Get the xml.etree.ElementTree.XML function - PyObject* elementTreeXMLFunc = PyObject_GetAttrString(elementTreeModule, "XML"); - - // Call the XML() function with the XML string - returnValue = PyObject_CallFunction(elementTreeXMLFunc, "s", str); - - Py_DECREF(elementTreeXMLFunc); - } - else - { - logwarning("Could not convert SDO DataObject to Python ElementTree as ElementTree module could not be loaded. Returning NONE"); - Py_INCREF(Py_None); - returnValue = Py_None; - } - break; - } - default: - { - Py_INCREF(Py_None); - returnValue = Py_None; - } - - } - - Py_XDECREF(elementTreeModuleName); - Py_XDECREF(elementTreeModule); - - return returnValue; -} -static PyMethodDef ModuleMethods[] = -{ - {"locateservice", (PyCFunction) sca_locateservice, METH_VARARGS, "Locates an SCA service & returns an sca_proxy_class instance"}, - {"invoke", (PyCFunction) sca_invoke, METH_VARARGS, "Invoke an operation on an SCA service or reference"}, - {NULL, NULL, 0, NULL} /* Sentinel */ -}; - -PyMODINIT_FUNC initsca(void) -{ - logentry(); - - // Create a new module - PyObject* module = Py_InitModule("sca", ModuleMethods); - - scaError = PyErr_NewException("sca.error", NULL, NULL); - Py_INCREF(scaError); - PyModule_AddObject(module, "error", scaError); -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/sca_proxy.py b/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/sca_proxy.py deleted file mode 100644 index 92a224275e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/src/tuscany/sca/python/sca_proxy.py +++ /dev/null @@ -1,57 +0,0 @@ -# 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.
-#
-#
-#
-#
-# This Python code is used in the SCA package and
-# provides the proxy objects to a Python SCA component or SCA
-# client.
-#
-# This is done by overloading the __getattr__ method which makes
-# calls to myProxy.anyMethod go to __getattr__ which will return
-# the invokeFunction defined inside the invoke method
-
-import sca
-
-class sca_proxy_class:
-
- sca_proxy_name = ''
- sca_proxy_is_reference = 1
-
- def __init__(self, name, isReference):
- self.sca_proxy_name = name
- self.sca_proxy_is_reference = isReference
- return
-
- def invoke(self, operationName):
-
- def invokeFunction(*args, **kwargs):
- # Pass the args and keywords in to the invoke method as arguments
- return sca.invoke(self.sca_proxy_name, self.sca_proxy_is_reference, operationName, args, kwargs)
-
- return invokeFunction
-
- def __getattr__(self, operationName):
- return self.invoke(operationName)
-
- def __str__(self):
- return '<sca_proxy.sca_proxy_class instance for ' + self.sca_proxy_name + '>'
-
- def __repr__(self):
- return '<sca_proxy.sca_proxy_class instance for ' + self.sca_proxy_name + '>'
-
diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/xsd/sca-implementation-python.xsd b/sca-cpp/trunk/contrib/runtime/extensions/python/xsd/sca-implementation-python.xsd deleted file mode 100644 index 5730e66116..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/xsd/sca-implementation-python.xsd +++ /dev/null @@ -1,50 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <include schemaLocation="../../../xsd/sca-core.xsd"/> - - <element name="implementation.python" type="sca:PythonImplementation" substitutionGroup="sca:implementation"/> - <complexType name="PythonImplementation"> - <complexContent> - <extension base="sca:Implementation"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="module" type="NCName" use="required"/> - <attribute name="path" type="NCName" use="optional"/> - <attribute name="class" type="Name" use="optional"/> - <attribute name="scope" type="sca:PythonImplementationScope" use="optional" /> - <anyAttribute namespace="##any" processContents="lax"/> - </extension> - </complexContent> - </complexType> - - <simpleType name="PythonImplementationScope"> - <restriction base="string"> - <enumeration value="stateless" /> - <enumeration value="composite" /> - </restriction> - </simpleType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/python/xsd/sca-interface-python.xsd b/sca-cpp/trunk/contrib/runtime/extensions/python/xsd/sca-interface-python.xsd deleted file mode 100644 index 1ce24b7249..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/python/xsd/sca-interface-python.xsd +++ /dev/null @@ -1,64 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <include schemaLocation="../../../xsd/sca-core.xsd"/> - - <element name="interface.python" type="sca:PythonInterface" substitutionGroup="sca:interface"/> - <complexType name="PythonInterface"> - <complexContent> - <extension base="sca:Interface"> - <sequence> - <element name="operation" type="sca:PythonOperation" minOccurs="0" maxOccurs="unbounded" /> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="remotable" type="boolean" use="optional" /> - <attribute name="conversational" type="boolean" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> - - <complexType name="PythonOperation"> - <complexContent> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="name" type="string" use="required" /> - <attribute name="returnType" type="sca:PythonReturnTypes" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </complexContent> - </complexType> - - <simpleType name="PythonReturnTypes"> - <restriction base="string"> - <enumeration value="string" /> - <enumeration value="int" /> - <enumeration value="long" /> - <enumeration value="boolean" /> - <enumeration value="float" /> - <enumeration value="other" /> - </restriction> - </simpleType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/rest/Makefile.am deleted file mode 100644 index 742a8152ad..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -SUBDIRS = interface reference service -datadir=$(prefix)/extensions/rest - -nobase_data_DATA = xsd/*.xsd - -EXTRA_DIST = xsd
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/Makefile.am deleted file mode 100644 index f963effea2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = src
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/Makefile.am deleted file mode 100644 index a2b7ac74e4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -libdir=$(prefix)/extensions/rest/interface/lib -lib_LTLIBRARIES = libtuscany_sca_rest_interface.la - -noinst_HEADERS = tuscany/sca/rest/*.h tuscany/sca/rest/model/*.h - -libtuscany_sca_rest_interface_la_SOURCES = \ -tuscany/sca/rest/RESTInterfaceExtension.cpp \ -tuscany/sca/rest/model/RESTInterface.cpp - -libtuscany_sca_rest_interface_la_LIBADD = \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include - -moduledir=$(prefix)/extensions/rest/interface/module -extension = libtuscany_sca_rest_interface$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/RESTInterfaceExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/RESTInterfaceExtension.cpp deleted file mode 100644 index c69febf39a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/RESTInterfaceExtension.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/rest/RESTInterfaceExtension.h" -#include "tuscany/sca/rest/model/RESTInterface.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_rest_interface_initialize() - { - tuscany::sca::rest::RESTInterfaceExtension::initialize(); - } -} - -namespace tuscany -{ - namespace sca - { - namespace rest - { - // =================================================================== - // Constructor for the RESTInterfaceExtension class. - // =================================================================== - RESTInterfaceExtension::RESTInterfaceExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the RESTInterfaceExtension class. - // =================================================================== - RESTInterfaceExtension::~RESTInterfaceExtension() - { - logentry(); - } - - const string RESTInterfaceExtension::extensionName("rest"); - const string RESTInterfaceExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#RESTInterface"); - - // =================================================================== - // loadModelElement - load the info from interface.rest - // =================================================================== - tuscany::sca::model::Interface* RESTInterfaceExtension::getInterface(Composite* composite, DataObjectPtr scdlInterface) - { - logentry(); - - return new RESTInterface(); - } - - void RESTInterfaceExtension::initialize() - { - logentry(); - SCARuntime::getCurrentRuntime()->registerInterfaceExtension(new RESTInterfaceExtension()); - } - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/RESTInterfaceExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/RESTInterfaceExtension.h deleted file mode 100644 index de61ee5751..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/RESTInterfaceExtension.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_rest_restinterfaceextension_h -#define tuscany_sca_rest_restinterfaceextension_h - -#include "tuscany/sca/extension/InterfaceExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace rest - { - - class RESTInterfaceExtension : public InterfaceExtension - { - public: - /** - * Default constructor - */ - RESTInterfaceExtension(); - - /** - * Destructor - */ - virtual ~RESTInterfaceExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema type for this interface extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#interface.rest") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::Interface* getInterface( - tuscany::sca::model::Composite* composite, - commonj::sdo::DataObjectPtr scdlInterface); - - static void initialize(); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_rest_restinterfaceextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/exportinterface.h b/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/exportinterface.h deleted file mode 100644 index f3636f0d39..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/exportinterface.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_rest_exportinterface_h -#define tuscany_sca_rest_exportinterface_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) - -#ifdef TUSCANY_SCA_REST_INTERFACE_EXPORTS -#define SCA_REST_INTERFACE_API __declspec(dllexport) -#else -#define SCA_REST_INTERFACE_API __declspec(dllimport) -#endif - -#else -#define SCA_REST_INTERFACE_API -#endif - -#endif // tuscany_sca_rest_exportinterface_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/model/RESTInterface.cpp b/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/model/RESTInterface.cpp deleted file mode 100644 index 34feda2049..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/model/RESTInterface.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/rest/model/RESTInterface.h" - -using namespace std; - -namespace tuscany -{ - namespace sca - { - namespace rest - { - - const string RESTInterface::typeQName("http://www.osoa.org/xmlns/sca/1.0#RESTInterface"); - - // Constructor - RESTInterface::RESTInterface() - : Interface(true, false) - { - logentry(); - } - - RESTInterface::~RESTInterface() - { - logentry(); - } - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/model/RESTInterface.h b/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/model/RESTInterface.h deleted file mode 100644 index 88aacecc16..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/interface/src/tuscany/sca/rest/model/RESTInterface.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_rest_model_restinterface_h -#define tuscany_sca_rest_model_restinterface_h - -#include <string> - -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/rest/exportinterface.h" - - -namespace tuscany -{ - namespace sca - { - namespace rest - { - /** - * Holds information about a REST interface - */ - class RESTInterface : public tuscany::sca::model::Interface - { - - public: - /** - * Constuctor. - * @param header Name of the header file containing the class that - * describes the interface. - * @param className Name of the class in the header file that - * describes the interface. - * @param scope The scope of the interface (stateless or composite). - * @param remotable True if the interface is remotable. - */ - RESTInterface(); - - /** - * Destructor. - */ - virtual ~RESTInterface(); - - /** - * return the QName of the schema type for this interface type - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#interface.rest") - */ - virtual const std::string& getInterfaceTypeQName() { return typeQName; }; - - /** - * The QName of the schema type for this interface type. - */ - SCA_REST_INTERFACE_API static const std::string typeQName; - - private: - - }; - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_rest_model_restinterface_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/Makefile.am deleted file mode 100644 index 2a0247f16f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = curl
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/Makefile.am deleted file mode 100644 index f963effea2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = src
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/Makefile.am deleted file mode 100644 index f6e6c28b55..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/Makefile.am +++ /dev/null @@ -1,28 +0,0 @@ -libdir=$(prefix)/extensions/rest/reference/lib -lib_LTLIBRARIES = libtuscany_sca_rest_reference.la - -noinst_HEADERS = tuscany/sca/rest/*.h tuscany/sca/rest/model/*.h - -libtuscany_sca_rest_reference_la_SOURCES = \ -tuscany/sca/rest/RESTServiceBindingExtension.cpp \ -tuscany/sca/rest/model/RESTServiceBinding.cpp \ -tuscany/sca/rest/RESTServiceWrapper.cpp - -libtuscany_sca_rest_reference_la_LIBADD = \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca \ - -L$(top_builddir)/runtime/extensions/rest/interface/src -ltuscany_sca_rest_interface \ - -L${CURL_LIB} -lcurl - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I$(top_builddir)/runtime/extensions/rest/interface/src \ - -I${TUSCANY_SDOCPP}/include \ - -I${CURL_INCLUDE} - -moduledir=$(prefix)/extensions/rest/reference/module -extension = libtuscany_sca_rest_reference$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceBindingExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceBindingExtension.cpp deleted file mode 100644 index f8eb9ad05c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceBindingExtension.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* -* 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. -*/ - -#include "RESTServiceBindingExtension.h" -#include "model/RESTServiceBinding.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_rest_reference_initialize() - { - tuscany::sca::rest::RESTServiceBindingExtension::initialize(); - } -} - - -namespace tuscany -{ - namespace sca - { - namespace rest - { - // =================================================================== - // Constructor for the RESTServiceBinding class. - // =================================================================== - RESTServiceBindingExtension::RESTServiceBindingExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the RESTServiceBindingExtension class. - // =================================================================== - RESTServiceBindingExtension::~RESTServiceBindingExtension() - { - logentry(); - } - - const string RESTServiceBindingExtension::extensionName("rest"); - const string RESTServiceBindingExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#RESTBinding"); - - - // =================================================================== - // loadModelElement - load the info from binding.rest - // =================================================================== - ServiceBinding* RESTServiceBindingExtension::getServiceBinding(Composite *composite, Service* service, DataObjectPtr scdlBinding) - { - string uri = scdlBinding->getCString("uri"); - - RESTServiceBinding* serviceBinding = new RESTServiceBinding(service, uri); - - return serviceBinding; - } - - void RESTServiceBindingExtension::initialize() - { - logentry(); - SCARuntime::getCurrentRuntime()->registerServiceBindingExtension(new RESTServiceBindingExtension()); - } - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceBindingExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceBindingExtension.h deleted file mode 100644 index ad1d861d95..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceBindingExtension.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * 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. - */ - -#ifndef tuscany_sca_extension_rest_restservicebindingextension_h -#define tuscany_sca_extension_rest_restservicebindingextension_h - -#include "tuscany/sca/extension/ServiceBindingExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace rest - { - - class RESTServiceBindingExtension : public ServiceBindingExtension - { - public: - /** - * Default constructor - */ - RESTServiceBindingExtension(); - - /** - * Destructor - */ - virtual ~RESTServiceBindingExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#binding.rest") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::ServiceBinding* getServiceBinding( - tuscany::sca::model::Composite* composite, - tuscany::sca::model::Service* service, - commonj::sdo::DataObjectPtr scdlBinding); - - static void initialize(); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany - -#endif //tuscany_sca_extension_rest_restservicebindingextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceWrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceWrapper.cpp deleted file mode 100644 index e28e7976e8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceWrapper.cpp +++ /dev/null @@ -1,1225 +0,0 @@ -/* - * - * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -/* $Rev$ $Date$ */ -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4091) -#endif - -#include <curl/curl.h> -#include <curl/types.h> -#include <curl/easy.h> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/SDOUtils.h" -#include "RESTServiceWrapper.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/CompositeReference.h" -#include "model/RESTServiceBinding.h" -#include "tuscany/sca/rest/model/RESTInterface.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace rest - { - - class ResponseChunk { - public: - ResponseChunk() : memory(NULL), size(0) - { - } - - ~ResponseChunk() - { - if (memory) - { - free(memory); - } - } - - char *memory; - int size; - }; - - class RequestChunk { - public: - RequestChunk() : memory(NULL), size(0), read(0) - { - } - - ~RequestChunk() - { - } - - const char *memory; - int size; - int read; - }; - - class HeaderChunk { - public: - HeaderChunk() : location("") - { - } - - ~HeaderChunk() - { - } - - string location; - }; - - size_t write_callback(void *ptr, size_t size, size_t nmemb, void *data) - { - int realsize = size * nmemb; - ResponseChunk *mem = (ResponseChunk *)data; - - if (mem->memory != NULL) - { - mem->memory = (char *)realloc(mem->memory, mem->size + realsize + 1); - } - else - { - mem->memory = (char *)malloc(mem->size + realsize + 1); - } - memcpy(&(mem->memory[mem->size]), ptr, realsize); - mem->size += realsize; - mem->memory[mem->size] = 0; - return realsize; - } - - static size_t read_callback(void *ptr, size_t size, size_t nmemb, void *data) - { - int realsize = size * nmemb; - RequestChunk *mem = (RequestChunk *)data; - - if (realsize > mem->size - mem->read) - { - realsize = mem->size - mem->read; - } - if (realsize != 0) - { - memcpy(ptr, &(mem->memory[mem->read]), realsize); - mem->read += realsize; - } - return realsize; - } - - size_t header_callback(void *ptr, size_t size, size_t nmemb, void *data) - { - int realsize = size * nmemb; - HeaderChunk* mem = (HeaderChunk*)data; - - char* str = new char[realsize + 1]; - memcpy(str, ptr, realsize); - str[realsize] = 0; - - if (strlen(str) > 10 && !strncmp(str, "Location: ", 10)) - { - string s = &str[10]; - mem->location = s.substr(0,s.find_last_not_of("\r\n")+1); - } - - delete str; - - return realsize; - } - - bool RESTServiceWrapper::initialized = false; - - RESTServiceWrapper::RESTServiceWrapper(Service* service) : ServiceWrapper(service) - { - logentry(); - - DataFactoryPtr dataFactory = service->getComponent()->getComposite()->getDataFactory(); - try { - const Type& tempType = dataFactory->getType("http://tempuri.org", "RootType"); - } catch (SDORuntimeException&) - { - dataFactory->addType("http://tempuri.org", "RootType", false, false, false); - dataFactory->addType("http://tempuri.org", "Wrapper", false, true, false); - dataFactory->addPropertyToType( - "http://tempuri.org", "RootType", - "Wrapper", - "http://tempuri.org", "Wrapper", - false, false, true); - dataFactory->addType("http://tempuri.org", "Part", false, true, false); - dataFactory->addPropertyToType( - "http://tempuri.org", "RootType", - "Part", - "http://tempuri.org", "Part", - false, false, true); - } - - if (!initialized) - { - curl_global_init(CURL_GLOBAL_ALL); - initialized = true; - } - } - - RESTServiceWrapper::~RESTServiceWrapper() - { - } - - /// - /// This method will be called when a service call needs to be made. - /// - void RESTServiceWrapper::invoke(Operation& operation) - { - logentry(); - - const string& operationName = operation.getName(); - - loginfo("Service: %s, operation: %s", getService()->getType()->getName().c_str() , operationName.c_str()); - - for (unsigned int i=0; i<operation.getNParms(); i++) - { - loginfo("Parameter: %p, type %u", operation.getParameterValue(i),(int) operation.getParameterType(i)); - } - - // Get the service, composite reference and composite - Service* service = getService(); - CompositeReference* compositeReference = (CompositeReference*)service->getComponent(); - Composite* composite = compositeReference->getComposite(); - XMLHelperPtr xmlHelper = composite->getXMLHelper(); - - // Get the REST binding - RESTServiceBinding* binding = (RESTServiceBinding *)service->getBinding(); - Interface* iface = service->getType()->getInterface(); - - // Init the curl session - CURL *curl_handle = curl_easy_init(); - - RequestChunk requestChunk; - ResponseChunk responseChunk; - HeaderChunk headerChunk; - - // Some servers don't like requests that are made without a user-agent - curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "libcurl-agent/1.0"); - - // Get the operation name - string opName = operation.getName(); - - // If we have a REST interface, the operation name translates to an HTTP verb - if (iface != NULL && iface->getInterfaceTypeQName() == RESTInterface::typeQName) - { - - // HTTP GET - if (opName == "retrieve") - { - // Build the request URL - bool firstParm = 0; - string uri; - if (operation.getNParms() !=0) - { - - // If the first parameter is a URI, then we'll use it, - // otherwise we'll use the binding URI - ostringstream s0; - writeParameter(xmlHelper, s0, operation.getParameter(0)); - string p0 = s0.str(); - if (p0.find("://") != string::npos) - { - firstParm = 1; - uri = p0; - } - else - { - uri = getBindingURI(); - } - } - else - { - uri = getBindingURI(); - } - // Add the parameters to the end of the URI - ostringstream os; - if (uri[uri.length()-1] == '?') - { - // If the URI ends with a "?" then we use the query - // form param=value& - os << uri; - for (unsigned int i = firstParm; i < operation.getNParms(); i++) - { - Operation::Parameter param = operation.getParameter(i); - - if(param.hasName()) - { - os << param.getName() << "="; - } - else - { - // No name - use "param1", etc - os << "param" << (i + 1) << "="; - } - writeParameter(xmlHelper, os, param); - if (i < operation.getNParms()-1) - os << "&"; - } - } - else - { - // Add the parameters in the form - // value1 / value2 / value3 - os << uri; - for (unsigned int i = firstParm; i < operation.getNParms(); i++) - { - os << "/"; - writeParameter(xmlHelper, os, operation.getParameter(i)); - } - } - - string url = os.str(); - //loginfo("RESTServiceWrapper: HTTP GET %s", url.c_str()); - curl_easy_setopt(curl_handle, CURLOPT_URL, url.c_str()); - - // Send all data to this function - curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&responseChunk); - - // Send all headers to this function - curl_easy_setopt(curl_handle, CURLOPT_HEADERFUNCTION, header_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_HEADERDATA, (void *)&headerChunk); - - // Perform the HTTP GET - CURLcode rc = curl_easy_perform(curl_handle); - - if (rc) - { - throwException(ServiceInvocationException, curl_easy_strerror(rc)); - } - - // Get the output data out of the returned document - long httprc; - curl_easy_getinfo (curl_handle, CURLINFO_RESPONSE_CODE, &httprc); - - string responsePayload = ""; - if (responseChunk.memory) - { - responsePayload = string((const char*)responseChunk.memory, responseChunk.size); - } - - if (httprc == 200) - { - if (responsePayload != "") - { - //TODO Remove this workaround once SDO supports loading of open top level content - // The workaround is to wrap the open content in a wrapper element - string xmldecl; - string xml; - Utils::rTokeniseString("?>", responsePayload, xmldecl, xml); - string part = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; - part += "<Part xmlns=\"http://tempuri.org\" xmlns:tns=\"http://tempuri.org\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n"; - part += xml; - part += "\n</Part>"; - - setReturn(xmlHelper, part, operation); - } - else - { - throwException(ServiceInvocationException, "Failed to retrieve resource, empty response"); - } - } - else - { - ostringstream msg; - msg << "Failed to retrieve REST resource, HTTP code: " << httprc; - if (responsePayload != "") - { - msg << ", payload: " << responsePayload; - } - throwException(ServiceInvocationException, msg.str().c_str()); - } - } - else if (opName == "create") - { - // HTTP POST - - // Set the target URL - string url = getBindingURI(); - curl_easy_setopt(curl_handle, CURLOPT_URL, url.c_str()); - - // Create the input payload - ostringstream spayload; - writeParameter(xmlHelper, spayload, operation.getParameter(0)); - const string& requestPayload = spayload.str(); - requestChunk.memory = requestPayload.c_str(); - requestChunk.size = requestPayload.size(); - - curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDSIZE, requestChunk.size); - - // Read all data using this function - curl_easy_setopt(curl_handle, CURLOPT_READFUNCTION, read_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_READDATA, (void *)&requestChunk); - - // Send all data to this function - curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&responseChunk); - - // Send all headers to this function - curl_easy_setopt(curl_handle, CURLOPT_HEADERFUNCTION, header_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_HEADERDATA, (void *)&headerChunk); - - // Configure headers - curl_slist *requestHeaders = NULL; - requestHeaders = curl_slist_append(requestHeaders, "Expect:"); - requestHeaders = curl_slist_append(requestHeaders, "Content-Type: text/xml"); - curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, requestHeaders); - - // Perform the HTTP POST - curl_easy_setopt(curl_handle, CURLOPT_POST, true); - CURLcode rc = curl_easy_perform(curl_handle); - - curl_slist_free_all(requestHeaders); - - if (rc) - { - throwException(ServiceInvocationException, curl_easy_strerror(rc)); - } - - // Get the output and location of the created resource - string responsePayload = ""; - if (responseChunk.memory) - { - responsePayload = string((const char*)responseChunk.memory, responseChunk.size); - } - - long httprc; - curl_easy_getinfo (curl_handle, CURLINFO_RESPONSE_CODE, &httprc); - if (httprc == 201) - { - string* location = new string; - *location = headerChunk.location; - operation.setReturnValue(location); - } - else - { - ostringstream msg; - msg << "Failed to create REST resource, HTTP code: " << httprc; - if (responsePayload != "") - { - msg << ", payload: " << responsePayload; - } - throwException(ServiceInvocationException, msg.str().c_str()); - } - } - else if (opName == "update") - { - // HTTP PUT - - // Build the request URL - bool firstParm = 0; - string uri; - if (operation.getNParms() > 1) - { - - // If the first parameter is a URI, then we'll use it, - // otherwise we'll use the binding URI - ostringstream s0; - writeParameter(xmlHelper, s0, operation.getParameter(0)); - string p0 = s0.str(); - if (p0.find("://") != string::npos) - { - firstParm = 1; - uri = p0; - } - else - { - uri = getBindingURI(); - } - } - else - { - uri = getBindingURI(); - } - // Add the parameters to the end of the URI - ostringstream os; - if (uri[uri.length()-1] == '?') - { - // If the URI ends with a "?" then we use the query - // form param=value& - os << uri; - for (unsigned int i = firstParm; i < operation.getNParms()-1; i++) - { - Operation::Parameter param = operation.getParameter(i); - if(param.hasName()) - { - os << param.getName() << "="; - } - else - { - // No name - use "param1", etc - os << "param" << (i + 1) << "="; - } - writeParameter(xmlHelper, os, param); - if (i < operation.getNParms()-1) - os << "&"; - } - } - else - { - // Add the parameters in the form - // value1 / value2 / value3 - os << uri; - for (unsigned int i = firstParm; i < operation.getNParms()-1; i++) - { - os << "/"; - writeParameter(xmlHelper, os, operation.getParameter(i)); - } - } - - string url = os.str(); - curl_easy_setopt(curl_handle, CURLOPT_URL, url.c_str()); - - // Create the input payload - ostringstream spayload; - writeParameter(xmlHelper, spayload, operation.getParameter(operation.getNParms()-1)); - const string& requestPayload = spayload.str(); - requestChunk.memory = requestPayload.c_str(); - requestChunk.size = requestPayload.size(); - - // Read all data using this function - curl_easy_setopt(curl_handle, CURLOPT_READFUNCTION, read_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_READDATA, (void *)&requestChunk); - - // Send all data to this function - curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&responseChunk); - - // Send all headers to this function - curl_easy_setopt(curl_handle, CURLOPT_HEADERFUNCTION, header_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_HEADERDATA, (void *)&headerChunk); - - // Configure headers - curl_slist *requestHeaders = NULL; - requestHeaders = curl_slist_append(requestHeaders, "Expect:"); - requestHeaders = curl_slist_append(requestHeaders, "Content-Type: text/xml"); - curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, requestHeaders); - - // Perform the HTTP PUT - curl_easy_setopt(curl_handle, CURLOPT_PUT, true); - curl_easy_setopt(curl_handle, CURLOPT_UPLOAD, true) ; - long size = (long)requestChunk.size; - curl_easy_setopt(curl_handle, CURLOPT_INFILESIZE, size); - - CURLcode rc = curl_easy_perform(curl_handle); - - curl_slist_free_all(requestHeaders); - - if (rc) - { - throwException(ServiceInvocationException, curl_easy_strerror(rc)); - } - - // Get the output and location of the created resource - string responsePayload = ""; - if (responseChunk.memory) - { - responsePayload = string((const char*)responseChunk.memory, responseChunk.size); - } - - long httprc; - curl_easy_getinfo (curl_handle, CURLINFO_RESPONSE_CODE, &httprc); - if (httprc != 200) - { - ostringstream msg; - msg << "Failed to update REST resource, HTTP code: " << httprc; - if (responsePayload != "") - { - msg << ", payload: " << responsePayload; - } - throwException(ServiceInvocationException, msg.str().c_str()); - } - } - else if (opName == "delete") - { - // HTTP DELETE - - // Build the request URL - bool firstParm = 0; - string uri; - if (operation.getNParms() !=0) - { - - // If the first parameter is a URI, then we'll use it, - // otherwise we'll use the binding URI - ostringstream s0; - writeParameter(xmlHelper, s0, operation.getParameter(0)); - string p0 = s0.str(); - if (p0.find("://") != string::npos) - { - firstParm = 1; - uri = p0; - } - else - { - uri = getBindingURI(); - } - } - else - { - uri = getBindingURI(); - } - // Add the parameters to the end of the URI - ostringstream os; - if (uri[uri.length()-1] == '?') - { - // If the URI ends with a "?" then we use the query - // form param=value& - os << uri; - for (unsigned int i = firstParm; i < operation.getNParms(); i++) - { - Operation::Parameter param = operation.getParameter(i); - - if(param.hasName()) - { - os << param.getName() << "="; - } - else - { - // No name - use "param1", etc - os << "param" << (i + 1) << "="; - } - writeParameter(xmlHelper, os, param); - if (i < operation.getNParms()-1) - os << "&"; - } - } - else - { - // Add the parameters in the form - // value1 / value2 / value3 - os << uri; - for (unsigned int i = firstParm; i < operation.getNParms(); i++) - { - os << "/"; - writeParameter(xmlHelper, os, operation.getParameter(i)); - } - } - - string url = os.str(); - curl_easy_setopt(curl_handle, CURLOPT_URL, url.c_str()); - - // Send all data to this function - curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&responseChunk); - - // Send all headers to this function - curl_easy_setopt(curl_handle, CURLOPT_HEADERFUNCTION, header_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_HEADERDATA, (void *)&headerChunk); - - // Perform the HTTP DELETE - curl_easy_setopt(curl_handle, CURLOPT_CUSTOMREQUEST, "DELETE"); - CURLcode rc = curl_easy_perform(curl_handle); - if (rc) - { - throwException(ServiceInvocationException, curl_easy_strerror(rc)); - } - - // Get the output data out of the returned document - string responsePayload = ""; - if (responseChunk.memory) - { - responsePayload = string((const char*)responseChunk.memory, responseChunk.size); - } - - long httprc; - curl_easy_getinfo (curl_handle, CURLINFO_RESPONSE_CODE, &httprc); - if (httprc != 200) - { - ostringstream msg; - msg << "Failed to delete REST resource, HTTP code: " << httprc; - if (responsePayload != "") - { - msg << ", payload: " << responsePayload; - } - throwException(ServiceInvocationException, msg.str().c_str()); - } - } - else - { - string msg = "Unknown REST verb: " + opName; - throwException(ServiceInvocationException, msg.c_str()); - } - } - else - { - // Not a REST interface, XML / HTTP command style - curl_slist *requestHeaders = NULL; - struct curl_httppost *formpost = NULL; - ostringstream spayload; - string requestPayload; - string url; - - // If the request contains complex content then we'll use - // a POST, otherwise we use a GET with a query string - bool complexContent = false; - for (unsigned int i=0; i<operation.getNParms(); i++) - { - if (operation.getParameter(i).getType() == Operation::DATAOBJECT) - { - complexContent = true; - break; - } - } - - if (complexContent) - { - // Set the target URL - string uri = getBindingURI(); - ostringstream os; - os << uri << "/" << opName; - url = os.str(); - curl_easy_setopt(curl_handle, CURLOPT_URL, url.c_str()); - - // Disable the 100 continue handshake - requestHeaders = curl_slist_append(requestHeaders, "Expect:"); - - if (operation.getNParms() == 1) - { - // Single parameter, send it as the body of the POST - - // Create the input payload - writeParameter(xmlHelper, spayload, operation.getParameter(0)); - requestPayload = spayload.str(); - requestChunk.memory = requestPayload.c_str(); - requestChunk.size = requestPayload.size(); - - curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDSIZE, requestChunk.size); - - // Read all data using this function - curl_easy_setopt(curl_handle, CURLOPT_READFUNCTION, read_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_READDATA, (void *)&requestChunk); - - // Set the content type - requestHeaders = curl_slist_append(requestHeaders, "Content-Type: text/xml"); - - // This will be a POST - curl_easy_setopt(curl_handle, CURLOPT_POST, true); - } - else - { - - // Multiple parameters, use a form type POST - struct curl_httppost *lastptr = NULL; - for (unsigned int i=0; i<operation.getNParms(); i++) - { - ostringstream pname; - Operation::Parameter param = operation.getParameter(i); - - if(param.hasName()) - { - pname << param.getName(); - } - else - { - // No name - use "param1", etc - pname << "param" << (i+1); - } - - const char* ctype; - if (param.getType() == Operation::DATAOBJECT) - { - ctype ="text/xml"; - } - else - { - ctype = "text/plain"; - } - - ostringstream pvalue; - writeParameter(xmlHelper, pvalue, param); - - curl_formadd(&formpost, - &lastptr, - CURLFORM_CONTENTTYPE, ctype, - CURLFORM_COPYNAME, pname.str().c_str(), - CURLFORM_COPYCONTENTS, pvalue.str().c_str(), - CURLFORM_END); - } - - // Set the form into the request - curl_easy_setopt(curl_handle, CURLOPT_HTTPPOST, formpost); - } - } - else - { - - // Build the request URL, uri / opName ? params - string uri = getBindingURI(); - ostringstream os; - os << uri << "/" << opName; - - // Add the parameters to the end of the URL in the form - // param=value& - for (unsigned int i=0; i<operation.getNParms(); i++) - { - if (i == 0) - os << "?"; - - Operation::Parameter param = operation.getParameter(i); - if(param.hasName()) - { - os << param.getName() << "="; - } - else - { - // No name - use "param1", etc - os << "param" << (i + 1) << "="; - } - writeParameter(xmlHelper, os, param); - if (i < operation.getNParms()-1) - os << "&"; - } - - url = os.str(); - loginfo("RESTServiceWrapper: HTTP GET %s", url.c_str()); - - curl_easy_setopt(curl_handle, CURLOPT_URL, url.c_str()); - } - - // Send all data to this function - curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_callback); - - // Pass our 'chunk' struct to the callback function - curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&responseChunk); - - // Configure the headers - if (requestHeaders) - { - curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, requestHeaders); - } - - loginfo("RESTServiceWrapper: Performing HTTP request"); - // Perform the HTTP request - CURLcode rc = curl_easy_perform(curl_handle); - - loginfo("RESTServiceWrapper: Completed HTTP request"); - // Free any headers - if (requestHeaders) - { - curl_slist_free_all(requestHeaders); - } - - // Cleanup the form - if (complexContent) - { - curl_formfree(formpost); - } - - if (rc) - { - throwException(ServiceInvocationException, curl_easy_strerror(rc)); - } - - if (responseChunk.memory) - { - string responsePayload((const char*)responseChunk.memory, responseChunk.size); - - - loginfo("RESTServiceWrapper: responsePayload: %s", responsePayload.c_str()); - - //TODO Remove this workaround once SDO supports loading of open top level content - // The workaround is to wrap the open content in a wrapper element - string xmldecl; - string xml; - Utils::rTokeniseString("?>", responsePayload, xmldecl, xml); - string part = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; - part += "<Part xmlns=\"http://tempuri.org\" xmlns:tns=\"http://tempuri.org\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n"; - part += xml; - part += "\n</Part>"; - - setReturn(xmlHelper, part, operation); - } - } - - // Cleanup curl session - curl_easy_cleanup(curl_handle); - } - - - const string RESTServiceWrapper::getBindingURI() - { - string bindingURI = ""; - - // Get the binding URI configured on the top level component - Service* service = getService(); - CompositeReference* compositeReference = (CompositeReference*)service->getComponent(); - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - Component* component = runtime->getDefaultComponent(); - Reference* reference = component->findReference(compositeReference->getName()); - if (reference != NULL) - { - ReferenceBinding* binding = reference->getBinding(); - if (binding != NULL && binding->getURI() != "") - { - bindingURI = binding->getURI(); - } - } - if (bindingURI == "") - { - // Get the binding URI configured on the binding - RESTServiceBinding* binding = (RESTServiceBinding *)service->getBinding(); - bindingURI = binding->getURI(); - } - if (bindingURI != "") - { - - // Prepend the default base URI if the URI is not absolute - if (bindingURI.find("://") == string::npos) - { - bindingURI = runtime->getDefaultBaseURI() + string("/rest/") + bindingURI; - } - } - return bindingURI; - } - - - void RESTServiceWrapper::writeParameter(XMLHelperPtr xmlHelper, ostringstream& os, const Operation::Parameter& parm) - { - logentry(); - - switch(parm.getType()) - { - case Operation::BOOL: - { - os << *(bool*)parm.getValue(); - break; - } - case Operation::SHORT: - { - os << *(short*)parm.getValue(); - break; - } - case Operation::INT: - { - os << *(long*)parm.getValue(); - break; - } - case Operation::LONG: - { - os << *(long*)parm.getValue(); - break; - } - case Operation::USHORT: - { - os << *(short*)parm.getValue(); - break; - } - case Operation::UINT: - { - os << *(long*)parm.getValue(); - break; - } - case Operation::ULONG: - { - os << *(long*)parm.getValue(); - break; - } - case Operation::FLOAT: - { - os << *(float*)parm.getValue(); - break; - } - case Operation::DOUBLE: - { - os << *(long double*)parm.getValue(); - break; - } - case Operation::LONGDOUBLE: - { - os << *(long double*)parm.getValue(); - break; - } - case Operation::CHARS: - { - os << *(char**)parm.getValue(); - break; - } - case Operation::STRING: - { - os << (*(string*)parm.getValue()).c_str(); - break; - } - case Operation::DATAOBJECT: - { - DataObjectPtr dob = *(DataObjectPtr*)parm.getValue(); - XMLDocumentPtr doc = xmlHelper->createDocument(dob, NULL, NULL); - xmlHelper->save(doc, os); - break; - } - default: - { - break; - } - } - } - - void RESTServiceWrapper::setReturn(XMLHelperPtr xmlHelper, string& payload, - Operation& operation) - { - logentry(); - - //TODO Remove this workaround once SDO supports loading of open top level content - // The workaround is to wrap the open content in a wrapper element - string xmldecl; - string xml; - Utils::rTokeniseString("?>", payload, xmldecl, xml); - string body = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; - body += "<Wrapper xmlns=\"http://tempuri.org\" xmlns:tns=\"http://tempuri.org\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n"; - body += xml; - body += "\n</Wrapper>"; - - // Convert the body to an SDO DataObject - DataObjectPtr outputWrapperDataObject = NULL; - XMLDocumentPtr theXMLDocument = xmlHelper->load(body.c_str(), NULL); - if (theXMLDocument != 0) - { - outputWrapperDataObject = theXMLDocument->getRootDataObject(); - } - if(!outputWrapperDataObject) - { - ostringstream msg; - msg << "Could not convert received document to SDO: " << body; - throwException(ServiceDataException, msg.str().c_str()); - } - - // Get the body part - DataObjectPtr outputDataObject = NULL; - PropertyList bpl = outputWrapperDataObject->getInstanceProperties(); - if (bpl.size()!=0) - { - if (bpl[0].isMany()) - { - DataObjectList& parts = outputWrapperDataObject->getList((unsigned int)0); - outputDataObject = parts[0]; - } - else - { - outputDataObject = outputWrapperDataObject->getDataObject(bpl[0]); - } - } - if (outputDataObject == NULL) - { - ostringstream msg; - msg << "Could not convert body part to SDO: " << body; - throwException(ServiceDataException, msg.str().c_str()); - } - - PropertyList pl = outputDataObject->getInstanceProperties(); - unsigned int i = 0; - - switch(pl[i].getTypeEnum()) - { - case Type::BooleanType: - { - bool* boolData = new bool; - *boolData = outputDataObject->getBoolean(pl[i]); - operation.setReturnValue(boolData); - } - break; - case Type::ByteType: - { - char* byteData = new char; - *byteData = outputDataObject->getByte(pl[i]); - operation.setReturnValue(byteData); - } - break; - case Type::BytesType: - { - int len = outputDataObject->getLength(pl[i]); - char* bytesData = new char[len+1]; - int bytesWritten = outputDataObject->getBytes(pl[i], bytesData, len); - // Ensure the bytes end with the null char. Not sure if this is neccessary - if(bytesWritten <= len) - { - bytesData[bytesWritten] = 0; - } - else - { - bytesData[len] = 0; - } - operation.setReturnValue(&bytesData); - } - break; - case Type::CharacterType: - { - // This code should work but won't be used as there is no mapping from an XSD type to the SDO CharacterType - wchar_t* charData = new wchar_t; - *charData = outputDataObject->getCharacter(pl[i]); - operation.setReturnValue(charData); - } - break; - case Type::DoubleType: - { - long double* doubleData = new long double; - *doubleData = outputDataObject->getDouble(pl[i]); - operation.setReturnValue(doubleData); - } - break; - case Type::FloatType: - { - float* floatData = new float; - *floatData = outputDataObject->getFloat(pl[i]); - operation.setReturnValue(floatData); - } - break; - case Type::IntType: - { - long* intData = new long; - *intData = outputDataObject->getInt(pl[i]); - operation.setReturnValue(intData); - } - break; - case Type::ShortType: - { - short* shortData = new short; - *shortData = outputDataObject->getShort(pl[i]); - operation.setReturnValue(shortData); - } - break; - case Type::StringType: - { - string* str = new string(outputDataObject->getCString(pl[i])); - operation.setReturnValue(str); - } - break; - case Type::DataObjectType: - { - if (!strcmp(pl[0].getType().getURI(), SDOUtils::sdoURI) && - !strcmp(pl[0].getType().getName(), "OpenDataObject")) { - - /* - * This code deals with xsd:any element parameters - * Get each element as a DataObject and add in to the parameter list - */ - DataObjectList& dataObjectList = outputDataObject->getList(pl[i]); - - for(unsigned int j=0; j<dataObjectList.size(); j++) - { - DataObjectPtr dob = dataObjectList[j]; - if(!dob) - { - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = NULL; - operation.setReturnValue(dataObjectData); - loginfo("Null OpenDataObject return value"); - } - else - { - - SequencePtr sequence = dob->getSequence(); - if (sequence->size()!=0) - { - // Return a text element - if (sequence->isText(0)) - { - string* stringData = new string(sequence->getCStringValue(0)); - operation.setReturnValue(stringData); - } - else - { - // Return a DataObject representing a complex element - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = sequence->getDataObjectValue(0); - if(!*dataObjectData) - { - loginfo("Null DataObject return value"); - } - else - { - (*dataObjectData)->detach(); - } - operation.setReturnValue(dataObjectData); - } - } - else - { - // Empty content, add an empty string - loginfo("Null OpenDataObject return value"); - string *stringData = new string(""); - operation.setReturnValue(stringData); - } - } - } - } - else { - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = outputDataObject->getDataObject(pl[i]); - if(!*dataObjectData) - { - loginfo("Null SDO DataObject return value"); - } - else - { - (*dataObjectData)->detach(); - } - operation.setReturnValue(dataObjectData); - } - } - break; - default: - { - ostringstream msg; - msg << "Unsupported result type: " << pl[i].getTypeEnum(); - throwException(ServiceDataException, msg.str().c_str()); - } - } - } - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceWrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceWrapper.h deleted file mode 100644 index 42e136a5d4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/RESTServiceWrapper.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * - * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_rest_restservicewrapper_h -#define tuscany_sca_extension_rest_restservicewrapper_h - -#include <sstream> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/Service.h" - - -namespace tuscany -{ - namespace sca - { - - namespace rest - { - - class RESTServiceWrapper : public ServiceWrapper - { - public: - - /** - * Constructor. - * @param target The service wrapper represents a Web service. - */ - RESTServiceWrapper(tuscany::sca::model::Service* service); - - /** - * Destructor - */ - virtual ~RESTServiceWrapper(); - - /** - * All business method calls on the target service are performed through - * this invoke method. - * @param operation The details of the method, paramaters and return value for the - * business method to be called on the target service. - */ - virtual void invoke(Operation& operation); - - private: - - /** - * Used to track initialization of the CURL library - */ - static bool initialized; - - /** - * Get the configured binding URI - */ - const std::string getBindingURI(); - - /** - * Write a parameter into a URL - */ - void writeParameter(commonj::sdo::XMLHelperPtr xmlHelper, std::ostringstream& os, const Operation::Parameter& parm); - - /** - * Set the return value on the given operation - */ - void setReturn(commonj::sdo::XMLHelperPtr xmlHelper, std::string& payload, Operation& operation); - - }; - } // End namespace rest - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_rest_restservicewrapper_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/model/RESTServiceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/model/RESTServiceBinding.cpp deleted file mode 100644 index 72701bfa65..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/model/RESTServiceBinding.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/rest/model/RESTServiceBinding.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/rest/RESTServiceWrapper.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace rest - { - - // Constructor - RESTServiceBinding::RESTServiceBinding(Service* service, const string& uri) - : ServiceBinding(service, uri) - { - logentry(); - - serviceWrapper = new RESTServiceWrapper(service); - } - - // Destructor - RESTServiceBinding::~RESTServiceBinding() - { - logentry(); - } - - ServiceWrapper* RESTServiceBinding::getServiceWrapper() - { - logentry(); - - return serviceWrapper; - } - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/model/RESTServiceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/model/RESTServiceBinding.h deleted file mode 100644 index d19bcdacf5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/reference/curl/src/tuscany/sca/rest/model/RESTServiceBinding.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * - * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_rest_model_restservicebinding_h -#define tuscany_sca_extension_rest_model_restservicebinding_h - -#include <string> - -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/model/Service.h" - -namespace tuscany -{ - namespace sca - { - namespace rest - { - /** - * Information about a REST binding for a service or a reference. - */ - class RESTServiceBinding : public tuscany::sca::model::ServiceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - */ - RESTServiceBinding(tuscany::sca::model::Service* service, const std::string& uri); - - /** - * Destructor. - */ - virtual ~RESTServiceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#RESTBinding"; }; - - /** - * Create a wrapper for the service configured by this - * binding. - */ - virtual ServiceWrapper* getServiceWrapper(); - - private: - - /** - * The wrapper for the service configured by this binding. - */ - ServiceWrapper* serviceWrapper; - - }; - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_rest_model_restservicebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/Makefile.am deleted file mode 100644 index 2ecfda6c6c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = httpd
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/Makefile.am deleted file mode 100644 index f963effea2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -SUBDIRS = src
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/Makefile.am deleted file mode 100644 index e5b3ce85bd..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/Makefile.am +++ /dev/null @@ -1,42 +0,0 @@ -libdir=$(prefix)/extensions/rest/service/lib -lib_LTLIBRARIES = \ -libtuscany_sca_rest_service.la \ -libtuscany_sca_mod_rest.la - -noinst_HEADERS = \ -tuscany/sca/rest/*.h \ -tuscany/sca/rest/model/*.h - -libtuscany_sca_rest_service_la_SOURCES = \ -tuscany/sca/rest/RESTReferenceBindingExtension.cpp \ -tuscany/sca/rest/model/RESTReferenceBinding.cpp \ -tuscany/sca/rest/RESTServiceProxy.cpp - -libtuscany_sca_rest_service_la_LIBADD = \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca \ - -L$(top_builddir)/runtime/extensions/rest/interface/src -ltuscany_sca_rest_interface - -rootdir=$(prefix)/extensions/rest/service - -libtuscany_sca_mod_rest_la_SOURCES = \ -tuscany/sca/rest/ModREST.cpp - -libtuscany_sca_mod_rest_la_LIBADD = \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca \ - -L$(top_builddir)/runtime/extensions/rest/service/httpd/src -ltuscany_sca_rest_service \ - -L$(top_builddir)/runtime/extensions/rest/interface/src -ltuscany_sca_rest_interface - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I$(top_builddir)/runtime/extensions/rest/interface/src \ - -I${TUSCANY_SDOCPP}/include \ - -I${HTTPD_INCLUDE} -I${APR_INCLUDE} - -moduledir=$(prefix)/extensions/rest/service/module -extension = libtuscany_sca_rest_service$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/ModREST.cpp b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/ModREST.cpp deleted file mode 100644 index 4a63991515..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/ModREST.cpp +++ /dev/null @@ -1,1372 +0,0 @@ -/* - * Copyright 2006 The Apache Software Foundation. - * - * Licensed 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. - */ - -#include <sstream> - -#include "apr_strings.h" -#include "apr_fnmatch.h" -#include "apr_lib.h" - -#define APR_WANT_STRFUNC -#include "apr_want.h" -#include "ap_config.h" -#include "httpd.h" - -// This section removes the windows/httpd build error "strtoul_is_not_a_portable_function_use_strtol_instead" -#if defined(WIN32) || defined (_WINDOWS) -#ifdef strtoul -#undef strtoul -#endif -#define strtoul strtoul -#endif - -#include "http_config.h" -#include "http_core.h" -#include "http_request.h" -#include "http_protocol.h" -#include "http_log.h" -#include "http_main.h" -#include "util_script.h" -#include "util_md5.h" - -#include "mod_core.h" - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Logging.h" -#include "RESTServiceProxy.h" -#include "model/RESTReferenceBinding.h" -#include "tuscany/sca/rest/model/RESTInterface.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/CompositeService.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/WSDLDefinition.h" -#include "tuscany/sca/model/WSDLOperation.h" -#include "tuscany/sca/model/WSDLMessagePart.h" -#include "tuscany/sca/model/WSDLInterface.h" -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca; -using namespace tuscany::sca::model; -using namespace tuscany::sca::util; - - -extern "C" -{ - extern module AP_MODULE_DECLARE_DATA sca_rest_module; -} - -namespace tuscany -{ - namespace sca - { - namespace rest - { - - typedef struct rest_server_config_rec - { - char * home; - } rest_server_config_rec_t; - - typedef struct rest_dir_config_rec - { - char * root; - char * path; - char * base_uri; - char * component; - } rest_dir_config_rec_t; - - CompositeService* initializeSCARuntime(const char* home, const char* root, - const char* path, const char* baseURI, const char *component, const char* service); - - DataObjectPtr createPayload(DataFactoryPtr dataFactory, - Operation& operation, const WSDLOperation& wsdlOperation); - - void addPart(XMLHelperPtr xmlHelper, string& payload, Operation& operation); - - int logHeaders(void* request, const char* key, const char* value); - - /** - * Initialize the SCA runtime - */ - CompositeService* initializeSCARuntime(const char* home, const char* root, - const char* path, const char* baseURI, const char *component, const char* service) - { - logentry(); - loginfo("Home: %s", home); - loginfo("Root: %s", root); - loginfo("Path: %s", path); - loginfo("Base URI: %s", baseURI); - loginfo("Component: %s", component); - loginfo("Service: %s", service); - - try - { - SCARuntime* runtime = SCARuntime::initializeSharedRuntime(home, root, path, baseURI); - - string componentName; - if (strlen(component)) - { - componentName = component; - } - else - { - componentName = runtime->getDefaultComponentName(); - } - string serviceName = service; - - loginfo("Resolving composite: %s, service: %s", componentName.c_str(), serviceName.c_str()); - Component* compositeComponent = runtime->getSystem()->findComponent(componentName); - if (compositeComponent == NULL) - { - string msg = "Component not found " + componentName; - throwException(SystemConfigurationException, msg.c_str()); - } - runtime->setDefaultComponent(compositeComponent); - - Composite* composite = (Composite*)compositeComponent->getType(); - CompositeService* compositeService = (CompositeService*)composite->findComponent(serviceName); - if (compositeService == NULL) - { - string msg = "Composite service not found " + serviceName; - throwException(SystemConfigurationException, msg.c_str()); - } - - return compositeService; - } - catch(TuscanyRuntimeException &ex) - { - ostringstream msg; - msg << ex; - logerror("Failed to initialize SCA runtime: %s", msg.str().c_str()); - throw; - } - } - - bool printRequest = false; - - int logHeaders(void* request, const char* key, const char* value) - { - loginfo("Header key: %s, value: %s", key, value); - if (printRequest) - { - ap_rprintf((request_rec*)request, "<br>Header key: %s, value: %s", key, value); - } - return 1; - } - - int rest_handler(request_rec *request) - { - logentry(); - - if (strcmp(request->handler, "sca_rest_module")) - { - return DECLINED; - } - - try { - - // Set up the read policy - int rc = ap_setup_client_block(request, REQUEST_CHUNKED_DECHUNK); - if (rc != OK) - { - return rc; - } - ap_should_client_block(request); - if (request->read_chunked == true && request->remaining == 0) - { - request->chunked = true; - } - - apr_table_setn(request->headers_out, "Connection", "close"); - - if (printRequest) - { - // Set the content type - ap_set_content_type(request, "text/html"); - - // Send the response document - ap_rputs("<html><body><p>Tuscany Mod_rest works!", request); - } - - rest_server_config_rec_t* server_conf = (rest_server_config_rec_t*)ap_get_module_config(request->server->module_config, &sca_rest_module); - loginfo("Tuscany home: %s", server_conf->home); - if (printRequest) - { - ap_rprintf(request, "<p>Tuscany home: %s", server_conf->home); - } - - rest_dir_config_rec_t* dir_conf = (rest_dir_config_rec_t*)ap_get_module_config(request->per_dir_config, &sca_rest_module); - loginfo("Tuscany root: %s", dir_conf->root); - if (printRequest) - { - ap_rprintf(request, "<p>Tuscany root: %s", dir_conf->root); - } - loginfo("Tuscany path: %s", dir_conf->path); - if (printRequest) - { - ap_rprintf(request, "<p>Tuscany path: %s", dir_conf->path); - } - loginfo("SCA component: %s", dir_conf->component); - if (printRequest) - { - ap_rprintf(request, "<p>SCA component: %s", dir_conf->component); - } - - if (request->protocol) - { - loginfo("Protocol: %s", request->protocol); - if (printRequest) - { - ap_rprintf(request, "<p>Protocol: %s", request->protocol); - } - } - - if (request->method) - { - loginfo("HTTP method: %s", request->method); - if (printRequest) - { - ap_rprintf(request, "<p>HTTP method: %s", request->method); - } - } - - loginfo("HTTP method number: %d", request->method_number); - if (printRequest) - { - ap_rprintf(request, "<p>HTTP method number: %d", request->method_number); - } - - const char* content_type = apr_table_get(request->headers_in, "Content-Type"); - if (content_type) - { - loginfo("Content type: %s", content_type); - if (printRequest) - { - ap_rprintf(request, "<p>Content type: %s", content_type); - } - } - else - { - content_type = "text/plain"; - } - - if (request->content_encoding) - { - loginfo("Content encoding: %s", request->content_encoding); - if (printRequest) - { - ap_rprintf(request, "<p>Content encoding: %s", request->content_encoding); - } - } - - if (printRequest) - { - ap_rputs("<p>", request); - } - apr_table_do(logHeaders, request, request->headers_in, NULL); - - if (request->uri) - { - loginfo("URI: %s", request->uri); - if (printRequest) - { - ap_rprintf(request, "<p>URI: %s", request->uri); - } - } - - if (request->path_info) - { - loginfo("Path info: %s", request->path_info); - if (printRequest) - { - ap_rprintf(request, "<p>Path info: %s", request->path_info); - } - } - - if (request->args) - { - loginfo("Args: %s", request->args); - if (printRequest) - { - ap_rprintf(request, "<p>Args: %s", request->args); - } - } - - if (printRequest) - { - ap_rputs("</body></html>", request); - } - - // Extract the service and component names from the HTTP URI path - string path; - if (strlen(request->path_info) != 0 && *(request->path_info) == '/') - { - path = request->path_info + 1; - } - else - { - path = request->path_info; - } - string uri; - - string component; - string service; - if (strlen(dir_conf->component)) - { - // The path only specifies the service, the component name - // is configured in the directory/location configured - component = dir_conf->component; - Utils::tokeniseString("/", path, service, uri); - } - else - { - // The path must be in the form component / service - string path2; - Utils::tokeniseString("/", path, component, path2); - Utils::tokeniseString("/", path2, service, uri); - } - - loginfo("Component name: %s", component.c_str()); - loginfo("Service name: %s", service.c_str()); - - // Initialize the SCA runtime - CompositeService* compositeService = initializeSCARuntime( - server_conf->home, dir_conf->root, dir_conf->path, dir_conf->base_uri, component.c_str(), service.c_str()); - - if(!compositeService) - { - throwException(SystemConfigurationException, - "Failed to initialize SCA runtime, could not initialize CompositeService"); - } - - Composite* composite = compositeService->getComposite(); - DataFactoryPtr dataFactory = composite->getDataFactory(); - if (dataFactory == 0) - { - throwException(SystemConfigurationException, - "Failed to initialize SCA runtime, could not get DataFactory"); - } - XMLHelperPtr xmlHelper = composite->getXMLHelper(); - - // Get the REST binding - Reference* reference = compositeService->getReference(); - RESTReferenceBinding* binding = (RESTReferenceBinding*)reference->getBinding(); - - // Get the REST proxy - RESTServiceProxy* proxy = (RESTServiceProxy*)binding->getServiceProxy(); - - // Get the component interface - Interface* iface = reference->getType()->getInterface(); - - if (request->method_number == M_GET) - { - // Handle an HTTP GET - - // Determine the operation to invoke - WSDLOperation wsdlOperation; - string wsdlNamespace = ""; - string op_name = ""; - string uriArgs = ""; - if (iface != NULL) - { - // If we have a REST interface, the operation name is "retrieve" - if (iface->getInterfaceTypeQName() == RESTInterface::typeQName) - { - op_name = "retrieve"; - uriArgs = uri; - } - else if (iface->getInterfaceTypeQName() == WSDLInterface::typeQName) - { - // we have a WSDL interface, the operation name is part of the URI - Utils::tokeniseString("/", uri, op_name, uriArgs); - - // look for the WSDL operation definition - WSDLInterface* wsdlInterface = (WSDLInterface*)iface; - wsdlNamespace = wsdlInterface->getNamespaceURI(); - - if (wsdlNamespace != "") - { - WSDLDefinition* wsdl = composite->findWSDLDefinition(wsdlNamespace); - if (wsdl == 0) - { - string msg = "WSDL not found for: " + wsdlNamespace; - throwException(SystemConfigurationException, msg.c_str()); - } - try - { - wsdlOperation = wsdl->findOperation(wsdlInterface->getName(), op_name.c_str()); - } - catch(SystemConfigurationException&) - { - throw; - } - - if (!wsdlOperation.isDocumentStyle() || !wsdlOperation.isWrappedStyle()) - { - throwException(ServiceInvocationException, - "Only wrapped document style WSDL operations are currentlysupported"); - } - } - } - } - else - { - Utils::tokeniseString("/", uri, op_name, uriArgs); - } - - // Create a default document literal wrapped WSDL operation - if (wsdlNamespace == "") - { - WSDLMessagePart inPart(op_name, "", "http://tempuri.org"); - WSDLMessagePart outPart((op_name+"Response"), "", "http://tempuri.org"); - wsdlNamespace = compositeService->getName(); - wsdlOperation = WSDLOperation(); - wsdlOperation.setOperationName(op_name.c_str()); - wsdlOperation.setSoapAction(wsdlNamespace+ "#" +op_name); - wsdlOperation.setEndpoint(""); - wsdlOperation.setSoapVersion(WSDLOperation::SOAP11); - wsdlOperation.setDocumentStyle(true); - wsdlOperation.setWrappedStyle(true); - wsdlOperation.setInputEncoded(false); - wsdlOperation.setOutputEncoded(false); - wsdlOperation.setInputMessagePart(op_name, inPart); - wsdlOperation.setOutputMessagePart((op_name+"Response"), outPart); - } - - // Create the input DataObject - Operation operation(op_name.c_str()); - - // Parse the args part of the URI - if (uriArgs != "") - { - string args = uriArgs; - for (; args != ""; ) - { - string param; - string next; - Utils::tokeniseString("/", args, param, next); - if (param != "") - { - string* data = new string; - *data = param; - operation.addParameter(data); - } - args = next; - } - } - - // Parse the query string - if (request->args) - { - string query = request->args; - for (; query != ""; ) - { - string param; - string next; - Utils::tokeniseString("&", query, param, next); - if (param != "") - { - string n; - string* data = new string; - Utils::tokeniseString("=", param, n, *data); - operation.addParameter(data); - } - query = next; - } - } - DataObjectPtr inputDataObject = createPayload(dataFactory, operation, wsdlOperation); - - // Dispatch to the REST proxy - DataObjectPtr outputDataObject = proxy->invoke(wsdlOperation, inputDataObject); - - // Send the output DataObject - if (iface!=NULL && - iface->getInterfaceTypeQName() == RESTInterface::typeQName) - { - if (outputDataObject == NULL) - { - throwException(ServiceInvocationException, "Null output from REST create operation"); - } - else - { - - // Pure REST, send the response document - XMLHelperPtr xm = HelperProvider::getXMLHelper(dataFactory); - DataObjectList& l = outputDataObject->getList("return"); - if (l.size() != 0) - { - DataObjectPtr resourceDataObject = l[0]; - XMLDocumentPtr doc = xm->createDocument( - resourceDataObject, - resourceDataObject->getType().getURI(), - resourceDataObject->getType().getName()); - char* str = xm->save(doc); - - // Calculate an Etag hash for the response - char* etag = ap_md5(request->pool, (const unsigned char*)str); - - // Handle a conditional GET, if the etag matches the etag - // sent by the client, we don't need to send the whole response - const char* match = apr_table_get(request->headers_in, "If-None-Match"); - if (match != NULL && !strcmp(etag, match)) - { - loginfo("REST resource matches ETag, sending HTTP 304 response code"); - request->status = HTTP_NOT_MODIFIED; - } - else - { - loginfo("Sending response: %s", str); - ap_set_content_type(request, "text/xml"); - apr_table_setn(request->headers_out, "ETag", etag); - - // Send an Etag header to allow caching and - // conditional gets - apr_table_setn(request->headers_out, "ETag", etag); - - ap_rputs(str, request); - } - } - else - { - loginfo("REST resource not found, sending HTTP 404 response code"); - request->status = HTTP_NOT_FOUND; - - return OK; - } - } - } - else - { - // Command style, send the response wrapper element - - if (outputDataObject == NULL) - { - loginfo("Sending empty response"); - //request->status = HTTP_NO_CONTENT; - } - else - { - XMLHelperPtr xm = HelperProvider::getXMLHelper(dataFactory); - DataObjectList& l = outputDataObject->getList("return"); - if (l.size() != 0) - { - DataObjectPtr resultDataObject = l[0]; - XMLDocumentPtr doc = xm->createDocument( - resultDataObject, - resultDataObject->getType().getURI(), - resultDataObject->getType().getName()); - char* str = xm->save(doc); - - loginfo("Sending response: %s", str); - ap_set_content_type(request, "text/xml"); - ap_rputs(str, request); - } - else - { - loginfo("Sending empty response"); - //request->status = HTTP_NO_CONTENT; - } - } - } - - return OK; - } - else if (request->method_number == M_POST) - { - // Handle an HTTP POST - - // Determine the operation to invoke - WSDLOperation wsdlOperation; - string wsdlNamespace = ""; - string op_name = ""; - string uriArgs = ""; - if (iface != NULL) - { - // If we have a REST interface, the operation name is "create" - if (iface->getInterfaceTypeQName() == RESTInterface::typeQName) - { - op_name = "create"; - } - else if (iface->getInterfaceTypeQName() == WSDLInterface::typeQName) - { - // we have a WSDL interface, the operation name is part of the URI - Utils::tokeniseString("/", uri, op_name, uriArgs); - - // look for the WSDL operation definition - WSDLInterface* wsdlInterface = (WSDLInterface*)iface; - wsdlNamespace = wsdlInterface->getNamespaceURI(); - - if (wsdlNamespace != "") - { - WSDLDefinition* wsdl = composite->findWSDLDefinition(wsdlNamespace); - if (wsdl == 0) - { - string msg = "WSDL not found for: " + wsdlNamespace; - throwException(SystemConfigurationException, msg.c_str()); - } - try - { - wsdlOperation = wsdl->findOperation(wsdlInterface->getName(), op_name.c_str()); - } - catch(SystemConfigurationException&) - { - throw; - } - - if (!wsdlOperation.isDocumentStyle() || !wsdlOperation.isWrappedStyle()) - { - throwException(ServiceInvocationException, - "Only wrapped document style WSDL operations are currentlysupported"); - } - } - } - } - else - { - Utils::tokeniseString("/", uri, op_name, uriArgs); - } - - // Create a default document literal wrapped WSDL operation - if (wsdlNamespace == "") - { - WSDLMessagePart inPart(op_name, "", "http://tempuri.org"); - WSDLMessagePart outPart((op_name+"Response"), "", "http://tempuri.org"); - wsdlNamespace = compositeService->getName(); - wsdlOperation = WSDLOperation(); - wsdlOperation.setOperationName(op_name.c_str()); - wsdlOperation.setSoapAction(wsdlNamespace+ "#" +op_name); - wsdlOperation.setEndpoint(""); - wsdlOperation.setSoapVersion(WSDLOperation::SOAP11); - wsdlOperation.setDocumentStyle(true); - wsdlOperation.setWrappedStyle(true); - wsdlOperation.setInputEncoded(false); - wsdlOperation.setOutputEncoded(false); - wsdlOperation.setInputMessagePart(op_name, inPart); - wsdlOperation.setOutputMessagePart((op_name+"Response"), outPart); - } - - // Create the input DataObject - Operation operation(op_name.c_str()); - - // Parse the args part of the URI - if (uriArgs != "") - { - string args = uriArgs; - for (; args != ""; ) - { - string param; - string next; - Utils::tokeniseString("/", args, param, next); - if (param != "") - { - string* data = new string; - *data = param; - operation.addParameter(data); - } - args = next; - } - } - - // Parse the query string - if (request->args) - { - string query = request->args; - for (; query != ""; ) - { - string param; - string next; - Utils::tokeniseString("&", query, param, next); - if (param != "") - { - string n; - string* data = new string; - Utils::tokeniseString("=", param, n, *data); - operation.addParameter(data); - } - query = next; - } - } - - // Read the POST input - ostringstream sinput; - char buffer[2049]; - for ( ; ; ) - { - int size = ap_get_client_block(request, buffer, 2048); - if (size > 0) - { - buffer[size] = '\0'; - sinput << buffer; - } - else if (size == 0) - { - break; - } - else if (size < 0) - { - throwException(ServiceInvocationException, "Error reading POST input"); - } - } - string input = sinput.str(); - - string contentType = content_type; - if (contentType.find("multipart/form-data") == 0) - { - // This is a multipart POST, extract each part from the - // POST body - string begin; - string boundary; - Utils::tokeniseString("boundary=", contentType, begin, boundary); - - for (;;) - { - // Read each part - string part; - string next; - Utils::tokeniseString(boundary, input, part, next); - input = next; - - // Skip first and last empty parts - if (part.length() == 0 || part == "--") - continue; - - // Read headers - bool xml = false; - int empty = -1; - for (;;) - { - string header; - Utils::tokeniseString("\r\n", part, header, next); - part = next; - if (header == "") - { - // Two empty lines signal the beginning of the content - empty++; - if (empty == 1) - break; - } - else - { - empty = 0; - - // Detect XML content - if (header == "Content-Type: text/xml") - xml = true; - } - } - - // Read the part content - if (part.length()) - { - // Strip the trailer - string value; - Utils::tokeniseString("\r\n--", part, value, next); - - if (xml) - { - // Add an XML parameter to the operation - addPart(xmlHelper, value, operation); - } - else - { - // Add a text parameter to the operation - string* stringData = new string; - *stringData = value; - operation.addParameter(stringData); - } - } - - // Read till the end of the POST body - if (input.length() == 0) - break; - } - } - else - { - // The POST body represents a single part - addPart(xmlHelper, input, operation); - } - - DataObjectPtr inputDataObject = createPayload(dataFactory, operation, wsdlOperation); - - // Dispatch to the REST proxy - DataObjectPtr outputDataObject = proxy->invoke(wsdlOperation, inputDataObject); - - // Send the response back to the client - if (iface!=NULL && - iface->getInterfaceTypeQName() == RESTInterface::typeQName) - { - // Pure REST, send the location of the created resource - - if (outputDataObject == NULL) - { - throwException(ServiceInvocationException, "Null output from REST create operation"); - } - - string location = ""; - - DataObjectList& l = outputDataObject->getList("return"); - if (l.size()) - { - location = l.getCString(0); - } - - if (location == "") - { - loginfo("No resource location, sending HTTP 400 response code"); - request->status = HTTP_BAD_REQUEST; - - return OK; - } - - string locuri = request->uri; - locuri += '/'; - locuri += location; - - const char* loc = ap_construct_url(request->pool, locuri.c_str(), request); - loginfo("Sending resource location: %s", loc); - apr_table_setn(request->headers_out, "Location", loc); - apr_table_setn(request->headers_out, "Content-Location", loc); - request->status = HTTP_CREATED; - - // Send the created resource entity back to the client - ap_set_content_type(request, "text/xml"); - ap_rputs(input.c_str(), request); - - } - else - { - // Command style, send the response element - - if (outputDataObject == NULL) - { - loginfo("Sending empty response"); - //request->status = HTTP_NO_CONTENT; - } - else - { - XMLHelperPtr xm = HelperProvider::getXMLHelper(dataFactory); - DataObjectList& l = outputDataObject->getList("return"); - if (l.size() != 0) - { - DataObjectPtr resultDataObject = l[0]; - XMLDocumentPtr doc = xm->createDocument( - resultDataObject, - resultDataObject->getType().getURI(), - resultDataObject->getType().getName()); - char* str = xm->save(doc); - - loginfo("Sending response: %s", str); - ap_set_content_type(request, "text/xml"); - ap_rputs(str, request); - } - else - { - loginfo("Sending empty response"); - //request->status = HTTP_NO_CONTENT; - } - } - } - - return OK; - } - else if (request->method_number == M_PUT) - { - - // Handle an HTTP PUT - - // Determine the operation to invoke - WSDLOperation wsdlOperation; - string wsdlNamespace = ""; - string op_name = "update"; - string uriArgs = uri; - - // Create a default document literal wrapped WSDL operation - WSDLMessagePart inputPart(op_name, "", "http://tempuri.org"); - WSDLMessagePart outputPart((op_name+"Response"), "", "http://tempuri.org"); - wsdlNamespace = compositeService->getName(); - wsdlOperation = WSDLOperation(); - wsdlOperation.setOperationName(op_name.c_str()); - wsdlOperation.setSoapAction(wsdlNamespace+ "#" +op_name); - wsdlOperation.setEndpoint(""); - wsdlOperation.setSoapVersion(WSDLOperation::SOAP11); - wsdlOperation.setDocumentStyle(true); - wsdlOperation.setWrappedStyle(true); - wsdlOperation.setInputEncoded(false); - wsdlOperation.setOutputEncoded(false); - wsdlOperation.setInputMessagePart(op_name, inputPart); - wsdlOperation.setOutputMessagePart((op_name+"Response"), outputPart); - - // Create the input DataObject - Operation operation(op_name.c_str()); - - // Parse the args part of the URI - if (uriArgs != "") - { - string args = uriArgs; - for (; args != ""; ) - { - string param; - string next; - Utils::tokeniseString("/", args, param, next); - if (param != "") - { - string* data = new string; - *data = param; - operation.addParameter(data); - } - args = next; - } - } - - // Parse the query string - if (request->args) - { - string query = request->args; - for (; query != ""; ) - { - string param; - string next; - Utils::tokeniseString("&", query, param, next); - if (param != "") - { - string n; - string* data = new string; - Utils::tokeniseString("=", param, n, *data); - operation.addParameter(data); - } - query = next; - } - } - - // Read the PUT input - ostringstream sinput; - char buffer[2049]; - for ( ; ; ) - { - int size = ap_get_client_block(request, buffer, 2048); - if (size > 0) - { - buffer[size] = '\0'; - sinput << buffer; - } - else if (size == 0) - { - break; - } - else if (size < 0) - { - throwException(ServiceInvocationException, "Error reading PUT input"); - } - } - string input = sinput.str(); - addPart(xmlHelper, input, operation); - - DataObjectPtr inputDataObject = createPayload(dataFactory, operation, wsdlOperation); - - // Dispatch to the REST proxy - DataObjectPtr outputDataObject = proxy->invoke(wsdlOperation, inputDataObject); - - // Empty response - //request->status = HTTP_NO_CONTENT; - return OK; - } - else if (request->method_number == M_DELETE) - { - - // Determine the operation to invoke - WSDLOperation wsdlOperation; - string wsdlNamespace = ""; - string op_name = "delete"; - string uriArgs = uri; - - // Create a default document literal wrapped WSDL operation - WSDLMessagePart inPart(op_name, "", "http://tempuri.org"); - WSDLMessagePart outPart((op_name+"Response"), "", "http://tempuri.org"); - wsdlNamespace = compositeService->getName(); - wsdlOperation = WSDLOperation(); - wsdlOperation.setOperationName(op_name.c_str()); - wsdlOperation.setSoapAction(wsdlNamespace+ "#" +op_name); - wsdlOperation.setEndpoint(""); - wsdlOperation.setSoapVersion(WSDLOperation::SOAP11); - wsdlOperation.setDocumentStyle(true); - wsdlOperation.setWrappedStyle(true); - wsdlOperation.setInputEncoded(false); - wsdlOperation.setOutputEncoded(false); - wsdlOperation.setInputMessagePart(op_name, inPart); - wsdlOperation.setOutputMessagePart((op_name+"Response"), outPart); - - // Create the input DataObject - Operation operation(op_name.c_str()); - - // Parse the args part of the URI - if (uriArgs != "") - { - string args = uriArgs; - for (; args != ""; ) - { - string param; - string next; - Utils::tokeniseString("/", args, param, next); - if (param != "") - { - string* data = new string; - *data = param; - operation.addParameter(data); - } - args = next; - } - } - - // Parse the query string - if (request->args) - { - string query = request->args; - for (; query != ""; ) - { - string param; - string next; - Utils::tokeniseString("&", query, param, next); - if (param != "") - { - string n; - string* data = new string; - Utils::tokeniseString("=", param, n, *data); - operation.addParameter(data); - } - query = next; - } - } - - DataObjectPtr inputDataObject = createPayload(dataFactory, operation, wsdlOperation); - - // Dispatch to the REST proxy - DataObjectPtr outputDataObject = proxy->invoke(wsdlOperation, inputDataObject); - - // Empty response - //request->status = HTTP_NO_CONTENT; - return OK; - } - else - { - if (request->method) - { - logerror("Unsupported HTTP method: %s", request->method); - } - else - { - logerror("Unsupported HTTP method: %d", request->method_number); - } - return HTTP_NOT_IMPLEMENTED; - } - } - catch(TuscanyRuntimeException& ex) - { - ostringstream msg; - msg << ex; - logerror("Failed to process REST request: %s", msg.str().c_str()); - return HTTP_INTERNAL_SERVER_ERROR; - } - } - - DataObjectPtr createPayload(DataFactoryPtr dataFactory, Operation& operation, const WSDLOperation& wsdlOperation) - { - logentry(); - - DataObjectPtr inputDataObject; - string inputTypeUri; - string inputTypeName; - try - { - // Since its Document wrapped, there will only be one part - std::list<std::string> partList = wsdlOperation.getInputMessagePartNames(); - const WSDLMessagePart &inputMessage = - wsdlOperation.getInputMessagePart(partList.front()); - inputTypeName = inputMessage.getPartType(); - inputTypeUri = inputMessage.getPartUri(); - - // Create the input wrapper - const Type& rootType = dataFactory->getType(inputTypeUri.c_str(), "RootType"); - const Property& prop = rootType.getProperty(inputTypeName.c_str()); - const Type& inputType = prop.getType(); - inputDataObject = dataFactory->create(inputType); - } - catch (SDORuntimeException&) - { - try - { - // Create the input wrapper - const Type& inputType = - dataFactory->getType(inputTypeUri.c_str(), inputTypeName.c_str()); - inputDataObject = dataFactory->create(inputType); - } - catch (SDORuntimeException&) - { - - // The input wrapper type is not known, create an open DataObject - inputDataObject = dataFactory->create("http://tempuri.org", "Wrapper"); - } - } - - // Go through data object to set the input parameters - PropertyList pl = inputDataObject->getType().getProperties(); - - if(pl.size() == 0) - { - if(inputDataObject->getType().isOpenType() && inputDataObject->getType().isDataObjectType()) - { - /* - * This code deals with sending xsd:any elements - */ - for (int i=0; i<operation.getNParms(); i++) - { - ostringstream pname; - pname << "param" << (i+1); - DataObjectList& l = inputDataObject->getList(pname.str()); - - const Operation::Parameter& parm = operation.getParameter(i); - switch(parm.getType()) - { - case Operation::STRING: - { - l.append((*(string*)parm.getValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - l.append(*(DataObjectPtr*)parm.getValue()); - break; - } - default: - { - break; - } - } - } - } - } - else { - - // Each parameter in the operation should be a property on the request dataobject - for (unsigned int i=0; i<operation.getNParms(); i++) - { - const Operation::Parameter& parm = operation.getParameter(i); - switch(parm.getType()) - { - case Operation::STRING: - { - inputDataObject->setCString(i, (*(string*)parm.getValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - inputDataObject->setDataObject(i, *(DataObjectPtr*)parm.getValue()); - break; - } - default: - { - break; - } - } - } - } - - return inputDataObject; - } - - void addPart(XMLHelperPtr xmlHelper, string& payload, Operation& operation) - { - logentry(); - - - //TODO Remove this workaround once SDO supports loading of open top level content - // The workaround is to wrap the open content in a wrapper element - string xmldecl; - string xml; - Utils::rTokeniseString("?>", payload, xmldecl, xml); - string body = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; - body += "<Wrapper xmlns=\"http://tempuri.org\" xmlns:tns=\"http://tempuri.org\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n"; - body += xml; - body += "\n</Wrapper>"; - - // Convert the body to an SDO DataObject - DataObjectPtr inputWrapperDataObject = NULL; - XMLDocumentPtr theXMLDocument = xmlHelper->load(body.c_str(), NULL); - if (theXMLDocument != 0) - { - inputWrapperDataObject = theXMLDocument->getRootDataObject(); - } - if(!inputWrapperDataObject) - { - ostringstream msg; - msg << "Could not convert received document to SDO: " << body; - throwException(ServiceDataException, msg.str().c_str()); - } - - // Get the body part - DataObjectPtr inputDataObject = NULL; - PropertyList bpl = inputWrapperDataObject->getInstanceProperties(); - if (bpl.size()!=0) - { - if (bpl[0].isMany()) - { - DataObjectList& parts = inputWrapperDataObject->getList((unsigned int)0); - inputDataObject = parts[0]; - } - else - { - inputDataObject = inputWrapperDataObject->getDataObject(bpl[0]); - } - } - if (inputDataObject == NULL) - { - ostringstream msg; - msg << "Could not convert received document to SDO: " << body; - throwException(ServiceDataException, msg.str().c_str()); - } - - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = inputDataObject; - (*dataObjectData)->detach(); - operation.addParameter(dataObjectData); - } - - const char *rest_set_home(cmd_parms *cmd, void *dummy, - const char *arg) - { - rest_server_config_rec_t *conf = (rest_server_config_rec_t*)ap_get_module_config( - cmd->server->module_config, &sca_rest_module); - conf->home = apr_pstrdup(cmd->pool, arg); - return NULL; - } - - const char *rest_set_path(cmd_parms *cmd, void *c, - const char *arg) - { - rest_dir_config_rec_t *conf = (rest_dir_config_rec_t*)c; - conf->path = apr_pstrdup(cmd->pool, arg); - return NULL; - } - - const char *rest_set_root(cmd_parms *cmd, void *c, - const char *arg) - { - rest_dir_config_rec_t *conf = (rest_dir_config_rec_t*)c; - conf->root = apr_pstrdup(cmd->pool, arg); - return NULL; - } - - const char *rest_set_base_uri(cmd_parms *cmd, void *c, - const char *arg) - { - rest_dir_config_rec_t *conf = (rest_dir_config_rec_t*)c; - conf->base_uri = apr_pstrdup(cmd->pool, arg); - return NULL; - } - - const char *rest_set_component(cmd_parms *cmd, void *c, - const char *arg) - { - rest_dir_config_rec_t *conf = (rest_dir_config_rec_t*)c; - conf->component = apr_pstrdup(cmd->pool, arg); - return NULL; - } - - const command_rec rest_module_cmds[] = - { - AP_INIT_TAKE1("TuscanyHome", (const char*(*)())tuscany::sca::rest::rest_set_home, NULL, RSRC_CONF, - "Tuscany home directory"), - AP_INIT_TAKE1("TuscanyPath", (const char*(*)())tuscany::sca::rest::rest_set_path, NULL, ACCESS_CONF, - "Tuscany SCA composite search path"), - AP_INIT_TAKE1("TuscanyRoot", (const char*(*)())tuscany::sca::rest::rest_set_root, NULL, ACCESS_CONF, - "Tuscany root SCA configuration path"), - AP_INIT_TAKE1("TuscanyBaseURI", (const char*(*)())tuscany::sca::rest::rest_set_base_uri, NULL, ACCESS_CONF, - "Tuscany SCA system base URI"), - AP_INIT_TAKE1("TuscanyComponent", (const char*(*)())tuscany::sca::rest::rest_set_component, NULL, ACCESS_CONF, - "SCA component name"), - {NULL} - }; - - int rest_init(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, - server_rec *s) - { - return OK; - } - - void rest_child_init(apr_pool_t* p, server_rec* svr_rec) - { - rest_server_config_rec_t *conf = (rest_server_config_rec_t*)ap_get_module_config( - svr_rec->module_config, &sca_rest_module); - - if(false) - { - fprintf(stderr, "[Tuscany] Due to one or more errors mod_rest loading" - " failed. Causing apache2 to stop loading\n"); - exit(APEXIT_CHILDFATAL); - } - } - - void register_hooks(apr_pool_t *p) - { - ap_hook_handler(rest_handler, NULL, NULL, APR_HOOK_MIDDLE); - ap_hook_post_config(rest_init, NULL, NULL, APR_HOOK_MIDDLE); - ap_hook_child_init(rest_child_init, NULL, NULL, APR_HOOK_MIDDLE); - } - - void *rest_create_dir_config(apr_pool_t *p, char *dirspec) - { - rest_dir_config_rec_t* conf = (rest_dir_config_rec_t* )apr_palloc(p, sizeof(*conf)); - conf->path = ""; - conf->root = ""; - conf->base_uri = ""; - conf->component = ""; - return conf; - } - - void* rest_create_server_config(apr_pool_t *p, server_rec *s) - { - rest_server_config_rec_t* conf = (rest_server_config_rec_t* )apr_palloc(p, sizeof(*conf)); - conf->home = ""; - return conf; - } - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany - -extern "C" -{ - - module AP_MODULE_DECLARE_DATA sca_rest_module = - { - STANDARD20_MODULE_STUFF, - tuscany::sca::rest::rest_create_dir_config, /* dir config */ - NULL, /* dir merger --- default is to override */ - tuscany::sca::rest::rest_create_server_config, /* server config */ - NULL, /* merge server config */ - tuscany::sca::rest::rest_module_cmds, /* command table */ - tuscany::sca::rest::register_hooks /* register_hooks */ - }; - -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTReferenceBindingExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTReferenceBindingExtension.cpp deleted file mode 100644 index 18720f42f5..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTReferenceBindingExtension.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/* -* 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. -*/ - -#include "RESTReferenceBindingExtension.h" -#include "model/RESTReferenceBinding.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_rest_service_initialize() - { - tuscany::sca::rest::RESTReferenceBindingExtension::initialize(); - } -} - -namespace tuscany -{ - namespace sca - { - namespace rest - { - // =================================================================== - // Constructor for the RESTReferenceBinding class. - // =================================================================== - RESTReferenceBindingExtension::RESTReferenceBindingExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the RESTReferenceBindingExtension class. - // =================================================================== - RESTReferenceBindingExtension::~RESTReferenceBindingExtension() - { - logentry(); - } - - const string RESTReferenceBindingExtension::extensionName("rest"); - const string RESTReferenceBindingExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#RESTBinding"); - - // =================================================================== - // loadModelElement - load the info from binding.rest - // =================================================================== - ReferenceBinding* RESTReferenceBindingExtension::getReferenceBinding(Composite *composite, Reference* reference, DataObjectPtr scdlBinding) - { - string uri = scdlBinding->getCString("uri"); - - RESTReferenceBinding* referenceBinding = new RESTReferenceBinding(reference, uri); - - return referenceBinding; - } - - void RESTReferenceBindingExtension::initialize() - { - logentry(); - SCARuntime::getCurrentRuntime()->registerReferenceBindingExtension(new RESTReferenceBindingExtension()); - } - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTReferenceBindingExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTReferenceBindingExtension.h deleted file mode 100644 index 0d9e41841b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTReferenceBindingExtension.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * 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. - */ - -#ifndef tuscany_sca_extension_rest_restreferencebindingextension_h -#define tuscany_sca_extension_rest_restreferencebindingextension_h - -#include "tuscany/sca/extension/ReferenceBindingExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace rest - { - - class RESTReferenceBindingExtension : public ReferenceBindingExtension - { - public: - /** - * Default constructor - */ - RESTReferenceBindingExtension(); - - /** - * Destructor - */ - virtual ~RESTReferenceBindingExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#binding.rest") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::ReferenceBinding* getReferenceBinding( - tuscany::sca::model::Composite* composite, - tuscany::sca::model::Reference *reference, - commonj::sdo::DataObjectPtr scdlBinding); - - static void initialize(); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_rest_restreferencebindingextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTServiceProxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTServiceProxy.cpp deleted file mode 100644 index 95affe6202..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTServiceProxy.cpp +++ /dev/null @@ -1,567 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <sstream> - -#include "commonj/sdo/SDO.h" - -#include "RESTServiceProxy.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/SDOUtils.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ComponentType.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/model/WSDLDefinition.h" -#include "tuscany/sca/model/WSDLInterface.h" -#include "tuscany/sca/model/WSDLOperation.h" -#include "tuscany/sca/model/WSDLMessagePart.h" -#include "model/RESTReferenceBinding.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace rest - { - - // ============================ - // Constructor: Create a proxy - // ============================ - RESTServiceProxy::RESTServiceProxy(Reference* reference) - : ServiceProxy(reference) - { - logentry(); - - // Get the target service wrapper - RESTReferenceBinding* referenceBinding = (RESTReferenceBinding*)reference->getBinding(); - serviceWrapper = referenceBinding->getTargetServiceBinding()->getServiceWrapper(); - - DataFactoryPtr dataFactory = reference->getComponent()->getComposite()->getDataFactory(); - try { - const Type& tempType = dataFactory->getType("http://tempuri.org", "RootType"); - } catch (SDORuntimeException&) - { - dataFactory->addType("http://tempuri.org", "RootType", false, false, false); - dataFactory->addType("http://tempuri.org", "Wrapper", false, true, false); - dataFactory->addPropertyToType( - "http://tempuri.org", "RootType", - "Wrapper", - "http://tempuri.org", "Wrapper", - false, false, true); - dataFactory->addType("http://tempuri.org", "Part", false, true, false); - dataFactory->addPropertyToType( - "http://tempuri.org", "RootType", - "Part", - "http://tempuri.org", "Part", - false, false, true); - } - } - - // ========== - // Destructor - // ========== - RESTServiceProxy::~RESTServiceProxy() - { - logentry(); - } - - /// - /// This method will be called to process an operation invocation. - /// - DataObjectPtr RESTServiceProxy::invoke(const WSDLOperation& wsdlOperation, DataObjectPtr inputDataObject) - { - logentry(); - - Reference* reference = getReference(); - Component* component = reference->getComponent(); - Composite* composite = component ->getComposite(); - - RESTReferenceBinding* referenceBinding = (RESTReferenceBinding*)reference->getBinding(); - DataFactoryPtr dataFactoryPtr = reference->getComponent()->getComposite()->getDataFactory(); - - // Since its Document wrapped, there will only be one message part - std::list<std::string> partList = wsdlOperation.getOutputMessagePartNames(); - const WSDLMessagePart &part = wsdlOperation.getOutputMessagePart(partList.front()); - const char* outputTypeURI = part.getPartUri().c_str(); - const char* outputTypeName = part.getPartName().c_str(); - - loginfo("WSDLOperation input message Type: %s#%s", - wsdlOperation.getInputMessageUri().c_str(), - wsdlOperation.getInputMessageName().c_str()); - loginfo("WSDLOperation output part Type: %s#%s", - outputTypeURI, - outputTypeName); - - // Create new Operation object and set parameters and return value - Operation operation(wsdlOperation.getOperationName().c_str()); - - try - { - - // Go through the input data object to set the operation parameters - PropertyList pl = inputDataObject->getInstanceProperties(); - - for(int i=0; i<pl.size(); i++) - { - const char* name = pl[i].getName(); - - switch (pl[i].getTypeEnum()) - { - case Type::BooleanType: - { - bool* boolData = new bool; - *boolData = inputDataObject->getBoolean(pl[i]); - operation.addParameter(boolData); - } - break; - case Type::ByteType: - { - char* byteData = new char; - *byteData = inputDataObject->getByte(pl[i]); - operation.addParameter(byteData); - } - break; - case Type::BytesType: - { - int len = inputDataObject->getLength(pl[i]); - char** bytesData = new char*; - *bytesData = new char[len+1]; - int bytesWritten = inputDataObject->getBytes(pl[i], *bytesData, len); - // Ensure the bytes end with the null char. Not sure if this is neccessary - if(bytesWritten <= len) - { - (*bytesData)[bytesWritten] = 0; - } - else - { - (*bytesData)[len] = 0; - } - operation.addParameter(bytesData); - } - break; - case Type::CharacterType: - { - // This code should work but won't be used as there is no mapping from an XSD type to the SDO CharacterType - wchar_t* charData = new wchar_t; - *charData = inputDataObject->getCharacter(pl[i]); - operation.addParameter(charData); - } - break; - case Type::DoubleType: - { - long double* doubleData = new long double; - *doubleData = inputDataObject->getDouble(pl[i]); - operation.addParameter(doubleData); - } - break; - case Type::FloatType: - { - float* floatData = new float; - *floatData = inputDataObject->getFloat(pl[i]); - operation.addParameter(floatData); - } - break; - case Type::IntType: - { - long* intData = new long; - *intData = inputDataObject->getInt(pl[i]); - operation.addParameter(intData); - } - break; - case Type::ShortType: - { - short* shortData = new short; - *shortData = inputDataObject->getShort(pl[i]); - operation.addParameter(shortData); - } - break; - case Type::StringType: - { - string* stringData; - if (pl[i].isMany()) - { - DataObjectList& l = inputDataObject->getList(pl[i]); - stringData = new string(l.getCString(0)); - } - else - { - if(inputDataObject->isSet(pl[i])) - { - stringData = new string(inputDataObject->getCString(pl[i])); - } - else - { - // The data is not set, so pass an empty string as the parameter - stringData = new string(); - } - } - operation.addParameter(stringData); - } - break; - case Type::DataObjectType: - { - if (!strcmp(pl[i].getType().getURI(), SDOUtils::sdoURI) && - !strcmp(pl[i].getType().getName(), "OpenDataObject")) { - - /* - * This code deals with xsd:any element parameters - * Get each element as a DataObject and add in to the parameter list - */ - - DataObjectList& dataObjectList = inputDataObject->getList(pl[i]); - - for(int j=0; j<dataObjectList.size(); j++) - { - DataObjectPtr dob = dataObjectList[j]; - if(!dob) - { - - // Add a null DataObject ptr - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = NULL; - loginfo("Null OpenDataObject parameter named %s[%d]", name, j); - operation.addParameter(dataObjectData); - } - else - { - - SequencePtr sequence = dob->getSequence(); - if (sequence->size()!=0) - { - // Add a text element - if (sequence->isText(0)) - { - string* stringData = new string(sequence->getCStringValue(0)); - operation.addParameter(stringData); - } - else - { - // Add a complex element DataObject - DataObjectPtr* dataObjectData =new DataObjectPtr; - *dataObjectData = sequence->getDataObjectValue(0); - if(!*dataObjectData) - { - loginfo("Null DataObject parameter named %s", name); - } - else - { - (*dataObjectData)->detach(); - } - operation.addParameter(dataObjectData); - } - } - else - { - // Empty content, add an empty string - loginfo("Empty OpenDataObject parameter named %s[%d]", name, j); - string* stringData = new string(""); - operation.addParameter(stringData); - } - } - } - } - else { - DataObjectPtr* dataObjectData = new DataObjectPtr; - if (pl[i].isMany()) - { - DataObjectList& l = inputDataObject->getList((unsigned int)i); - *dataObjectData = l[0]; - } - else - { - *dataObjectData = inputDataObject->getDataObject(pl[i]); - } - if(!*dataObjectData) - { - loginfo("Null DataObject parameter named %s", name); - } - else - { - (*dataObjectData)->detach(); - } - operation.addParameter(dataObjectData); - } - } - break; - default: - { - ostringstream msg; - msg << "Unsupported param type: " << pl[i].getTypeEnum(); - throwException(SystemConfigurationException, msg.str().c_str()); - } - } - } - - // Call into the target service wrapper - serviceWrapper->invoke(operation); - - // Set the data in the outputDataObject to be returned - DataObjectPtr outputDataObject; - try { - - // Create the output wrapper - const Type& rootType = dataFactoryPtr->getType(outputTypeURI, "RootType"); - const Property& prop = rootType.getProperty(outputTypeName); - const Type& outputType = prop.getType(); - outputDataObject = dataFactoryPtr->create(outputType); - } - catch (SDORuntimeException&) - { - try - { - - // Create the output wrapper - const Type& outputType = dataFactoryPtr->getType(outputTypeURI, outputTypeName); - outputDataObject = dataFactoryPtr->create(outputType); - } - catch (SDORuntimeException&) - { - // The output wrapper type is not known, create an open DataObject - outputDataObject = dataFactoryPtr->create("http://tempuri.org", "Wrapper"); - } - } - - setOutputData(operation, outputDataObject, dataFactoryPtr); - - return outputDataObject; - } - catch(SDORuntimeException& ex) - { - throwException(ServiceInvocationException, ex); - } - catch(TuscanyRuntimeException& ex) - { - throw; - } - } - - - void RESTServiceProxy::setOutputData(Operation& operation, DataObjectPtr outputDataObject, DataFactoryPtr dataFactoryPtr) - { - logentry(); - - // Go through data object to set the return value - PropertyList pl = outputDataObject->getType().getProperties(); - - if(pl.size() == 0) - { - if(outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType()) - { - /* - * This code deals with returning xsd:any elements - */ - DataObjectList& l = outputDataObject->getList("return"); - Operation::ParameterType resultType = operation.getReturnType(); - switch(resultType) - { - case Operation::BOOL: - { - l.append(*(bool*)operation.getReturnValue()); - break; - } - case Operation::SHORT: - { - l.append(*(short*)operation.getReturnValue()); - break; - } - case Operation::INT: - { - l.append(*(long*)operation.getReturnValue()); - break; - } - case Operation::LONG: - { - l.append(*(long*)operation.getReturnValue()); - break; - } - case Operation::USHORT: - { - l.append(*(short*)operation.getReturnValue()); - break; - } - case Operation::UINT: - { - l.append(*(long*)operation.getReturnValue()); - break; - } - case Operation::ULONG: - { - l.append(*(long*)operation.getReturnValue()); - break; - } - case Operation::FLOAT: - { - l.append(*(float*)operation.getReturnValue()); - break; - } - case Operation::DOUBLE: - { - l.append(*(long double*)operation.getReturnValue()); - break; - } - case Operation::LONGDOUBLE: - { - l.append(*(long double*)operation.getReturnValue()); - break; - } - case Operation::CHARS: - { - l.append(*(char**)operation.getReturnValue()); - break; - } - case Operation::STRING: - { - l.append((*(string*)operation.getReturnValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - l.append(*(DataObjectPtr*)operation.getReturnValue()); - break; - } - default: - { - break; - } - } - } - else - { - loginfo("No return values defined"); - } - } - else { - - // Should only be one return value.. This goes through all return values - for(int i=0; i<pl.size(); i++) - { - const char* name = pl[i].getName(); - - Operation::ParameterType resultType = operation.getReturnType(); - switch(resultType) - { - case Operation::BOOL: - { - outputDataObject->setBoolean(pl[i], *(bool*)operation.getReturnValue()); - break; - } - case Operation::SHORT: - { - outputDataObject->setShort(pl[i], *(short*)operation.getReturnValue()); - break; - } - case Operation::INT: - { - outputDataObject->setInt(pl[i], *(int*)operation.getReturnValue()); - break; - } - case Operation::LONG: - { - outputDataObject->setInt(pl[i], *(long*)operation.getReturnValue()); - break; - } - case Operation::USHORT: - { - outputDataObject->setInt(pl[i], *(unsigned short*)operation.getReturnValue()); - break; - } - case Operation::UINT: - { - outputDataObject->setInt(pl[i], *(unsigned int*)operation.getReturnValue()); - break; - } - case Operation::ULONG: - { - outputDataObject->setInt(pl[i], *(unsigned long*)operation.getReturnValue()); - break; - } - case Operation::FLOAT: - { - outputDataObject->setFloat(pl[i], *(float*)operation.getReturnValue()); - break; - } - case Operation::DOUBLE: - { - outputDataObject->setDouble(pl[i], *(double*)operation.getReturnValue()); - break; - } - case Operation::LONGDOUBLE: - { - outputDataObject->setDouble(pl[i], *(long double*)operation.getReturnValue()); - break; - } - case Operation::CHARS: - { - if(*(char**)operation.getReturnValue() != NULL) - { - outputDataObject->setCString(pl[i], *(char**)operation.getReturnValue()); - } - else - { - loginfo("Null return value, leaving property %s unset", pl[i].getName()); - } - break; - } - case Operation::STRING: - { - outputDataObject->setCString(pl[i], (*(string*)operation.getReturnValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - - if(*(DataObjectPtr*)operation.getReturnValue() != NULL) - { - outputDataObject->setDataObject(pl[i], *(DataObjectPtr*)operation.getReturnValue()); - } - else - { - loginfo("Null return value, leaving property %s unset", pl[i].getName()); - } - - break; - } - default: - { - break; - } - } - } - } - } - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTServiceProxy.h b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTServiceProxy.h deleted file mode 100644 index 387add3f35..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/RESTServiceProxy.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * - * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_rest_restserviceproxy_h -#define tuscany_sca_extension_rest_restserviceproxy_h - -#include "commonj/sdo/SDO.h" - -#include "export.h" -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/WSDLOperation.h" -#include "model/RESTReferenceBinding.h" - - -namespace tuscany -{ - namespace sca - { - namespace rest - { - - /** - * Holds a proxy for a given component and reference. - * The proxy which is held inside a ServiceProxy will be specific to the programming - * interface expected by the client. In this particular case the client is an Axis2 - * Web service skeleton. - */ - class RESTServiceProxy : public ServiceProxy - { - public: - /** - * Create a new service proxy for a reference. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The reference on the source component. - * @param target The wrapper of the service which is wired to this reference. - */ - RESTServiceProxy(tuscany::sca::model::Reference* reference); - - /** - * Create a new service proxy for a service. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The service on the target component. - * @param target The wrapper of the target service. - */ - RESTServiceProxy(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~RESTServiceProxy(); - - /** - * Invoke the specified operation - */ - SCA_REST_SERVICE_API commonj::sdo::DataObjectPtr invoke( - const tuscany::sca::model::WSDLOperation& wsdlOperation, - commonj::sdo::DataObjectPtr inputDataObject); - - private: - - void setOutputData(Operation& operation, - commonj::sdo::DataObjectPtr outputDataObject, commonj::sdo::DataFactoryPtr dataFactoryPtr); - - /** - * The target service wrapper - */ - ServiceWrapper* serviceWrapper; - - }; - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_rest_restserviceproxy_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/export.h b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/export.h deleted file mode 100644 index 802218a2fe..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/export.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_rest_service_export_h -#define tuscany_sca_rest_service_export_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) - -#ifdef TUSCANY_SCA_REST_SERVICE_EXPORTS -#define SCA_REST_SERVICE_API __declspec(dllexport) -#else -#define SCA_REST_SERVICE_API __declspec(dllimport) -#endif - -#else -#define SCA_REST_SERVICE_API -#endif - -#endif // tuscany_sca_rest_service_export_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/model/RESTReferenceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/model/RESTReferenceBinding.cpp deleted file mode 100644 index 877ee01178..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/model/RESTReferenceBinding.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - * - * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/rest/model/RESTReferenceBinding.h" -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/rest/RESTServiceProxy.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace rest - { - - // Constructor - RESTReferenceBinding::RESTReferenceBinding(Reference* reference, const string& uri) - : ReferenceBinding(reference, uri) - { - logentry(); - } - - // Destructor - RESTReferenceBinding::~RESTReferenceBinding() - { - logentry(); - } - - void RESTReferenceBinding::configure(ServiceBinding *binding) - { - logentry(); - - setTargetServiceBinding(binding); - - serviceProxy = new RESTServiceProxy(getReference()); - } - - ServiceProxy* RESTReferenceBinding::getServiceProxy() - { - logentry(); - - return serviceProxy; - } - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/model/RESTReferenceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/model/RESTReferenceBinding.h deleted file mode 100644 index 22fc04c356..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/service/httpd/src/tuscany/sca/rest/model/RESTReferenceBinding.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * - * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_rest_model_restreferencebinding_h -#define tuscany_sca_extension_rest_model_restreferencebinding_h - -#include <string> - -#include "tuscany/sca/model/ReferenceBinding.h" - -namespace tuscany -{ - namespace sca - { - namespace rest - { - /** - * Information about a web service binding for service or a reference. - */ - class RESTReferenceBinding : public tuscany::sca::model::ReferenceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - */ - RESTReferenceBinding(tuscany::sca::model::Reference* reference, const std::string& uri); - - /** - * Destructor. - */ - virtual ~RESTReferenceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#RESTBinding"; }; - - /** - * Configure this binding from a service binding. - */ - virtual void configure(tuscany::sca::model::ServiceBinding* serviceBinding); - - /** - * Create a proxy representing the reference to the - * client component. - */ - virtual ServiceProxy* getServiceProxy(); - - private: - - /** - * The proxy representing the reference to the client - * component. - */ - ServiceProxy* serviceProxy; - }; - - } // End namespace rest - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_rest_model_restreferencebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/xsd/sca-binding-rest.xsd b/sca-cpp/trunk/contrib/runtime/extensions/rest/xsd/sca-binding-rest.xsd deleted file mode 100644 index ace4c54a39..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/xsd/sca-binding-rest.xsd +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright 2006 The Apache Software Foundation or its licensors, as applicable. - - Licensed 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. - --> -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <include schemaLocation="../../../xsd/sca-core.xsd"/> - - <element name="binding.rest" type="sca:RESTBinding" substitutionGroup="sca:binding"/> - <complexType name="RESTBinding"> - <complexContent> - <extension base="sca:Binding"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> - -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/rest/xsd/sca-interface-rest.xsd b/sca-cpp/trunk/contrib/runtime/extensions/rest/xsd/sca-interface-rest.xsd deleted file mode 100644 index 30422ab038..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/rest/xsd/sca-interface-rest.xsd +++ /dev/null @@ -1,40 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <include schemaLocation="../../../xsd/sca-core.xsd"/> - - <element name="interface.rest" type="sca:RESTInterface" substitutionGroup="sca:interface"/> - <complexType name="RESTInterface"> - <complexContent> - <extension base="sca:Interface"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> - -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/ruby/Makefile.am deleted file mode 100644 index 08ba2f553f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -# 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. - -SUBDIRS = src extension - -datadir=$(prefix)/extensions/ruby - -nobase_data_DATA = xsd/*.xsd - -EXTRA_DIST = xsd diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/extension/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/ruby/extension/Makefile.am deleted file mode 100644 index 41ce75925b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/extension/Makefile.am +++ /dev/null @@ -1,34 +0,0 @@ -# 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. -SUBDIRS = - -libdir=$(prefix)/extensions/ruby/lib -BUILT_SOURCES = extension_build - -EXTRA_DIST = src - -extension_build: src/Extension.cpp src/extconf.rb - cd src; ruby extconf.rb; make - touch extension_build - -clean: - cd src;make clean - rm -f extension_build - -install-exec-hook: - cp src/tuscany_sca_ruby.* $(libdir) - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/extension/src/Extension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ruby/extension/src/Extension.cpp deleted file mode 100644 index 458700e5f1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/extension/src/Extension.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#define SCA_RUBYEXTENSION_API __declspec(dllexport) -#else -#define SCA_RUBYEXTENSION_API -#endif - -#include "tuscany/sca/ruby/Ruby.h" -#include "tuscany/sca/ruby/RubyCompositeContext.h" - -extern "C" -{ - - // Implement the Sca::locateService module function - SCA_RUBYEXTENSION_API VALUE tuscany_sca_ruby_locateService(VALUE module, VALUE value) - { - // Locate the service - const char* serviceName = rb_string_value_cstr(&value); - return tuscany::sca::ruby::RubyCompositeContext::locateService(serviceName); - } - - // Initialize the Ruby extension - SCA_RUBYEXTENSION_API void Init_tuscany_sca_ruby() - { - - // Define the Sca::locateService() function - VALUE module = rb_define_module("SCA"); - rb_define_module_function(module, "locateService", (VALUE(*)(ANYARGS))tuscany_sca_ruby_locateService, 1); - - } - - SCA_RUBYEXTENSION_API void Init_libtuscany_sca_ruby() - { - Init_tuscany_sca_ruby(); - } -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/extension/src/extconf.rb b/sca-cpp/trunk/contrib/runtime/extensions/ruby/extension/src/extconf.rb deleted file mode 100644 index 9c41843d63..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/extension/src/extconf.rb +++ /dev/null @@ -1,25 +0,0 @@ -# -# 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 'mkmf' - CONFIG["CC"] = "g++" - $CPPFLAGS << " -I../../src " - $LIBPATH << "../../src/.libs" - $LIBS << " -ltuscany_sca_ruby_lang " - create_makefile 'tuscany_sca_ruby' diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/Makefile.am deleted file mode 100644 index d9310440b9..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/Makefile.am +++ /dev/null @@ -1,53 +0,0 @@ -# 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. - -libdir=$(prefix)/extensions/ruby/lib -lib_LTLIBRARIES = libtuscany_sca_ruby_lang.la - -install-exec-hook: - -rootdir=$(prefix)/extensions/ruby - -noinst_HEADERS = \ -tuscany/sca/ruby/*.h \ -tuscany/sca/ruby/model/*.h - -libtuscany_sca_ruby_lang_la_SOURCES = \ -tuscany/sca/ruby/RubyExtension.cpp \ -tuscany/sca/ruby/RubyImplementationExtension.cpp \ -tuscany/sca/ruby/RubyServiceProxy.cpp \ -tuscany/sca/ruby/RubyServiceWrapper.cpp \ -tuscany/sca/ruby/model/RubyImplementation.cpp \ -tuscany/sca/ruby/model/RubyReferenceBinding.cpp \ -tuscany/sca/ruby/model/RubyServiceBinding.cpp \ -tuscany/sca/ruby/RubyCompositeContext.cpp - -libtuscany_sca_ruby_lang_la_LIBADD = -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca \ - -L${RUBY_LIB} -lruby -lpthread - -INCLUDES = -Imodel -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include \ - -I${RUBY_INCLUDE} - -moduledir=$(prefix)/extensions/ruby/module -extension = libtuscany_sca_ruby_lang$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/Ruby.h b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/Ruby.h deleted file mode 100644 index a6b8ee8ffa..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/Ruby.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_ruby_ruby_h -#define tuscany_sca_ruby_ruby_h - -// Ruby inists on MS VC6 ... we'll see about that! -#if defined(WIN32) || defined (_WINDOWS) -#define _REAL_MSC_VER _MSC_VER -#undef _MSC_VER -#define _MSC_VER 1200 -#endif - -#include <ruby.h> - -#if defined(WIN32) || defined (_WINDOWS) -#undef _MSC_VER -#define _MSC_VER _REAL_MSC_VER -#endif - -#endif // tuscany_sca_ruby_ruby_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyCompositeContext.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyCompositeContext.cpp deleted file mode 100644 index 5554ac6756..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyCompositeContext.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ComponentType.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/ruby/RubyServiceProxy.h" -#include "tuscany/sca/ruby/RubyCompositeContext.h" - -using namespace std; -using namespace tuscany::sca::model; - - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - - VALUE RubyCompositeContext::locateService(const char* serviceName) - { - // Get the default component - Component* defaultComponent = tuscany::sca::SCARuntime::getCurrentRuntime()->getDefaultComponent(); - Composite* composite = (Composite*)defaultComponent->getType(); - - // Locate the service - Service* service = composite->findComponentService(serviceName); - string msg; - if (!service) - { - string msg = "Service not found: "; - msg = msg + serviceName; - rb_raise(rb_eRuntimeError, msg.c_str()); - } - - // Get a Proxy for this service - tuscany::sca::ruby::RubyServiceProxy* serviceProxy = new tuscany::sca::ruby::RubyServiceProxy(service); - - // Return the Ruby proxy value object - return serviceProxy->getProxyValue(); - } - - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyCompositeContext.h b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyCompositeContext.h deleted file mode 100644 index 2414b66fb1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyCompositeContext.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_ruby_RubyCompositeContext_h -#define tuscany_sca_ruby_RubyCompositeContext_h - -#include "tuscany/sca/ruby/Ruby.h" -#include "tuscany/sca/ruby/export.h" - - - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - - class RubyCompositeContext - { - public: - SCA_RUBY_API static VALUE locateService(const char* serviceName); - - }; - - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_ruby_RubyCompositeContext_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyExtension.cpp deleted file mode 100644 index 5789517cfd..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyExtension.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/ruby/RubyExtension.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/ruby/RubyImplementationExtension.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_ruby_lang_initialize() - { - tuscany::sca::ruby::RubyExtension::initialize(); - } -} - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - // =================================================================== - // Constructor for the RubyExtension class. - // =================================================================== - RubyExtension::RubyExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the RubyExtension class. - // =================================================================== - RubyExtension::~RubyExtension() - { - logentry(); - } - - void RubyExtension::initialize() - { - logentry(); - SCARuntime::getCurrentRuntime()->registerImplementationExtension(new RubyImplementationExtension()); - } - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyExtension.h deleted file mode 100644 index 232431ca1e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyExtension.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_ruby_rubyextension_h -#define tuscany_sca_ruby_rubyextension_h - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - - class RubyExtension - { - public: - /** - * Default constructor - */ - RubyExtension(); - - /** - * Destructor - */ - virtual ~RubyExtension(); - - static void initialize(); - - private: - - }; - - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_ruby_rubyextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyImplementationExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyImplementationExtension.cpp deleted file mode 100644 index aa416f139a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyImplementationExtension.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/ruby/RubyImplementationExtension.h" -#include "tuscany/sca/ruby/model/RubyImplementation.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - // =================================================================== - // Constructor for the RubyImplementationExtension class. - // =================================================================== - RubyImplementationExtension::RubyImplementationExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the RubyImplementationExtension class. - // =================================================================== - RubyImplementationExtension::~RubyImplementationExtension() - { - logentry(); - } - - const string RubyImplementationExtension::extensionName("ruby"); - const string RubyImplementationExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#RubyImplementation"); - - // =================================================================== - // loadModelElement - load the info from implementation.ruby - // =================================================================== - ComponentType* RubyImplementationExtension::getImplementation(Composite *composite, DataObjectPtr scdlImplementation) - { - logentry(); - - string module = scdlImplementation->getCString("module"); - string className = scdlImplementation->getCString("class"); - string script = scdlImplementation->getCString("script"); - - RubyImplementation* rubyImpl = new RubyImplementation(composite, module, className, script); - - return rubyImpl; - } - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyImplementationExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyImplementationExtension.h deleted file mode 100644 index 79d9ed2dbe..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyImplementationExtension.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_ruby_rubyimplementationextension_h -#define tuscany_sca_ruby_rubyimplementationextension_h - -#include "tuscany/sca/extension/ImplementationExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - - class RubyImplementationExtension : public ImplementationExtension - { - public: - /** - * Default constructor - */ - RubyImplementationExtension(); - - /** - * Destructor - */ - virtual ~RubyImplementationExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#implementation.ruby") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::ComponentType* getImplementation( - tuscany::sca::model::Composite* composite, - commonj::sdo::DataObjectPtr scdlImplementation); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_ruby_rubyimplementationextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceProxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceProxy.cpp deleted file mode 100644 index d830cd92de..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceProxy.cpp +++ /dev/null @@ -1,384 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#include <sstream> - -#include "tuscany/sca/ruby/RubyServiceProxy.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ComponentType.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/ruby/model/RubyImplementation.h" -#include "tuscany/sca/ruby/model/RubyReferenceBinding.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -extern "C" -{ - - // Initialize a Ruby proxy - SCA_RUBY_API VALUE tuscany_sca_ruby_proxy_initialize(VALUE self, VALUE serviceProxy) - { - rb_iv_set(self, "@cppProxy", serviceProxy); - return self; - } - - // Handle a method_missing message and dispatch to - // our C++ proxy - SCA_RUBY_API VALUE tuscany_sca_ruby_proxy_method_missing(int argc, VALUE* argv, VALUE self) - { - VALUE proxy = rb_iv_get(self, "@cppProxy"); - - // Get the target service wrapper - tuscany::sca::ruby::RubyServiceProxy *serviceProxy; - Data_Get_Struct(proxy, tuscany::sca::ruby::RubyServiceProxy, serviceProxy); - - // Handle the invocation - return serviceProxy->invoke(argc, argv); - - } - -} - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - - VALUE RubyServiceProxy::proxyClass = Qnil; - - // ============================ - // Constructor: Create a proxy - // ============================ - RubyServiceProxy::RubyServiceProxy(Reference* reference) - : ServiceProxy(reference) - { - logentry(); - - // ---------------------- - // Get the component - // ---------------------- - component = reference->getComponent(); - string name = reference->getType()->getName(); - - // Get the service wrapper - RubyReferenceBinding* referenceBinding = (RubyReferenceBinding*)reference->getBinding(); - - serviceWrapper = referenceBinding->getTargetServiceBinding()->getServiceWrapper(); - - // Create the Ruby proxy - createProxy(); - } - - // ============================ - // Constructor: Create a proxy - // ============================ - RubyServiceProxy::RubyServiceProxy(Service* service) - : ServiceProxy(0) - { - logentry(); - - // ---------------------- - // Get the component - // ---------------------- - component = service->getComponent(); - string name = service->getType()->getName(); - - // Get the service wrapper - serviceWrapper = service->getBinding()->getServiceWrapper(); - - // Create the Ruby proxy - createProxy(); - } - - // ========== - // Destructor - // ========== - RubyServiceProxy::~RubyServiceProxy() - { - logentry(); - } - - void RubyServiceProxy::createProxy() - { - logentry(); - - // Create the Ruby proxy class - if (RubyServiceProxy::proxyClass == Qnil) - { - VALUE module = rb_define_module("Tuscany"); - proxyClass = rb_define_class_under(module, "ServiceProxy", rb_cObject); - rb_define_method(proxyClass, "initialize", (VALUE(*)(ANYARGS))tuscany_sca_ruby_proxy_initialize, 1); - rb_define_method(proxyClass, "method_missing", (VALUE(*)(ANYARGS))tuscany_sca_ruby_proxy_method_missing, -1); - } - - // Create the Ruby proxy instance, pass the service wrapper to it - VALUE* args = new VALUE[1]; - args[0] = Data_Wrap_Struct(rb_cObject, NULL, NULL, this); - proxyValue = rb_class_new_instance(1, args, proxyClass); - - // Mark proxyValue busy so that it doesn't get GC'ed by Ruby - rb_gc_register_address(&proxyValue); - } - - - VALUE RubyServiceProxy::invoke(int argc, VALUE* argv) - { - logentry(); - - // Get the method name - char* methodName = rb_id2name(SYM2ID(argv[0])); - - // Get the block passed by the caller - VALUE block =rb_block_given_p() ? rb_block_proc() : Qnil; - - // Create new Operation object - Operation operation(methodName); - - // Convert the Ruby parameters to C++ - for (int i = 1; i < argc; i++) - { - VALUE value = argv[i]; - - int valueType = TYPE(value); - - switch (valueType) - { - case T_FLOAT: - { - float* data = new float; - *data = rb_num2dbl(value); - operation.addParameter(data); - break; - } - case T_STRING: - { - string* data = new string(rb_string_value_cstr(&value)); - const char** cdata = new const char*; - *cdata = data->c_str(); - operation.addParameter(cdata); - break; - } - case T_FIXNUM: - { - long* data = new long; - *data = rb_num2long(value); - operation.addParameter(data); - break; - } - case T_BIGNUM: - { - long double* data = new long double; - *data = rb_num2dbl(value); - operation.addParameter(data); - break; - } - case T_TRUE: - { - bool* data = new bool; - *data = true; - operation.addParameter(data); - break; - } - case T_FALSE: - { - bool* data = new bool; - *data = false; - operation.addParameter(data); - break; - } - case T_OBJECT: - { - VALUE klass = rb_obj_class(value); - if (klass == RubyImplementation::getXMLDocumentClass()) - { - // Convert a REXML::Document to a DataObject - ID to_s = rb_intern("to_s"); - VALUE vstr = rb_funcall(value, to_s, 0); - string str = string(rb_string_value_cstr(&vstr)); - - loginfo("Converting Ruby Rexml document to SDO DataObject: %s", str.c_str()); - - Composite* composite = getReference()->getComponent()->getComposite(); - commonj::sdo::XMLHelperPtr xmlHelper = composite->getXMLHelper(); - commonj::sdo::XMLDocumentPtr xmlDoc = xmlHelper->load(str.c_str()); - - DataObjectPtr dob; - if (xmlDoc != NULL) - { - dob = xmlDoc->getRootDataObject(); - } - if (dob != NULL) - { - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = dob; - operation.addParameter(dataObjectData); - } - else - { - string msg = "Document could not be converted to a DataObject"; - rb_raise(rb_eTypeError, msg.c_str()); - return Qnil; - } - } - else - { - string msg = "Ruby type not supported: " + valueType; - rb_raise(rb_eTypeError, msg.c_str()); - return Qnil; - } - break; - } - default:; - string msg = "Ruby type not supported: " + valueType; - rb_raise(rb_eTypeError, msg.c_str()); - return Qnil; - } - - } - - try - { - // Call into the target service wrapper - serviceWrapper->invoke(operation); - - // Convert the result to a Ruby value - VALUE value; - Operation::ParameterType resultType = operation.getReturnType(); - switch(resultType) - { - case Operation::BOOL: - { - if( *(bool*)operation.getReturnValue()) - { - //boolean true - value = rb_int2inum(1); - } - else - { - value = rb_int2inum(0); - } - break; - } - case Operation::SHORT: - { - value = rb_int2inum(*(short*)operation.getReturnValue()); - break; - } - case Operation::USHORT: - { - value = rb_uint2inum(*(unsigned short*)operation.getReturnValue()); - break; - } - case Operation::LONG: - { - value = rb_int2inum(*(long*)operation.getReturnValue()); - break; - } - case Operation::ULONG: - { - value = rb_uint2inum(*(unsigned long*)operation.getReturnValue()); - break; - } - case Operation::FLOAT: - { - value = rb_float_new(*(float*)operation.getReturnValue()); - break; - } - case Operation::DOUBLE: - { - value = rb_float_new(*(double*)operation.getReturnValue()); - break; - } - case Operation::LONGDOUBLE: - { - value = rb_float_new(*(long double*)operation.getReturnValue()); - break; - } - case Operation::CHARS: - { - value = rb_str_new2(*(char**)operation.getReturnValue()); - break; - } - case Operation::STRING: - { - value = rb_str_new2((*(string*)operation.getReturnValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - DataObjectPtr dob = *(DataObjectPtr*)operation.getReturnValue(); - - // Convert a DataObject to a REXML Document object - Composite* composite = component->getComposite(); - commonj::sdo::XMLHelperPtr xmlHelper = composite->getXMLHelper(); - char* str = xmlHelper->save( - dob, - dob->getType().getURI(), - dob->getType().getName()); - - loginfo("Converting SDO DataObject to Ruby Rexml document: %s", str); - - VALUE vstr[1]; - vstr[0] = rb_str_new2(str); - - value = rb_class_new_instance(1, vstr, RubyImplementation::getXMLDocumentClass()); - break; - } - default: - { - value = Qnil; - break; - } - } - - return value; - - } - catch(TuscanyRuntimeException& ex) - { - string msg = "Exception while invoking a service: "; - msg += ex.getEClassName(); - msg += ": "; - msg += ex.getMessageText(); - rb_raise(rb_eRuntimeError, msg.c_str()); - return Qnil; - } - - return Qnil; - } - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceProxy.h b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceProxy.h deleted file mode 100644 index e6c37cf1da..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceProxy.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_ruby_rubyserviceproxy_h -#define tuscany_sca_ruby_rubyserviceproxy_h - -#include "tuscany/sca/ruby/Ruby.h" -#include "tuscany/sca/ruby/export.h" -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/Service.h" - - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - - /** - * Holds a proxy for a given component and reference. - * The proxy which is held inside a ServiceProxy will be specific to the component - * and reference and will have been code generated and be contained in a dll - * created by a developer of an SCA application. - */ - class RubyServiceProxy : public ServiceProxy - { - public: - /** - * Create a new service proxy for a reference. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The reference on the source component. - * @param target The wrapper of the service which is wired to this reference. - */ - RubyServiceProxy(tuscany::sca::model::Reference* reference); - - /** - * Create a new service proxy for a service. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The service on the target component. - * @param target The wrapper of the target service. - */ - RubyServiceProxy(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~RubyServiceProxy(); - - /** - * Returns the Ruby value of the proxy - */ - VALUE getProxyValue() const { return proxyValue; }; - - /** - * Handles the invocation of a Ruby method. - */ - VALUE invoke(int argc, VALUE* argv); - - private: - - /** - * Create the Ruby proxy object - */ - void createProxy(); - - /** - * The target service wrapper - */ - ServiceWrapper* serviceWrapper; - - /** - * The Ruby value of the proxy - */ - VALUE proxyValue; - - /** - * The component owning the proxy - */ - tuscany::sca::model::Component* component; - - /** - * The Ruby proxy class - */ - static VALUE proxyClass; - - }; - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_ruby_rubyserviceproxy_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.cpp deleted file mode 100644 index db6bc07b7e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.cpp +++ /dev/null @@ -1,794 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#include <sstream> - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/ruby/RubyServiceWrapper.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/Library.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/ruby/model/RubyImplementation.h" -#include "tuscany/sca/ruby/model/RubyServiceBinding.h" -#include "tuscany/sca/ruby/RubyServiceProxy.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - - class RubyServiceInvocation - { - public: - VALUE instance; - ID method; - int argc; - const VALUE* argv; - }; - } - } -} - -extern "C" -{ - - static VALUE safe_rb_funcall(VALUE value) - { - tuscany::sca::ruby::RubyServiceInvocation* call = (tuscany::sca::ruby::RubyServiceInvocation*)value; - if (call->argc == 0) - { - VALUE result = rb_funcall(call->instance, call->method, 0); - return result; - } - else - { - VALUE result = rb_funcall2(call->instance, call->method, call->argc, call->argv); - return result; - } - } - -} - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - - // =========== - // Constructor - // =========== - RubyServiceWrapper::RubyServiceWrapper(Service* service) - : ServiceWrapper(service) - { - logentry(); - - component = service->getComponent(); - implementation = (RubyImplementation*)component->getType(); - interf = service->getType()->getInterface(); - } - - // ========== - // Destructor - // ========== - RubyServiceWrapper::~RubyServiceWrapper() - { - logentry(); - } - - // ====================================================================== - // invoke: wrapper call to service with setting the component context - // ====================================================================== - void RubyServiceWrapper::invoke(Operation& operation) - { - logentry(); - - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - runtime->setCurrentComponent(component); - - try - { - - // Create a new instance of the Ruby implementation class - VALUE instance = rb_class_new_instance(0, NULL, implementation->getImplementationClass()); - - // Set all the references - const Component::REFERENCE_MAP& references = component->getReferences(); - Component::REFERENCE_MAP::const_iterator refiter = references.begin(); - for (int ri=0; ri< references.size(); ri++) - { - Reference* reference = refiter->second; - RubyServiceProxy* proxy = (RubyServiceProxy*)reference->getBinding()->getServiceProxy(); - if (proxy != NULL) - { - VALUE proxyValue = proxy->getProxyValue(); - string varName = "@" + refiter->first; - rb_iv_set(instance, varName.c_str(), proxyValue); - } - refiter++; - } - - // Set all the configured properties - DataObjectPtr properties = component->getProperties(); - PropertyList pl = properties->getInstanceProperties(); - for (int i = 0; i < pl.size(); i++) - { - if (properties->isSet(pl[i])) - { - string varName = "@"; - varName += pl[i].getName(); - string cstr = properties->getCString(pl[i]); - VALUE propertyValue; - if (cstr == "true") - { - propertyValue = Qtrue; - } - else if (cstr == "false") - { - propertyValue = Qfalse; - } - else - { - //TODO use one of the rb_str_to_inum() functions - // to convert a numeric value to a Ruby numeric - propertyValue = rb_str_new2(cstr.c_str()); - } - rb_iv_set(instance, varName.c_str(), propertyValue); - } - } - - // Get the ID of the specified method - ID method = rb_intern(operation.getName().c_str()); - - // Convert C++ parameters to Ruby parameters - VALUE *args = NULL; - int n = operation.getNParms(); - if (n != 0) - { - args=new VALUE[n]; - - for(int i = 0; i < operation.getNParms(); i++) - { - VALUE value; - - const Operation::Parameter& parm = operation.getParameter(i); - Operation::ParameterType parmType = parm.getType(); - switch(parmType) - { - case Operation::BOOL: - { - if( *(bool*)parm.getValue()) - { - //boolean true - value = rb_int2inum(1); - } - else - { - value = rb_int2inum(0); - } - break; - } - case Operation::SHORT: - { - value = rb_int2inum(*(short*)parm.getValue()); - break; - } - case Operation::USHORT: - { - value = rb_uint2inum(*(unsigned short*)parm.getValue()); - break; - } - case Operation::LONG: - { - value = rb_int2inum(*(long*)parm.getValue()); - break; - } - case Operation::ULONG: - { - value = rb_uint2inum(*(unsigned long*)parm.getValue()); - break; - } - case Operation::FLOAT: - { - value = rb_float_new(*(float*)parm.getValue()); - break; - } - case Operation::DOUBLE: - { - value = rb_float_new(*(double*)parm.getValue()); - break; - } - case Operation::LONGDOUBLE: - { - value = rb_float_new(*(long double*)parm.getValue()); - break; - } - case Operation::CHARS: - { - value = rb_str_new2(*(char**)parm.getValue()); - break; - } - case Operation::STRING: - { - value = rb_str_new2((*(string*)parm.getValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - DataObjectPtr dob = *(DataObjectPtr*)parm.getValue(); - - // Convert a DataObject to a REXML Document object - Composite* composite = component->getComposite(); - commonj::sdo::XMLHelperPtr xmlHelper = composite->getXMLHelper(); - char* str = xmlHelper->save( - dob, - dob->getType().getURI(), - dob->getType().getName()); - - loginfo("Converting SDO DataObject to Ruby Rexml document: %s", str); - - VALUE vstr[1]; - vstr[0] = rb_str_new2(str); - - value = rb_class_new_instance(1, vstr, RubyImplementation::getXMLDocumentClass()); - break; - } - default: - { - ostringstream msg; - msg << "Operation parameter type not supported: " << parmType; - throwException(ServiceDataException, msg.str().c_str()); - } - } - - args[i] = value; - } - } - - - // Invoke the specified method - RubyServiceInvocation call; - call.instance = instance; - call.method = method; - call.argc = n; - call.argv = args; - int error = 0; - VALUE result = rb_protect(safe_rb_funcall, (VALUE)&call, &error); - if (error) - { - // Convert a Ruby error to a C++ exception - VALUE lasterr = rb_gv_get("$!"); - ostringstream msg; - - // class - VALUE klass = rb_class_path(CLASS_OF(lasterr)); - msg << "Ruby Exception " << RSTRING(klass)->ptr << ": "; - - // message - VALUE message = rb_obj_as_string(lasterr); - msg << RSTRING(message)->ptr << endl; - - // backtrace - if(!NIL_P(ruby_errinfo)) { - VALUE ary = rb_funcall(ruby_errinfo, rb_intern("backtrace"), 0); - int c; - for (c=0; c<RARRAY(ary)->len; c++) { - msg << "from " << RSTRING(RARRAY(ary)->ptr[c])->ptr << endl; - } - } - throwException(ServiceInvocationException, msg.str().c_str()); - } - - // Convert the Ruby result value to a C++ result - int resultType = TYPE(result); - char buf[20]; - switch(resultType) - { - case T_FLOAT: - { - float* data = new float; - *data = rb_num2dbl(result); - - // Check if the return type has already been set for typed languages - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - *(bool*)operation.getReturnValue() = (*data != 0.0); - break; - } - case Operation::SHORT: - { - *(short*)operation.getReturnValue() = (short)*data; - break; - } - case Operation::USHORT: - { - *(unsigned short*)operation.getReturnValue() = (unsigned short)*data; - break; - } - case Operation::INT: - { - *(int*)operation.getReturnValue() = (int)*data; - break; - } - case Operation::UINT: - { - *(unsigned int*)operation.getReturnValue() = (unsigned int)*data; - break; - } - case Operation::LONG: - { - *(long*)operation.getReturnValue() = (long)*data; - break; - } - case Operation::ULONG: - { - *(unsigned long*)operation.getReturnValue() = (unsigned long)*data; - break; - } - case Operation::FLOAT: - { - *(float*)operation.getReturnValue() = (float)*data; - break; - } - case Operation::DOUBLE: - { - *(double*)operation.getReturnValue() = (double)*data; - break; - } - case Operation::LONGDOUBLE: - { - *(long double*)operation.getReturnValue() = (long double)*data; - break; - } - case Operation::CHARS: - { - sprintf(buf, "%f", *data); - *(char**)operation.getReturnValue() = buf; - break; - } - case Operation::STRING: - { - sprintf(buf, "%f", *data); - *(string*)operation.getReturnValue() = buf; - break; - } - default: - { - // The type is set as something else or has not been set - operation.setReturnValue(data); - } - } - break; - } - case T_STRING: - { - string* stringdata = new string(rb_string_value_cstr(&result)); - const char** data = new const char*; - *data = stringdata->c_str(); - - // Check if the return type has already been set (for typed languages) - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - // If the string is empty or "0" or "false" set to false, otherwise true - if(strlen(*data) == 0 || strcmp(*data, "0") == 0 || strcmp(*data, "false") == 0) - { - *(bool*)operation.getReturnValue() = false; - } - else - { - *(bool*)operation.getReturnValue() = true; - } - break; - } - case Operation::SHORT: - { - *(short*)operation.getReturnValue() = (short)atoi(*data); - break; - } - case Operation::USHORT: - { - *(unsigned short*)operation.getReturnValue() = (unsigned short)atoi(*data); - break; - } - case Operation::INT: - { - *(int*)operation.getReturnValue() = (int)atoi(*data); - break; - } - case Operation::UINT: - { - *(unsigned int*)operation.getReturnValue() = (unsigned int)atoi(*data); - break; - } - case Operation::LONG: - { - *(long*)operation.getReturnValue() = (long)atol(*data); - break; - } - case Operation::ULONG: - { - *(unsigned long*)operation.getReturnValue() = (unsigned long)atol(*data); - break; - } - case Operation::FLOAT: - { - *(float*)operation.getReturnValue() = (float)atof(*data); - break; - } - case Operation::DOUBLE: - { - *(double*)operation.getReturnValue() = (double)atof(*data); - break; - } - case Operation::LONGDOUBLE: - { - *(long double*)operation.getReturnValue() = (long double)atof(*data); - break; - } - case Operation::CHARS: - { - *(const char**)operation.getReturnValue() = *data; - break; - } - case Operation::STRING: - { - *(string*)operation.getReturnValue() = *data; - break; - } - default: - { - // The type is set as something else or has not been set - operation.setReturnValue(data); - } - } - break; - } - case T_FIXNUM: - { - long* data = new long; - *data = rb_num2long(result); - - // Check if the return type has already been (set for typed languages) - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - *(bool*)operation.getReturnValue() = (*data != 0); - break; - } - case Operation::SHORT: - { - *(short*)operation.getReturnValue() = (short)*data; - break; - } - case Operation::USHORT: - { - *(unsigned short*)operation.getReturnValue() = (unsigned short)*data; - break; - } - case Operation::INT: - { - *(int*)operation.getReturnValue() = (int)*data; - break; - } - case Operation::UINT: - { - *(unsigned int*)operation.getReturnValue() = (unsigned int)*data; - break; - } - case Operation::LONG: - { - *(long*)operation.getReturnValue() = (long)*data; - break; - } - case Operation::ULONG: - { - *(unsigned long*)operation.getReturnValue() = (unsigned long)*data; - break; - } - case Operation::FLOAT: - { - *(float*)operation.getReturnValue() = (float)*data; - break; - } - case Operation::DOUBLE: - { - *(double*)operation.getReturnValue() = (double)*data; - break; - } - case Operation::LONGDOUBLE: - { - *(long double*)operation.getReturnValue() = (long double)*data; - break; - } - case Operation::CHARS: - { - sprintf(buf, "%d", *data); - *(char**)operation.getReturnValue() = buf; - break; - } - case Operation::STRING: - { - sprintf(buf, "%d", *data); - *(string*)operation.getReturnValue() = buf; - break; - } - default: - { - // The type is set as something else or has not been set - operation.setReturnValue(data); - } - } - - break; - } - case T_BIGNUM: - { - long double* data = new long double; - *data = rb_num2dbl(result); - - // Check if the return type has already been set (for typed languages) - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - *(bool*)operation.getReturnValue() = (*data != 0.0); - break; - } - case Operation::SHORT: - { - *(short*)operation.getReturnValue() = (short)*data; - break; - } - case Operation::USHORT: - { - *(unsigned short*)operation.getReturnValue() = (unsigned short)*data; - break; - } - case Operation::INT: - { - *(int*)operation.getReturnValue() = (int)*data; - break; - } - case Operation::UINT: - { - *(unsigned int*)operation.getReturnValue() = (unsigned int)*data; - break; - } - case Operation::LONG: - { - *(long*)operation.getReturnValue() = (long)*data; - break; - } - case Operation::ULONG: - { - *(unsigned long*)operation.getReturnValue() = (unsigned long)*data; - break; - } - case Operation::FLOAT: - { - *(float*)operation.getReturnValue() = (float)*data; - break; - } - case Operation::DOUBLE: - { - *(double*)operation.getReturnValue() = (double)*data; - break; - } - case Operation::LONGDOUBLE: - { - *(long double*)operation.getReturnValue() = (long double)*data; - break; - } - case Operation::CHARS: - { - sprintf(buf, "%f", *data); - *(char**)operation.getReturnValue() = buf; - break; - } - case Operation::STRING: - { - sprintf(buf, "%f", *data); - *(string*)operation.getReturnValue() = buf; - break; - } - default: - { - // The type is set as something else or has not been set - operation.setReturnValue(data); - } - } - break; - } - case T_TRUE: - case T_FALSE: - { - bool* data = new bool; - *data = (resultType == T_TRUE); - // Check if the return type has already been set (for typed languages) - switch(operation.getReturnType()) - { - case Operation::BOOL: - { - *(bool*)operation.getReturnValue() = *data; - break; - } - case Operation::SHORT: - { - *(short*)operation.getReturnValue() = (short)*data; - break; - } - case Operation::USHORT: - { - *(unsigned short*)operation.getReturnValue() = (unsigned short)*data; - break; - } - case Operation::INT: - { - *(int*)operation.getReturnValue() = (int)*data; - break; - } - case Operation::UINT: - { - *(unsigned int*)operation.getReturnValue() = (unsigned int)*data; - break; - } - case Operation::LONG: - { - *(long*)operation.getReturnValue() = (long)*data; - break; - } - case Operation::ULONG: - { - *(unsigned long*)operation.getReturnValue() = (unsigned long)*data; - break; - } - case Operation::FLOAT: - { - *(float*)operation.getReturnValue() = (float)*data; - break; - } - case Operation::DOUBLE: - { - *(double*)operation.getReturnValue() = (double)*data; - break; - } - case Operation::LONGDOUBLE: - { - *(long double*)operation.getReturnValue() = (long double)*data; - break; - } - case Operation::CHARS: - { - if(*data) - { - *(char**)operation.getReturnValue() = "true"; - } - else - { - *(char**)operation.getReturnValue() = "false"; - } - break; - } - case Operation::STRING: - { - if(*data) - { - *(string*)operation.getReturnValue() = "true"; - } - else - { - *(string*)operation.getReturnValue() = "false"; - } - break; - } - default: - { - // The type is set as something else or has not been set - operation.setReturnValue(data); - } - } - - break; - } - case T_OBJECT: - { - VALUE klass = rb_obj_class(result); - if (klass == RubyImplementation::getXMLDocumentClass()) - { - // Convert a REXML::Document to a DataObject - ID to_s = rb_intern("to_s"); - VALUE vstr = rb_funcall(result, to_s, 0); - string str = string(rb_string_value_cstr(&vstr)); - - loginfo("Converting Ruby Rexml document to SDO DataObject: %s", str.c_str()); - - Composite* composite = component->getComposite(); - commonj::sdo::XMLHelperPtr xmlHelper = composite->getXMLHelper(); - commonj::sdo::XMLDocumentPtr xmlDoc = xmlHelper->load(str.c_str()); - - DataObjectPtr* dataObjectData = new DataObjectPtr; - if (xmlDoc != NULL) - { - *dataObjectData = xmlDoc->getRootDataObject(); - } - else - { - *dataObjectData = NULL; - } - if (*dataObjectData != NULL) - { - operation.setReturnValue(dataObjectData); - } - else - { - string msg = "Document could not be converted to a DataObject"; - throwException(ServiceDataException, msg.c_str()); - } - } - else - { - string msg = "Ruby type not supported: " + resultType; - throwException(ServiceDataException, msg.c_str()); - } - break; - } - default: - { - string msg = "Ruby type not supported: " + resultType; - throwException(ServiceDataException, msg.c_str()); - } - } - - } - catch (...) - { - runtime->unsetCurrentComponent(); - throw; - } - - runtime->unsetCurrentComponent(); - } - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.h deleted file mode 100644 index 2526084a72..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/RubyServiceWrapper.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_ruby_rubyservicewrapper_h -#define tuscany_sca_ruby_rubyservicewrapper_h - -#include "tuscany/sca/ruby/export.h" -#include "tuscany/sca/ruby/Ruby.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/ruby/model/RubyImplementation.h" - - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - class RubyInterface; - - /** - * Wraps the service on a component implementation. - * This abstract class is extended by generated code which provides - * the implementation of some of the methods. - * An instance of this class wraps the actual component implementation which - * has been written by a developer of an SCA application. - */ - class SCA_RUBY_API RubyServiceWrapper : public ServiceWrapper - { - public: - - /** - * Constructor. - * @param target The component service to which this wrapper refers. - */ - RubyServiceWrapper(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~RubyServiceWrapper(); - - /** - * All business method calls to the target component go through the invoke method. - * @param operation The details of the method, paramaters and return value for the - * business method to be called on the target component. - */ - virtual void invoke(Operation& operation); - - private: - - /** - * The component to which this wrapper refers. - */ - tuscany::sca::model::Component* component; - - /** - * A pointer to the interface which the service exposes. - */ - tuscany::sca::model::Interface* interf; - - /** - * The Ruby implementation - */ - RubyImplementation* implementation; - - }; - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_ruby_rubyservicewrapper_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/export.h b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/export.h deleted file mode 100644 index 5db72a1ebe..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/export.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_ruby_export_h -#define tuscany_sca_ruby_export_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) - -#ifdef TUSCANY_SCA_RUBY_LANG_EXPORTS -#define SCA_RUBY_API __declspec(dllexport) -#else -#define SCA_RUBY_API __declspec(dllimport) -#endif - -#else -#define SCA_RUBY_API -#endif - -#endif // tuscany_sca_ruby_export_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp deleted file mode 100644 index fa30642318..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.cpp +++ /dev/null @@ -1,171 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/ruby/model/RubyImplementation.h" -#include "tuscany/sca/ruby/model/RubyServiceBinding.h" -#include "tuscany/sca/ruby/model/RubyReferenceBinding.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/util/Utils.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - - namespace ruby - { - - bool RubyImplementation::initialized = false; - VALUE RubyImplementation::xmlDocumentClass = 0; - - // Constructor - RubyImplementation::RubyImplementation(Composite* composite, const string& module, const string& className, const string& script) - : ComponentType(composite, script.substr(0, script.find_last_of('.'))), - module(module), className(className), script(script) - { - loadClass(); - } - - RubyImplementation::~RubyImplementation() - { - } - - VALUE RubyImplementation::getXMLDocumentClass() - { - logentry(); - - // Initialize the Ruby runtime - if (!initialized) - { - ruby_init(); - ruby_init_loadpath(); - - // Load the Rexml module. Rexml is used to handle XML documents. - //rb_require("rexml/document"); - // Use rb_eval_string for now as it provides better error reporting - rb_eval_string("require(\"rexml/document\")"); - - xmlDocumentClass = rb_path2class("REXML::Document"); - initialized = true; - } - - return xmlDocumentClass; - } - - void RubyImplementation::loadClass() - { - logentry(); - - // Ensure xmlDocumentClass is initialized - getXMLDocumentClass(); - - ID to_s = rb_intern("to_s"); - VALUE xstr = rb_funcall(xmlDocumentClass, to_s, 0); - loginfo("Got Ruby Rexml class: %s", rb_string_value_cstr(&xstr)); - - // Load the specified Ruby script - if (script != "") - { - // Convert any windows slashes \ in the root path to unix slashes / - string rootpath = getComposite()->getRoot(); - int pos = 0; - while((pos = rootpath.find('\\', pos)) != string::npos) - { - rootpath = rootpath.replace(pos, 1, "/"); - } - - // Use rb_eval_string for now as it provides better error reporting - string path = "require(\"" + rootpath + "/" + script +"\")"; - //rb_require((char *)path.c_str()); - rb_eval_string(path.c_str()); - } - - // Load the Ruby implementation class - implementationClass = rb_path2class(className.c_str()); - - // Create a default service - ServiceType* defaultServiceType = new ServiceType(this, "", NULL, NULL); - addServiceType(defaultServiceType); - - // Introspect the Ruby class and create references and properties for - // all public attributes - VALUE methods = rb_class_public_instance_methods(0, NULL, implementationClass); - int n = RARRAY(methods)->len; - for (int i = 0; i<n; i++) - { - VALUE method = rb_ary_entry(methods, i); - string methodName = string(rb_string_value_cstr(&method)); - - // Create a reference type for each setter method - int s = methodName.size(); - if (s > 1 && methodName[s-1] == '=' && methodName[0] != '=') - { - string variableName = methodName.substr(0, s-1); - ReferenceType* referenceType = new ReferenceType( - this, variableName, NULL, NULL, ReferenceType::ONE_ONE); - addReferenceType(referenceType); - - // Create a property type as well - addPropertyType(variableName, "http://www.w3.org/2001/XMLSchema#string", false, NULL); - - } - } - } - - void RubyImplementation::initializeComponent(Component* component) - { - ComponentType::initializeComponent(component); - - // Create Ruby bindings for all the services - const Component::SERVICE_MAP& services = component->getServices(); - Component::SERVICE_MAP::const_iterator iter = services.begin(); - for (int i=0; i< services.size(); i++) - { - Service *service = iter->second; - RubyServiceBinding* binding = new RubyServiceBinding(service); - service->setBinding(binding); - iter++; - } - - // Create Ruby bindings for all the references - const Component::REFERENCE_MAP& references = component->getReferences(); - Component::REFERENCE_MAP::const_iterator refiter = references.begin(); - for (int ri=0; ri< references.size(); ri++) - { - Reference *reference = refiter->second; - RubyReferenceBinding* binding = new RubyReferenceBinding(reference); - reference->setBinding(binding); - refiter++; - } - } - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h deleted file mode 100644 index c7bc851635..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyImplementation.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_ruby_model_rubyimplementation_h -#define tuscany_sca_ruby_model_rubyimplementation_h - -#include <string> - -#include "tuscany/sca/ruby/Ruby.h" -#include "tuscany/sca/model/ComponentType.h" - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - /** - * Holds information about an SCA implementation written in Ruby - */ - class RubyImplementation : public tuscany::sca::model::ComponentType - { - - public: - /** - * Constructor. - * @param composite The composite containing this implementation. - * @param module Name of the Ruby module. - * @param className Name of the Ruby implementation class. - * @param script Path of the Ruby script. - */ - RubyImplementation(tuscany::sca::model::Composite* composite, - const std::string& module, const std::string& className, const std::string& script); - - /** - * Destructor - */ - virtual ~RubyImplementation(); - - /** - * Initialize a component of this type. - * @param component The component to initialize. - */ - virtual void initializeComponent(tuscany::sca::model::Component* component); - - /** - * Returns the name of the Ruby module. - * @return The name of the Ruby module. - */ - const std::string& getModule() const { return module; } - - /** - * Returns the name of Ruby class. - * @return Name of the Ruby class. - */ - const std::string& getClass() const { return className; } - - /** - * Returns the path of the Ruby script. - * @return The path of the Ruby script. - */ - const std::string& getScript() const { return script; } - - /** - * Returns the Ruby implementation class - */ - VALUE getImplementationClass() const { return implementationClass; } - - /** - * Returns the Ruby REXML::Document class - */ - static VALUE getXMLDocumentClass(); - - private: - - /** - * Load the Ruby implementation class - */ - void loadClass(); - - /** - * Name of the Ruby module. - */ - std::string module; - - /** - * Name of the Ruby class. - */ - std::string className; - - /** - * Path of the Ruby script. - */ - std::string script; - - /** - * The Ruby implementation class - */ - VALUE implementationClass; - - /** - * True if the Ruby runtime has been initialized - */ - static bool initialized; - - /** - * The Ruby REXML::Document class. - */ - static VALUE xmlDocumentClass; - - }; - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_ruby_model_rubyimplementation_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.cpp deleted file mode 100644 index 3187c07973..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/ruby/model/RubyReferenceBinding.h" -#include "tuscany/sca/ruby/RubyServiceProxy.h" - -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - - // Constructor - RubyReferenceBinding::RubyReferenceBinding(Reference* reference) - : ReferenceBinding(reference, ""), serviceProxy(NULL) - { - } - - // Destructor - RubyReferenceBinding::~RubyReferenceBinding() - { - } - - ServiceProxy* RubyReferenceBinding::getServiceProxy() - { - return serviceProxy; - } - - void RubyReferenceBinding::configure(ServiceBinding* binding) - { - setTargetServiceBinding(binding); - - serviceProxy = new RubyServiceProxy(getReference()); - } - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.h deleted file mode 100644 index 72d39b5639..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyReferenceBinding.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_ruby_model_rubyreferencebinding_h -#define tuscany_sca_ruby_model_rubyreferencebinding_h - -#include <string> - -#include "tuscany/sca/model/ReferenceBinding.h" - - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - /** - * Information about a Ruby service binding for service or a reference. - */ - class RubyReferenceBinding : public tuscany::sca::model::ReferenceBinding - { - public: - - /** - * Constructor. - */ - RubyReferenceBinding(tuscany::sca::model::Reference* reference); - - /** - * Destructor. - */ - virtual ~RubyReferenceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#RubyImplementationBinding"; }; - - /** - * Create a proxy representing the reference to the - * client component. - */ - virtual ServiceProxy* getServiceProxy(); - - /** - * Configure this binding from a service binding. - */ - virtual void configure(tuscany::sca::model::ServiceBinding* serviceBinding); - - private: - - /** - * The proxy representing the reference to the client - * component. - */ - ServiceProxy* serviceProxy; - }; - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_ruby_model_rubyreferencebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.cpp deleted file mode 100644 index 163f8a9d8b..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/ruby/model/RubyServiceBinding.h" -#include "tuscany/sca/ruby/RubyServiceWrapper.h" - -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - - // Constructor - RubyServiceBinding::RubyServiceBinding(Service* service) - : ServiceBinding(service, "") - { - serviceWrapper = new RubyServiceWrapper(service); - } - - // Destructor - RubyServiceBinding::~RubyServiceBinding() - { - } - - ServiceWrapper* RubyServiceBinding::getServiceWrapper() - { - return (ServiceWrapper*)serviceWrapper; - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.h deleted file mode 100644 index b772daf712..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/src/tuscany/sca/ruby/model/RubyServiceBinding.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_ruby_model_rubyservicebinding_h -#define tuscany_sca_ruby_model_rubyservicebinding_h - -#include <string> - -#include "tuscany/sca/model/ServiceBinding.h" - -namespace tuscany -{ - namespace sca - { - namespace ruby - { - /** - * Information about a Ruby service binding for service or a reference. - */ - class RubyServiceBinding : public tuscany::sca::model::ServiceBinding - { - public: - - /** - * Constructor. - */ - RubyServiceBinding(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~RubyServiceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#RubyImplementationBinding"; }; - - /** - * Create a wrapper for the service configured by this - * binding. - */ - virtual ServiceWrapper* getServiceWrapper(); - - private: - - /** - * The wrapper for the service configured by this binding. - */ - ServiceWrapper* serviceWrapper; - - }; - - } // End namespace ruby - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_ruby_model_rubyservicebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ruby/xsd/sca-implementation-ruby.xsd b/sca-cpp/trunk/contrib/runtime/extensions/ruby/xsd/sca-implementation-ruby.xsd deleted file mode 100644 index 5772019a4f..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ruby/xsd/sca-implementation-ruby.xsd +++ /dev/null @@ -1,42 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <include schemaLocation="../../../xsd/sca-core.xsd"/> - - <element name="implementation.ruby" type="sca:RubyImplementation" substitutionGroup="sca:implementation"/> - <complexType name="RubyImplementation"> - <complexContent> - <extension base="sca:Implementation"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="script" type="NCName" use="optional"/> - <attribute name="module" type="NCName" use="optional"/> - <attribute name="class" type="Name" use="optional"/> - <anyAttribute namespace="##any" processContents="lax"/> - </extension> - </complexContent> - </complexType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/sca/Makefile.am deleted file mode 100644 index 50dfb45557..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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. - -SUBDIRS = reference service -datadir=$(prefix)/extensions/sca - -nobase_data_DATA = xsd/*.xsd - -EXTRA_DIST = xsd diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/Makefile.am deleted file mode 100644 index 2b9491ec1c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -# 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. - -SUBDIRS = src diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/Makefile.am deleted file mode 100644 index d5fdf775ca..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/Makefile.am +++ /dev/null @@ -1,42 +0,0 @@ -# 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. - -libdir=$(prefix)/extensions/sca/reference/lib -lib_LTLIBRARIES = libtuscany_sca_binding_reference.la - -noinst_HEADERS = \ -tuscany/sca/binding/*.h \ -tuscany/sca/binding/model/*.h - -libtuscany_sca_binding_reference_la_SOURCES = \ -tuscany/sca/binding/SCAServiceBindingExtension.cpp \ -tuscany/sca/binding/model/SCAServiceBinding.cpp - -libtuscany_sca_binding_reference_la_LIBADD = \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo -ltuscany_sdo_axiom \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include - -moduledir=$(prefix)/extensions/sca/reference/module -extension = libtuscany_sca_binding_reference$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/SCAServiceBindingExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/SCAServiceBindingExtension.cpp deleted file mode 100644 index 7d70f595cc..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/SCAServiceBindingExtension.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "SCAServiceBindingExtension.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/core/Exceptions.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_binding_reference_initialize() - { - tuscany::sca::binding::SCAServiceBindingExtension::initialize(); - } -} - - -namespace tuscany -{ - namespace sca - { - namespace binding - { - // =================================================================== - // Constructor for the SCAServiceBinding class. - // =================================================================== - SCAServiceBindingExtension::SCAServiceBindingExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the SCAServiceBindingExtension class. - // =================================================================== - SCAServiceBindingExtension::~SCAServiceBindingExtension() - { - logentry(); - } - - const string SCAServiceBindingExtension::extensionName("sca"); - const string SCAServiceBindingExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#SCABinding"); - - - // =================================================================== - // loadModelElement - load the info from binding.ws - // =================================================================== - ServiceBinding* SCAServiceBindingExtension::getServiceBinding(Composite *composite, Service* service, DataObjectPtr scdlBinding) - { - logentry(); - - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - - ServiceBindingExtension* bindingExtension = NULL; // runtime->getServiceBindingExtension("http://www.osoa.org/xmlns/sca/1.0#RESTBinding"); - if (bindingExtension == NULL) - { - bindingExtension = runtime->getServiceBindingExtension("http://www.osoa.org/xmlns/sca/1.0#WebServiceBinding"); - if (bindingExtension == NULL) - { - logerror("SCA default binding requires the REST or WS binding to be available"); - - string message = "SCA default binding requires the REST or WS binding to be available"; - throwException(SystemConfigurationException, message.c_str()); - } - } - - return bindingExtension->getServiceBinding(composite, service, scdlBinding); - } - - void SCAServiceBindingExtension::initialize() - { - logentry(); - SCARuntime::getCurrentRuntime()->registerServiceBindingExtension(new SCAServiceBindingExtension()); - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/SCAServiceBindingExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/SCAServiceBindingExtension.h deleted file mode 100644 index 389541061a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/SCAServiceBindingExtension.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_binding_scaservicebindingextension_h -#define tuscany_sca_extension_binding_scaservicebindingextension_h - -#include "tuscany/sca/extension/ServiceBindingExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace binding - { - - class SCAServiceBindingExtension : public ServiceBindingExtension - { - public: - /** - * Default constructor - */ - SCAServiceBindingExtension(); - - /** - * Destructor - */ - virtual ~SCAServiceBindingExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#binding.ws") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::ServiceBinding* getServiceBinding( - tuscany::sca::model::Composite* composite, - tuscany::sca::model::Service* service, - commonj::sdo::DataObjectPtr scdlBinding); - - static void initialize(); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace binding - } // End namespace sca -} // End namespace tuscany - -#endif //tuscany_sca_extension_binding_scaservicebindingextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/model/SCAServiceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/model/SCAServiceBinding.cpp deleted file mode 100644 index 3b5564a765..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/model/SCAServiceBinding.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/binding/model/SCAServiceBinding.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace binding - { - - // Constructor - SCAServiceBinding::SCAServiceBinding(Composite* composite, Service* service, const string& uri, DataObjectPtr scdlBinding) - : ServiceBinding(service, uri) - { - } - - // Destructor - SCAServiceBinding::~SCAServiceBinding() - { - } - - ServiceWrapper* SCAServiceBinding::getServiceWrapper() - { - logentry(); - - throwException(SystemConfigurationException, "Not supported"); - } - - } // End namespace binding - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/model/SCAServiceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/model/SCAServiceBinding.h deleted file mode 100644 index d73a10f202..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/reference/src/tuscany/sca/binding/model/SCAServiceBinding.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_binding_model_scaservicebinding_h -#define tuscany_sca_extension_binding_model_scaservicebinding_h - -#include <string> - -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/Service.h" - - -namespace tuscany -{ - namespace sca - { - namespace binding - { - /** - * Information about an SCA service binding for service or a reference. - */ - class SCAServiceBinding : public tuscany::sca::model::ServiceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - */ - SCAServiceBinding(tuscany::sca::model::Composite* composite, tuscany::sca::model::Service* service, const std::string& uri, commonj::sdo::DataObjectPtr scdlBinding); - - /** - * Destructor. - */ - virtual ~SCAServiceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#SCABinding"; }; - - /** - * Create a service wrapper handling the interaction - * with the service configured with this binding. - */ - virtual tuscany::sca::ServiceWrapper* getServiceWrapper(); - - private: - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_ws_model_wsservicebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/sca/service/Makefile.am deleted file mode 100644 index 2b9491ec1c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -# 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. - -SUBDIRS = src diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/Makefile.am deleted file mode 100644 index 1136dba677..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/Makefile.am +++ /dev/null @@ -1,42 +0,0 @@ -# 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. - -libdir=$(prefix)/extensions/sca/service/lib -lib_LTLIBRARIES = libtuscany_sca_binding_service.la - -noinst_HEADERS = \ -tuscany/sca/binding/*.h \ -tuscany/sca/binding/model/*.h - -libtuscany_sca_binding_service_la_SOURCES = \ -tuscany/sca/binding/SCAReferenceBindingExtension.cpp \ -tuscany/sca/binding/model/SCAReferenceBinding.cpp - -libtuscany_sca_binding_service_la_LIBADD = \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo -ltuscany_sdo_axiom \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include - -moduledir=$(prefix)/extensions/sca/service/module -extension = libtuscany_sca_binding_service$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/SCAReferenceBindingExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/SCAReferenceBindingExtension.cpp deleted file mode 100644 index 789d8794df..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/SCAReferenceBindingExtension.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#include "SCAReferenceBindingExtension.h" -#include "model/SCAReferenceBinding.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/core/Exceptions.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_binding_service_initialize() - { - tuscany::sca::binding::SCAReferenceBindingExtension::initialize(); - } -} - -namespace tuscany -{ - namespace sca - { - namespace binding - { - // =================================================================== - // Constructor for the SCAReferenceBinding class. - // =================================================================== - SCAReferenceBindingExtension::SCAReferenceBindingExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the SCAReferenceBindingExtension class. - // =================================================================== - SCAReferenceBindingExtension::~SCAReferenceBindingExtension() - { - logentry(); - } - - const string SCAReferenceBindingExtension::extensionName("sca"); - const string SCAReferenceBindingExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#SCABinding"); - - // =================================================================== - // loadModelElement - load the info from binding.ws - // =================================================================== - ReferenceBinding* SCAReferenceBindingExtension::getReferenceBinding(Composite *composite, Reference* reference, DataObjectPtr scdlBinding) - { - logentry(); - - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - - ReferenceBindingExtension* bindingExtension = NULL; // runtime->getReferenceBindingExtension("http://www.osoa.org/xmlns/sca/1.0#RESTBinding"); - if (bindingExtension == NULL) - { - bindingExtension = runtime->getReferenceBindingExtension("http://www.osoa.org/xmlns/sca/1.0#WebServiceBinding"); - if (bindingExtension == NULL) - { - logerror("SCA default binding requires the REST or WS binding to be available"); - - string message = "SCA default binding requires the REST or WS binding to be available"; - throwException(SystemConfigurationException, message.c_str()); - } - } - - return bindingExtension->getReferenceBinding(composite, reference, scdlBinding); - } - - void SCAReferenceBindingExtension::initialize() - { - logentry(); - SCARuntime::getCurrentRuntime()->registerReferenceBindingExtension(new SCAReferenceBindingExtension()); - } - - } // End namespace binding - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/SCAReferenceBindingExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/SCAReferenceBindingExtension.h deleted file mode 100644 index 8cde2fbef4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/SCAReferenceBindingExtension.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_binding_scareferencebindingextension_h -#define tuscany_sca_extension_binding_scareferencebindingextension_h - -#include "tuscany/sca/extension/ReferenceBindingExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace binding - { - - class SCAReferenceBindingExtension : public ReferenceBindingExtension - { - public: - /** - * Default constructor - */ - SCAReferenceBindingExtension(); - - /** - * Destructor - */ - virtual ~SCAReferenceBindingExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#binding.ws") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::ReferenceBinding* getReferenceBinding( - tuscany::sca::model::Composite* composite, - tuscany::sca::model::Reference *reference, - commonj::sdo::DataObjectPtr scdlBinding); - - static void initialize(); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace binding - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_binding_scareferencebindingextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/model/SCAReferenceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/model/SCAReferenceBinding.cpp deleted file mode 100644 index b8eaaaa1f9..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/model/SCAReferenceBinding.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/binding/model/SCAReferenceBinding.h" -#include "tuscany/sca/core/ServiceProxy.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace binding - { - - // Constructor - SCAReferenceBinding::SCAReferenceBinding(Composite* composite, Reference* reference, const string& uri, DataObjectPtr scdlBinding) - : ReferenceBinding(reference, uri) - { - } - - // Destructor - SCAReferenceBinding::~SCAReferenceBinding() - { - } - - ServiceProxy* SCAReferenceBinding::getServiceProxy() - { - throwException(SystemConfigurationException, "Not supported"); - } - - void SCAReferenceBinding::configure(ServiceBinding* serviceBinding) - { - throwException(SystemConfigurationException, "Not supported"); - } - - void SCAReferenceBinding::configure(const std::string& uri) - { - throwException(SystemConfigurationException, "Not supported"); - } - - } // End namespace binding - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/model/SCAReferenceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/model/SCAReferenceBinding.h deleted file mode 100644 index f3e699e2ee..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/service/src/tuscany/sca/binding/model/SCAReferenceBinding.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_binding_model_scareferencebinding_h -#define tuscany_sca_extension_binding_model_scareferencebinding_h - -#include <string> - -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ReferenceBinding.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/core/ServiceProxy.h" - -namespace tuscany -{ - namespace sca - { - namespace binding - { - /** - * Information about a web service binding for service or a reference. - */ - class SCAReferenceBinding : public tuscany::sca::model::ReferenceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - */ - SCAReferenceBinding(tuscany::sca::model::Composite* composite, tuscany::sca::model::Reference* reference, const std::string&uri, commonj::sdo::DataObjectPtr scdlBinding); - - /** - * Destructor. - */ - virtual ~SCAReferenceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#SCABinding"; }; - - /** - * Create a proxy representing the reference to the - * client component. - */ - virtual tuscany::sca::ServiceProxy* getServiceProxy(); - - /** - * Configure this binding from a service binding. - */ - virtual void configure(tuscany::sca::model::ServiceBinding* serviceBinding); - - /** - * Configure this binding from a URI. - */ - virtual void configure(const std::string& uri); - - private: - - }; - - } // End namespace binding - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_binding_model_scareferencebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/sca/xsd/sca-binding-sca.xsd b/sca-cpp/trunk/contrib/runtime/extensions/sca/xsd/sca-binding-sca.xsd deleted file mode 100644 index 6ec18bd992..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/sca/xsd/sca-binding-sca.xsd +++ /dev/null @@ -1,39 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <include schemaLocation="../../../xsd/sca-core.xsd"/> - - <element name="binding.sca" type="sca:SCABinding" substitutionGroup="sca:binding"/> - <complexType name="SCABinding"> - <complexContent> - <extension base="sca:Binding"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> -</schema> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/ws/Makefile.am deleted file mode 100644 index 806786ce04..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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. - -SUBDIRS = reference service -datadir=$(prefix)/extensions/ws - -nobase_data_DATA = xsd/*.xsd - -EXTRA_DIST = xsd diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/Makefile.am deleted file mode 100644 index 18e9ba89b9..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -# 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. - -SUBDIRS = axis2c diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/Makefile.am deleted file mode 100644 index 2b9491ec1c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -# 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. - -SUBDIRS = src diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/Makefile.am deleted file mode 100644 index fbf304f8c2..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/Makefile.am +++ /dev/null @@ -1,54 +0,0 @@ -# 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. - -libdir=$(prefix)/extensions/ws/reference/lib -lib_LTLIBRARIES = libtuscany_sca_ws_reference.la - -noinst_HEADERS = tuscany/sca/ws/*.h tuscany/sca/ws/model/*.h - -libtuscany_sca_ws_reference_la_SOURCES = \ -tuscany/sca/ws/WSServiceBindingExtension.cpp \ -tuscany/sca/ws/model/WSServiceBinding.cpp \ -tuscany/sca/ws/WSServiceWrapper.cpp \ -tuscany/sca/ws/Axis2Client.cpp - -libtuscany_sca_ws_reference_la_LIBADD = \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo -ltuscany_sdo_axiom \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca \ - -L$(AXIS2C_HOME)/lib \ - -laxis2_util \ - -laxis2_axiom \ - -laxis2_wsdl \ - -laxis2_engine \ - -laxis2_parser \ - -laxis2_minizip \ - -lpthread \ - -lwoden \ - -laxis2_http_sender \ - -laxis2_http_receiver - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include \ - -I${AXIS2C_HOME}/include - -moduledir=$(prefix)/extensions/ws/reference/module -extension = libtuscany_sca_ws_reference$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp deleted file mode 100644 index fa55c049b7..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.cpp +++ /dev/null @@ -1,820 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4091) -#pragma warning(disable: 4786) -#endif - -#include <sstream> - -#include <axis2_client.h> - -#include <axis2_error_default.h> -#include <axis2_log_default.h> -#include <axis2_defines.h> -#include <axiom_soap_const.h> -#include <platforms/axis2_platform_auto_sense.h> - -#include <sdo_axiom.h> - -#include "Axis2Client.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/SDOUtils.h" -#include "model/WSServiceBinding.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/WSDLDefinition.h" -#include "tuscany/sca/model/WSDLInterface.h" -#include "tuscany/sca/model/WSDLOperation.h" -#include "tuscany/sca/model/WSDLMessagePart.h" - -using namespace std; -using namespace commonj::sdo; -using namespace commonj::sdo_axiom; -using namespace tuscany::sca::model; -using namespace tuscany::sca::util; - - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - Axis2Client::Axis2Client(CompositeReference* compositeReference) - : compositeReference(compositeReference) - { - logentry(); - } - - Axis2Client::~Axis2Client() - { - logentry(); - } - - void Axis2Client::invoke(tuscany::sca::Operation& operation) - { - logentry(); - - // Initialize Axis2 stuff - axis2_env_t *env = axis2_env_create_all("tuscany_ws_reference.log",AXIS2_LOG_LEVEL_TRACE); - axis2_error_init(); - - // Get the WS service binding and WSDLOperation - Composite* composite=compositeReference->getComposite(); - Service* service = compositeReference->getService(); - WSServiceBinding* binding = (WSServiceBinding *)service->getBinding(); - const string& operationName = operation.getName(); - WSDLOperation wsdlOperation; - - // Get the WSDL namespace - string wsdlNamespace = binding->getWSDLNamespaceURL(); - if (wsdlNamespace != "") - { - - // Lookup the wsdl model from the composite, keyed on the namespace - // (the wsdl will have been loaded at startup) - WSDLDefinition* wsdlDefinition = composite->findWSDLDefinition(wsdlNamespace); - if (wsdlDefinition == 0) - { - string msg = "WSDL not found for " + wsdlNamespace; - throwException(SystemConfigurationException, msg.c_str()); - } - - // Match the operation in Operation to the operation in the wsdl port type. - try - { - wsdlOperation = wsdlDefinition->findOperation( - binding->getServiceName(), - binding->getEndpointName(), - operationName); - } - catch(SystemConfigurationException&) - { - throw; - } - } - else - { - Interface* iface = service->getType()->getInterface(); - if (iface != NULL && - iface->getInterfaceTypeQName() == WSDLInterface::typeQName) - { - WSDLInterface* wsdlInterface = (WSDLInterface*)iface; - wsdlNamespace = wsdlInterface->getNamespaceURI(); - - if (wsdlNamespace != "") - { - - WSDLDefinition* wsdl = composite->findWSDLDefinition(wsdlNamespace); - if (wsdl == 0) - { - string msg = "WSDL not found for " + wsdlNamespace; - throwException(SystemConfigurationException, msg.c_str()); - } - - try - { - wsdlOperation = wsdl->findOperation(wsdlInterface->getName(), operationName); - } - catch(SystemConfigurationException&) - { - throw; - } - } - } - } - - if (wsdlNamespace == "") - { - - // Create a default document literal wrapped WSDL operation - WSDLMessagePart inputPart(operationName, "", "http://tempuri.org"); - WSDLMessagePart outputPart((operationName+"Response"), "", "http://tempuri.org"); - wsdlNamespace = compositeReference->getName(); - wsdlOperation = WSDLOperation(); - wsdlOperation.setOperationName(operationName); - wsdlOperation.setSoapAction(wsdlNamespace+ "#" +operationName); - wsdlOperation.setEndpoint(""); - wsdlOperation.setSoapVersion(WSDLOperation::SOAP11); - wsdlOperation.setDocumentStyle(true); - wsdlOperation.setWrappedStyle(true); - wsdlOperation.setInputEncoded(false); - wsdlOperation.setOutputEncoded(false); - wsdlOperation.setInputMessagePart(operationName, inputPart); - wsdlOperation.setOutputMessagePart((operationName+"Response"), outputPart); - } - else if (!wsdlOperation.isDocumentStyle() || !wsdlOperation.isWrappedStyle()) - { - throwException(ServiceInvocationException, - "Only wrapped document style WSDL operations are currentlysupported"); - } - - // The URI specified in the binding overrides the address specified in - // the WSDL - axis2_char_t* address; - - // Get the URI configured on the top level component - string bindingURI = ""; - SCARuntime* runtime = SCARuntime::getCurrentRuntime(); - Component* component = runtime->getDefaultComponent(); - Reference* reference = component->findReference(compositeReference->getName()); - if (reference != NULL) - { - ReferenceBinding* referenceBinding = reference->getBinding(); - if (referenceBinding != NULL && referenceBinding->getURI() != "") - { - bindingURI = referenceBinding->getURI(); - } - } - if (bindingURI == "") - { - // Get the URI configured on the binding - if (binding->getURI() != "") - { - bindingURI = binding->getURI(); - } - } - if (bindingURI != "") - { - // Prepend the default base URI if the URI is not absolute - if (bindingURI.find("://") == string::npos) - { - bindingURI = runtime->getDefaultBaseURI() + string("/axis2/services/") + bindingURI; - } - address = (axis2_char_t*)bindingURI.c_str(); - } - else - { - address = (axis2_char_t*)wsdlOperation.getEndpoint().c_str(); - } - - axis2_char_t* opName = (axis2_char_t*)operationName.c_str(); - axis2_char_t* soap_action = (axis2_char_t*)wsdlOperation.getSoapAction().c_str(); - - // create OM from Operation and wsdlOperation - axiom_node_t* payload = createPayload(operation, wsdlOperation, env); - /* Create EPR with given address */ - axis2_endpoint_ref_t* endpoint_ref = axis2_endpoint_ref_create(env, address); - - /* Setup options */ - axis2_options_t* options = axis2_options_create(env); - AXIS2_OPTIONS_SET_TO(options, env, endpoint_ref); - int soap_version = AXIOM_SOAP11; - if (binding->getSOAPVersion() == "1.2") - { - soap_version = AXIOM_SOAP12; - } - else - { - if (wsdlOperation.getSoapVersion() == WSDLOperation::SOAP12) - { - soap_version = AXIOM_SOAP12; - } - } - - AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, soap_version); - AXIS2_OPTIONS_SET_ACTION(options, env, soap_action); - AXIS2_OPTIONS_SET_XML_PARSER_RESET(options, env, AXIS2_FALSE); - - loginfo("WS SOAP action: %s", soap_action); - loginfo("WS Endpoint address: %s", address); - if(soap_version == AXIOM_SOAP11) - { - // Only set the SOAP action when using SOAP1.1 - AXIS2_OPTIONS_SET_SOAP_ACTION(options, env, soap_action); - loginfo("Set soap version: 1.1"); - } - else if(soap_version == AXIOM_SOAP12) - { - loginfo("Set soap version: 1.2"); - } - else - { - loginfo("Set soap version: unset"); - } - /* Create service client */ - - axis2_char_t* client_home = AXIS2_GETENV("AXIS2C_HOME"); - if (!client_home) - { - throwException(SystemConfigurationException, "AXIS2C_HOME not set"); - } - axis2_svc_client_t* svc_client = axis2_svc_client_create(env, client_home); - if (!svc_client) - { - ostringstream msg; - msg << "Axis2 svc_client_create failed, error: " << env->error->error_number << - ", " << AXIS2_ERROR_GET_MESSAGE(env->error); - throwException(SystemConfigurationException, msg.str().c_str()); - } - - /* Set service client options */ - AXIS2_SVC_CLIENT_SET_OPTIONS(svc_client, env, options); - - /* Engage addressing module */ - AXIS2_SVC_CLIENT_ENGAGE_MODULE(svc_client, env, AXIS2_MODULE_ADDRESSING); - - loginfo("Sending WS request"); - /* Send request */ - axiom_node_t* ret_node = AXIS2_SVC_CLIENT_SEND_RECEIVE(svc_client, env, payload); - if(ret_node) - { - setReturn(ret_node, operation, wsdlOperation, env); - - // Set return value - now need to detach the node from the Axiom document - // for clean-up - axiom_document_t *document = AXIOM_NODE_GET_DOCUMENT(ret_node, env); - if (document) - { - AXIOM_DOCUMENT_BUILD_ALL (document, env); - } - AXIOM_NODE_DETACH (ret_node, env); - } - else - { - ostringstream msg; - msg << "Axis2 client_send_received failed, error: " << env->error->error_number << - ", " << AXIS2_ERROR_GET_MESSAGE(env->error); - throwException(ServiceInvocationException, msg.str().c_str()); - } - - if (svc_client) - { - AXIS2_SVC_CLIENT_FREE(svc_client, env); - svc_client = NULL; - } - - if(env) - { - axis2_env_free((axis2_env_t *) env); - env = NULL; - } - loginfo("Freed env"); - - } - - axiom_node_t* Axis2Client::createPayload(Operation& operation, - const WSDLOperation& wsdlOperation, - axis2_env_t* env) - { - logentry(); - - axiom_node_t* request_node = NULL; - - // Build up the payload as an SDO - - // Get the data factory for the composite (it will already have the typecreates loaded for the xsds) - DataFactoryPtr dataFactory = compositeReference->getComposite()->getDataFactory(); - - DataObjectPtr inputDataObject; - string inputTypeUri; - string inputTypeName; - - try - { - // Since its Document wrapped, there will only be one part - std::list<std::string> partList = wsdlOperation.getInputMessagePartNames(); - const WSDLMessagePart &inputMessage = - wsdlOperation.getInputMessagePart(partList.front()); - inputTypeName = inputMessage.getPartType(); - inputTypeUri = inputMessage.getPartUri(); - - // Create the input wrapper - const Type& rootType = dataFactory->getType(inputTypeUri.c_str(), "RootType"); - const Property& prop = rootType.getProperty(inputTypeName.c_str()); - const Type& inputType = prop.getType(); - inputDataObject = dataFactory->create(inputType); - } - catch (SDORuntimeException&) - { - try - { - // Create the input wrapper - const Type& inputType = - dataFactory->getType(inputTypeUri.c_str(), inputTypeName.c_str()); - inputDataObject = dataFactory->create(inputType); - } - catch (SDORuntimeException&) - { - - // The input wrapper type is not known, create an open DataObject - //inputDataObject = dataFactory->create("http://tempuri.org", "Wrapper"); - inputDataObject = dataFactory->create(SDOUtils::sdoURI, "OpenDataObject"); - } - } - - // Go through data object to set the input parameters - PropertyList pl = inputDataObject->getType().getProperties(); - - if(pl.size() == 0) - { - if(inputDataObject->getType().isOpenType() && inputDataObject->getType().isDataObjectType()) - { - /* - * This code deals with sending xsd:any elements - */ - for (unsigned int i=0; i<operation.getNParms(); i++) - { - ostringstream pname; - pname << "param" << (i+1); - DataObjectList& l = inputDataObject->getList(pname.str()); - - const Operation::Parameter& parm = operation.getParameter(i); - switch(parm.getType()) - { - case Operation::BOOL: - { - l.append(*(bool*)parm.getValue()); - break; - } - case Operation::SHORT: - { - l.append(*(short*)parm.getValue()); - break; - } - case Operation::INT: - { - l.append(*(long*)parm.getValue()); - break; - } - case Operation::LONG: - { - l.append(*(long*)parm.getValue()); - break; - } - case Operation::USHORT: - { - l.append(*(short*)parm.getValue()); - break; - } - case Operation::UINT: - { - l.append(*(long*)parm.getValue()); - break; - } - case Operation::ULONG: - { - l.append(*(long*)parm.getValue()); - break; - } - case Operation::FLOAT: - { - l.append(*(float*)parm.getValue()); - break; - } - case Operation::DOUBLE: - { - l.append(*(long double*)parm.getValue()); - break; - } - case Operation::LONGDOUBLE: - { - l.append(*(long double*)parm.getValue()); - break; - } - case Operation::CHARS: - { - l.append(*(char**)parm.getValue()); - break; - } - case Operation::STRING: - { - l.append((*(string*)parm.getValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - l.append(*(DataObjectPtr*)parm.getValue()); - break; - } - default: - { - ostringstream msg; - msg << "Unsupported parameter type: " << parm.getType(); - throwException(ServiceDataException, msg.str().c_str()); - } - } - } - } - } - else { - - // Each parameter in the operation should be a property on the request dataobject - for (unsigned int i=0; i<operation.getNParms(); i++) - { - const Operation::Parameter& parm = operation.getParameter(i); - switch(parm.getType()) - { - case Operation::BOOL: - { - inputDataObject->setBoolean(i, *(bool*)parm.getValue()); - break; - } - case Operation::SHORT: - { - inputDataObject->setShort(i, *(short*)parm.getValue()); - break; - } - case Operation::INT: - { - inputDataObject->setInt(i, *(int*)parm.getValue()); - break; - } - case Operation::LONG: - { - inputDataObject->setLong(i, *(long*)parm.getValue()); - break; - } - case Operation::USHORT: - { - inputDataObject->setInt(i, *(unsigned short*)parm.getValue()); - break; - } - case Operation::UINT: - { - inputDataObject->setInt(i, *(unsigned int*)parm.getValue()); - break; - } - case Operation::ULONG: - { - inputDataObject->setInt(i, *(unsigned long*)parm.getValue()); - break; - } - case Operation::FLOAT: - { - inputDataObject->setFloat(i, *(float*)parm.getValue()); - break; - } - case Operation::DOUBLE: - { - inputDataObject->setDouble(i, *(double*)parm.getValue()); - break; - } - case Operation::LONGDOUBLE: - { - inputDataObject->setDouble(i, *(long double*)parm.getValue()); - break; - } - case Operation::CHARS: - { - inputDataObject->setCString(i, *(char**)parm.getValue()); - break; - } - case Operation::STRING: - { - inputDataObject->setCString(i, (*(string*)parm.getValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - inputDataObject->setDataObject(i, *(DataObjectPtr*)parm.getValue()); - break; - } - default: - ostringstream msg; - msg << "Unsupported parameter type: " << parm.getType(); - throwException(ServiceDataException, msg.str().c_str()); - } - } - } - - // Create the Axiom object from the request dataobject - AxiomHelper* axiomHelper = AxiomHelper::getHelper(); - request_node = axiomHelper->toAxiomNode(inputDataObject, - inputTypeUri.c_str(), inputTypeName.c_str()); - AxiomHelper::releaseHelper(axiomHelper); - - char* str = AXIOM_NODE_TO_STRING(request_node, env); - loginfo("Sending Axis2 OM: %s ", str); - - return request_node; - - } - - void Axis2Client::setReturn(axiom_node_t* ret_node, - Operation& operation, - const WSDLOperation& wsdlOperation, - axis2_env_t* env) - { - logentry(); - - DataFactoryPtr dataFactory = compositeReference->getComposite()->getDataFactory(); - - // Get the AXIOM node representing the SOAP Body - axiom_node_t* body = AXIOM_NODE_GET_PARENT(ret_node, env); - - // Convert the AXIOM node to an SDO DataObject - char* str = NULL; - str = AXIOM_NODE_TO_STRING(body, env); - if (str) - { - loginfo("Received Axis2 OM: %s ", str); - } - - // Convert the SOAP body to an SDO DataObject - AxiomHelper* axiomHelper = AxiomHelper::getHelper(); - DataObjectPtr outputBodyDataObject = axiomHelper->toSdo(body, dataFactory); - AxiomHelper::releaseHelper(axiomHelper); - - if(!outputBodyDataObject) - { - string msg = "Could not convert Axis2 OM node to SDO"; - throwException(ServiceInvocationException, msg.c_str()); - } - else - { - ostringstream os; - os << outputBodyDataObject; - loginfo("Converted Axis2 OM node to SDO: %s", os.str().c_str()); - } - - XMLHelperPtr xmlHelper = compositeReference->getComposite()->getXMLHelper(); - - // Get the first body part representing the doc-lit-wrapped wrapper element - DataObjectPtr outputDataObject = NULL; - PropertyList bpl = outputBodyDataObject->getInstanceProperties(); - if (bpl.size()!=0) - { - if (bpl[0].isMany()) - { - DataObjectList& parts = outputBodyDataObject->getList((unsigned int)0); - outputDataObject = parts[0]; - } - else - { - outputDataObject = outputBodyDataObject->getDataObject(bpl[0]); - } - } - if (outputDataObject == NULL) - { - string msg = "Could not convert Axis2 body part to SDO"; - throwException(ServiceInvocationException, msg.c_str()); - } - - PropertyList pl = outputDataObject->getType().getProperties(); - if (pl.size() == 0) - { - if (outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType()) - { - SequencePtr sequence = outputDataObject->getSequence(); - if (sequence != NULL && sequence->size() != 0) - { - // Return a text element - if (sequence->isText(0)) - { - string* stringData = new string(sequence->getCStringValue(0)); - operation.setReturnValue(stringData); - } - else - { - // Return a DataObject representing a complex element - DataObjectPtr *dataObjectData = new DataObjectPtr; - *dataObjectData = sequence->getDataObjectValue(0); - if(!*dataObjectData) - { - loginfo("Null DataObject return value"); - } - else - { - (*dataObjectData)->detach(); - } - operation.setReturnValue(dataObjectData); - } - } - } - } - else - { - const Property* p = &pl[0]; - - switch(pl[0].getTypeEnum()) - { - case Type::BooleanType: - { - bool* boolData = new bool; - *boolData = outputDataObject->getBoolean(pl[0]); - operation.setReturnValue(boolData); - } - break; - case Type::ByteType: - { - char* byteData = new char; - *byteData = outputDataObject->getByte(pl[0]); - operation.setReturnValue(byteData); - } - break; - case Type::BytesType: - { - int len = outputDataObject->getLength(pl[0]); - char** bytesData = new char*; - *bytesData = new char[len+1]; - int bytesWritten = outputDataObject->getBytes(pl[0], *bytesData, len); - // Ensure the bytes end with the null char. Not sure if this is neccessary - if(bytesWritten <= len) - { - (*bytesData)[bytesWritten] = 0; - } - else - { - (*bytesData)[len] = 0; - } - //printf("outputDataObject has BytesType named %s with length %d\n", name, bytesWritten); - operation.setReturnValue(bytesData); - } - break; - case Type::CharacterType: - { - // This code should work but won't be used as there is no mapping from an XSD type to the SDO CharacterType - wchar_t* charData = new wchar_t; - *charData = outputDataObject->getCharacter(pl[0]); - operation.setReturnValue(charData); - } - break; - case Type::DoubleType: - { - long double* doubleData = new long double; - *doubleData = outputDataObject->getDouble(pl[0]); - operation.setReturnValue(doubleData); - } - break; - case Type::FloatType: - { - float* floatData = new float; - *floatData = outputDataObject->getFloat(pl[0]); - operation.setReturnValue(floatData); - } - break; - case Type::IntType: - { - long* intData = new long; - *intData = outputDataObject->getInt(pl[0]); - operation.setReturnValue(intData); - } - break; - case Type::ShortType: - { - short* shortData = new short; - *shortData = outputDataObject->getShort(pl[0]); - operation.setReturnValue(shortData); - } - break; - case Type::StringType: - { - string* stringData = new string(outputDataObject->getCString(pl[0])); - operation.setReturnValue(stringData); - } - break; - case Type::DataObjectType: - { - if (!strcmp(pl[0].getType().getURI(), SDOUtils::sdoURI) && - !strcmp(pl[0].getType().getName(), "OpenDataObject")) { - - /* - * This code deals with xsd:any element parameters - */ - - DataObjectList& dataObjectList = outputDataObject->getList(pl[0]); - - for(unsigned int j=0; j<dataObjectList.size(); j++) - { - DataObjectPtr dob = dataObjectList[j]; - if(!dob) - { - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = NULL; - operation.setReturnValue(dataObjectData); - loginfo("Null OpenDataObject return value"); - } - else - { - - SequencePtr sequence = dob->getSequence(); - if (sequence->size()!=0) - { - // Return a text element - if (sequence->isText(0)) - { - string* stringData = new string(sequence->getCStringValue(0)); - operation.setReturnValue(stringData); - } - else - { - // Return a DataObject representing a complex element - DataObjectPtr *dataObjectData = new DataObjectPtr; - *dataObjectData = sequence->getDataObjectValue(0); - if(!*dataObjectData) - { - loginfo("Null DataObject return value"); - } - else - { - (*dataObjectData)->detach(); - } - operation.setReturnValue(dataObjectData); - } - } - else - { - // Empty content, add an empty string - loginfo("Null OpenDataObject return value"); - string *stringData = new string(""); - operation.setReturnValue(stringData); - } - } - } - } - else { - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = outputDataObject->getDataObject(pl[0]); - if(!*dataObjectData) - { - loginfo("Null DataObject return value"); - } - else - { - (*dataObjectData)->detach(); - } - operation.setReturnValue(dataObjectData); - } - } - break; - default: - { - ostringstream msg; - msg << "Unsupported result type: " << pl[0].getTypeEnum(); - throwException(SystemConfigurationException, msg.str().c_str()); - } - } - } - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.h b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.h deleted file mode 100644 index 397440dd5d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/Axis2Client.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_extension_ws_axis2client_h -#define tuscany_sca_extension_ws_axis2client_h - -#include <axiom.h> - -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/CompositeReference.h" -#include "tuscany/sca/model/WSDLOperation.h" - - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - class Axis2Client - { - public: - Axis2Client(tuscany::sca::model::CompositeReference* compositeReference); - virtual ~Axis2Client(); - - virtual void invoke(Operation& operation); - - private: - tuscany::sca::model::CompositeReference* compositeReference; - - axiom_node_t* createPayload(Operation& operation, - const tuscany::sca::model::WSDLOperation& wsdlOp, - axis2_env_t* env); - - void setReturn(axiom_node_t* returnNode, - Operation& operation, - const tuscany::sca::model::WSDLOperation& wsdlOp, - axis2_env_t* env); - - }; - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_ws_axis2client_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceBindingExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceBindingExtension.cpp deleted file mode 100644 index 53d6075bbd..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceBindingExtension.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "WSServiceBindingExtension.h" -#include "model/WSServiceBinding.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_ws_reference_initialize() - { - tuscany::sca::ws::WSServiceBindingExtension::initialize(); - } -} - - -namespace tuscany -{ - namespace sca - { - namespace ws - { - // =================================================================== - // Constructor for the WSServiceBinding class. - // =================================================================== - WSServiceBindingExtension::WSServiceBindingExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the WSServiceBindingExtension class. - // =================================================================== - WSServiceBindingExtension::~WSServiceBindingExtension() - { - logentry(); - } - - const string WSServiceBindingExtension::extensionName("ws"); - const string WSServiceBindingExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#WebServiceBinding"); - - - // =================================================================== - // loadModelElement - load the info from binding.ws - // =================================================================== - ServiceBinding* WSServiceBindingExtension::getServiceBinding(Composite *composite, Service* service, DataObjectPtr scdlBinding) - { - logentry(); - - string uri = scdlBinding->getCString("uri"); - string endpoint; - try - { - endpoint = scdlBinding->getCString("endpoint"); - } - catch (SDORuntimeException&) - { - endpoint = ""; - } - string version; - try - { - commonj::sdo::DataObjectList& soap = scdlBinding->getList("soapbinding"); - if (soap.size()!=0) - { - version = soap.getCString(0); - } - else - { - version = ""; - } - } - catch (SDORuntimeException&) - { - version = ""; - } - - WSServiceBinding* serviceBinding = new WSServiceBinding(service, uri, endpoint, version); - - return serviceBinding; - } - - void WSServiceBindingExtension::initialize() - { - logentry(); - SCARuntime::getCurrentRuntime()->registerServiceBindingExtension(new WSServiceBindingExtension()); - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceBindingExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceBindingExtension.h deleted file mode 100644 index 68dd657657..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceBindingExtension.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef tuscany_sca_extension_ws_wsservicebindingextension_h -#define tuscany_sca_extension_ws_wsservicebindingextension_h - -#include "tuscany/sca/extension/ServiceBindingExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - class WSServiceBindingExtension : public ServiceBindingExtension - { - public: - /** - * Default constructor - */ - WSServiceBindingExtension(); - - /** - * Destructor - */ - virtual ~WSServiceBindingExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#binding.ws") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::ServiceBinding* getServiceBinding( - tuscany::sca::model::Composite* composite, - tuscany::sca::model::Service* service, - commonj::sdo::DataObjectPtr scdlBinding); - - static void initialize(); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - -#endif //tuscany_sca_extension_ws_wsservicebindingextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceWrapper.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceWrapper.cpp deleted file mode 100644 index 4adcd5b4ff..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceWrapper.cpp +++ /dev/null @@ -1,131 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4091) -#endif - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/util/Logging.h" -#include "Axis2Client.h" -#include "WSServiceWrapper.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ServiceType.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - WSServiceWrapper::WSServiceWrapper(Service* service) : ServiceWrapper(service) - { - logentry(); - - // Define the SOAP Body type and element to allow a SOAP body to - // be loaded in a DataObject - DataFactoryPtr dataFactory = service->getComponent()->getComposite()->getDataFactory(); - try { - const Type& bodyType = dataFactory->getType("http://www.w3.org/2003/05/soap-envelope", "Body"); - } catch (SDORuntimeException&) - { - dataFactory->addType("http://www.w3.org/2003/05/soap-envelope", "RootType", false, false, false); - dataFactory->addType("http://www.w3.org/2003/05/soap-envelope", "Body", false, true, false); - dataFactory->addPropertyToType( - "http://www.w3.org/2003/05/soap-envelope", "RootType", - "Body", - "http://www.w3.org/2003/05/soap-envelope", "Body", - false, false, true); - - dataFactory->addType("http://schemas.xmlsoap.org/soap/envelope/", "RootType", false, false, false); - dataFactory->addType("http://schemas.xmlsoap.org/soap/envelope/", "Body", false, true, false); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/soap/envelope/", "RootType", - "Body", - "http://schemas.xmlsoap.org/soap/envelope/", "Body", - false, false, true); - } - - try { - const Type& tempType = dataFactory->getType("http://tempuri.org", "RootType"); - } catch (SDORuntimeException&) - { - dataFactory->addType("http://tempuri.org", "RootType", false, false, false); - dataFactory->addType("http://tempuri.org", "Wrapper", false, true, false); - dataFactory->addPropertyToType( - "http://tempuri.org", "RootType", - "Wrapper", - "http://tempuri.org", "Wrapper", - false, false, true); - dataFactory->addType("http://tempuri.org", "Part", false, true, false); - dataFactory->addPropertyToType( - "http://tempuri.org", "RootType", - "Part", - "http://tempuri.org", "Part", - false, false, true); - } - } - - WSServiceWrapper::~WSServiceWrapper() - { - logentry(); - } - - /// - /// This method will be called when a web service call needs to be made. - /// - void WSServiceWrapper::invoke(Operation& operation) - { - logentry(); - - const string& operationName = operation.getName(); - - loginfo("Service: %s, operation: %s", getService()->getType()->getName().c_str() , operationName.c_str()); - - for (unsigned int i=0; i<operation.getNParms(); i++) - { - loginfo("Parameter: %p, type: %u", operation.getParameterValue(i),(int) operation.getParameterType(i)); - } - - // Create the Axis2 client that will handle the Web Service invocation - Service* service = getService(); - CompositeReference* compositeReference = (CompositeReference*)service->getComponent(); - - Axis2Client client(compositeReference); - client.invoke(operation); - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - - - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceWrapper.h b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceWrapper.h deleted file mode 100644 index f7aebbb575..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/WSServiceWrapper.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_ws_wsservicewrapper_h -#define tuscany_sca_extension_ws_wsservicewrapper_h - -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/core/Operation.h" -#include "tuscany/sca/model/Service.h" - - -namespace tuscany -{ - namespace sca - { - - namespace ws - { - - class WSServiceWrapper : public ServiceWrapper - { - public: - - /** - * Constructor. - * @param target The service wrapper represents a Web service. - */ - WSServiceWrapper(tuscany::sca::model::Service* service); - - /** - * Destructor - */ - virtual ~WSServiceWrapper(); - - /** - * All business method calls on the target service are performed through - * this invoke method. - * @param operation The details of the method, paramaters and return value for the - * business method to be called on the target service. - */ - virtual void invoke(Operation& operation); - }; - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_ws_wsservicewrapper_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/export.h b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/export.h deleted file mode 100644 index d0e708f1a1..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/export.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_ws_reference_export_h -#define tuscany_sca_ws_reference_export_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) - -#ifdef TUSCANY_SCA_WS_REFERENCE_EXPORTS -#define SCA_WS_REFERENCE_API __declspec(dllexport) -#else -#define SCA_WS_REFERENCE_API __declspec(dllimport) -#endif - -#else -#define SCA_WS_REFERENCE_API -#endif - -#endif // tuscany_sca_ws_reference_export_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/model/WSServiceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/model/WSServiceBinding.cpp deleted file mode 100644 index 26d8dffc45..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/model/WSServiceBinding.cpp +++ /dev/null @@ -1,144 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/ws/model/WSServiceBinding.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/ws/WSServiceWrapper.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - // Constructor - WSServiceBinding::WSServiceBinding(Service* service, const string& uri, const string& endpoint, const string& version) - : ServiceBinding(service, uri), endpoint(endpoint), soapVersion(version) - { - logentry(); - - parseEndpoint(); - - serviceWrapper = new WSServiceWrapper(service); - } - - void WSServiceBinding::parseEndpoint() - { - logentry(); - - // Endpoint is of the form: <wsdl-namepace-uri>#wsdl.endpoint(<service-name>/<endpoint-name>) - string::size_type hash = endpoint.find("#"); - if (hash != string::npos) - { - // Found a hash - - // Namepace is the part before the # - wsdlNamespaceURL = endpoint.substr(0, hash); - - - if ( (hash+1) < endpoint.length()) - { - // Check the next part is wsdl.endpoint( - int ending = hash+15; - string check = endpoint.substr(hash+1, 14); - if (check.compare("wsdl.endpoint(") == 0) - { - // Find the matching ) - int endBracket = endpoint.find(")",ending); - if (endBracket-1 > ending+1) - { - string serviceAndEndpoint = endpoint.substr(ending, endBracket-ending); - // Look for a '/' - string::size_type slash = serviceAndEndpoint.find("/"); - if (slash != string::npos) - { - serviceName = serviceAndEndpoint.substr(0, slash); - - if ( (slash+1) < serviceAndEndpoint.length()) - { - endpointName = serviceAndEndpoint.substr(slash+1); - } - else - { - endpointName = ""; - } - - } - else - { - // No '/' so all of it is the service name - serviceName = serviceAndEndpoint; - endpointName = ""; - - } - } - else - { - // Nothing between the () - serviceName = ""; - endpointName = ""; - } - } - else - { - // not the correct characters after the #, ignore the rest - serviceName = ""; - endpointName = ""; - } - - } - else - { - // Nothing after the hash - serviceName = ""; - endpointName = ""; - } - } - else - { - // No hash at all - wsdlNamespaceURL = endpoint; - serviceName = ""; - endpointName = ""; - } - } - - // Destructor - WSServiceBinding::~WSServiceBinding() - { - logentry(); - } - - ServiceWrapper* WSServiceBinding::getServiceWrapper() - { - logentry(); - - return serviceWrapper; - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/model/WSServiceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/model/WSServiceBinding.h deleted file mode 100644 index 3c8c5eb12d..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/reference/axis2c/src/tuscany/sca/ws/model/WSServiceBinding.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_ws_model_wsservicebinding_h -#define tuscany_sca_extension_ws_model_wsservicebinding_h - -#include <string> - -#include "tuscany/sca/ws/export.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/model/Service.h" - -namespace tuscany -{ - namespace sca - { - namespace ws - { - /** - * Information about a web service binding for service or a reference. - */ - class WSServiceBinding : public tuscany::sca::model::ServiceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - * @param endpoint The definition of the endpoint to which the service - * or reference is to be bound. This is of the form - * "namespace"#endpoint("service"/"endpoint") - */ - SCA_WS_REFERENCE_API WSServiceBinding(tuscany::sca::model::Service* service, const std::string& uri, const std::string& endpoint, const std::string& version); - - /** - * Destructor. - */ - SCA_WS_REFERENCE_API virtual ~WSServiceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#WebServiceBinding"; }; - - /** - * Create a wrapper for the service configured by this - * binding. - */ - SCA_WS_REFERENCE_API virtual ServiceWrapper* getServiceWrapper(); - - /** - * Return the part of the endpoint definition describing the wsdl - * namespace. - * @return The wsdl namespace. - */ - std::string getWSDLNamespaceURL() const { return wsdlNamespaceURL; }; - - /** - * Return the service part of the endpoint definition. - * @return The service to use. - */ - std::string getServiceName() const { return serviceName; }; - - /** - * Return the endpoint name part of the endpoint definition. - * @return The endpoint name to use. - */ - std::string getEndpointName() const { return endpointName; }; - - /** - * Return the SOAP version. - * @return The SOAP version to use. - */ - std::string getSOAPVersion() const { return soapVersion; }; - - private: - - /** - * Parse the endpoint specification. - */ - void parseEndpoint(); - - /** - * The full endpoint string. - */ - std::string endpoint; - - /** - * Namespace from the endpoint. - */ - std::string wsdlNamespaceURL; - - /** - * Service name from the endpoint. - */ - std::string serviceName; - - /** - * WSDL Endpoint name. - */ - std::string endpointName; - - /** - * SOAP version. - */ - std::string soapVersion; - - /** - * The wrapper for the service configured by this binding. - */ - ServiceWrapper* serviceWrapper; - - }; - - } // End namespace model - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_ws_model_wsservicebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/Makefile.am deleted file mode 100644 index 18e9ba89b9..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -# 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. - -SUBDIRS = axis2c diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/Makefile.am deleted file mode 100644 index feadf9e317..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/Makefile.am +++ /dev/null @@ -1,18 +0,0 @@ -# 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. - -SUBDIRS = src
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/Makefile.am b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/Makefile.am deleted file mode 100644 index 88f7fc1a9e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/Makefile.am +++ /dev/null @@ -1,94 +0,0 @@ -# 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. - -libdir=$(prefix)/extensions/ws/service/lib -lib_LTLIBRARIES = \ -libtuscany_sca_ws_service.la \ -libtuscany_sca_ws_dispatcher.la - -noinst_HEADERS = \ -tuscany/sca/ws/*.h \ -tuscany/sca/ws/model/*.h - -libtuscany_sca_ws_service_la_SOURCES = \ -tuscany/sca/ws/WSReferenceBindingExtension.cpp \ -tuscany/sca/ws/model/WSReferenceBinding.cpp \ -tuscany/sca/ws/WSServiceProxy.cpp \ -tuscany/sca/ws/Axis2Service.cpp \ -tuscany/sca/ws/Axis2Utils.cpp - -libtuscany_sca_ws_service_la_LIBADD = \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo -ltuscany_sdo_axiom \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca \ - -L$(AXIS2C_HOME)/lib \ - -laxis2_util \ - -laxis2_axiom \ - -laxis2_wsdl \ - -laxis2_engine \ - -laxis2_parser \ - -laxis2_minizip \ - -lpthread \ - -lwoden \ - -laxis2_http_sender \ - -laxis2_http_receiver - -rootdir=$(prefix)/extensions/ws/service -root_DATA = axis2.xml -root_SCRIPTS = deploy.sh - -libtuscany_sca_ws_dispatcher_la_SOURCES = \ -tuscany/sca/ws/Axis2Dispatcher.cpp \ -tuscany/sca/ws/Axis2DispatcherModule.cpp - -libtuscany_sca_ws_dispatcher_la_LIBADD = \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo -ltuscany_sdo_axiom \ - -L$(top_builddir)/runtime/core/src -ltuscany_sca \ - -L$(AXIS2C_HOME)/lib \ - -laxis2_util \ - -laxis2_axiom \ - -laxis2_wsdl \ - -laxis2_engine \ - -laxis2_parser \ - -laxis2_minizip \ - -lpthread \ - -lwoden \ - -laxis2_http_sender \ - -laxis2_http_receiver - -servicedir=$(rootdir)/services/tuscany -service_DATA = services.xml - -modulesdir=$(rootdir)/modules/tuscany -modules_DATA = module.xml - -EXTRA_DIST = axis2.xml services.xml module.xml deploy.sh - -install-data-hook: - cd $(servicedir); ln -s -f ../../lib/libtuscany_sca_ws_service.so libtuscany_sca_ws_service.so - cd $(modulesdir); ln -s -f ../../lib/libtuscany_sca_ws_dispatcher.so libtuscany_sca_ws_dispatcher.so - -INCLUDES = -I$(top_builddir)/runtime/core/src \ - -I${TUSCANY_SDOCPP}/include \ - -I${AXIS2C_HOME}/include - -moduledir=$(prefix)/extensions/ws/service/module -extension = libtuscany_sca_ws_service$(libsuffix) - -install-exec-hook: - test -z $(moduledir) || $(mkdir_p) $(moduledir); - -rm -f $(moduledir)/$(extension) - $(LN_S) $(libdir)/$(extension) $(moduledir)/$(extension) diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/axis2.xml b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/axis2.xml deleted file mode 100644 index 641085466e..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/axis2.xml +++ /dev/null @@ -1,181 +0,0 @@ -<!-- - 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. ---> -<axisconfig name="Axis2/C"> - <!-- ================================================= --> - <!-- Parameters --> - <!-- ================================================= --> - <parameter name="hotdeployment" locked="false">false</parameter> - <parameter name="hotupdate" locked="false">false</parameter> - <parameter name="enableMTOM" locked="false">false</parameter> - <parameter name="enableREST" locked="false">true</parameter> - - <parameter name="userName" locked="false">admin</parameter> - <parameter name="password" locked="false">axis2</parameter> - - <parameter name="seralizeLocation" locked="false">.</parameter> - <hostConfiguration> - <ip>127.0.0.1</ip> - <port>5555</port> - </hostConfiguration> - - - <!--if you want to extract the service archive file and work with that please uncomment this--> - <!--else , it wont extract archive file or does not take into consideration if someone drop--> - <!--exploded directory into /service directory--> - <!--<parameter name="extractServiceArchive" locked="false">true</parameter>--> - - - <!-- The way of adding listener to the system--> - <!-- <listener class="org.apache.axis2.ObserverIMPL">--> - <!-- <parameter name="RSS_URL" locked="false">http://127.0.0.1/rss</parameter>--> - <!-- </listener>--> - - <!-- ================================================= --> - <!-- Message Receivers --> - <!-- ================================================= --> - <!-- This is the Deafult Message Receiver for the Request Response style Operations --> - <!--messageReceiver mep="INOUT" class="axis2_receivers"/--> - - <!-- ================================================= --> - <!-- Transport Ins --> - <!-- ================================================= --> - <transportReceiver name="http" class="axis2_http_receiver"> - <parameter name="port" locked="false">6060</parameter> - </transportReceiver> - - <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver - <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener"> - <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter> - <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter> - <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter> - <parameter name="transport.mail.pop3.port" locked="false">110</parameter> - <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter> - </transportReceiver> --> - - <!-- - <transportReceiver name="tcp" class="org.apache.axis2.transport.tcp.TCPServer"> - <parameter name="port" locked="false">6060</parameter> - </transportReceiver> - --> - <!-- ================================================= --> - <!-- Transport Outs --> - <!-- ================================================= --> - - <!-- - <transportSender name="tcp" class="org.apache.axis2.transport.tcp.TCPTransportSender"/> - <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/> - --> - <transportSender name="http" class="axis2_http_sender"> - <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter> - <!--parameter name="Transfer-Encoding">chunked</parameter--> - <!--parameter name="PROXY" proxy_host="127.0.0.1" proxy_port="8080" locked="true"/--> - </transportSender> - <!-- - <transportSender name="https" class="axis2_http_sender"> - <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter> - </transportSender> - --> - <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver - <transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender"> - <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter> - <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter> - <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter> - <parameter name="transport.mail.smtp.port" locked="false">25</parameter> - </transportSender> - --> - - <!-- ================================================= --> - <!-- Global Modules --> - <!-- ================================================= --> - <!-- Comment this to disable Addressing --> - <module ref="addressing"/> - - <module ref="tuscany"/> - - <!--Configuring module , providing paramters for modules whether they refer or not--> - <!--<moduleConfig name="addressing">--> - <!--<parameter name="addressingPara" locked="false">N/A</parameter>--> - <!--</moduleConfig>--> - - <!-- ================================================= --> - <!-- Phases --> - <!-- ================================================= --> - <phaseOrder type="inflow"> - <!-- System pre defined phases --> - <phase name="TransportIn"/> - <phase name="PreDispatch"/> - <phase name="Dispatch"> - <handler name="AddressingBasedDispatcher" - class="axis2_engine"> - <order phase="Dispatch"/> - </handler> - <handler name="RequestURIBasedDispatcher" - class="axis2_engine"> - <order phase="Dispatch"/> - </handler> - <handler name="SOAPActionBasedDispatcher" - class="axis2_engine"> - <order phase="Dispatch"/> - </handler> - <handler name="SOAPMessageBodyBasedDispatcher" - class="axis2_engine"> - <order phase="Dispatch"/> - </handler> - </phase> - <phase name="PostDispatch"> - <handler name="DispatchPostConditionsEvaluator" - class="axis2_engine"> - <order phase="PostDispatch"/> - </handler> - <handler name="InstanceDispatcher" - class="axis2_engine"> - <order phase="PostDispatch"/> - </handler> - <handler name="SOAPProcessingModelChecker" - class="axis2_engine"> - <order phase="PostDispatch"/> - </handler> - </phase> - <!-- System pre defined phases --> - <!-- After Postdispatch phase module author or or service author can add any phase he want --> - <!--phase name="userphase1"/--> - </phaseOrder> - <phaseOrder type="outflow"> - <!-- user can add his own phases to this area --> - <!--phase name="RMPhase"/--> - <!--phase name="userphase1"/--> - <!--system predefined phase--> - <!--these phase will run irrespective of the service--> - <!--phase name="PolicyDetermination"/--> - <!--phase name="MessageOut"/--> - </phaseOrder> - <phaseOrder type="INfaultflow"> - <!-- user can add his own phases to this area --> - <!--phase name="userphase1"/--> - <!--phase name="RMPhase"/--> - </phaseOrder> - <phaseOrder type="Outfaultflow"> - <!-- user can add his own phases to this area --> - <!--phase name="RMPhase"/--> - <!--phase name="userphase1"/--> - <!--phase name="PolicyDetermination"/--> - <phase name="MessageOut"/> - </phaseOrder> -</axisconfig> - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/deploy.bat b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/deploy.bat deleted file mode 100644 index 6493e1cec9..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/deploy.bat +++ /dev/null @@ -1,39 +0,0 @@ -@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.
-
-
-rem Will deploy the Tuscany SCA WS service Axis2C service and module
-rem to the correct places within the AXIS2C_HOME directory
-setlocal
-set currentPath=%~d0%~p0
-
-if "%AXIS2C_HOME%" == "" (
-echo "AXIS2C_HOME not set"
-goto end
-)
-echo Deploying to Axis2C installed at %AXIS2C_HOME%
-
-if not exist %AXIS2C_HOME%\services\tuscany mkdir %AXIS2C_HOME%\services\tuscany
-if not exist %AXIS2C_HOME%\modules\tuscany mkdir %AXIS2C_HOME%\modules\tuscany
-
-copy %currentPath%\services\tuscany\* %AXIS2C_HOME%\services\tuscany
-copy %currentPath%\modules\tuscany\* %AXIS2C_HOME%\modules\tuscany
-copy %currentPath%\axis2.xml %AXIS2C_HOME%\axis2.xml
-
-:end
-endlocal
diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/deploy.sh b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/deploy.sh deleted file mode 100755 index ffe571b0ee..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/deploy.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/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$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi -echo "Deploying to Axis2C installed at $AXIS2C_HOME" - -if ! [ -d $AXIS2C_HOME/services/tuscany ]; then - mkdir $AXIS2C_HOME/services/tuscany -fi - -if ! [ -d $AXIS2C_HOME/modules/tuscany ]; then - mkdir $AXIS2C_HOME/modules/tuscany -fi - -cp $APFULLDIR/services/tuscany/services.xml $AXIS2C_HOME/services/tuscany - -if ! [ -f $AXIS2C_HOME/services/tuscany/libtuscany_sca_ws_service.so ]; then - ln -s $APFULLDIR/services/tuscany/libtuscany_sca_ws_service.so $AXIS2C_HOME/services/tuscany/libtuscany_sca_ws_service.so -fi - -cp $APFULLDIR/modules/tuscany/module.xml $AXIS2C_HOME/modules/tuscany -if ! [ -f $AXIS2C_HOME/modules/tuscany/libtuscany_sca_ws_dispatcher.so ]; then - ln -s $APFULLDIR/modules/tuscany/libtuscany_sca_ws_dispatcher.so $AXIS2C_HOME/modules/tuscany/libtuscany_sca_ws_dispatcher.so -fi - -cp $APFULLDIR/axis2.xml $AXIS2C_HOME/axis2.xml diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/module.xml b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/module.xml deleted file mode 100644 index 97d4d43a86..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/module.xml +++ /dev/null @@ -1,25 +0,0 @@ -<!-- - 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. ---> -<module name="tuscany" class="tuscany_sca_ws_dispatcher"> - <inflow> - <handler name="TuscanyDispatcher" class="tuscany_sca_ws_dispatcher"> - <order phase="Dispatch"/> - </handler> - </inflow> -</module> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/services.xml b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/services.xml deleted file mode 100644 index 335d4d96be..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/services.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?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. ---> -<serviceGroup> -<service name="TuscanyService"> - <parameter name="ServiceClass" locked="xsd:false">tuscany_sca_ws_service</parameter> - <operation name="execute"/> -</service> -</serviceGroup> diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Dispatcher.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Dispatcher.cpp deleted file mode 100644 index b6d2ac9225..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Dispatcher.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#pragma warning(disable: 4091) -#endif - -#include <axis2_handler_desc.h> -#include <axis2_qname.h> -#include <axis2_relates_to.h> -#include <axis2_svc.h> -#include <axis2_const.h> -#include <axis2_conf_ctx.h> -#include <axis2_addr.h> -#include <axis2_utils.h> -#include <axiom_soap_envelope.h> -#include <axiom_soap_body.h> - -#include "tuscany/sca/util/Logging.h" - -extern "C" -{ - -axis2_status_t AXIS2_CALL -Axis2Dispatcher_invoke ( - axis2_handler_t * handler, - const axis2_env_t *env, - struct axis2_msg_ctx *msg_ctx); - -axis2_svc_t *AXIS2_CALL -Axis2Dispatcher_find_svc( - axis2_msg_ctx_t *msg_ctx, - const axis2_env_t *env); - -axis2_op_t *AXIS2_CALL -Axis2Dispatcher_find_op( - axis2_msg_ctx_t *msg_ctx, - const axis2_env_t *env, - axis2_svc_t *svc); - - -AXIS2_EXPORT axis2_handler_t* AXIS2_CALL -Axis2Dispatcher_create(const axis2_env_t *env, - axis2_qname_t *qname) -{ - axis2_handler_t *handler = NULL; - - handler = axis2_handler_create(env); - if (!handler) - { - return NULL; - } - - /* handler init is handled by conf loading, so no need to do it here */ - - /* set the base struct's invoke op */ - if (handler->ops) - handler->ops->invoke = Axis2Dispatcher_invoke; - - return handler; -} - -axis2_svc_t *AXIS2_CALL -Axis2Dispatcher_find_svc( - axis2_msg_ctx_t *msg_ctx, - const axis2_env_t *env) -{ - axis2_svc_t *svc = NULL; - - AXIS2_ENV_CHECK(env, NULL); - - axis2_conf_ctx_t *conf_ctx = NULL; - conf_ctx = AXIS2_MSG_CTX_GET_CONF_CTX(msg_ctx, env); - if (conf_ctx) - { - axis2_conf_t *conf = NULL; - conf = AXIS2_CONF_CTX_GET_CONF(conf_ctx, env); - if (conf) - { - axis2_char_t* service_name = "TuscanyService"; - svc = AXIS2_CONF_GET_SVC(conf, env, service_name); - if (svc) - { - loginfo("Service found using target endpoint address"); - } - } - } - - return svc; -} - -axis2_op_t *AXIS2_CALL -Axis2Dispatcher_find_op( - axis2_msg_ctx_t *msg_ctx, - const axis2_env_t *env, - axis2_svc_t *svc) -{ - axis2_op_t *op = NULL; - - AXIS2_ENV_CHECK(env, NULL); - - axis2_qname_t *op_qname = NULL; - axis2_char_t* execute_op_name = "execute"; - op_qname = axis2_qname_create(env, execute_op_name, NULL, NULL); - - op = AXIS2_SVC_GET_OP_WITH_NAME(svc, env, AXIS2_QNAME_GET_LOCALPART(op_qname, env)); - - AXIS2_QNAME_FREE(op_qname, env); - if (op) - { - loginfo("TuscanyService execute operation found"); - } - return op; -} - -axis2_status_t AXIS2_CALL -Axis2Dispatcher_invoke( - axis2_handler_t * handler, - const axis2_env_t *env, - struct axis2_msg_ctx *msg_ctx) -{ - AXIS2_ENV_CHECK(env, AXIS2_FAILURE); - - if (!(AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env))) - return AXIS2_SUCCESS; - - msg_ctx->ops->find_svc = Axis2Dispatcher_find_svc; - msg_ctx->ops->find_op = Axis2Dispatcher_find_op; - - axis2_svc_t *axis_service = NULL; - axis2_op_t *op = NULL; - - axis_service = AXIS2_MSG_CTX_GET_SVC(msg_ctx, env); - - if (!axis_service) - { - axis_service = AXIS2_MSG_CTX_FIND_SVC(msg_ctx, env); - if (axis_service) - { - AXIS2_MSG_CTX_SET_SVC(msg_ctx, env, axis_service); - /*TODO Set the Service Group Context to the message Context*/ - } - } - op = AXIS2_MSG_CTX_GET_OP(msg_ctx, env); - if (!op) - { - op = AXIS2_MSG_CTX_FIND_OP(msg_ctx, env, axis_service); - - if (op) - { - AXIS2_MSG_CTX_SET_OP(msg_ctx, env, op); - } - } - - return AXIS2_SUCCESS; -} - -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2DispatcherModule.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2DispatcherModule.cpp deleted file mode 100644 index 0dc8f3358a..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2DispatcherModule.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#pragma warning(disable: 4091) -#endif - -#include <axis2_module.h> -#include <axis2_addr_mod.h> -#include <axis2_conf_ctx.h> -#include <axis2_disp.h> - -extern "C" -{ - -axis2_status_t AXIS2_CALL -Axis2DispatcherModule_shutdown(axis2_module_t *module, - const axis2_env_t *env); - -axis2_status_t AXIS2_CALL -Axis2DispatcherModule_init( - axis2_module_t *module, - const axis2_env_t *env, - axis2_conf_ctx_t *conf_ctx, - axis2_module_desc_t *module_desc); - -axis2_status_t AXIS2_CALL -Axis2DispatcherModule_fill_handler_create_func_map(axis2_module_t *module, - const axis2_env_t *env); - -AXIS2_EXTERN axis2_handler_t* AXIS2_CALL -Axis2Dispatcher_create(const axis2_env_t *env, - axis2_qname_t *qname); - -axis2_module_t * -Axis2DispatcherModule_create(const axis2_env_t *env) -{ - axis2_module_t *module = NULL; - module = (axis2_module_t*)AXIS2_MALLOC(env->allocator, - sizeof(axis2_module_t)); - - - module->ops = (axis2_module_ops_t*)AXIS2_MALLOC( - env->allocator, sizeof(axis2_module_ops_t)); - - module->ops->shutdown = Axis2DispatcherModule_shutdown; - module->ops->init = Axis2DispatcherModule_init; - module->ops->fill_handler_create_func_map = - Axis2DispatcherModule_fill_handler_create_func_map; - - return module; -} - -axis2_status_t AXIS2_CALL -Axis2DispatcherModule_init( - axis2_module_t *module, - const axis2_env_t *env, - axis2_conf_ctx_t *conf_ctx, - axis2_module_desc_t *module_desc) -{ - return AXIS2_SUCCESS; -} - -axis2_status_t AXIS2_CALL -Axis2DispatcherModule_shutdown(axis2_module_t *module, - const axis2_env_t *env) -{ - if(module->ops) - { - AXIS2_FREE(env->allocator, module->ops); - module->ops = NULL; - } - - if(module->handler_create_func_map) - { - axis2_hash_free(module->handler_create_func_map, env); - module->handler_create_func_map = NULL; - } - - if(module) - { - AXIS2_FREE(env->allocator, module); - module = NULL; - } - return AXIS2_SUCCESS; -} - -axis2_status_t AXIS2_CALL -Axis2DispatcherModule_fill_handler_create_func_map(axis2_module_t *module, - const axis2_env_t *env) -{ - AXIS2_ENV_CHECK(env, AXIS2_FAILURE); - - module->handler_create_func_map = axis2_hash_make(env); - axis2_hash_set(module->handler_create_func_map, "TuscanyDispatcher", - (axis2_ssize_t)AXIS2_HASH_KEY_STRING, (const void *)Axis2Dispatcher_create); - - return AXIS2_SUCCESS; -} - -/** - * Following block distinguish the exposed part of the dll. - */ - -AXIS2_EXPORT int -axis2_get_instance(axis2_module_t **inst, - const axis2_env_t *env) -{ - *inst = Axis2DispatcherModule_create(env); - if(!(*inst)) - { - return AXIS2_FAILURE; - } - - return AXIS2_SUCCESS; -} - -AXIS2_EXPORT int -axis2_remove_instance(axis2_module_t *inst, - const axis2_env_t *env) -{ - axis2_status_t status = AXIS2_FAILURE; - if (inst) - { - status = Axis2DispatcherModule_shutdown(inst, env); - } - return status; -} - -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Service.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Service.cpp deleted file mode 100644 index 9f1207dce8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Service.cpp +++ /dev/null @@ -1,553 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#pragma warning(disable: 4091) -#endif - -#include <sstream> - -#include <axis2_svc_skeleton.h> -#include <axis2_array_list.h> -#include <axis2_log_default.h> -#include <axis2_error_default.h> -#include <axiom.h> - -#include <sdo_axiom.h> - -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Logging.h" -#include "WSServiceProxy.h" -#include "model/WSReferenceBinding.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/CompositeService.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/WSDLDefinition.h" -#include "tuscany/sca/model/WSDLOperation.h" -#include "tuscany/sca/model/WSDLMessagePart.h" -#include "tuscany/sca/model/WSDLInterface.h" -#include "tuscany/sca/model/Interface.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/util/Utils.h" -#include "Axis2Utils.h" - -using namespace std; -using namespace commonj::sdo; -using namespace commonj::sdo_axiom; -using namespace tuscany::sca; -using namespace tuscany::sca::model; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - int AXIS2_CALL - Axis2Service_free(axis2_svc_skeleton_t *svc_skeleton, - const axis2_env_t *env); - - axiom_node_t* AXIS2_CALL - Axis2Service_invoke(axis2_svc_skeleton_t *svc_skeleton, - const axis2_env_t *env, - axiom_node_t *node, - axis2_msg_ctx_t *msg_ctx); - - int AXIS2_CALL - Axis2Service_init(axis2_svc_skeleton_t *svc_skeleton, - const axis2_env_t *env); - - axis2_svc_skeleton_t* - axis2_Axis2Service_create(axis2_env_t *env) - { - axis2_svc_skeleton_t *svc_skeleton = NULL; - svc_skeleton = (axis2_svc_skeleton_t *) AXIS2_MALLOC((env)->allocator, - sizeof(axis2_svc_skeleton_t)); - - - svc_skeleton->ops = (axis2_svc_skeleton_ops_t *) AXIS2_MALLOC( - (env)->allocator, sizeof(axis2_svc_skeleton_ops_t)); - - svc_skeleton->func_array = NULL; - - svc_skeleton->ops->free = Axis2Service_free; - svc_skeleton->ops->init = Axis2Service_init; - svc_skeleton->ops->invoke = Axis2Service_invoke; - /*svc_skeleton->ops->on_fault = Axis2Service_on_fault;*/ - - return svc_skeleton; - } - - int AXIS2_CALL - Axis2Service_init(axis2_svc_skeleton_t *svc_skeleton, - const axis2_env_t *env) - { - // This method never seems to be called - an old Axis2C artifact? - - svc_skeleton->func_array = axis2_array_list_create(env, 0); - return AXIS2_SUCCESS; - } - - int AXIS2_CALL - Axis2Service_free(axis2_svc_skeleton_t *svc_skeleton, - const axis2_env_t *env) - { - if(svc_skeleton->ops) - { - AXIS2_FREE((env)->allocator, svc_skeleton->ops); - svc_skeleton->ops = NULL; - } - - if(svc_skeleton) - { - AXIS2_FREE((env)->allocator, svc_skeleton); - svc_skeleton = NULL; - } - return AXIS2_SUCCESS; - } - - - /** - * Initialize the SCA runtime - */ - CompositeService* initializeSCARuntime(const char*home, const char* root, - const char* path, const char* baseURI, const char *component, const char* service) - { - logentry(); - loginfo("Home: %s", home); - loginfo("Root: %s", root); - loginfo("Path: %s", path); - loginfo("Base URI: %s", baseURI); - loginfo("Component: %s", component); - loginfo("Service: %s", service); - - try - { - SCARuntime* runtime = SCARuntime::initializeSharedRuntime(home, root, path, baseURI); - - string componentName; - if (strlen(component)) - { - componentName = component; - } - else - { - componentName = runtime->getDefaultComponentName(); - } - string serviceName = service; - - loginfo("Resolving composite: %s, service: %s", componentName.c_str(), serviceName.c_str()); - Component* compositeComponent = runtime->getSystem()->findComponent(componentName); - if (compositeComponent == NULL) - { - string msg = "Component not found " + componentName; - throwException(SystemConfigurationException, msg.c_str()); - } - runtime->setDefaultComponent(compositeComponent); - - Composite* composite = (Composite*)compositeComponent->getType(); - CompositeService* compositeService = (CompositeService*)composite->findComponent(serviceName); - if (compositeService == NULL) - { - string msg = "Composite service not found " + serviceName; - throwException(SystemConfigurationException, msg.c_str()); - } - - return compositeService; - } - catch(TuscanyRuntimeException &ex) - { - ostringstream msg; - msg << ex; - logerror("Failed to initialize SCA runtime: %s", msg.str().c_str()); - throw; - } - } - - - /* - * This method invokes the target service method - */ - axiom_node_t* AXIS2_CALL - Axis2Service_invoke(axis2_svc_skeleton_t *svc_skeleton, - const axis2_env_t *env, - axiom_node_t *node, - axis2_msg_ctx_t *msg_ctx) - { - logentry(); - - try - { - if (node) - { - if (AXIOM_NODE_GET_NODE_TYPE(node, env) == AXIOM_ELEMENT) - { - axiom_element_t *element = NULL; - element = (axiom_element_t *)AXIOM_NODE_GET_DATA_ELEMENT(node, env); - if (element) - { - string op_name = ""; - - axis2_bool_t rest = AXIS2_MSG_CTX_GET_DOING_REST(msg_ctx, env); - if (rest) - { - axis2_endpoint_ref_t *endpoint_ref = AXIS2_MSG_CTX_GET_FROM(msg_ctx, env); - if (endpoint_ref) - { - const axis2_char_t *addr = AXIS2_ENDPOINT_REF_GET_ADDRESS(endpoint_ref, env); - if (addr) - { - // REST request, the op name is the last segment of the path - string raddress = addr; - string path; - string query; - Utils::tokeniseString("?", raddress, path, query); - string uri; - Utils::rTokeniseString("/", path, uri, op_name); - } - } - } - else - { - // SOAP request - // Get the operation name from the root element name, this is correct for DocLit Wrapped style - op_name = AXIOM_ELEMENT_GET_LOCALNAME(element, env); - } - - if (op_name != "") - { - CompositeService* compositeService; - - // Get the Tuscany home, system root, path and composite service name from the Axis2 - // service parameters - char* homeParam = Axis2Utils::getAxisServiceParameterValue(env, msg_ctx, "TuscanyHome"); - if (homeParam == NULL) - homeParam = ""; - - char* rootParam = Axis2Utils::getAxisServiceParameterValue(env, msg_ctx, "TuscanyRoot"); - if (rootParam == NULL) - rootParam = ""; - - char* pathParam = Axis2Utils::getAxisServiceParameterValue(env, msg_ctx, "TuscanyPath"); - if (pathParam == NULL) - pathParam = ""; - - char* baseURIParam = Axis2Utils::getAxisServiceParameterValue(env, msg_ctx, "TuscanyBaseURI"); - if (baseURIParam == NULL) - baseURIParam = ""; - - char* serviceParam = Axis2Utils::getAxisServiceParameterValue(env, msg_ctx, "TuscanyService"); - if (serviceParam != NULL) - { - loginfo("System root: %s, service name: %s, operation name: %s", rootParam, serviceParam, op_name.c_str()); - - // Service is of the form "component name"/"composite service name" - string component, service; - Utils::rTokeniseString("/", serviceParam, component, service); - - compositeService = initializeSCARuntime(homeParam, rootParam, pathParam, baseURIParam, component.c_str(), service.c_str()); - } - else { - - // Use the default home, system root and component, the service is - // derived from the target address - axis2_endpoint_ref_t *endpoint_ref = NULL; - endpoint_ref = AXIS2_MSG_CTX_GET_FROM(msg_ctx, env); - string address = AXIS2_ENDPOINT_REF_GET_ADDRESS(endpoint_ref, env); - - axis2_bool_t isrest = AXIS2_MSG_CTX_GET_DOING_REST(msg_ctx, env); - string path; - if (isrest) - { - string op; - Utils::rTokeniseString("/", address, path, op); - } - else - { - path = address; - } - - string path2; - string service; - Utils::rTokeniseString("/", path, path2, service); - - string path3; - string component; - Utils::rTokeniseString("/", path2, path3, component); - if (component == "services") - { - component = ""; - } - - loginfo("System root: %s, component name: %s, service name: %s, operation name: %s", - rootParam, component.c_str(), service.c_str(), op_name.c_str()); - - compositeService = initializeSCARuntime(homeParam, rootParam, pathParam, baseURIParam, component.c_str(), service.c_str()); - } - - if(!compositeService) - { - throwException(SystemConfigurationException, - "Failed to initialize SCA runtime, could not initialize CompositeService"); - } - - DataFactoryPtr dataFactory = compositeService->getComposite()->getDataFactory(); - if (dataFactory == 0) - { - throwException(SystemConfigurationException, - "Failed to initialize SCA runtime, could not get DataFactory"); - } - - // Get the WS binding and the WSDL operation - Composite* composite = compositeService->getComposite(); - Reference* reference = compositeService->getReference(); - WSReferenceBinding* binding = (WSReferenceBinding*)reference->getBinding(); - WSDLOperation wsdlOperation; - - // First use the WSDL definition specified in the binding - string wsdlNamespace = binding->getWSDLNamespaceURL(); - if (wsdlNamespace != "") - { - WSDLDefinition* wsdlDefinition = composite->findWSDLDefinition(wsdlNamespace); - if (wsdlDefinition == 0) - { - string msg = "WSDL not found for: " + wsdlNamespace; - throwException(SystemConfigurationException, msg.c_str()); - } - - // Find the target operation in the WSDL port type. - try { - wsdlOperation = wsdlDefinition->findOperation( - binding->getServiceName(), - binding->getEndpointName(), - op_name.c_str()); - } - catch(SystemConfigurationException&) - { - throw; - } - - } - else - { - // Then use the WSDL definition specified in the WSDL interface, if any - Interface* iface = reference->getType()->getInterface(); - if (iface != NULL && - iface->getInterfaceTypeQName() == WSDLInterface::typeQName) - { - WSDLInterface* wsdlInterface = (WSDLInterface*)iface; - wsdlNamespace = wsdlInterface->getNamespaceURI(); - - if (wsdlNamespace != "") - { - - WSDLDefinition* wsdl = composite->findWSDLDefinition(wsdlNamespace); - if (wsdl == 0) - { - string msg = "WSDL not found for: " + wsdlNamespace; - throwException(SystemConfigurationException, msg.c_str()); - } - - try - { - wsdlOperation = wsdl->findOperation(wsdlInterface->getName(), op_name.c_str()); - } - catch(SystemConfigurationException&) - { - throw; - } - } - } - } - - // No WSDL definition was specified in the binding or interface - // Create a default document literal wrapped WSDL operation - if (wsdlNamespace == "") - { - WSDLMessagePart inPart(op_name, "", "http://tempuri.org"); - WSDLMessagePart outPart((op_name+"Response"), "", "http://tempuri.org"); - wsdlNamespace = compositeService->getName(); - wsdlOperation = WSDLOperation(); - wsdlOperation.setOperationName(op_name.c_str()); - wsdlOperation.setSoapAction(wsdlNamespace+ "#" +op_name); - wsdlOperation.setEndpoint(""); - wsdlOperation.setSoapVersion(WSDLOperation::SOAP11); - wsdlOperation.setDocumentStyle(true); - wsdlOperation.setWrappedStyle(true); - wsdlOperation.setInputEncoded(false); - wsdlOperation.setOutputEncoded(false); - wsdlOperation.setInputMessagePart(op_name, inPart); - wsdlOperation.setOutputMessagePart((op_name+"Response"), outPart); - } - else if (!wsdlOperation.isDocumentStyle() || !wsdlOperation.isWrappedStyle()) - { - throwException(ServiceInvocationException, - "Only wrapped document style WSDL operations are currentlysupported"); - } - - // Convert the input AXIOM node to an SDO DataObject - axiom_node_t* body = AXIOM_NODE_GET_PARENT(node, env); - char* str = NULL; - str = AXIOM_NODE_TO_STRING(body, env); - if (str) - { - loginfo("Received request Axis2 OM: %s", str); - } - - // Convert the SOAP body to an SDO DataObject - DataObjectPtr inputBodyDataObject = NULL; - DataObjectPtr inputDataObject = NULL; - - AxiomHelper* axiomHelper = AxiomHelper::getHelper(); - - try - { - inputBodyDataObject = axiomHelper->toSdo(body, dataFactory); - if(!inputBodyDataObject) - { - string msg = "Could not convert request Axis2 OM to SDO"; - throwException(ServiceInvocationException, msg.c_str()); - } - else - { - ostringstream os; - os << inputBodyDataObject; - loginfo("Converted Axis2 OM node to SDO: %s", os.str().c_str()); - } - - // Get the first body part representing the doc-lit-wrapped wrapper element - PropertyList bpl = inputBodyDataObject->getInstanceProperties(); - if (bpl.size()!=0) - { - if (bpl[0].isMany()) - { - DataObjectList& parts = inputBodyDataObject->getList((unsigned int)0); - inputDataObject = parts[0]; - } - else - { - inputDataObject = inputBodyDataObject->getDataObject(bpl[0]); - } - } - if (inputDataObject == NULL) - { - string msg = "Could not convert Axis2 body part to SDO"; - throwException(ServiceInvocationException, msg.c_str()); - } - } - catch(SDORuntimeException &ex) - { - throwException(ServiceDataException, ex); - } - - // Dispatch to the WS proxy - WSServiceProxy* proxy = (WSServiceProxy*)binding->getServiceProxy(); - - DataObjectPtr outputDataObject = proxy->invoke(wsdlOperation, inputDataObject); - - if(!outputDataObject) - { - return 0; - } - - try - { - std::list<std::string> partList = - wsdlOperation.getOutputMessagePartNames(); - const WSDLMessagePart &outPart = - wsdlOperation.getOutputMessagePart(partList.front()); - // Convert the output DataObject to an Axiom node - axiom_node_t* outputNode = - axiomHelper->toAxiomNode(outputDataObject, - outPart.getPartUri().c_str(), - outPart.getPartName().c_str()); - - AxiomHelper::releaseHelper(axiomHelper); - - str = AXIOM_NODE_TO_STRING(outputNode, env); - if (str) - { - loginfo("Sending response Axis2 OM : %s", str); - } - - return outputNode; - } - catch(SDORuntimeException &ex) - { - throwException(ServiceDataException, ex); - } - } - } - } - } - - string msg = "Invalid parameters in Axis2 request OM"; - throwException(ServiceInvocationException, msg.c_str()); - - } - catch(TuscanyRuntimeException& ex) - { - ostringstream msg; - msg << ex; - logerror("Failed to process Web service invocation: %s", msg.str().c_str()); - } - return 0; - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - -extern "C" -{ - - /** - * Following block distinguish the exposed part of the dll. - */ - - AXIS2_EXPORT int axis2_get_instance(axis2_svc_skeleton **inst, - axis2_env_t *env) - { - *inst = tuscany::sca::ws::axis2_Axis2Service_create(env); - if(!(*inst)) - { - return AXIS2_FAILURE; - } - - return AXIS2_SUCCESS; - } - - AXIS2_EXPORT int axis2_remove_instance(axis2_svc_skeleton_t *inst, - axis2_env_t *env) - { - axis2_status_t status = AXIS2_FAILURE; - if (inst) - { - status = AXIS2_SVC_SKELETON_FREE(inst, env); - } - return status; - } -} diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Utils.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Utils.cpp deleted file mode 100644 index 09c3862590..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Utils.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#pragma warning(disable: 4091) -#endif - -#include <axis2_svc_ctx.h> -#include <axis2_defines.h> - -#include "tuscany/sca/util/Logging.h" -#include "Axis2Utils.h" - -using namespace tuscany::sca; -using namespace tuscany::sca::ws; - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - char* Axis2Utils::getAxisServiceParameterValue(const axis2_env_t *env, axis2_msg_ctx_t *msg_ctx, char* parameterName) - { - logentry(); - - struct axis2_svc *svc = NULL; - struct axis2_op_ctx *op_ctx = NULL; - struct axis2_svc_ctx *svc_ctx = NULL; - axis2_param_t *param = NULL; - char* paramValue = NULL; - - op_ctx = AXIS2_MSG_CTX_GET_OP_CTX(msg_ctx, env); - svc_ctx = AXIS2_OP_CTX_GET_PARENT(op_ctx, env); - svc = AXIS2_SVC_CTX_GET_SVC(svc_ctx, env); - if(NULL == svc) - { - return NULL; - } - - param = AXIS2_SVC_GET_PARAM(svc, env, parameterName); - if(!param) - { - logwarning("Axis parameter %s cannot be found", parameterName); - } - else - { - paramValue = (char*) AXIS2_PARAM_GET_VALUE(param, env); - } - - return paramValue; - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Utils.h b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Utils.h deleted file mode 100644 index 4e8b069010..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/Axis2Utils.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_ws_axis2utils_h -#define tuscany_sca_extension_ws_axis2utils_h - -#include <axis2_env.h> -#include <axis2_msg_ctx.h> - - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - class Axis2Utils - { - public: - static char* getAxisServiceParameterValue(const axis2_env_t *env, axis2_msg_ctx_t *msg_ctx, char* parameterName); - }; - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_ws_axis2utils_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSReferenceBindingExtension.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSReferenceBindingExtension.cpp deleted file mode 100644 index 24a7552bc4..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSReferenceBindingExtension.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#include "WSReferenceBindingExtension.h" -#include "model/WSReferenceBinding.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/core/SCARuntime.h" - -using namespace std; -using namespace tuscany::sca::model; -using namespace commonj::sdo; - -extern "C" -{ -#if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) -#endif - void tuscany_sca_ws_service_initialize() - { - tuscany::sca::ws::WSReferenceBindingExtension::initialize(); - } -} - -namespace tuscany -{ - namespace sca - { - namespace ws - { - // =================================================================== - // Constructor for the WSReferenceBinding class. - // =================================================================== - WSReferenceBindingExtension::WSReferenceBindingExtension() - { - logentry(); - } - - // =================================================================== - // Destructor for the WSReferenceBindingExtension class. - // =================================================================== - WSReferenceBindingExtension::~WSReferenceBindingExtension() - { - logentry(); - } - - const string WSReferenceBindingExtension::extensionName("ws"); - const string WSReferenceBindingExtension::typeQName("http://www.osoa.org/xmlns/sca/1.0#WebServiceBinding"); - - // =================================================================== - // loadModelElement - load the info from binding.ws - // =================================================================== - ReferenceBinding* WSReferenceBindingExtension::getReferenceBinding(Composite *composite, Reference* reference, DataObjectPtr scdlBinding) - { - logentry(); - - string uri = scdlBinding->getCString("uri"); - - string endpoint; - try - { - endpoint = scdlBinding->getCString("endpoint"); - } - catch (SDORuntimeException&) - { - endpoint = ""; - } - - string version; - try - { - commonj::sdo::DataObjectList& soap = scdlBinding->getList("soapbinding"); - if (soap.size()!=0) - { - version = soap.getCString(0); - } - else - { - version = ""; - } - } - catch (SDORuntimeException&) - { - version = ""; - } - - WSReferenceBinding* serviceBinding = new WSReferenceBinding(reference, uri, endpoint, version); - - return serviceBinding; - } - - void WSReferenceBindingExtension::initialize() - { - logentry(); - SCARuntime::getCurrentRuntime()->registerReferenceBindingExtension(new WSReferenceBindingExtension()); - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSReferenceBindingExtension.h b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSReferenceBindingExtension.h deleted file mode 100644 index 712e7d2646..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSReferenceBindingExtension.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_ws_wsreferencebindingextension_h -#define tuscany_sca_extension_ws_wsreferencebindingextension_h - -#include "tuscany/sca/extension/ReferenceBindingExtension.h" - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - class WSReferenceBindingExtension : public ReferenceBindingExtension - { - public: - /** - * Default constructor - */ - WSReferenceBindingExtension(); - - /** - * Destructor - */ - virtual ~WSReferenceBindingExtension(); - - /** - * return the name of the extension - */ - virtual const std::string& getExtensionName() {return extensionName;} - - /** - * return the QName of schema elemant for this implementation extension - * (e.g. "http://www.osoa.org/xmlns/sca/1.0#binding.ws") - */ - virtual const std::string& getExtensionTypeQName() {return typeQName;} - - virtual tuscany::sca::model::ReferenceBinding* getReferenceBinding( - tuscany::sca::model::Composite* composite, - tuscany::sca::model::Reference *reference, commonj::sdo::DataObjectPtr scdlBinding); - - static void initialize(); - - private: - static const std::string extensionName; - static const std::string typeQName; - - }; - - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_ws_wsreferencebindingextension_h - diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp deleted file mode 100644 index bea4168984..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.cpp +++ /dev/null @@ -1,579 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <sstream> - -#include "commonj/sdo/SDO.h" - -#include "WSServiceProxy.h" -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/core/Exceptions.h" -#include "tuscany/sca/util/Utils.h" -#include "tuscany/sca/util/SDOUtils.h" -#include "tuscany/sca/core/SCARuntime.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/ReferenceType.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/ServiceType.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/ComponentType.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Composite.h" -#include "tuscany/sca/model/ServiceBinding.h" -#include "tuscany/sca/model/WSDLDefinition.h" -#include "tuscany/sca/model/WSDLInterface.h" -#include "tuscany/sca/model/WSDLOperation.h" -#include "model/WSReferenceBinding.h" - -using namespace std; -using namespace commonj::sdo; -using namespace tuscany::sca::model; -using namespace tuscany::sca::util; - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - // ============================ - // Constructor: Create a proxy - // ============================ - WSServiceProxy::WSServiceProxy(Reference* reference) - : ServiceProxy(reference) - { - logentry(); - - // Get the target service wrapper - WSReferenceBinding* referenceBinding = (WSReferenceBinding*)reference->getBinding(); - serviceWrapper = referenceBinding->getTargetServiceBinding()->getServiceWrapper(); - - // Define the SOAP Body type and element to allow a SOAP body to - // be loaded in a DataObject - DataFactoryPtr dataFactory = reference->getComponent()->getComposite()->getDataFactory(); - try { - const Type& bodyType = dataFactory->getType("http://www.w3.org/2003/05/soap-envelope", "Body"); - } catch (SDORuntimeException&) - { - - // Define the SOAP 1.2 Body type - dataFactory->addType("http://www.w3.org/2003/05/soap-envelope", "RootType", false, false, false); - dataFactory->addType("http://www.w3.org/2003/05/soap-envelope", "Body", false, true, false); - dataFactory->addPropertyToType( - "http://www.w3.org/2003/05/soap-envelope", "RootType", - "Body", - "http://www.w3.org/2003/05/soap-envelope", "Body", - false, false, true); - - // Define the SOAP 1.1 Body type - dataFactory->addType("http://schemas.xmlsoap.org/soap/envelope/", "RootType", false, false, false); - dataFactory->addType("http://schemas.xmlsoap.org/soap/envelope/", "Body", false, true, false); - dataFactory->addPropertyToType( - "http://schemas.xmlsoap.org/soap/envelope/", "RootType", - "Body", - "http://schemas.xmlsoap.org/soap/envelope/", "Body", - false, false, true); - } - - try { - const Type& tempType = dataFactory->getType("http://tempuri.org", "RootType"); - } catch (SDORuntimeException&) - { - dataFactory->addType("http://tempuri.org", "RootType", false, false, false); - dataFactory->addType("http://tempuri.org", "Wrapper", false, true, false); - dataFactory->addPropertyToType( - "http://tempuri.org", "RootType", - "Wrapper", - "http://tempuri.org", "Wrapper", - false, false, true); - dataFactory->addType("http://tempuri.org", "Part", false, true, false); - dataFactory->addPropertyToType( - "http://tempuri.org", "RootType", - "Part", - "http://tempuri.org", "Part", - false, false, true); - } - } - - // ========== - // Destructor - // ========== - WSServiceProxy::~WSServiceProxy() - { - logentry(); - } - - /// - /// This method will be called to process an operation invocation. - /// - DataObjectPtr WSServiceProxy::invoke(const WSDLOperation& wsdlOperation, DataObjectPtr inputDataObject) - { - logentry(); - - Reference* reference = getReference(); - Component* component = reference->getComponent(); - Composite* composite = component ->getComposite(); - - WSReferenceBinding* referenceBinding = (WSReferenceBinding*)reference->getBinding(); - DataFactoryPtr dataFactoryPtr = reference->getComponent()->getComposite()->getDataFactory(); - - // Since its Document wrapped, there will only be one message part - std::list<std::string> partList = wsdlOperation.getOutputMessagePartNames(); - const WSDLMessagePart &part = wsdlOperation.getOutputMessagePart(partList.front()); - const char* outputTypeURI = part.getPartUri().c_str(); - const char* outputTypeName = part.getPartName().c_str(); - - loginfo("WSDLOperation input message Type: %s#%s", - wsdlOperation.getInputMessageUri().c_str(), - wsdlOperation.getInputMessageName().c_str()); - loginfo("WSDLOperation outputType: %s#%s", - outputTypeURI, - outputTypeName); - - try - { - - // Create new Operation object and set parameters and return value - Operation operation(wsdlOperation.getOperationName().c_str()); - - // Go through the input data object to set the operation parameters - PropertyList pl = inputDataObject->getInstanceProperties(); - - for(unsigned int i=0; i<pl.size(); i++) - { - const char* name = pl[i].getName(); - - switch (pl[i].getTypeEnum()) - { - case Type::BooleanType: - { - bool* boolData = new bool; - *boolData = inputDataObject->getBoolean(pl[i]); - operation.addParameter(boolData); - } - break; - case Type::ByteType: - { - char* byteData = new char; - *byteData = inputDataObject->getByte(pl[i]); - operation.addParameter(byteData); - } - break; - case Type::BytesType: - { - int len = inputDataObject->getLength(pl[i]); - char** bytesData = new char*; - *bytesData = new char[len+1]; - int bytesWritten = inputDataObject->getBytes(pl[i], *bytesData, len); - // Ensure the bytes end with the null char. Not sure if this is neccessary - if(bytesWritten <= len) - { - (*bytesData)[bytesWritten] = 0; - } - else - { - (*bytesData)[len] = 0; - } - operation.addParameter(bytesData); - } - break; - case Type::CharacterType: - { - // This code should work but won't be used as there is no mapping from an XSD type to the SDO CharacterType - wchar_t* charData = new wchar_t; - *charData = inputDataObject->getCharacter(pl[i]); - operation.addParameter(charData); - } - break; - case Type::DoubleType: - { - long double* doubleData = new long double; - *doubleData = inputDataObject->getDouble(pl[i]); - operation.addParameter(doubleData); - } - break; - case Type::FloatType: - { - float* floatData = new float; - *floatData = inputDataObject->getFloat(pl[i]); - operation.addParameter(floatData); - } - break; - case Type::IntType: - { - long* intData = new long; - *intData = inputDataObject->getInt(pl[i]); - operation.addParameter(intData); - } - break; - case Type::ShortType: - { - short* shortData = new short; - *shortData = inputDataObject->getShort(pl[i]); - operation.addParameter(shortData); - } - break; - case Type::StringType: - { - string* stringData; - if(inputDataObject->isSet(pl[i])) - { - stringData = new string(inputDataObject->getCString(pl[i])); - } - else - { - // The data is not set, so pass an empty string as the parameter - stringData = new string(); - } - operation.addParameter(stringData); - } - break; - case Type::DataObjectType: - { - if (!strcmp(pl[i].getType().getURI(), SDOUtils::sdoURI) && - !strcmp(pl[i].getType().getName(), "OpenDataObject")) { - - /* - * This code deals with xsd:any element parameters - * Get each element as a DataObject and add in to the parameter list - */ - - DataObjectList& dataObjectList = inputDataObject->getList(pl[i]); - - for(unsigned int j=0; j<dataObjectList.size(); j++) - { - DataObjectPtr dob = dataObjectList[j]; - if(!dob) - { - - // Add a null DataObject ptr - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = NULL; - loginfo("Null OpenDataObject parameter named %s[%d]", name, j); - operation.addParameter(dataObjectData); - } - else - { - - SequencePtr sequence = dob->getSequence(); - if (sequence->size()!=0) - { - // Add a text element - if (sequence->isText(0)) - { - string* stringData = new string(sequence->getCStringValue(0)); - operation.addParameter(stringData); - } - else - { - // Add a complex element DataObject - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = sequence->getDataObjectValue(0); - if(!*dataObjectData) - { - loginfo("Null DataObject parameter named %s", name); - } - else - { - (*dataObjectData)->detach(); - } - operation.addParameter(dataObjectData); - } - } - else - { - // Empty content, add an empty string - loginfo("Empty OpenDataObject parameter named %s[%d]", name, j); - string* stringData = new string(""); - operation.addParameter(stringData); - } - } - } - } - else { - DataObjectPtr* dataObjectData = new DataObjectPtr; - *dataObjectData = inputDataObject->getDataObject(pl[i]); - if(!*dataObjectData) - { - loginfo("Null DataObject parameter named %s", name); - } - else - { - (*dataObjectData)->detach(); - } - operation.addParameter(dataObjectData); - } - } - break; - default: - { - ostringstream msg; - msg << "Unsupported param type: " << pl[i].getTypeEnum(); - throwException(SystemConfigurationException, msg.str().c_str()); - } - } - } - - // Call into the target service wrapper - serviceWrapper->invoke(operation); - - // Set the data in the outputDataObject to be returned - DataObjectPtr outputDataObject; - try - { - // Create the output wrapper - const Type& rootType = dataFactoryPtr->getType(outputTypeURI, "RootType"); - const Property& prop = rootType.getProperty(outputTypeName); - const Type& outputType = prop.getType(); - outputDataObject = dataFactoryPtr->create(outputType); - } - catch (SDORuntimeException&) - { - try - { - // Create the output wrapper - const Type& outputType = dataFactoryPtr->getType(outputTypeURI, outputTypeName); - outputDataObject = dataFactoryPtr->create(outputType); - } - catch (SDORuntimeException&) - { - // The output wrapper type is not known, create an open DataObject - //outputDataObject = dataFactoryPtr->create("http://tempuri.org", "Wrapper"); - outputDataObject = dataFactoryPtr->create(SDOUtils::sdoURI, "OpenDataObject"); - } - } - - setOutputData(operation, outputDataObject, dataFactoryPtr); - - return outputDataObject; - - } - catch(SDORuntimeException& ex) - { - throwException(ServiceInvocationException, ex); - } - catch(TuscanyRuntimeException&) - { - throw; - } - } - - - void WSServiceProxy::setOutputData(Operation& operation, DataObjectPtr outputDataObject, DataFactoryPtr dataFactoryPtr) - { - logentry(); - - // Go through data object to set the return value - PropertyList pl = outputDataObject->getType().getProperties(); - - if(pl.size() == 0) - { - if(outputDataObject->getType().isOpenType() && outputDataObject->getType().isDataObjectType()) - { - /* - * This code deals with returning xsd:any elements - */ - DataObjectList& l = outputDataObject->getList("return"); - Operation::ParameterType resultType = operation.getReturnType(); - switch(resultType) - { - case Operation::BOOL: - { - l.append(*(bool*)operation.getReturnValue()); - break; - } - case Operation::SHORT: - { - l.append(*(short*)operation.getReturnValue()); - break; - } - case Operation::INT: - { - l.append(*(long*)operation.getReturnValue()); - break; - } - case Operation::LONG: - { - l.append(*(long*)operation.getReturnValue()); - break; - } - case Operation::USHORT: - { - l.append(*(short*)operation.getReturnValue()); - break; - } - case Operation::UINT: - { - l.append(*(long*)operation.getReturnValue()); - break; - } - case Operation::ULONG: - { - l.append(*(long*)operation.getReturnValue()); - break; - } - case Operation::FLOAT: - { - l.append(*(float*)operation.getReturnValue()); - break; - } - case Operation::DOUBLE: - { - l.append(*(long double*)operation.getReturnValue()); - break; - } - case Operation::LONGDOUBLE: - { - l.append(*(long double*)operation.getReturnValue()); - break; - } - case Operation::CHARS: - { - l.append(*(char**)operation.getReturnValue()); - break; - } - case Operation::STRING: - { - l.append((*(string*)operation.getReturnValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - l.append(*(DataObjectPtr*)operation.getReturnValue()); - break; - } - default: - { - // One way operation, no return value - break; - } - } - } - else - { - loginfo("No return values defined"); - } - } - else { - - // Should only be one return value.. This goes through all return values - for(unsigned int i=0; i<pl.size(); i++) - { - const char* name = pl[i].getName(); - - Operation::ParameterType resultType = operation.getReturnType(); - switch(resultType) - { - case Operation::BOOL: - { - outputDataObject->setBoolean(pl[i], *(bool*)operation.getReturnValue()); - break; - } - case Operation::SHORT: - { - outputDataObject->setShort(pl[i], *(short*)operation.getReturnValue()); - break; - } - case Operation::INT: - { - outputDataObject->setInt(pl[i], *(int*)operation.getReturnValue()); - break; - } - case Operation::LONG: - { - outputDataObject->setInt(pl[i], *(long*)operation.getReturnValue()); - break; - } - case Operation::USHORT: - { - outputDataObject->setInt(pl[i], *(unsigned short*)operation.getReturnValue()); - break; - } - case Operation::UINT: - { - outputDataObject->setInt(pl[i], *(unsigned int*)operation.getReturnValue()); - break; - } - case Operation::ULONG: - { - outputDataObject->setInt(pl[i], *(unsigned long*)operation.getReturnValue()); - break; - } - case Operation::FLOAT: - { - outputDataObject->setFloat(pl[i], *(float*)operation.getReturnValue()); - break; - } - case Operation::DOUBLE: - { - outputDataObject->setDouble(pl[i], *(double*)operation.getReturnValue()); - break; - } - case Operation::LONGDOUBLE: - { - outputDataObject->setDouble(pl[i], *(long double*)operation.getReturnValue()); - break; - } - case Operation::CHARS: - { - if(*(char**)operation.getReturnValue() != NULL) - { - outputDataObject->setCString(pl[i], *(char**)operation.getReturnValue()); - } - else - { - loginfo("Null return value, leaving property %s unset", pl[i].getName()); - } - break; - } - case Operation::STRING: - { - outputDataObject->setCString(pl[i], (*(string*)operation.getReturnValue()).c_str()); - break; - } - case Operation::DATAOBJECT: - { - - if(*(DataObjectPtr*)operation.getReturnValue() != NULL) - { - outputDataObject->setDataObject(pl[i], *(DataObjectPtr*)operation.getReturnValue()); - } - else - { - loginfo("Null return value, leaving property %s unset", pl[i].getName()); - } - - break; - } - default: - { - // One way operation, no return value - break; - } - } - } - } - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.h b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.h deleted file mode 100644 index 4d57514688..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/WSServiceProxy.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_ws_wsserviceproxy_h -#define tuscany_sca_extension_ws_wsserviceproxy_h - -#include "commonj/sdo/SDO.h" - -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/core/ServiceWrapper.h" -#include "tuscany/sca/model/Component.h" -#include "tuscany/sca/model/Reference.h" -#include "tuscany/sca/model/Service.h" -#include "tuscany/sca/model/WSDLOperation.h" -#include "model/WSReferenceBinding.h" - - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - /** - * Holds a proxy for a given component and reference. - * The proxy which is held inside a ServiceProxy will be specific to the programming - * interface expected by the client. In this particular case the client is an Axis2 - * Web service skeleton. - */ - class WSServiceProxy : public ServiceProxy - { - public: - /** - * Create a new service proxy for a reference. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The reference on the source component. - * @param target The wrapper of the service which is wired to this reference. - */ - WSServiceProxy(tuscany::sca::model::Reference* reference); - - /** - * Create a new service proxy for a service. The proxy will contain a pointer to - * the target ServiceWrapper. - * @param reference The service on the target component. - * @param target The wrapper of the target service. - */ - WSServiceProxy(tuscany::sca::model::Service* service); - - /** - * Destructor. - */ - virtual ~WSServiceProxy(); - - /** - * Invoke the specified operation - */ - commonj::sdo::DataObjectPtr invoke(const tuscany::sca::model::WSDLOperation& wsdlOperation, - commonj::sdo::DataObjectPtr inputDataObject); - - private: - - void setOutputData(Operation& operation, - commonj::sdo::DataObjectPtr outputDataObject, commonj::sdo::DataFactoryPtr dataFactoryPtr); - - /** - * The target service wrapper - */ - ServiceWrapper* serviceWrapper; - - }; - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_ws_wsserviceproxy_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/export.h b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/export.h deleted file mode 100644 index e52adf4db0..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/export.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_ws_service_export_h -#define tuscany_sca_ws_service_export_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) - -#ifdef TUSCANY_SCA_WS_SERVICE_EXPORTS -#define SCA_WS_SERVICE_API __declspec(dllexport) -#else -#define SCA_WS_SERVICE_API __declspec(dllimport) -#endif - -#else -#define SCA_WS_SERVICE_API -#endif - -#endif // tuscany_sca_ws_service_export_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/model/WSReferenceBinding.cpp b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/model/WSReferenceBinding.cpp deleted file mode 100644 index 4f170ebf52..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/model/WSReferenceBinding.cpp +++ /dev/null @@ -1,151 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "tuscany/sca/util/Logging.h" -#include "tuscany/sca/ws/model/WSReferenceBinding.h" -#include "tuscany/sca/core/ServiceProxy.h" -#include "tuscany/sca/ws/WSServiceProxy.h" - -using namespace std; -using namespace tuscany::sca::model; - -namespace tuscany -{ - namespace sca - { - namespace ws - { - - // Constructor - WSReferenceBinding::WSReferenceBinding(Reference* reference, const string& uri, const string& endpoint, const string&version) - : ReferenceBinding(reference, uri), endpoint(endpoint), soapVersion(version) - { - logentry(); - - parseEndpoint(); - } - - void WSReferenceBinding::parseEndpoint() - { - logentry(); - - // Endpoint is of the form: <wsdl-namepace-uri>#wsdl.endpoint(<service-name>/<endpoint-name>) - string::size_type hash = endpoint.find("#"); - if (hash != string::npos) - { - // Found a hash - - // Namepace is the part before the # - wsdlNamespaceURL = endpoint.substr(0, hash); - - - if ( (hash+1) < endpoint.length()) - { - // Check the next part is wsdl.endpoint( - int ending = hash+15; - string check = endpoint.substr(hash+1, 14); - if (check.compare("wsdl.endpoint(") == 0) - { - // Find the matching ) - int endBracket = endpoint.find(")",ending); - if (endBracket-1 > ending+1) - { - string serviceAndEndpoint = endpoint.substr(ending, endBracket-ending); - // Look for a '/' - string::size_type slash = serviceAndEndpoint.find("/"); - if (slash != string::npos) - { - serviceName = serviceAndEndpoint.substr(0, slash); - - if ( (slash+1) < serviceAndEndpoint.length()) - { - endpointName = serviceAndEndpoint.substr(slash+1); - } - else - { - endpointName = ""; - } - - } - else - { - // No '/' so all of it is the service name - serviceName = serviceAndEndpoint; - endpointName = ""; - - } - } - else - { - // Nothing between the () - serviceName = ""; - endpointName = ""; - } - } - else - { - // not the correct characters after the #, ignore the rest - serviceName = ""; - endpointName = ""; - } - - } - else - { - // Nothing after the hash - serviceName = ""; - endpointName = ""; - } - } - else - { - // No hash at all - wsdlNamespaceURL = endpoint; - serviceName = ""; - endpointName = ""; - } - } - - // Destructor - WSReferenceBinding::~WSReferenceBinding() - { - logentry(); - } - - void WSReferenceBinding::configure(ServiceBinding *binding) - { - logentry(); - - setTargetServiceBinding(binding); - - serviceProxy = new WSServiceProxy(getReference()); - } - - ServiceProxy* WSReferenceBinding::getServiceProxy() - { - logentry(); - - return serviceProxy; - } - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/model/WSReferenceBinding.h b/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/model/WSReferenceBinding.h deleted file mode 100644 index 14f17dbc3c..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/service/axis2c/src/tuscany/sca/ws/model/WSReferenceBinding.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_extension_ws_model_wsreferencebinding_h -#define tuscany_sca_extension_ws_model_wsreferencebinding_h - -#include <string> - -#include "tuscany/sca/ws/export.h" -#include "tuscany/sca/model/ReferenceBinding.h" - - -namespace tuscany -{ - namespace sca - { - namespace ws - { - /** - * Information about a web service binding for service or a reference. - */ - class WSReferenceBinding : public tuscany::sca::model::ReferenceBinding - { - public: - - /** - * Constructor. - * @param uri The uri of the binding. - * @param endpoint The definition of the endpoint to which the entrypoint - * or external service is to be bound. This is of the form - * "namespace"#endpoint("service"/"endpoint") - */ - SCA_WS_SERVICE_API WSReferenceBinding(tuscany::sca::model::Reference* reference, - const std::string&uri, const std::string& endpoint, const std::string& version); - - /** - * Destructor. - */ - SCA_WS_SERVICE_API virtual ~WSReferenceBinding(); - - /** - * Returns the type of binding. - */ - virtual std::string getType() { return "http://www.osoa.org/xmlns/sca/1.0#WebServiceBinding"; }; - - /** - * Configure this binding from a service binding. - */ - SCA_WS_SERVICE_API virtual void configure(tuscany::sca::model::ServiceBinding* serviceBinding); - - /** - * Create a proxy representing the reference to the - * client component. - */ - SCA_WS_SERVICE_API virtual ServiceProxy* getServiceProxy(); - - /** - * Return the part of the endpoint definition describing the wsdl - * namespace. - * @return The wsdl namespace. - */ - std::string getWSDLNamespaceURL() const { return wsdlNamespaceURL; }; - - /** - * Return the service part of the endpoint definition. - * @return The service to use. - */ - std::string getServiceName() const { return serviceName; }; - - /** - * Return the endpoint name part of the endpoint definition. - * @return The endpoint name to use. - */ - std::string getEndpointName() const { return endpointName; }; - - /** - * Return the SOAP version. - * @return The SOAP version to use. - */ - std::string getSOAPVersion() const { return soapVersion; }; - - private: - - /** - * Parse the endpoint specification. - */ - void parseEndpoint(); - - /** - * The full endpoint string. - */ - std::string endpoint; - - /** - * Namespace from the endpoint. - */ - std::string wsdlNamespaceURL; - - /** - * Service name from the endpoint. - */ - std::string serviceName; - - /** - * Endpoint name from the endpoint. - */ - std::string endpointName; - - /** - * SOAP version. - */ - std::string soapVersion; - - /** - * The proxy representing the reference to the client - * component. - */ - ServiceProxy* serviceProxy; - }; - - } // End namespace ws - } // End namespace sca -} // End namespace tuscany - -#endif // tuscany_sca_extension_ws_model_wsreferencebinding_h diff --git a/sca-cpp/trunk/contrib/runtime/extensions/ws/xsd/sca-binding-webservice.xsd b/sca-cpp/trunk/contrib/runtime/extensions/ws/xsd/sca-binding-webservice.xsd deleted file mode 100644 index 680dd809a8..0000000000 --- a/sca-cpp/trunk/contrib/runtime/extensions/ws/xsd/sca-binding-webservice.xsd +++ /dev/null @@ -1,57 +0,0 @@ -<?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. ---> - -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.osoa.org/xmlns/sca/1.0" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - elementFormDefault="qualified"> - - <include schemaLocation="../../../xsd/sca-core.xsd"/> - - <element name="binding.ws" type="sca:WebServiceBinding" substitutionGroup="sca:binding"/> - <complexType name="WebServiceBinding"> - <complexContent> - <extension base="sca:Binding"> - <sequence> - <element name="soapbinding" type="sca:SOAPBinding" minOccurs="0" maxOccurs="unbounded"/> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="endpoint" type="anyURI" use="optional" /> - <attribute name="location" type="anyURI" use="optional" /> - <attribute name="conformanceURIs" type="sca:ConformanceURIList" use="optional" /> - <attribute name="interfaceMapping" type="string" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </extension> - </complexContent> - </complexType> - - <complexType name="SOAPBinding"> - <sequence> - <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> - </sequence> - <attribute name="name" type="NCName" use="optional" /> - <attribute name="version" type="string" use="optional" /> - <anyAttribute namespace="##any" processContents="lax" /> - </complexType> - - <simpleType name="ConformanceURIList"> - <list itemType="anyURI"/> - </simpleType> -</schema> diff --git a/sca-cpp/trunk/contrib/samples/AUTHORS b/sca-cpp/trunk/contrib/samples/AUTHORS deleted file mode 100644 index e69de29bb2..0000000000 --- a/sca-cpp/trunk/contrib/samples/AUTHORS +++ /dev/null diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/AlertAggregatorSCADiagram.png b/sca-cpp/trunk/contrib/samples/AlertAggregator/AlertAggregatorSCADiagram.png Binary files differdeleted file mode 100644 index 4672a5e22e..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/AlertAggregatorSCADiagram.png +++ /dev/null diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/Makefile.am b/sca-cpp/trunk/contrib/samples/AlertAggregator/Makefile.am deleted file mode 100644 index 0b39db277d..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# 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)/AlertAggregator/deploy -SUBDIRS = sample.alerter sample.display httpserver -EXTRA_DIST = *.composite *.xml README.html -deploy_DATA = *.composite *.xml diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/README b/sca-cpp/trunk/contrib/samples/AlertAggregator/README deleted file mode 100644 index e605168052..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/README +++ /dev/null @@ -1,38 +0,0 @@ -Tuscany SCA for C++ Samples - Alert Aggregator Sample -===================================================== - -This is a sample that shows how a Web 2.0-style application can be built using -SCA. The Alert Aggregator Sample aggregates various data sources and presents -a unified view of data from these sources, served as XML and displayed via a -web page - -There are three sub-directories in this workspace: - - sample.alerter - This contains the source code and SCDL artifacts for the Alert - Aggregator. Includes components to retrieve emails from POP servers and - to retrieve items from RSS/Atom feeds, a component that aggregates these - alerts and a component that manages the configuration of which POP accounts - and which RSS feeds to read. - - - sample.display - Contains a single SCA component that provides a HTML display of the - Alert Aggregator data - - - httpserver - Configuration files and scripts to run the sample under Apache HTTPD. Also - includes the HTML file that calls the HTMLDisplay component - - -Additionally, there is the sample.alerter.app.composite file. This -describes the configuration of the Alerter and Display composites deployed to the -SCA runtime. - -This sample requires the following Tuscany extensions: -Python -REST service -REST reference - -It also requires the Python FeedParser library, available from http://feedparser.org/ - - - diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/README.html b/sca-cpp/trunk/contrib/samples/AlertAggregator/README.html deleted file mode 100644 index 69d5434527..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/README.html +++ /dev/null @@ -1,263 +0,0 @@ - -<!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 - Alert Aggregator Sample</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native Samples - Alert Aggregator Sample</H1> - - <P>This is a more complex sample that shows how Tuscany and SCA can be used to - develop and run mash-up style web applications.</P> - <P>The Alert Aggregator sample aggregates items of information from various data - sources into a series of "alerts" that are displayed in an - automatically updating web page. Alert sources can currently include RSS/Atom - news feeds and POP3/IMAP email</P> - <P>The Alert Aggregator sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RESTExtension.html">REST Service and Reference Extensions</A></LI> - <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </P> - <P>Additionally, the Alert Aggregator sample requires the Python FeedParser library, available from - <A HREF="http://feedparser.org" TARGET="_blank">http://feedparser.org</A>. Please download and - install the library by following the documentation.</P> - <P>There are three sub-projects in this workspace: - <UL> - <LI>sample.alerter<BR/> - This contains the source code and SCDL artifacts for the SCA components - implementing the Alert Aggregator configuration and alert retrieval. - </LI> - <LI>sample.display<BR/> - This contains the source code and SCDL artifacts for the SCA components - implementing the display and storage of the retrieved alerts. - </LI> - <LI>httpserver<BR/> - This contains a minimal configuration for the Apache HTTP server used - to host the services as well as scripts to start and stop the server. - </LI> - </UL> - Additionally, there is the sample.alerter.app.composite file. This - describes the configuration of the SCA composites deployed to the SCA - runtime.</P> - <P>The following SCA diagram shows the different components and composites and how the - wiring between them is specified. Not all of these components are currently - implemented in this sample.</P> - <IMG SRC="AlertAggregatorSCADiagram.png" ALT="Alert Aggregator SCA Diagram"/> - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#linuxbld">Building the Alert Aggregator sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxrun">Running the Alert Aggregator sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbld">Building the Alert Aggregator sample on Windows</A></LI> - <LI><A HREF="#winrun">Running the Alert Aggregator sample on Windows</A></LI> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="linuxbld"><H2>Building the Alert Aggregator sample on Linux and Mac OS X</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>/samples - go directly to <A HREF="#linuxrun">Running the sample on Linux and Mac OS X</A>.</P> - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>As the Alert Aggregator sample is based on Python scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the Python samples only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples</LI> - <LI>./configure --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/AlertAggregator</LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="linuxrun"><H2>Running the Alert Aggregator sample on Linux and Mac OS X</H2></A> - <OL> - <LI>The Alert Aggregator sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RESTExtension.html">REST Service and Reference Extensions</A></LI> - <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </LI> - <LI>The Alert Aggregator sample requires the Python FeedParser library, available from - <A HREF="http://feedparser.org" TARGET="_blank">http://feedparser.org</A>. Please download and - install the library by following the documentation.</LI> - <LI>Start the Apache HTTPD server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>PYTHON_LIB=<path to the Python library><BR/> - Note: If you are using a default installation of Python 2.5 this is usually /usr/lib</LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>/samples/AlertAggregator/deploy/httpserver</LI> - <LI>./startserver.sh<BR/> - NOTE: Depending on your installation of Apache HTTPD you may need to log in as root before following - these steps. If so, you may also need to uncomment the User and Group directives in the - <tuscany_sca_install_dir>/samples/AlertAggregator/deploy/httpserver/conf/httpd.conf file - and set these to the appropriate username and group that the server should run as</LI> - </OL> - </LI> - <LI>Run the client from your web browser: - <OL> - <LI>Point your browser at <A HREF="http://localhost:9090/index.html" TARGET="_blank">http://localhost:9090/index.html</A><BR/> - NOTE: If plain text is diplayed by your browser, rather than a rendered web page, you may need - to uncomment the LoadModule mime_module directive in the - <tuscany_sca_install_dir>/samples/AlertAggregator/deploy/httpserver/conf/httpd.conf file. Set the correct path to - the mod_mime.so library and restart the server</LI> - <LI>You should see the Alert Aggregator web interface that allows you to: - <UL> - <LI>Read new alerts</LI> - <LI>Update alerts from all sources</LI> - <LI>Update alerts from a specific source</LI> - <LI>Edit the configuration of a data source</LI> - <LI>Add a new RSS/Atom or POP email data source</LI> - <LI>Remove a specific data source and all associated alerts</LI> - </UL> - </LI> - </OL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winbld"><H2>Building the Alert Aggregator sample on Windows</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>As this sample is based on Ruby scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\AlertAggregator</LI> - <LI>deploy.bat</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winrun"><H2>Running the Alert Aggregator sample on Windows</H2></A> - <OL> - - <LI>The Alert Aggregator sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RESTExtension.html">REST Service and Reference Extensions</A></LI> - <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </LI> - <LI>The Alert Aggregator sample requires the Python FeedParser library, available from - <A HREF="http://feedparser.org" TARGET="_blank">http://feedparser.org</A>. Please download and - install the library by following the documentation.</LI> - <LI>Start the Apache HTTPD server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>HTTPD_HOME=<path to installed Apache HTTPD server></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>\samples\AlertAggregator\deploy\httpserver</LI> - <LI>startserver.bat</LI> - </OL> - </LI> - <LI>Run the client from your web browser: - <OL> - <LI>Point your browser at <A HREF="http://localhost:9090/index.html" TARGET="_blank">http://localhost:9090/index.html</A><BR/> - NOTE: If plain text is diplayed by your browser, rather than a rendered web page, you may need - to uncomment the LoadModule mime_module directive in the - <tuscany_sca_install_dir>\samples\AlertAggregator\deploy\httpserver\conf\httpd.conf file. Set the correct path to - the mod_mime.so library (e.g. C:\Apache2.2\modules\mod_mime.so) and restart the server</LI> - <LI>You should see the Alert Aggregator web interface that allows you to: - <UL> - <LI>Read new alerts</LI> - <LI>Update alerts from all sources</LI> - <LI>Update alerts from a specific source</LI> - <LI>Edit the configuration of a data source</LI> - <LI>Add a new RSS/Atom or POP email data source</LI> - <LI>Remove a specific data source and all associated alerts</LI> - </UL> - </LI> - </OL> - </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 <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/AlertAggregator/config.xml b/sca-cpp/trunk/contrib/samples/AlertAggregator/config.xml deleted file mode 100644 index 0b33cb7911..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/config.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?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. ---> -<ns0:config xmlns:ns0="http://tuscany.apache.org/samples/alerter"> -<ns0:source id="0" type="rss"> - <ns0:name>BBC News</ns0:name> - <ns0:address>http://news.bbc.co.uk/</ns0:address> - <ns0:lastChecked>2007-02-07T17:11:16</ns0:lastChecked> - <ns0:feedAddress>http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/world/rss.xml</ns0:feedAddress> -</ns0:source> -<ns0:source id="1" type="rss"> - <ns0:name>Engadget</ns0:name> - <ns0:address>http://www.engadget.com</ns0:address> - <ns0:lastChecked>2007-02-07T17:11:14</ns0:lastChecked> - <ns0:feedAddress>http://www.engadget.com/rss.xml</ns0:feedAddress> -</ns0:source> -</ns0:config>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/README b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/README deleted file mode 100644 index 207e6394e1..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/README +++ /dev/null @@ -1,33 +0,0 @@ -Alert Aggregator - PHP Display Component
-========================================
-
-This httpserver configuration includes a PHP implementation of the display
-component that replaces the python component in sample.display.
-
-The HTTPD configuration created by the startserver scrips relies on the
-PHP_HOME environment variable in order to install PHP in Apache as follows:
-
-LoadModule php5_module %PHP_HOME%\php5apache2.dll
-AddType application/x-httpd-php .php
-PHPIniDir %PHP_HOME%
-
-PHP must be configured to include the PHP SCA_SDO extension from PECL.
-This provides the SCA and SDO support that the display component relies on.
-Currently you must have the version from the AVOCET branch as changes have
-been made here that this application requires.
-
-To run the AlertAggregator sample with the PHP component you must start the
-original HTTP server, e.g., on windows
-
-> cd AlertAggregator\httpserver
-> startserver.bat
-
-and then start the HTTPD server that servers the PHP part of the application, e.g.,
-
-> cd AlertAggregator\httpserver.php
-> startserver.bat
-
-then point your browser at
-
-http://localhost:9091/index.html
-
diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/conf/httpd.conf b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/conf/httpd.conf deleted file mode 100644 index 92026c9717..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/conf/httpd.conf +++ /dev/null @@ -1,28 +0,0 @@ -# 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.
-
-# This is the main Apache HTTP server configuration file. It contains the
-# configuration directives that give the server its instructions.
-# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
-
-Listen 9091
-
-# Generated by the startserver script
-Include conf/base.conf
-
-# SCA rest module not required for the PHP part
-# Include conf/tuscany_sca_mod_rest.conf
diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/conf/mime.types b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/conf/mime.types deleted file mode 100644 index 4279f51bca..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/conf/mime.types +++ /dev/null @@ -1,607 +0,0 @@ -# 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. - -# This file controls what Internet media types are sent to the client for -# given file extension(s). Sending the correct media type to the client -# is important so they know how to handle the content of the file. -# Extra types can either be added here or by using an AddType directive -# in your config files. For more information about Internet media types, -# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type -# registry is at <http://www.iana.org/assignments/media-types/>. - -# MIME type Extensions -application/activemessage -application/andrew-inset ez -application/applefile -application/atom+xml atom -application/atomicmail -application/batch-smtp -application/beep+xml -application/cals-1840 -application/cnrp+xml -application/commonground -application/cpl+xml -application/cybercash -application/dca-rft -application/dec-dx -application/dvcs -application/edi-consent -application/edifact -application/edi-x12 -application/eshop -application/font-tdpfr -application/http -application/hyperstudio -application/iges -application/index -application/index.cmd -application/index.obj -application/index.response -application/index.vnd -application/iotp -application/ipp -application/isup -application/mac-binhex40 hqx -application/mac-compactpro cpt -application/macwriteii -application/marc -application/mathematica -application/mathml+xml mathml -application/msword doc -application/news-message-id -application/news-transmission -application/ocsp-request -application/ocsp-response -application/octet-stream bin dms lha lzh exe class so dll dmg -application/oda oda -application/ogg ogg -application/parityfec -application/pdf pdf -application/pgp-encrypted -application/pgp-keys -application/pgp-signature -application/pkcs10 -application/pkcs7-mime -application/pkcs7-signature -application/pkix-cert -application/pkix-crl -application/pkixcmp -application/postscript ai eps ps -application/prs.alvestrand.titrax-sheet -application/prs.cww -application/prs.nprend -application/prs.plucker -application/qsig -application/rdf+xml rdf -application/reginfo+xml -application/remote-printing -application/riscos -application/rtf -application/sdp -application/set-payment -application/set-payment-initiation -application/set-registration -application/set-registration-initiation -application/sgml -application/sgml-open-catalog -application/sieve -application/slate -application/smil smi smil -application/srgs gram -application/srgs+xml grxml -application/timestamp-query -application/timestamp-reply -application/tve-trigger -application/vemmi -application/vnd.3gpp.pic-bw-large -application/vnd.3gpp.pic-bw-small -application/vnd.3gpp.pic-bw-var -application/vnd.3gpp.sms -application/vnd.3m.post-it-notes -application/vnd.accpac.simply.aso -application/vnd.accpac.simply.imp -application/vnd.acucobol -application/vnd.acucorp -application/vnd.adobe.xfdf -application/vnd.aether.imp -application/vnd.amiga.ami -application/vnd.anser-web-certificate-issue-initiation -application/vnd.anser-web-funds-transfer-initiation -application/vnd.audiograph -application/vnd.blueice.multipass -application/vnd.bmi -application/vnd.businessobjects -application/vnd.canon-cpdl -application/vnd.canon-lips -application/vnd.cinderella -application/vnd.claymore -application/vnd.commerce-battelle -application/vnd.commonspace -application/vnd.contact.cmsg -application/vnd.cosmocaller -application/vnd.criticaltools.wbs+xml -application/vnd.ctc-posml -application/vnd.cups-postscript -application/vnd.cups-raster -application/vnd.cups-raw -application/vnd.curl -application/vnd.cybank -application/vnd.data-vision.rdz -application/vnd.dna -application/vnd.dpgraph -application/vnd.dreamfactory -application/vnd.dxr -application/vnd.ecdis-update -application/vnd.ecowin.chart -application/vnd.ecowin.filerequest -application/vnd.ecowin.fileupdate -application/vnd.ecowin.series -application/vnd.ecowin.seriesrequest -application/vnd.ecowin.seriesupdate -application/vnd.enliven -application/vnd.epson.esf -application/vnd.epson.msf -application/vnd.epson.quickanime -application/vnd.epson.salt -application/vnd.epson.ssf -application/vnd.ericsson.quickcall -application/vnd.eudora.data -application/vnd.fdf -application/vnd.ffsns -application/vnd.fints -application/vnd.flographit -application/vnd.framemaker -application/vnd.fsc.weblaunch -application/vnd.fujitsu.oasys -application/vnd.fujitsu.oasys2 -application/vnd.fujitsu.oasys3 -application/vnd.fujitsu.oasysgp -application/vnd.fujitsu.oasysprs -application/vnd.fujixerox.ddd -application/vnd.fujixerox.docuworks -application/vnd.fujixerox.docuworks.binder -application/vnd.fut-misnet -application/vnd.grafeq -application/vnd.groove-account -application/vnd.groove-help -application/vnd.groove-identity-message -application/vnd.groove-injector -application/vnd.groove-tool-message -application/vnd.groove-tool-template -application/vnd.groove-vcard -application/vnd.hbci -application/vnd.hhe.lesson-player -application/vnd.hp-hpgl -application/vnd.hp-hpid -application/vnd.hp-hps -application/vnd.hp-pcl -application/vnd.hp-pclxl -application/vnd.httphone -application/vnd.hzn-3d-crossword -application/vnd.ibm.afplinedata -application/vnd.ibm.electronic-media -application/vnd.ibm.minipay -application/vnd.ibm.modcap -application/vnd.ibm.rights-management -application/vnd.ibm.secure-container -application/vnd.informix-visionary -application/vnd.intercon.formnet -application/vnd.intertrust.digibox -application/vnd.intertrust.nncp -application/vnd.intu.qbo -application/vnd.intu.qfx -application/vnd.irepository.package+xml -application/vnd.is-xpr -application/vnd.japannet-directory-service -application/vnd.japannet-jpnstore-wakeup -application/vnd.japannet-payment-wakeup -application/vnd.japannet-registration -application/vnd.japannet-registration-wakeup -application/vnd.japannet-setstore-wakeup -application/vnd.japannet-verification -application/vnd.japannet-verification-wakeup -application/vnd.jisp -application/vnd.kde.karbon -application/vnd.kde.kchart -application/vnd.kde.kformula -application/vnd.kde.kivio -application/vnd.kde.kontour -application/vnd.kde.kpresenter -application/vnd.kde.kspread -application/vnd.kde.kword -application/vnd.kenameaapp -application/vnd.koan -application/vnd.liberty-request+xml -application/vnd.llamagraphics.life-balance.desktop -application/vnd.llamagraphics.life-balance.exchange+xml -application/vnd.lotus-1-2-3 -application/vnd.lotus-approach -application/vnd.lotus-freelance -application/vnd.lotus-notes -application/vnd.lotus-organizer -application/vnd.lotus-screencam -application/vnd.lotus-wordpro -application/vnd.mcd -application/vnd.mediastation.cdkey -application/vnd.meridian-slingshot -application/vnd.micrografx.flo -application/vnd.micrografx.igx -application/vnd.mif mif -application/vnd.minisoft-hp3000-save -application/vnd.mitsubishi.misty-guard.trustweb -application/vnd.mobius.daf -application/vnd.mobius.dis -application/vnd.mobius.mbk -application/vnd.mobius.mqy -application/vnd.mobius.msl -application/vnd.mobius.plc -application/vnd.mobius.txf -application/vnd.mophun.application -application/vnd.mophun.certificate -application/vnd.motorola.flexsuite -application/vnd.motorola.flexsuite.adsi -application/vnd.motorola.flexsuite.fis -application/vnd.motorola.flexsuite.gotap -application/vnd.motorola.flexsuite.kmr -application/vnd.motorola.flexsuite.ttc -application/vnd.motorola.flexsuite.wem -application/vnd.mozilla.xul+xml xul -application/vnd.ms-artgalry -application/vnd.ms-asf -application/vnd.ms-excel xls -application/vnd.ms-lrm -application/vnd.ms-powerpoint ppt -application/vnd.ms-project -application/vnd.ms-tnef -application/vnd.ms-works -application/vnd.ms-wpl -application/vnd.mseq -application/vnd.msign -application/vnd.music-niff -application/vnd.musician -application/vnd.netfpx -application/vnd.noblenet-directory -application/vnd.noblenet-sealer -application/vnd.noblenet-web -application/vnd.novadigm.edm -application/vnd.novadigm.edx -application/vnd.novadigm.ext -application/vnd.obn -application/vnd.osa.netdeploy -application/vnd.palm -application/vnd.pg.format -application/vnd.pg.osasli -application/vnd.powerbuilder6 -application/vnd.powerbuilder6-s -application/vnd.powerbuilder7 -application/vnd.powerbuilder7-s -application/vnd.powerbuilder75 -application/vnd.powerbuilder75-s -application/vnd.previewsystems.box -application/vnd.publishare-delta-tree -application/vnd.pvi.ptid1 -application/vnd.pwg-multiplexed -application/vnd.pwg-xhtml-print+xml -application/vnd.quark.quarkxpress -application/vnd.rapid -application/vnd.s3sms -application/vnd.sealed.net -application/vnd.seemail -application/vnd.shana.informed.formdata -application/vnd.shana.informed.formtemplate -application/vnd.shana.informed.interchange -application/vnd.shana.informed.package -application/vnd.smaf -application/vnd.sss-cod -application/vnd.sss-dtf -application/vnd.sss-ntf -application/vnd.street-stream -application/vnd.svd -application/vnd.swiftview-ics -application/vnd.triscape.mxs -application/vnd.trueapp -application/vnd.truedoc -application/vnd.ufdl -application/vnd.uplanet.alert -application/vnd.uplanet.alert-wbxml -application/vnd.uplanet.bearer-choice -application/vnd.uplanet.bearer-choice-wbxml -application/vnd.uplanet.cacheop -application/vnd.uplanet.cacheop-wbxml -application/vnd.uplanet.channel -application/vnd.uplanet.channel-wbxml -application/vnd.uplanet.list -application/vnd.uplanet.list-wbxml -application/vnd.uplanet.listcmd -application/vnd.uplanet.listcmd-wbxml -application/vnd.uplanet.signal -application/vnd.vcx -application/vnd.vectorworks -application/vnd.vidsoft.vidconference -application/vnd.visio -application/vnd.visionary -application/vnd.vividence.scriptfile -application/vnd.vsf -application/vnd.wap.sic -application/vnd.wap.slc -application/vnd.wap.wbxml wbxml -application/vnd.wap.wmlc wmlc -application/vnd.wap.wmlscriptc wmlsc -application/vnd.webturbo -application/vnd.wrq-hp3000-labelled -application/vnd.wt.stf -application/vnd.wv.csp+wbxml -application/vnd.xara -application/vnd.xfdl -application/vnd.yamaha.hv-dic -application/vnd.yamaha.hv-script -application/vnd.yamaha.hv-voice -application/vnd.yellowriver-custom-menu -application/voicexml+xml vxml -application/watcherinfo+xml -application/whoispp-query -application/whoispp-response -application/wita -application/wordperfect5.1 -application/x-bcpio bcpio -application/x-cdlink vcd -application/x-chess-pgn pgn -application/x-compress -application/x-cpio cpio -application/x-csh csh -application/x-director dcr dir dxr -application/x-dvi dvi -application/x-futuresplash spl -application/x-gtar gtar -application/x-gzip -application/x-hdf hdf -application/x-javascript js -application/x-koan skp skd skt skm -application/x-latex latex -application/x-netcdf nc cdf -application/x-sh sh -application/x-shar shar -application/x-shockwave-flash swf -application/x-stuffit sit -application/x-sv4cpio sv4cpio -application/x-sv4crc sv4crc -application/x-tar tar -application/x-tcl tcl -application/x-tex tex -application/x-texinfo texinfo texi -application/x-troff t tr roff -application/x-troff-man man -application/x-troff-me me -application/x-troff-ms ms -application/x-ustar ustar -application/x-wais-source src -application/x400-bp -application/xhtml+xml xhtml xht -application/xslt+xml xslt -application/xml xml xsl -application/xml-dtd dtd -application/xml-external-parsed-entity -application/zip zip -audio/32kadpcm -audio/amr -audio/amr-wb -audio/basic au snd -audio/cn -audio/dat12 -audio/dsr-es201108 -audio/dvi4 -audio/evrc -audio/evrc0 -audio/g722 -audio/g.722.1 -audio/g723 -audio/g726-16 -audio/g726-24 -audio/g726-32 -audio/g726-40 -audio/g728 -audio/g729 -audio/g729D -audio/g729E -audio/gsm -audio/gsm-efr -audio/l8 -audio/l16 -audio/l20 -audio/l24 -audio/lpc -audio/midi mid midi kar -audio/mpa -audio/mpa-robust -audio/mp4a-latm -audio/mpeg mpga mp2 mp3 -audio/parityfec -audio/pcma -audio/pcmu -audio/prs.sid -audio/qcelp -audio/red -audio/smv -audio/smv0 -audio/telephone-event -audio/tone -audio/vdvi -audio/vnd.3gpp.iufp -audio/vnd.cisco.nse -audio/vnd.cns.anp1 -audio/vnd.cns.inf1 -audio/vnd.digital-winds -audio/vnd.everad.plj -audio/vnd.lucent.voice -audio/vnd.nortel.vbk -audio/vnd.nuera.ecelp4800 -audio/vnd.nuera.ecelp7470 -audio/vnd.nuera.ecelp9600 -audio/vnd.octel.sbc -audio/vnd.qcelp -audio/vnd.rhetorex.32kadpcm -audio/vnd.vmx.cvsd -audio/x-aiff aif aiff aifc -audio/x-alaw-basic -audio/x-mpegurl m3u -audio/x-pn-realaudio ram ra -audio/x-pn-realaudio-plugin -application/vnd.rn-realmedia rm -audio/x-wav wav -chemical/x-pdb pdb -chemical/x-xyz xyz -image/bmp bmp -image/cgm cgm -image/g3fax -image/gif gif -image/ief ief -image/jpeg jpeg jpg jpe -image/naplps -image/png png -image/prs.btif -image/prs.pti -image/svg+xml svg -image/t38 -image/tiff tiff tif -image/tiff-fx -image/vnd.cns.inf2 -image/vnd.djvu djvu djv -image/vnd.dwg -image/vnd.dxf -image/vnd.fastbidsheet -image/vnd.fpx -image/vnd.fst -image/vnd.fujixerox.edmics-mmr -image/vnd.fujixerox.edmics-rlc -image/vnd.globalgraphics.pgb -image/vnd.mix -image/vnd.ms-modi -image/vnd.net-fpx -image/vnd.svf -image/vnd.wap.wbmp wbmp -image/vnd.xiff -image/x-cmu-raster ras -image/x-icon ico -image/x-portable-anymap pnm -image/x-portable-bitmap pbm -image/x-portable-graymap pgm -image/x-portable-pixmap ppm -image/x-rgb rgb -image/x-xbitmap xbm -image/x-xpixmap xpm -image/x-xwindowdump xwd -message/delivery-status -message/disposition-notification -message/external-body -message/http -message/news -message/partial -message/rfc822 -message/s-http -message/sip -message/sipfrag -model/iges igs iges -model/mesh msh mesh silo -model/vnd.dwf -model/vnd.flatland.3dml -model/vnd.gdl -model/vnd.gs-gdl -model/vnd.gtw -model/vnd.mts -model/vnd.parasolid.transmit.binary -model/vnd.parasolid.transmit.text -model/vnd.vtu -model/vrml wrl vrml -multipart/alternative -multipart/appledouble -multipart/byteranges -multipart/digest -multipart/encrypted -multipart/form-data -multipart/header-set -multipart/mixed -multipart/parallel -multipart/related -multipart/report -multipart/signed -multipart/voice-message -text/calendar ics ifb -text/css css -text/directory -text/enriched -text/html html htm -text/parityfec -text/plain asc txt -text/prs.lines.tag -text/rfc822-headers -text/richtext rtx -text/rtf rtf -text/sgml sgml sgm -text/t140 -text/tab-separated-values tsv -text/uri-list -text/vnd.abc -text/vnd.curl -text/vnd.dmclientscript -text/vnd.fly -text/vnd.fmi.flexstor -text/vnd.in3d.3dml -text/vnd.in3d.spot -text/vnd.iptc.nitf -text/vnd.iptc.newsml -text/vnd.latex-z -text/vnd.motorola.reflex -text/vnd.ms-mediapackage -text/vnd.net2phone.commcenter.command -text/vnd.sun.j2me.app-descriptor -text/vnd.wap.si -text/vnd.wap.sl -text/vnd.wap.wml wml -text/vnd.wap.wmlscript wmls -text/x-setext etx -text/xml -text/xml-external-parsed-entity -video/bmpeg -video/bt656 -video/celb -video/dv -video/h261 -video/h263 -video/h263-1998 -video/h263-2000 -video/jpeg -video/mp1s -video/mp2p -video/mp2t -video/mp4v-es -video/mpv -video/mpeg mpeg mpg mpe -video/nv -video/parityfec -video/pointer -video/quicktime qt mov -video/smpte292m -video/vnd.fvt -video/vnd.motorola.video -video/vnd.motorola.videop -video/vnd.mpegurl mxu m4u -video/vnd.nokia.interleaved-multimedia -video/vnd.objectvideo -video/vnd.vivo -video/x-msvideo avi -video/x-sgi-movie movie -x-conference/x-cooltalk ice diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/AlertDisplay.php b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/AlertDisplay.php deleted file mode 100644 index 2b9eb916a0..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/AlertDisplay.php +++ /dev/null @@ -1,204 +0,0 @@ -<!-- - 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. ---> -<?php -include 'SCA/SCA.php'; - -/** - * @service
- * @binding.rest.rpc
- * @types http://tuscany.apache.org/samples/alerter ./Alerter.xsd - */ -class AlertDisplay -{
- /**
- * @reference
- * @binding.rest.rpc http://localhost:9090/rest/sample.alerter.AlerterComponent/AlerterService
- * @types http://tuscany.apache.org/samples/alerter ./Alerter.xsd
- */
- public $alert_service;
-
- /**
- * @return string
- */
- public function getAlertsHTMLTable()
- {
- $xmldas = SDO_DAS_XML::create("./Alerter.xsd");
- $doc = $xmldas->loadFile("./Cached_Alerts.xml");
- $cached_alerts = $doc->getRootDataObject();
-
- // Use the alertService reference
- $new_alerts = $this->alert_service->getAllNewAlerts();
-
- foreach($new_alerts->alert as $alert){
- $new_alert = $cached_alerts->createDataObject('alert');
- $new_alert->title = $alert->title;
- $new_alert->summary = $alert->summary;
- $new_alert->address = $alert->address;
- $new_alert->date = $alert->date;
- $new_alert->sourceid = $alert->sourceid;
- $new_alert->unread = true;
- }
-
- $return_table = "<TABLE border=\'0\'>";
- $alert_id_number = 0;
- foreach($cached_alerts->alert as $alert){
- $alert->id = "alert_" . $alert_id_number;
- $title = substr($alert->title,0,80);
- $summary = substr($alert->summary,0,40);
- $unread_string = $alert->unread ? "unread_title" : "read_title";
- $return_row = <<<ALERTROW
-<TR class="source_$alert->sourceid clickable" onclick="displayAlert('$alert->address', '')">
- <TD>
- <SPAN id="$alert->id" class="$unread_string">$title</SPAN>
- <SPAN class="summary"> - $summary ...</SPAN>
- </TD>
- <TD>
- $alert->date
- </TD>
-</TR>
-ALERTROW;
- $return_table = $return_table . $return_row;
- $alert_id_number += 1;
- }
- $return_table = $return_table . "</TABLE>";
-
- // as php is one shot we have to save away the alerts we want to cache
- $xmldas->saveFile($doc, "./Cached_Alerts.xml");
-
- return $return_table;
- }
-
- /**
- * @param string $alert_id
- * @return string
- */
- public function readAlert($alert_id)
- {
- $xmldas = SDO_DAS_XML::create("./Alerter.xsd");
- $doc = $xmldas->loadFile("./Cached_Alerts.xml");
- $cached_alerts = $doc->getRootDataObject();
-
- $return_summary = "";
-
- foreach($cached_alerts->alert as $alert){
-SCA::$logger->log($alert->id . " vs " . $alert_id );
- if (strcmp($alert->id,$alert_id) == 0){
- SCA::$logger->log("Match");
- $alert->unread = false;
- $return_summary = "<PRE>" . $alert->summary . "</PRE>";
- }
- }
-
- // as php is one shot we have to save away the alerts we want to cache
- $xmldas->saveFile($doc, "./Cached_Alerts.xml");
-
- return $return_summary;
- }
-
- /**
- * @return string
- */
- public function getAlertSourcesHTMLTable()
- {
- # Use the alertService reference
- $alert_sources = $this->alert_service->getAlertSources();
-
-// some debug
-//ob_start();
-//print_r( $alert_sources );
-//$debug = ob_get_contents();
-//ob_end_clean();
-//SCA::$logger->log($debug);
-
- $return_table = "<TABLE border='0'>\n";
-
- foreach ($alert_sources->source as $alert_source){
- $source_id = $alert_source->id;
- $return_row = <<<SOURCEROW
-<TR CLASS="source_$source_id" >
- <TD CLASS="clickable" ONCLICK="displayAlert('$alert_source->address', '')">
- <IMG SRC="rss.png"/> $alert_source->name
- </TD>
- <TD CLASS="clickable link" ONCLICK="showEditSource('$source_id')">Edit</TD>
- <TD CLASS="clickable link" ONCLICK="deleteSource('$source_id')">Delete</TD>
-</TR>
-<TR ID="edit_source_$source_id" CLASS="hidden source_$source_id">
- <TD COLSPAN="3">
- <TABLE CLASS="sourceDetailsTable">
- <TR>
- <TD>Source name:</TD>
- <TD>
- <INPUT ID="source_{$source_id}_name" TYPE="TEXT" SIZE="50" VALUE="$alert_source->name"/>
- </TD>
- </TR>
- <TR>
- <TD>Source address:</TD>
- <TD>
- <INPUT ID="source_{$source_id}_address" TYPE="TEXT" SIZE="50" VALUE="$alert_source->address"/>
- </TD>
- </TR>
- <TR>
- <TD>
- <INPUT ID="source_{$source_id}_type" TYPE="HIDDEN" VALUE="$source_id"/>
- <INPUT TYPE="BUTTON" VALUE="Update" ONCLICK="updateSource('$source_id')"/>
- <INPUT TYPE="BUTTON" VALUE="Cancel" ONCLICK="hideEditSource('$source_id')"/>
- </TD>
- </TR>
- </TABLE>
- </TD>
-</TR>
-SOURCEROW;
- $return_table = $return_table . $return_row;
- }
-
- $return_table = $return_table . "</TABLE>\n";
- return $return_table;
- }
-
- /**
- * @param integer $source_id
- * @return string
- */
- public function deleteAlertSource($source_id){
- # Use the alertService reference
- $this->alertService->removeAlertSource($source_id);
-
- //TODO
- }
-
- /**
- * @param source $alert_source http://tuscany.apache.org/samples/alerter
- */
- public function addAlertSource($alert_source){
- # Use the alertService reference
- $this->alertService->addAlertSource($alert_source);
- }
-
- /**
- * @param source $alert_source http://tuscany.apache.org/samples/alerter
- */
- public function updateAlertSource($alert_source){
- # Use the alertService reference
- $this->alertService->updateAlertSource($alert_source);
- } -} -?>
-
-
- diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/Alerter.xsd b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/Alerter.xsd deleted file mode 100644 index 58b9982d38..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/Alerter.xsd +++ /dev/null @@ -1,74 +0,0 @@ -<?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.
--->
-<schema targetNamespace="http://tuscany.apache.org/samples/alerter"
- xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://tuscany.apache.org/samples/alerter"> - <element name="alerts" type="ns:alerts"/>
- - <complexType name="alert"> - <sequence> - <element name="title" type="string"/>
- <element name="summary" type="string"/> - <element name="address" type="anyURI" maxOccurs="1" minOccurs="1"/> - <element name="date" type="string" maxOccurs="1" minOccurs="1"/> - </sequence>
- <attribute name="sourceid" type="string" use="optional"/>
- <attribute name="unread" type="boolean" use="optional"/>
- <attribute name="id" type="string" use="optional"/>
- </complexType> - - <complexType name="alerts"> - <sequence> - <element name="alert" type="ns:alert" maxOccurs="unbounded" minOccurs="0" /> - </sequence>
- </complexType>
- - <element name="config" type="ns:config"/>
- <element name="source" type="ns:source"/>
- - <complexType name="source"> - <sequence> - <element name="name" type="string" maxOccurs="1" minOccurs="1"/>
- <element name="address" type="anyURI" maxOccurs="1" minOccurs="1"/>
- <element name="lastChecked" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="feedAddress" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="popServer" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="popUsername" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="popPassword" type="string" maxOccurs="1" minOccurs="0"/>
- <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> - </sequence>
- <attribute name="id" type="string" use="optional"/>
- <attribute name="type" use="required">
- <simpleType>
- <restriction base="string">
- <enumeration value="rss"/>
- <enumeration value="pop"/> - <enumeration value="nntp"/> - </restriction>
- </simpleType>
- </attribute> - </complexType> - - <complexType name="config"> - <sequence> - <element name="source" type="ns:source" maxOccurs="unbounded" minOccurs="0"/>
- </sequence>
- </complexType> -</schema>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/Cached_Alerts.xml b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/Cached_Alerts.xml deleted file mode 100644 index 03901c804c..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/Cached_Alerts.xml +++ /dev/null @@ -1,214 +0,0 @@ -<?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. ---> -<alerts xmlns="http://tuscany.apache.org/samples/alerter" xmlns:tns="http://tuscany.apache.org/samples/alerter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><alert sourceid="1" unread="false" id="alert_0"><title>Polymer Vision's Readius rollable display gets face time</title><summary>Filed under: Cellphones, DisplaysTalk about a long time coming, as what is now Polymer Vision has seemed to finally put all the pieces together and produce an actual working product from the idea envisioned by Philips around two years ago. We knew the spinoff was looking to commercialize the product later this year, but after nearly 24 months of coming up empty, a bit of understandable skepticism begins to seep through. Nevertheless, the firm's rollable, pocket-friendly "Cellular-Book" was out and showing its stuff at 3GSM, proving that there's at least something there to put on store shelves. Although the unit on display was indeed a standalone device -- sporting 16 shades of grey, USB, "10-days" of battery life, 4GB of internal storage, and GPRS, EDGE, and DVB-H connectivity just like we'd heard -- Polymer Vision is actually hoping to integrate its e-paper technology into mobile handset displays in the near future. Sadly, there still didn't seem to be any hints of a release date for the nifty pocket reader, but be sure to click on through for the very long awaited pictures of the Readius in action.[Via Slashdot]Continue reading Polymer Vision's Readius rollable display gets face time Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92945682/</address><date>2007-02-19T15:54:00</date></alert><alert sourceid="1" unread="false" id="alert_1"><title>Sirius and XM set to merge?</title><summary>Filed under: Portable Audio -Well, we can't exactly say that we didn't see this one coming, but for the deal to actually get inked would indeed be something special. According to the New York Post, Sirius and XM are all set to announce a merger deal after hammering out details all weekend long. Of course, it was noted that the somewhat shaky agreement "could fall apart at any time," and interestingly enough, both companies purportedly spent the majority of their (and their lawyers) time ironing out the good stuff while leaving "regulatory concerns" on the back burner. Unfortunately, those very issues could be insurmountable hurdles, as the typically stubborn FCC certainly has played hard ball with each company before, and having one overriding satellite provider with no competition in sight is ripe for monopoly arguments. Regardless, you won't find us complaining about a little Howard just a few channels down from Oprah, or a dash of MLB just a dozen notches from the NFL, but considering that gaining that oh-so-critical regulatory approval "could take up to 15 months," we wouldn't count on your lineup changing anytime soon no matter what. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92940034/</address><date>2007-02-19T15:24:00</date></alert><alert sourceid="1" unread="false" id="alert_2"><title>Sony's Cybershot DSC-W80: their latest 7.2 megapixel camera?</title><summary>Filed under: Digital Cameras -Out of the gates early for PMA (Photo Marketing Association) 2007, we've got rumors of the latest Sony Cybershot, the DSC-W80. The cam's already made its appearance on a few German and Dutch web sites and certainly makes sense as the successor to the 7.2 megapixel W70 launched at last year's show. However, instead of 8 megapixels like you might expect, we're still talking that same 7.2-megapixel, 1/2.5-inch CCD (which won't help improve the high rates of noise above ISO 200 any), 3x optical zoom, and 2.5-inch LCD. Other than a new ISO 3200 sensitivity and slightly larger chassis -- up from 89 x 57 x 23-mm to 91 x 58 x 23-mm -- there isn't anything new on the surface to report. No one's sayin' but perhaps they've added some optical image stabilization to bring these in-line with most other compact shooters in this range. We've also got rumors of a new Cybershot DSC-W60 and Cybershot DSC-W90 -- both unannounced and both said to work with a new SPK-SA underwater case (pictured after the break). The W80 is expected to hit in April for around 280/$368. As to the rest... well, the PMA show starts March 8th so we'll know soon enough. [Via Let's Go Digital, thanks David]Continue reading Sony's Cybershot DSC-W80: their latest 7.2 megapixel camera? Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92929558/</address><date>2007-02-19T14:42:00</date></alert><alert sourceid="1" unread="false" id="alert_3"><title>Gresso's Symphonia MP3 players for the nouveau riche</title><summary>Filed under: Portable AudioHow do you make a splash in the already saturated MP3 player market? Well, there's always limited-edition pink, or how 'bout a $4,000+ luxury player which touts "craftsmanship" (not sound quality or user experience) as its primary forte? Naturally, we're talking about Gresso, the Russian outfit already infamous for their luxury cellphones. Their new Symphonia audio players all measure in at 39 x 39 x 10.5-mm making them just a touch bigger than the iRiver S7 and iPod shuffle. Each features a RAZR-esque laser-etched keypad, built-in FM tuner, and 1GB of flash memory for your MP3, WMA, ASF and OGG files. In fact, the four models only differ in materials which range from ancient hardwoods to 18 carat gold. Expected in Q2 with too-beaucoup pricing in the area of $4,000 to $6,000. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92922919/</address><date>2007-02-19T14:22:00</date></alert><alert sourceid="1" unread="false" id="alert_4"><title>Earth Trek's USB Tape Dispenser</title><summary>Filed under: Misc. Gadgets, Peripherals -Ours is not to question why, only to accept the inevitable convergence of USB and pretty much everything else within the vicinity of our PCs. Meet the newly announced 4-port USB 2.0 hub and tape dispenser from Hong Kong's Earth Trek. It comes in large and small versions and can naturally be affixed with your very own logo for some good ol' corporate schwag. Sorry, these devices are not USB powered -- but if you're the type who finds it overly taxing to dispense tape, then maybe you should be looking into a bionic suit. "Coming soon" in several color options for an undisclosed price. - -[Via Akihabara News] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92922925/</address><date>2007-02-19T14:02:00</date></alert><alert sourceid="1" unread="false" id="alert_5"><title>The do-it-yourself SSD adapter</title><summary>Filed under: Storage - If you can't afford the real deal, then prepare to get your jank on with this, the not-so-poor-man's solid state disk. The SDB25SD from GeekStuff4U can host up to 4x SD (not SDHC) cards for a maximum capacity of 8GB. Just slip the four cards into the 2.5-inch sled which then slots-in to any available IDE connector where -- presumably -- the total capacity is presented as a single disk volume... who knows? So how much would you pay for something like this: $50, $40, or maybe $20? Try $258.50 and you have to provide the SD flash. Word to the wise: SSD prices are dropping fast -- you'll pay about the same price for a full 16GB SSD card if you can hold on until June or so.[Via Akihabara News] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92910485/</address><date>2007-02-19T13:32:00</date></alert><alert sourceid="1" unread="true" id="alert_6"><title>Sharp's EM ONE: a dual-sliding Pocket PC with HSDPA and WiFi</title><summary>Filed under: Handhelds, Wireless -Check it W-Zero3, Sharp just one-upped your azz with their new EM ONE handheld. This Windows Mobile 5.0 Pocket PC device brings 3.6Mbps HSDPA and 802.11b/g data to the game along with hot dual-sliding action under that 4.1-inch touch-screen display. Unlike Samsung's F520 dual-slider which combines a QWERTY and numeric keypad for making calls, Sharp's slab is a data-only device so they combine the QWERTY with a side-sliding navigation pad for scooting around the 800 x 480 pixel display. However, Sharp's EM ONE comes heavy on the chub at 140x70x18.9-mm compared to the F520's 105x54x17.4-mm or even Nokia's N800 which is about the same length and width but much thinner at 145x75x12.7-mm. The whole kit comes powered by a Marvell 520MHz PXA270 processor and nVidia GoForce 5500 graphics along with 512MB/128MB flash/SDRAM memory and miniSD expansion. The display boasts a rather anemic 65k color palette (albeit, the same as the N800) for viewing integrated 1-Seg mobile TV and WMV videos with WMA and MP3 audio playback supported by a pair of built-in stereo speakers. Rounding out the specs are Bluetooth 1.2, a 1.3 megapixel CMOS camera, stylus, and a 4-hour battery. On sale in Japan starting March 31st for 95,000 (about $797) without contract or 39,800 ($332) with 2-year commitment.Gallery: Sharp's EM ONE: a dual-sliding PocketPC with HSDPA and WiFi[Via Impress] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92903979/</address><date>2007-02-19T13:02:00</date></alert><alert sourceid="0" unread="false" id="alert_7"><title>Leaders condemn India train blast</title><summary>India and Pakistan say a train bombing that killed at least 66 people will not disrupt their peace process.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6375749.stm</address><date>2007-02-19T13:27:07</date></alert><alert sourceid="0" unread="true" id="alert_8"><title>At least 30 die in Iraq attacks</title><summary>A number of attacks in Iraq leave at least 30 dead, despite a security operation across the country.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6374909.stm</address><date>2007-02-19T16:20:31</date></alert><alert sourceid="0" unread="true" id="alert_9"><title>Priest jailed for exorcism death</title><summary>A Romanian priest who caused the death of a nun during an exorcism ritual is jailed for 14 years.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/europe/6376211.stm</address><date>2007-02-19T16:29:36</date></alert><alert sourceid="0" unread="true" id="alert_10"><title>Czech-Polish OK for US missiles</title><summary>Czech and Polish leaders back a US plan to install missile defence facilities on their territory.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/europe/6376137.stm</address><date>2007-02-19T15:02:36</date></alert><alert sourceid="0" unread="false" id="alert_11"><title>Mexico holds mine tragedy vigil</title><summary>Mexico marks the anniversary of a blast that killed 65 miners, most of whose bodies have not been found.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6376267.stm</address><date>2007-02-19T15:47:12</date></alert><alert sourceid="0" unread="true" id="alert_12"><title>'Anti-terror force' for Somalia</title><summary>Somalia's government sets up a joint police and military unit to counter attacks by suspected Islamists.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/africa/6375699.stm</address><date>2007-02-19T12:33:12</date></alert><alert sourceid="0" unread="true" id="alert_13"><title>Row threatens Nigerian alliance</title><summary>Two top Nigerian presidential candidates swap insults, casting doubt on the alliance between their two parties.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/africa/6376521.stm</address><date>2007-02-19T15:53:07</date></alert><alert sourceid="0" unread="true" id="alert_14"><title>Colombian foreign minister quits</title><summary>Colombia's foreign minister resigns after the arrest of her brother on suspicion of links with paramilitary groups.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6376359.stm</address><date>2007-02-19T15:40:03</date></alert><alert sourceid="0" unread="true" id="alert_15"><title>Wrangling hits Airbus restructure</title><summary>Airbus shelves a key decision on a major overhaul of the business, amid strife between its European partners.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/business/6375517.stm</address><date>2007-02-19T13:04:02</date></alert><alert sourceid="0" unread="true" id="alert_16"><title>Nepal king 'takes responsibility'</title><summary>Nepal's King Gyanendra publicly accepts responsibility for "success and failure" under his period of direct rule.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6375207.stm</address><date>2007-02-19T14:11:40</date></alert><alert sourceid="0" unread="true" id="alert_17"><title>More than 20 die in Iraq attacks</title><summary>A number of attacks in Iraq leave more than 20 dead, despite a security operation across the country.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6374909.stm</address><date>2007-02-19T17:05:24</date></alert><alert sourceid="1" unread="true" id="alert_18"><title>Sling's upcoming SlingLink Turbo leaked?</title><summary>Filed under: Home Entertainment, Networking -When you're slinging media across the home, there's no such thing as "too much bandwidth," and it looks like Sling Media is beefing up its SlingLink line of home wiring network products with the SlingLink Turbo. The new device ups the bandwidth from 14Mbps to 85Mbps, and while the original SlingLinks were primarily designed for a single Slingbox connection, the Turbo vision should be able to handle more general purpose home media networking tasks. The SlingLink Turbo was spotted by a SlingCommunity member on Amazon.com, with an expected ship date of February 27th 2007 for $149. The device is interoperable with existing PowerLine adapters, and has four Ethernet ports beyond the PowerLine link. As far as rumors go, this one looks pretty legit, but with a February 27th date on the books, we should know exactly how legit before too terribly long.[Thanks TieGuy] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93021486/</address><date>2007-02-19T20:55:00</date></alert><alert sourceid="1" unread="true" id="alert_19"><title>It's official: XM and Sirius plan to tie the knot</title><summary> - It's been more than two years since we first reported that XM and Sirius were in talks to merge, and although the New York Post may have jumped the gun a bit way back then, it was certainly on the money today, as the two satellite radio pioneers have just issued a joint press release stating their intention to become life partners. In the proposed $13 billion deal -- which they'd like to go down by the end of the year but which still must pass rather daunting regulatory scrutiny and opposition from such heavyweights as the National Association of Broadcasters -- investors would get 4.6 shares of Sirius stock for each share of XM, with current Sirius CEO Mel Karmazin and XM Chairman Gary Parsons retaining those roles, respectively, in the combined entity (whose name has yet to be decided). As you might imagine, the companies are already trying to spin this as a big win for everyone from Martha Stewart on down, arguing that consumers will end up benefiting from more programming choices and better hardware, manufacturers and retailers will see increased sales, and of course shareholders would gain value through the economies of scale and elimination of redundancies realized from a merger. The new pals also took an opportunity to sneak in a mention about the growing number of choices consumers have for receiving audio content, from old school AM/FM to internet radio to the the still-nascent technologies of cellphone streaming and HD radio, clearly hoping to sway public opinion on that whole anti-trust thing. Still, keep in mind that the FCC is gonna be taking a long, hard look at this one -- in fact, current regulations would need to be changed in order for the merger to gain approval -- so don't get your celebratin' started just yet. Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93011139/</address><date>2007-02-19T20:30:00</date></alert><alert sourceid="1" unread="true" id="alert_20"><title>Details emerge on Sony's DSC-W90, W200 digital cameras</title><summary>Filed under: Digital CamerasThe big PMA 07 trade show is still weeks away, but we seem to be already getting a pretty good idea of what Sony will be showing off, first with word of its 7.2 megapixel DSC-W80 getting out earlier today, and now with details on two additional models appearing on SonyCenter.lu's discussion forums before not-so-mysteriously disappearing. Thankfully, good 'ol Google Cache has preserved all the relevant information so you won't have to wait until March to satisfy your curiosity. Apart from the difference in megapixels, with 12 on the W200 and 8 on the W90, the two cameras appear to be virtually identical, each boasting a 3x optical zoom, 2.5-inch LCD, Carl Zeiss Vario-Tessar optics, Sony's trademark SteadyShot and Face Recognition features, ISO settings up to 3200 and, perhaps most notable, HDMI outputs. Unfortunately, there's no pics of either camera, although they'll apparently be similar in design to the W55 (pictured here), only with a "finer," "more beautiful" case. There's also no word on price or availability, although that should be revealed at the official PMA launch next month.[Thanks, Rashid] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93004352/</address><date>2007-02-19T19:48:00</date></alert><alert sourceid="1" unread="true" id="alert_21"><title>What tech would the Presidents rock in 2007?</title><summary>Filed under: Features, Misc. Gadgets - Sure, Washington had his dentures, Lincoln his ironclads and Jefferson his swivel chair, but what kind of kit would they be messing around with in 2007? In search of answers based on broad and most likely mis-guided and / or offensive stereotypes, we bring you the following list. Feel free to rip it to shreds in the comments, just make sure to keep it patriotic -- Big Brother is watching. Happy Presidents Day!#vistachart { border: 2px solid #333; border-collapse: collapse; } #vistachart td { padding: 3px; border: 1px solid #ccc; vertical-align: top; margin: 0; line-height: 1.3em; } #vistachart th { font-weight: bold; text-align: left; padding: 4px; background: #eee; } #vistachart th.mainth { border-bottom: 1px solid #333; font-size: 1.2em; } #vistachart td.red { background-color: #f08c85; } #vistachart td.green { background-color: #b3e2c4; - - - - Washington(rebel)Lincoln(uniter)Jefferson(hipster)Roosevelt(fearless) - - - OS - Linux (last night's build) - Mac OS X (with Vista in Parallels and Linux via Boot Camp) - Mac OS X - Vista (x64) - - - Computer - OQO (has an OLPC XO at home) - MBP - MacBook - Toughbook - - - Media player - Make Daisy - Sansa - iPod - Zune - - - HD format - HD DVD - LG BH100 hybrid player - Blu-ray - DivX + BitTorrent, dude - - - Carrier - T-Mobile - AT T - T-Mobile - VoIP over neighborFi - - - Console - Gamepark GP2X, SNES - Wii, Xbox 360, PS3 - Wii - PS3 - - - Vehicle - Homebrew biodiesel - Prius - Tesla Roadster - Segway - - - Phone - OpenMoko - 8525 - Sidekick 3 - Greenphone - - - Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92998051/</address><date>2007-02-19T19:21:00</date></alert><alert sourceid="1" unread="true" id="alert_22"><title>Solar Technology's Freeloader saps power from USB, the Sun</title><summary>Filed under: Misc. Gadgets, Peripherals -While it won't do your laptop any good, this new Freeloader gig from Solar Technology should be able to provide juice to just about every other gadget in your repertoire. The device contains its own li-ion rechargeable battery, which it can fill up from your laptop or desktop's power via USB, or using its 120mA crystalline solar cells. From there you've got a master cable and eleven adaptors to get the electricity into your phone, camera, PDA, GPS, gaming handheld or DAP. Solar Technology seems to have most of the big brands covered, and claims it can fuel an iPod for 18 hours, a mobile phone for 44 hours, PSP for 2.5 hours and a PDA for 22 hours -- not too shabby for the 6.5 ounce unit. Sure, we've seen plenty of similar chargers before, but the combination of device compatibility and relatively low price ( 30, about $59 US) makes this a decent option for those sun-drenched road warriors out there. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92990699/</address><date>2007-02-19T18:54:00</date></alert><alert sourceid="1" unread="true" id="alert_23"><title>Sony's 1/1.8-inch high-speed CMOS sensor outputs 60fps</title><summary>Filed under: Digital CamerasThankfully, it looks like Sony has come through yet again, and while it wasn't exactly in the timeliest of manners, the high-speed CMOS sensor that it promised would deliver 60fps of video output is finally upon us. The 1/1.8-inch IMX017CQE sensor boasts 6.4-megapixels of resolution and the uncanny ability to "output this resolution at 60 frames per second (a data rate of around 384 megapixels per second)." In layman's terms, this chip has the ability to capture full motion video and grab high-quality stills without dropping a single frame, giving users a seamless transition between the two. Additionally, the 1/1.8-inch size and its ability to deliver 300 frames per second at lower resolutions moves it a bit further from the pack, not to mention the 12-bit A/D converter for each column. No word just yet on when these video-centric chips will hit Sony's CyberShot lineup, but it's an awful lot closer to reality than the last time we caught wind of it. [Warning: PDF read link][Via DPReview] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92983675/</address><date>2007-02-19T18:24:00</date></alert><alert sourceid="1" unread="true" id="alert_24"><title>Is "3X DVD" HD DVD's secret weapon against Blu-ray?</title><summary>Filed under: HDTV While the Blu-ray camp is busy claiming victory, recently HD DVD supporters seem to be circling the wagons around an old friend, the -- 'til now -- unused 3X DVD technology. HD DVD has always claimed it holds a price advantage over Blu-ray, by way of offering low cost upgrades for existing DVD manufacturing processes. The 3X DVD spec takes that a step further, while it's a part of the HD DVD format and apparently only compatible with HD DVD players, the discs themselves are physically exactly the same as standard red-laser DVDs. Throw in a software upgrade to support high definition content, HD DVD's UDF 2.5 file structure and AACS and you have a way to deliver HDTV content on a 9.4 GB DVD. By using newer encoding technologies like MPEG-4 and VC-1 and/or lowering the resolution to say, 720p, full length movies easily fit on a standard DVD. Eclipse Data Technologies, a supplier of HD DVD mastering equipment just announced it is offering free upgrades to its customers in order to support 3X DVD manufacturing. This was followed today by DCA Inc. announcing it has mastered the first 3X DVD disc, and that several manufacturers are looking at it as a possible low cost path into HD video. 3X DVD's potential to allow for noticeably lower-priced HD content to come to market is definitely there, but it still remains to be seen if this, like combo DVD/HD DVDs and Total Hi-Def discs will find a home and support in the marketplace. Read - First 3X DVD-ROM Disc Cut with DCA Equipment Read - Eclipse Provides Free HD DVD Upgrade to Replication Facilities Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/92975896/</address><date>2007-02-19T17:54:00</date></alert><alert sourceid="0" unread="true" id="alert_25"><title>Leaders condemn India train blast</title><summary>India and Pakistan say a train bombing that killed at least 66 people will not disrupt their peace process.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6375749.stm</address><date>2007-02-19T18:39:31</date></alert><alert sourceid="0" unread="true" id="alert_26"><title>Iran, Russia in nuclear plant row</title><summary>Tehran denies Russian claims it is late on payments for work on a nuclear reactor in southern Iran.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6375477.stm</address><date>2007-02-19T18:33:05</date></alert><alert sourceid="0" unread="true" id="alert_27"><title>Colombian foreign minister quits</title><summary>Colombia's foreign minister resigns after the arrest of her brother on suspicion of links with paramilitary groups.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6376359.stm</address><date>2007-02-19T18:39:55</date></alert><alert sourceid="0" unread="true" id="alert_28"><title>Five US troops die in Iraq raids</title><summary>Five US soldiers die in two attacks in Iraq on a day violence claims more than 25 lives across the country.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6374909.stm</address><date>2007-02-19T20:24:32</date></alert><alert sourceid="0" unread="true" id="alert_29"><title>Iran hangs man for attack on bus</title><summary>Iran executes a man over a bomb attack which killed 11 members of its elite Revolutionary Guards last week.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6377101.stm</address><date>2007-02-19T20:15:50</date></alert><alert sourceid="0" unread="true" id="alert_30"><title>Flood aid struggle in Mozambique</title><summary>Mozambique says it has the use of only one UN helicopter to help thousands of people displaced by severe floods.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/africa/6377427.stm</address><date>2007-02-19T21:57:46</date></alert><alert sourceid="0" unread="true" id="alert_31"><title>Manhunt for train fire suspects</title><summary>Police in India issue sketches of two men they believe got off a train minutes before a deadly bomb attack.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6377471.stm</address><date>2007-02-20T07:32:59</date></alert><alert sourceid="0" unread="true" id="alert_32"><title>Miami baby sets premature record</title><summary>A baby believed to have spent the shortest time in her mother's womb is set to leave hospital in the US.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6377639.stm</address><date>2007-02-20T08:14:18</date></alert><alert sourceid="0" unread="true" id="alert_33"><title>Nato troops raid Karadzic homes</title><summary>Nato troops in Bosnia search the homes of the children of indicted war criminal Radovan Karadzic.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/europe/6377711.stm</address><date>2007-02-20T08:19:29</date></alert><alert sourceid="0" unread="true" id="alert_34"><title>Cheney ready for US-Japan talks</title><summary>US Vice-President Dick Cheney arrives in Tokyo to discuss regional security issues and Iraq.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/asia-pacific/6377649.stm</address><date>2007-02-20T08:25:12</date></alert><alert sourceid="1" unread="true" id="alert_35"><title>LG's 17-inch W1PRO EXPRESS DUAL laptop packs DVB-T, Vista</title><summary>Filed under: LaptopsIf you've been eying a Vista-equipped laptop to treat yourself after all that chocolate you dutifully resisted last week, you might as well get a TV tuner built right in. LG Electronics' latest 17-inch behemoth packs a silver / black enclosure, integrated DVB-T tuner, and your choice of Intel Core 2 Duo processors to boot. Under the hood you'll find a WSXGA+ display, support for 5.1 Dolby Digital audio, dual 1.2-watt stereo speakers, ATI's Mobility Radeon X1600 graphics set, Bluetooth 2.0, WiFi, and of course, Windows Vista Home Premium pre-installed. While the W1PRO EXPRESS DUAL isn't exactly the lightest machine out there, it weighs in at a respectable 6.8-pounds and shouldn't make a half bad media-centric portable, but considering the nearly $2,600 pricetag LG has slapped on it, bargain hunters needn't look here long.[Via Gizmag] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93370051/</address><date>2007-02-20T15:38:00</date></alert><alert sourceid="1" unread="true" id="alert_36"><title>GlobalTop intros GPS HUD Speed Meter</title><summary>Filed under: GPS, TransportationIt's practically a foregone conclusion that eying your handy GPS unit a bit too much whilst cruising down the freeway can indeed put you and your fellow motorists in peril, and while robotic turn-by-turn voiceovers do quell the staring fits somewhat, we still tend to rely a tad too much on sheer visuals. GlobalTop is hoping to make the roads a safer place to navigate with its forthcoming GPS HUD Speed Meter, which will supposedly makes its debut at CeBIT. This Bluetooth-enabled device purportedly "displays your speed and other navigational info, like direction, onto your car's windshield," and also enables handsfree communications with your BT-equipped cellphone. Moreover, the speed meter can be setup to alert the driver when exceeding a user-set limit, and while you may not be familiar with the brand, it's reportedly a spinoff of f-tech, which bodes fairly well for us actually seeing this thing beyond the Photoshop stage. As expected, there's no pricing or availability deets surfacing just yet, but all that should change come next month.[Via NaviGadget] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93355876/</address><date>2007-02-20T15:08:00</date></alert><alert sourceid="1" unread="true" id="alert_37"><title>Cylo's 3style jog wheel / mouse spins it up</title><summary>Filed under: PeripheralsWhile we've seen more than a few folks get a little mod-happy when it comes to crafting their own mousing devices, Cylo Technology is offering up an apparently well thought-out device that should have audio / video editors going wild. If you feel more comfortable spinning a jog wheel than you ever have manually moving a cursor, the "three-dimensional" 3style mouse is right down your alley, as the hybrid input peripheral handles the typical X and Y axes as well as giving users the ability to scroll in any direction with a simple spin. Utilizing a ball bearing pad, the knob can spin freely with just a nudge, and can interpret Z-axis data as well as offering up right-click functionality by squeezing the edges. While some may envision faint similarities to the iMac's hockey puck mouse of days past, this rendition could probably last a bit more than 30 seconds before becoming destined for the trash bin. Nevertheless, the 3style mouse can be used wirelessly as well as in a wired form, and can purportedly work seamlessly with any application that supports a scroll wheel or jog dial, but we'll have to wait until this thing actually hits store shelves before testing out these bold claims ourselves. Click on through for a live demonstration.[Via HackedGadgets]Continue reading Cylo's 3style jog wheel / mouse spins it up Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93350237/</address><date>2007-02-20T14:42:00</date></alert><alert sourceid="1" unread="true" id="alert_38"><title>Segway's RMP platform for nerdy robots</title><summary>Filed under: Robots, TransportationWhat do you do when your overly hyped Human Transporter skids off the plateau of human interest only to be pummeled by archaic transportation laws? Why, start building mobility solutions for robots, of course. We've already seen a few lazy robots riding Segways around the lab; soon enough, we'll be seeing a lot more what with the Segway RMP (Robotic Mobility Platform) now launched in Japan. The RMP is meant to provide a quick and easy transportation underpinning for new domestic and military robots. RMPs range in price from 6,037,500 to 1,376,550 ($50,000 to about $11,500) and vary by maximum load, speed, size, max angle of climb, and battery capacity. Let the robot crusades begin! Via Robot Watch] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93336617/</address><date>2007-02-20T14:12:00</date></alert><alert sourceid="1" unread="true" id="alert_39"><title>Century's Dolphin waterproof MP3 player</title><summary>Filed under: Cellphones, Portable Audio - Wrap an MP3 player in a silicon tube held secure with cable-ties and what do you get? Well, if you're Japan's Century then you've got yourselves a waterproof MP3 player dubbed the Dolphin. Ok, the player does carry an IPX7 Ingress protection rating which means it really is waterproof (not just splash-proof) up to a depth of about 1 meter -- ideal for laps around the Coral Key Park Marine Preserve. Inside, the Dolphin packs 1GB of flash, USB 2.0, and support for MP3/WMA playback off 8-hour battery. Looks aside, at 12,800 (about $107) -- which includes a pair of unusually decent looking waterproof headphones -- it'll save you a healthy chunk-o-change compared to the $250 waterproof iPod shuffle we showed you last week. [Via Impress] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93336618/</address><date>2007-02-20T13:52:00</date></alert><alert sourceid="1" unread="true" id="alert_40"><title>Sharp's AQUOS R-series of LCDs announced</title><summary>Filed under: Displays, HDTV -Step aside AQOUS D-Series of LCDs, Sharp just unveiled their new flagship R-series of LCD panels for Japan. The new line-up ranges in size from 42- to 65-inches with each packing a 120Hz ASV LCD panel, 3x 1080p HDMI inputs, 1x DVI for that quick all-digital hook-up to your PC, and 2x Firewire for connecting your DV camera and one of Sharp's line-up of hi-def recorders including their new BD-HP1 Blu-ray recorder for on-the-quick dubbing. Just for kicks, Sharp also added their favorite new pet technology, IrSS (AKA, IrSimple) high-speed infrared for throwing up images from like-equipped cellphones and digital cameras. Of course, they also feature dual, integrated analog and digital tuners and 10/100Mbps Ethernet to access Japan's acTVila TV Internet service. The big, bad 65-inch LC-65RX1W (pictured above) mama of the bunch features a 450cd/m2 brightness, 3000:1 contrast ratio, 176-degree angle of visibility, while tipping the scales at 66kg (146-pounds) at just 9.6~12.4-cm (3.78~4.88-inches) thin. It's available March 10th in Japan for 1,000,000 or about $8,361. Expect the rest to hit no later than April with the 57-inch LC-57RX1W demanding 900,000 ($7,524), the 52-inch LC-52RX1W 650,000 ($5,434), the 46-inch LC-46RX1W 550,000 ($4,598), and the 42-inch LC-42RX1W 500,000 ($4,180). [Via Impress] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93330298/</address><date>2007-02-20T13:22:00</date></alert><alert sourceid="1" unread="true" id="alert_41"><title>Sharp's BD-MPC70 Blu-ray theater in a box</title><summary>Filed under: HDTV, Home Entertainment -We already caught their 2.1 channel home theater back at the CEDIA show in September. This time however, Sharp gets official with their new 7.1 Blu-ray in a box home theater kit. The BD-MPC70 pumps 175W across a full 7.1 channels of 8-ohm phallus with playback support for single-layer BD-R/RE media in addition to DVD video, DVD R/RW, DVD-RAM, music CDs, and CD-RW/-R discs. It delivers a 12bit/148.5MHz video DAC and 24bit/192kHz audio DAC with a healthy smattering of the ol' in and outs including 2x digital and 2x analog audio inputs and 1080p video output over HDMI. Available June 25th in Japan for 1,050,000 or about $8,779 whenever these come Stateside. [Via Impress] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93314228/</address><date>2007-02-20T12:42:00</date></alert><alert sourceid="1" unread="true" id="alert_42"><title>Engadget Exclusive: Sony's 2007 Cybershot lineup</title><summary>Filed under: Digital Cameras - That's right, we've got 'em -- catalog shots for Sony's 2007 Cybershot line-up of digital cameras. Go ahead, check the new T20HDPR, T100, T20, H9, H7, G1 (pictured), W200, and W90 Cybershots -- you won't be sorry. All the new cams bring Sony's Super SteadyShot image stabilization and HD output to the show in addition to a hot mix of features spread out across the line; these include such notables as 802.11b/g WiFi with DLNA support, 2GB on-board memory for music playback, a 3-inch tilt-screen LCD, 3.5-inch (yes, 3.5-inch!) LCD, a couple of 15x optical zooms, face-detection technology, and BIONZ image processing -- good to know. Judging by the pics, we can expect a formal, pre-PMA show announcement from Sony on 27 February. Check the gallery below for all the details.Gallery: Engadget Exclusive: Sony's 2007 Cybershot lineup[Thanks, anonymous tipster] Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93308137/</address><date>2007-02-20T12:07:00</date></alert><alert sourceid="1" unread="true" id="alert_43"><title>Woman plummets onto subway tracks while carelessly texting</title><summary>Filed under: Cellphones Granted, texting just might be bigger than Hollywood these days, but bigger than concern for one's own life? Apparently a Kawanishi woman was taking her well-being for granted during her daily route to work, as she collided with a man in a subway station whilst texting away at 8:30 in the morning. Subsequently, she plummeted a few feet down onto the subway tracks, only to be saved by a station worker who fearlessly hopped down to rescue her SMS-focused mind (and body, too) as the oncoming train screeched to a halt just 20 meters before running her over. Thankfully, the dame suffered just minor injuries in the fall, but an estimated 4,500 employees were blaming her for holding up their progress when clocking in late. Notably, there was no word on whether or not the phone was saved, or more importantly, whether or not the presumably urgent SMS ever got sent -- but considering this is the second case in a matter of days in which a human being nearly lost their life to a cellphone, we beg you: text responsibly, dear friends.[Via TokyoMango] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93274207/</address><date>2007-02-20T10:27:00</date></alert><alert sourceid="0" unread="true" id="alert_44"><title>Iran defiant on nuclear programme</title><summary>Iran's president rejects calls to suspend uranium enrichment, a day before a UN deadline runs out.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6378289.stm</address><date>2007-02-20T15:33:54</date></alert><alert sourceid="0" unread="true" id="alert_45"><title>Tobacco firm wins payout appeal</title><summary>The US supreme court throws out a ruling that Philip Morris must pay $79.5m to the widow of a dead smoker.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/business/6379767.stm</address><date>2007-02-20T15:48:25</date></alert><alert sourceid="0" unread="true" id="alert_46"><title>New footage of JFK's last moments</title><summary>A previously unreleased film of John F Kennedy's motorcade shows new details of the final moments before his killing.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6378463.stm</address><date>2007-02-20T11:04:18</date></alert><alert sourceid="0" unread="true" id="alert_47"><title>Heavy shelling in Somali capital</title><summary>At least 12 people are killed in the heaviest fighting in the Somali capital Mogadishu this year.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/africa/6377941.stm</address><date>2007-02-20T13:22:09</date></alert><alert sourceid="0" unread="true" id="alert_48"><title>Pakistan FM visits bomb survivors</title><summary>Pakistan's foreign minister, in India for peace talks, visits survivors of an attack on a cross-border train.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6379119.stm</address><date>2007-02-20T14:41:38</date></alert><alert sourceid="0" unread="true" id="alert_49"><title>EU reaches emissions cuts deal</title><summary>EU environment ministers agree in principle to cut emissions by 20% by 2020, and seek a global 30% cut.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/europe/6377983.stm</address><date>2007-02-20T13:45:47</date></alert><alert sourceid="0" unread="true" id="alert_50"><title>Most premature baby going home</title><summary>A baby believed to have spent the shortest time in her mother's womb is set to leave hospital in the US.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6377639.stm</address><date>2007-02-20T09:48:15</date></alert><alert sourceid="0" unread="true" id="alert_51"><title>Experts tackle the devil's tumour</title><summary>Scientists meet to discuss ways of saving the Tasmanian devil, which is being ravaged by an unusual cancer.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/asia-pacific/6378279.stm</address><date>2007-02-20T11:40:00</date></alert><alert sourceid="0" unread="true" id="alert_52"><title>Nato troops raid Karadzic homes</title><summary>Nato troops in Bosnia search the homes of the children of indicted war criminal Radovan Karadzic.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/europe/6377711.stm</address><date>2007-02-20T12:53:35</date></alert><alert sourceid="0" unread="true" id="alert_53"><title>Nigerian VP 'cannot be removed'</title><summary>A court rules President Olusegun Obasanjo cannot sack his deputy for joining an opposition party.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/africa/6378625.stm</address><date>2007-02-20T11:50:56</date></alert><alert sourceid="0" unread="true" id="alert_54"><title>Kenya's 'most wanted' shot dead</title><summary>Police kill a man believed to be behind a string of murders and armed robberies in Nairobi.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/africa/6378315.stm</address><date>2007-02-20T11:09:37</date></alert><alert sourceid="0" unread="true" id="alert_55"><title>Salvador politicians found dead</title><summary>The bodies of three politicians from El Salvador and their driver are found in a bullet-riddled car in Guatemala.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6378645.stm</address><date>2007-02-20T11:48:56</date></alert><alert sourceid="0" unread="true" id="alert_56"><title>Philippines approves terror bill</title><summary>The Philippine Congress passes a controversial anti-terror bill aimed at tackling militants in the south.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/asia-pacific/6374875.stm</address><date>2007-02-20T11:21:43</date></alert><alert sourceid="0" unread="true" id="alert_57"><title>Australia pulls plug on old bulbs</title><summary>Australia plans to ditch traditional incandescent filament light bulbs in favour of a greener alternative.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/asia-pacific/6378161.stm</address><date>2007-02-20T10:56:33</date></alert><alert sourceid="0" unread="true" id="alert_58"><title>Royal seeks to revive French bid</title><summary>France's Socialist candidate Segolene Royal tries to revive her presidential bid in a televised appearance.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/europe/6377503.stm</address><date>2007-02-20T13:02:05</date></alert><alert sourceid="0" unread="true" id="alert_59"><title>Rape claim splits Iraq government</title><summary>Allegations Iraqi police raped a Sunni woman threaten to eclipse the government's new security drive in Baghdad.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6378821.stm</address><date>2007-02-20T13:09:02</date></alert><alert sourceid="0" unread="true" id="alert_60"><title>US 'Iran attack plans' revealed</title><summary>US contingency plans for possible air strikes on Iran include most of its military infrastructure, the BBC learns.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6376639.stm</address><date>2007-02-20T10:28:34</date></alert><alert sourceid="0" unread="true" id="alert_61"><title>Gunman kills Pakistani minister</title><summary>A Pakistani provincial government minister is shot dead as she prepares to address a political meeting.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6379169.stm</address><date>2007-02-20T14:30:35</date></alert><alert sourceid="0" unread="true" id="alert_62"><title>Bird flu outbreak in Pakistan zoo</title><summary>An outbreak of the deadly H5N1 strain of bird flu kills four peacocks and a goose in an Islamabad zoo.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6378045.stm</address><date>2007-02-20T09:34:56</date></alert><alert sourceid="1" unread="true" id="alert_63"><title>Canon EOS 40D rumors abound</title><summary>Filed under: Digital CamerasIt all started with an EOS 40D splash page posted (and later pulled) from Canon's official Hong Kong web site. Now the 40D's specs are popping on digicam retail sites all over the Intertubes. Most interesting is the supposed spec sheet posted, pulled, and then extracted from a Belgian site by our tireless Engadget interns; here's what it says: 10.1 megapixel CMOS sensor measuring 22.5 x 15-mm, 5fps burst mode, integrated anti-dust cleaning system, 2.5-inch LCD, and sadly... DIGIC II (not III) image processing. It's that last bit of information which makes us a bit skeptical. Although the DIGIC II can be found in their full-frame 400D, the improved DIGIC III is already loosed thereby bringing the whole spec sheet into question. No worries, if Canon is ready to push the 40D out the door then it'll be soon. The big PMA show kicks off in just a few weeks. Now quit staring at that picture, it's not the 40D.[Via Digital Photography Blog] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93789980/</address><date>2007-02-21T13:17:00</date></alert><alert sourceid="1" unread="true" id="alert_64"><title>Blackberry 8800 now on Cingular</title><summary>Filed under: CellphonesStraighten your ties and button your suit jackets, RIM's promiscuous debutante -- the Blackberry 8800 -- is up and dancin' on on Cingular's website. $500 list, or $300 after $50 mail-in rebate and 2-year contract, the 8800 brings everything we expected: quad-band EDGE, GPS, microSD expansion, Bluetooth 2.0, push-to-talk support, and 5-hours talk / 24-days standby in a 0.55-inch device weighing just 4.73-ounces. 3G data? No. WiFi? Not this time. For that we'll have to hold tight for the anticipated mid-year launch of the 8820. [Thanks, President and everyone who sent this in] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93789982/</address><date>2007-02-21T12:47:00</date></alert><alert sourceid="1" unread="true" id="alert_65"><title>Ubixon's Lubix Bluetooth stereo headsets: the magnets make the magic</title><summary>Filed under: Portable Audio -Here's an interesting twist to the Bluetooth headset from Ubixon -- the UBHS-LC1-3D and UBHS-NC1-3D. These Lubix headsets consist of two, magnetically held halves which can be separated and bunged into the ears or slung around the neck, connected for easy toting. They both simulated 3D sound and Bluetooth 2.0 with support for the A2DP, AVRCP, HSP, and HFP profiles. In other words, they support stereo Bluetooth audio while allowing you to control your like-profiled audio device from up to 10-meters away. They'll even work seamlessly (as seamless as Bluetooth gets anyway) with your cellphone although the LC1 does it a bit better (and bulkier) by flashing the caller's ID on that one-line LCD screen. The 28-gram LC1 delivers 10 hours of talk or 9 hours of music while the NC1 goes 6-hours or 5-hours in a lighter, 22-gram package. The LC1 hits Korea for 79,000KRW ($84) while the NC1 slips in at about 59,000KRW ($63). [Via AVING] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93781795/</address><date>2007-02-21T11:47:00</date></alert><alert sourceid="1" unread="true" id="alert_66"><title>Cellphone-packing smoke detector dials for danger</title><summary>Filed under: Cellphones, Misc. GadgetsWhile most smoke detectors will handle the basic job of detecting smoke just fine (providing you check that batt regularly), there's plenty of options out there for those wanting a little something extra, be it added style or additional functionality. Joining those other over-achieving smoke detectors is this new unit from Japanese manufacturer Keisoku Giken, which will automatically phone you at the first whiff of smoke to inform you of its impending demise. Unfortunately, you'll have to supply your own cellphone and service for it (it doesn't appear to support landlines), which makes the device's already hefty 16,800 yen price tag (about $140) even less of a bargain.[Via Textually.org] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93743515/</address><date>2007-02-21T09:24:00</date></alert><alert sourceid="1" unread="true" id="alert_67"><title>TDK's Xa-10 mini flat panel speakers</title><summary>Filed under: Peripherals, Portable Audio -TDK just slipped NXT's crazy-thin SoundVu technology into your pocket. That's right, the 80 117 x 16-mm (3.15 x 4.6 x 0.63-inch) Xa-10 flat panel speaker brings a 1.2W x 2ch waft of breathy bass you might otherwise choose not to float from your trou. The speakers will accept USB power (or batteries) and a mini-stereo input when they hit Japan in March for just 2,980 or about $25. [Via Impress] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93727030/</address><date>2007-02-21T08:02:00</date></alert><alert sourceid="1" unread="true" id="alert_68"><title>Lexar intros 300x UDMA CompactFlash cards, readers</title><summary>Filed under: Digital Cameras, StorageLexar has already given its SDHC cards a boost this year, and the company doesn't seem to be wasting any time bringing its CompactFlash offerings up to speed as well, today introducing a series of new 300x UDMA CompactFlash cards, as well as a pair of card readers to go along with 'em. Available in 2, 4, and 8GB varities, the cards are said to be 125% faster than the company's current CompactFlash cards, delivering a sustained write time of 45MB per second. To hit that top speed, however, you'll need to use them with a UDMA-enabled device, which are currently a rare breed, although Lexar says it expects "several" UDMA-enabled digital cameras to be announced later this year. In addition those mystery cameras, you'll also be able to get the most out of the cards using one of the two UDMA card readers Lexar's set to release this spring, available in your choice of FireWire or USB 2.0 models for $80 and $50 respectively. The cards themselves should also be released about the same time, although Lexar doesn't seem willing to spill the details on how much they're gonna cost just yet.Read - Photography Blog, Lexar Professional UDMA 300x Memory CardsRead - Photography Blog, Lexar UDMA Card Readers Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93699645/</address><date>2007-02-21T06:31:00</date></alert><alert sourceid="1" unread="true" id="alert_69"><title>Fon wants you to help steal business from Starbucks and T-Mobile</title><summary>Filed under: Wireless, Networking -Oh tricky, sneaky Fon. Fresh off their 10,000 Fonero giveaway, they're stepping up the ante with how they give away their loss-leader routers. Their newest campaign is sure to strike a chord with armchair entrepreneurs and Adbusters fans alike: if you live within the immediate vicinity of a Starbucks (read: WiFi range), Fon would like to send you one of their Foneros. Why? Because, if you recall, when you allow users to connect with your internet connection over your Fonero, Fon splits the profit with you -- $1 for every user (who pays $2 to use your connection). So for every $10 T-Mobile / Starbucks WiFi user you swipe, Fon gives you a buck; now, granted this still isn't a scheme for those paranoid about home network security, bandwidth usage, or nefarious hax0rs type with a spoofed MAC and a keen eye for easy hotspot access, but who knows, for those near Starbucks (yes, they'll be checking against known locations) it might even be worth it to buy a budget DSL line just to profit with Fon. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93662859/</address><date>2007-02-21T05:01:00</date></alert><alert sourceid="1" unread="true" id="alert_70"><title>Vonage to become Vonage Wireless?</title><summary>Filed under: Cellphones, WirelessVoIP provider Vonage has already cut a deal with EarthLink to resell WiFi, presumably to go along with some sort of WiFi phone service, but could they have something way crazier (and more costly) on tap? BusinessWeek speculates that Vonage might be getting into the cellular game by launching an MVNO (Mobile Virtual Network Operator). It's not hard to imagine them offering something similar to T-Mobile's HotSpot @Home service, which lets you use a WiFi-enabled cellphone to make VoIP calls over WiFi and and then seamlessly switch over to cellular networks whenever you're outside WiFi range. The problem is that launching an MVNO is no small undertaking. ESPN shuttered MobileESPN last year after failing to attract more than a handful of subscribers, and Amp'd and Helio have spent hundreds of millions of dollars to carve out a slice of what is an incredibly competitive wireless market (Apple was working on an MVNO to accompany the launch of the iPhone, but scrapped the whole thing once it became obvious how difficult it would be to gain marketshare). Could they do it? Maybe, but not without spending a TON of money, which is why it's more likely that they'll introduce a more modest Voice over WiFi service.[Via GigaOm] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93658206/</address><date>2007-02-21T04:25:00</date></alert><alert sourceid="1" unread="true" id="alert_71"><title>Desktop Digital Photo Cube shows photos on diminutive LCD</title><summary>Filed under: Displays, Misc. Gadgets -Here's one from the same folks who brought you the USB Sound Flash Drive, and while eNECESSITIES' Desktop Digital Photo Cube may not adorn your wall as fashionably as a digiframe might, this piece is made for conversation. Ready to perch atop your living room table or office desk, the cube sports a squint-inducing 1- x 1-inch color LCD display, power / brightness / skip buttons, USB 2.0 connectivity, and the ability to internally store "up to 30 digital photos" for cycling through on the built-in screen. Additionally, the "mood light" should set the tone for the upcoming photo, and those looking for the ultimate party favor can toss their own logo on here for an additional charge. Unfortunately, we're not quite sure just how this snapshot showin' block gets its juice, but those looking to snag 25 or more (sorry, non-bulk customers) can find out for themselves at $51.34 a pop.[Via Everything USB] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93640955/</address><date>2007-02-21T03:42:00</date></alert><alert sourceid="1" unread="true" id="alert_72"><title>IEEE pushing 802.16m WiMAX to 1Gbps, hopes to converge with 4G</title><summary>Filed under: Cellphones, WirelessIf there's one thing that we'll never be satisfied with, it's finding out just how many nanoseconds we can shave off our download times from year to year, and thankfully, the IEEE seems to get that. While it has certainly taken its sweet time with 802.11n, the task force has already voted to make 100G the next Ethernet speed, and now it's pushing to make WiMAX implementations even quicker. Reportedly announced at 3GSM, the IEEE has began working on a new version of the 802.16 standard, dubbed 802.16m, which "could push data transfer speeds up to 1Gbps while maintaining backwards compatibility with existing WiMAX radios." Potentially more interesting than cheering for speed boosts is the group's outright assurance that this protocol will meet the ITU's requirements for 4G, insinuating that it should be the token choice for further 4G developments. Nevertheless, the increased bandwidth is supposedly needed due to convergence between VoIP and various forms of multimedia (IPTV, streaming video, digital downloads, etc.), and however true that may be, some skeptics are still understandably doubting the whole "backwards compatibility" aspect. Still, the IEEE hopes to have this together by "the end of 2009," but considering the team's less-than-stellar track record in the deadline department, we're not holding our collective breath.[Via DailyWireless] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93621068/</address><date>2007-02-21T02:42:00</date></alert><alert sourceid="1" unread="true" id="alert_73"><title>GPS-enabled wind chimes sound off while geo-tracking</title><summary>Filed under: GPS -If you think the Dandellas were outlandish uses of GPS technology, here's one that comes mighty close to one-upping even those. The GPS-enabled wind chimes have DIY written all over them, and while the chimes themselves where purchased (after a failed attempt at creating his own, notably), basically everything else that makes the system tick was homegrown. Utilizing Mologogo, servos, circuit boards, and a good bit of coding, the GPS chimes emit their music whenever the tracked individual's cellphone moves in a user-selected path, essentially acting as an alert that someone's headed to their domicile. Of course, the actual options here are a tad limited (albeit very intriguing), but the foundation of the project could indeed be used for a much broader geo-tracking scenario. Regardless, we know there are folks out there eager to give this a whirl, and thankfully for you, everything you need to know (including the oh-so-critical code) is just a Read link away.[Via MAKE] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93596281/</address><date>2007-02-21T01:42:00</date></alert><alert sourceid="1" unread="true" id="alert_74"><title>Sigma finally cops to a release date for its SD14 DSLR</title><summary>Filed under: Digital Cameras -Well it'll have been over six months between the time we first heard about it and when it actually hits store shelves, but we finally have a solid release date for the somewhat-anticipated, Foveon-packing Sigma SD14 DSLR. If it's possible for you to remember back that far, you may recall that Sigma attempted to drum up some interest in this 14 megapixel shooter with a teaser campaign in late August of last year, just before it was officially announced at Photokina 2006. The disappointment came a few months later when Sigma pushed back the SD14's street launch to March, citing some hardware issue that the company wouldn't disclose. And according to a press release on Sigma's website, the problem has indeed been addressed, with the camera scheduled to ship starting on the 6th of next month. Keep in mind, though, that this model isn't for the thrifty -- it's gonna cost you over $2,000 to get in on this action. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93572592/</address><date>2007-02-21T00:42:00</date></alert><alert sourceid="1" unread="true" id="alert_75"><title>Quantum strikes again, charging iPhone touchscreen infringement</title><summary>Filed under: Cellphones, DisplaysIt's not just Apple's ubiquitous click-wheel that Quantum Research is bothering Apple about these days, Quantum is also fussing about the iPhone's touchscreen technology. "We will be looking very carefully at the iPhone," says Duncan Bryan, licensing director at QR. And wouldn't you know: "The description of the iPhone suggests it uses a rear-surface touch screen, and has proximity sensing which can tell if it is held to the ear. That's a QR capability." No formal lawsuit has been filed yet, but based on Apple's complete denial and counterclaims of QR's December 2005 click-wheel allegations, we're guessing it won't be backing down on this one anytime soon. Apparently this "charge transfer capacitive sensing" stuff has been licensed to Motorola and was invented by QR's founder and CEO Hal Philipp. Usually we'd be content to sit back and watch, but all these Apple-related lawsuits and copycats are getting a little tried -- remember those good old fashioned RIM / NTP days?[Via AppleInsider] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93553936/</address><date>2007-02-20T23:42:00</date></alert><alert sourceid="1" unread="true" id="alert_76"><title>Motion Computing unveils RFID-reading C5 medical tablet PC</title><summary>Filed under: Tablet PCs, WirelessAlthough we sincerely hope your only encounter with a clinical assistant tablet PC comes by way of your occupation, it looks like Motion Computing is busting out a medically-focused device to help the dear LPNs keep things in order for the high-falutin' doctors. The C5 touts a vertically centered design, top-mounted carry handle, handwriting recognition, built-in digital camera for documenting wounds, time-stamp / voice-tag capabilities, and even an optional RFID reader to easily check patients in by scanning their wrist straps. Claiming to be the world's first device in the new mobile clinical assistant (MCA) category of PCs, it packs a 1.2GHz Intel Core Solo U1400 processor, Windows Vista Business or Windows XP Tablet PC Edition, a 10.4-inch XGA touchscreen, up to 1.5GB of DDR2 RAM, 30 / 60GB 1.8-inch hard drive options, 802.11a/b/g, Bluetooth, and a rechargeable Li-ion to boot. Furthermore, it weighs in at just 3.1-pounds, so toting this bad boy around the office shouldn't be too much of a burden, and the "durable, semi-sealed enclosure" shouldn't have any issues handling the daily mishaps of your average doctor's lounge. So if you've been looking for a way to digitize your office and get far, far away from those paper-filled drawers, we're sure your IT rep will be hitting you up soon to sneak a peek at this $2,199 tablet.[Via GottaBeMobile] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93548878/</address><date>2007-02-20T23:08:00</date></alert><alert sourceid="1" unread="true" id="alert_77"><title>Prober P360 GPS / PMP handheld does it all</title><summary>Filed under: GPS -These fanciful all-in-one devices just don't seem to come Europe or North America's way very often, and unfortunately for most, Prober's P360 doesn't seem to be breaking that mold anytime soon. Packing a respectable mix of multimedia and GPS capabilities, this pocket-friendly device packs a 3.5-inch touchscreen display, 400MHz Samsung S3C2440A processor, 64MB of NAND Flash ROM, 64MB of SDRAM, WinCE 4.2 runnin' the show, a SiRF Star III chipset, and a built-in speaker to boot. Furthermore, you'll find a dual-mode map for wrapping your brain around POI locations, voice guidance, a rechargeable five-hour Li-ion battery, SD card slot, USB 1.1, wired remote / headphones, audio out, and the ability to play back WMV, WMA, and WAV files on the AV front, while handling a bevy of snapshot formats and even boasting a text viewer. Unfortunately, we've no idea how much the P360 will run folks who are lucky enough to acquire it in four to six weeks, but just know that most of the world will probably envy you.[Via NaviGadget] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93531504/</address><date>2007-02-20T22:38:00</date></alert><alert sourceid="1" unread="true" id="alert_78"><title>Shredz64 project bringing Guitar Hero to the Commodore 64</title><summary>Filed under: Gaming We've already seen the Guitar Hero controller hooked up to a PC, but hardware hacker Toni has decided up the difficultly level even further, endeavoring to wire the ubiquitous plastic axe to his Commodore 64, complete with an all new "Guitar Hero-like" C64 game. While he's still quite a ways from fully realizing that goal, as the pic above and audio clip on the page linked below show, he is making considerable progress, with all of the guitar's buttons working, although the whammy bar, sadly, remains silent. Unfortunately, it's also been over a month since the last update on the project, so we can only hope that he hasn't given up on it -- there's undoubtedly countless C64s just waiting to be dusted off as soon as the DIY guide is ready.[Thanks, Joseph S] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93511887/</address><date>2007-02-20T22:08:00</date></alert><alert sourceid="1" unread="true" id="alert_79"><title>Thrustmaster unveils bevy of Wiimote accessories</title><summary>Filed under: Gaming -If you can't penetrate the market early, you might as well arrive fashionably late with a tempting pricetag, right?. Apparently, Thrustmaster's trying to do just that with its latest barrage of Wiimote accessories, as the firm's charging (and non-charging) docking stations arrive a few months after JoyTech and Nyko's renditions, and the Wiimote sleeves are almost an afterthought at this point. Nevertheless, the T-Charge NW comes in black or white finishes, charges two AA cells via USB (four included), sports a blue status LED, and of course, neatly holds your dear Wiimote / nunchuck combo. The T-Care NW removes the charging functionality, but still manages to include a set of silicone protector sleeves for one Wiimote / nunchuck tandem, and if you're already set in the dock department, the controller covers are available all by their lonesome as well. Thrustmaster's lineup seems to hit all the main areas of concern, including price, as a set of sleeves will run you $9.99 while the T-Care NW and T-Charge NW demand $14.99 and $24.99, respectively. So if you're intrigued about these budget-friendly offerings and just adore high-resolution shots, head on over to Joystiq for a gallery of photos while you wait for these to land in April.[Via Joystiq] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93508830/</address><date>2007-02-20T21:38:00</date></alert><alert sourceid="1" unread="true" id="alert_80"><title>Sony Cybershot G1 digital camera detailed</title><summary>Filed under: Digital CamerasThat batch of new Sony Cybershots let loose this morning was quite a bit to digest all at once, so we thought we'd take a minute to go over one of the more interesting of the still-to-be-officially-announced cameras in greater detail, namely, the Cybershot G1. Apart from that new (for Sony) model name, the camera's particularly notable for its big 3.5-inch (or possibly 3-inch) LCD and uncommonly spacious 2GB of internal memory. Though less unusual, the camera's other specs are also nothing to sneeze at, with a decent 6 megapixel resolution, 3x optical zoom, Carl Zeiss Vario-Tesar lens, built-in WiFi, and Sony's usual SteadyShot and Anti-Blur features. Still not clear, unfortunately, is the price, although as we mentioned earlier, that should be revealed by the end of the month. Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93489405/</address><date>2007-02-20T21:08:00</date></alert><alert sourceid="1" unread="true" id="alert_81"><title>Magellan preps Maestro 4000, 4040, and 4050 GPS units for release</title><summary>Filed under: GPS -Magellan's been known to toss out GPS units three at a time before, and while the company hasn't come forward yet about its presumably forthcoming trio of navigation devices, we've got the skinny anyway. All three Maestro units will sport a 4.3-inch WQVGA touchscreen display, SiRF Star III chipset, and an in-car mounting kit, but the similarities basically end there. On the low-end, you'll find NAVTEQ maps for the 48 contiguous United States, QuickSpell, 1.6 million POIs, and a rechargeable battery with around three hours of juice. The 4040 steps it up by adding more detailed map coverage, 4.5 million POIs, text-to-speech / Bluetooth capabilities, and by playing nice with the real-time traffic add-on service. The flagship unit boasts all the capabilities of its lesser siblings, but also adds traffic functions right out of the box as well as voice recognition software. The Maestro 4000 / 4040 are each slated to land in "early April" for $449.99 / $599.99, respectively, while the high-end 4050 will demand a somewhat steep $799.99 for its niceties when it arrives in May.Read - Magellan Maestro 4000Read - Magellan Maestro 4040Read - Magellan Maestro 4050[Via GPSGazette] Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93486827/</address><date>2007-02-20T20:38:00</date></alert><alert sourceid="1" unread="true" id="alert_82"><title>AMD's new consumer flagship proc, the X2 6000+</title><summary>Filed under: Desktops -The 90nm Athlon 64 X2 processor line looks close to its last breath with the X2 6000+, a 3GHz monstrosity designed as a consumer equivalent to the FX-74. The 6000+ is limited to single processor systems, none of those quad-core frivolities the FX-74 is known to partake in, but the chip can still suck down a maximum of 125 watts, and carries 1MB of L2 cache per core. Where the 6000+ processor really departs from its enthusiast sibling is the $464 pricetag, less than half the cost of a FX-74. The chip is a few months late -- it was slated for Q4 2006 originally -- and will be followed by an 89 watt version in the third quarter of this year, along with a slightly less beefy 5800+ edition, but then its quitsville for AMD's 90nm creations. 65nm here we come! Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93476480/</address><date>2007-02-20T20:08:00</date></alert><alert sourceid="1" unread="true" id="alert_83"><title>ACCS GRAViTONUS gives quadriplegics tongue-controlled computer interface</title><summary>Filed under: Desktops, Misc. Gadgets -While other forms of alternative computing are certainly available, yet another group of researchers are touting their own rendition as a radical new way for quadriplegics to engage in computerized learning and entertainment. Dubbed the Alternative Computer Control System (ACCS) GRAViTONUS, the proposed hands-free system would enable folks who have suffered spinal cord injuries or other forms of paralysis to dictate basic computer functions entirely with their tongue. The prototype looks to be quite non-invasive, and when worn around one's head, can enable users to mouse around and navigate within applications by way of a precise tongue-controllable interface. Interestingly, it's even stated that the device won't hinder one's ability to drink, speak, or breathe, but we assume you'd have to give the mouthpiece a good washing after every use to avoid bacterial buildup. Nevertheless, the ACCS GRAViTONUS backers are now scouting VCs who'd like to get this creation to market, so if you've been looking for something intriguing to get wrapped up in, give these blokes a ring. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93458983/</address><date>2007-02-20T19:38:00</date></alert><alert sourceid="1" unread="true" id="alert_84"><title>Hello Kitty embraces warming blankets, gets fired up via USB</title><summary>Filed under: Misc. Gadgets -If you think we were baffled after seeing Hello Kitty USB foot warmers, you probably can't imagine the speechlessness we all feel when seeing the USB-powered lap warmer. Considering that anyone who would actually toss out their hard-earned dollars on feline feet heaters would likely not have the will power to resist this mat, it's fairly to say to say that this is a must-have for hardcore fans braving the tail end of winter. No word on just how large this thing is, nor if poses any eruption capabilities like one of its siblings (clones?), but judging by the mat-to-USB-connector ratio, this kitty ought to warmly cover a litter or two at least. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93453293/</address><date>2007-02-20T19:08:00</date></alert><alert sourceid="1" unread="true" id="alert_85"><title>Graffiti Research Lab's L.A.S.E.R. Tag</title><summary>Filed under: Displays - Lessee here, we've got lasers, creative input devices, a "stick it to The Man" aesthetic and a Mooninite -- sounds like a successful night of hacking to us. Graffiti Research Lab and friends hacked together a high powered projector with some computer components and a camera to track the writings of a 60mW Green Laser on the side of a building in Rotterdam and project it as blue graffiti. The resulting art looks surprisingly good, and the perpetrators were kind enough to document the event, along with providing instructions for doing up your own version. It's hard to describe, so we recommend peeping the video after the break, or the better quality vids and pics over at the read link.[Thanks, Teferri]Continue reading Graffiti Research Lab's L.A.S.E.R. Tag Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93438390/</address><date>2007-02-20T18:42:00</date></alert><alert sourceid="1" unread="true" id="alert_86"><title>Australia to phase out incandescent bulbs by 2010</title><summary>Filed under: HouseholdWhile some US cities like Raleigh are already planning steps to cut back on energy wastes by converting to more efficient lighting systems, it looks like the entire continent of Australia could be following suit. Claiming to be the "world's first" national government to phase out incandescent light bulbs in favor of the more "fuel-efficient, compact fluorescent bulb," environment minister Malcolm Turnbull is hoping to "cut Australia's greenhouse gas emissions by four million metric tonnes a year by 2015." Citing the "climate changes" the world is facing as a "global challenge," Turnbell also urged other nations to follow suit in making a difference, but didn't exactly open up his personal wallet to stock our households with those uber-pricey bulbs. Interestingly, some environmentalists feel that the bulk of greenhouse gas emissions come from government and business-related activities, which should presumably take priority over swapping out a country's light bulbs. Still, we've got no complaints with hooking homes up with LED / fluorescent options to help Mother Earth, but shouldn't Australia (and America, too) ink its name on the Kyoto Protocol before getting all high and mighty about saving the planet? Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93432534/</address><date>2007-02-20T18:08:00</date></alert><alert sourceid="1" unread="true" id="alert_87"><title>Palm makes Treo 700wx official for Verizon</title><summary>Filed under: Cellphones, Handhelds -Palm and Verizon have made official today what we've known now for a while (as have Sprint and Alltel): 32MB of RAM in a Windows Mobile 5 device just doesn't really cut it. The Treo 700wx rights the 700w's wrongs with an extra 32MB of memory for a grand total of 64MB; otherwise, though, the device is all but identical to its older sibling, with Windows Mobile 6 sadly nowhere in sight. Get it now while it's hot at Verizon stores or online for a stiff $399 on 2-year contract after $100 rebate. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93414274/</address><date>2007-02-20T17:40:00</date></alert><alert sourceid="1" unread="true" id="alert_88"><title>Powered bumpers defend your smart car when all else fails</title><summary>Filed under: Robots, Transportation -Smart cars are all well and good until you start to think of the horrible consequences if something should go wrong. Honestly, we're willing to take that risk just for the rewards of cruising along in a robotic car "platoon": saving gas, skipping traffic and perhaps getting in a bit of Gears of War while we're at it. Luckily, more judicious minds than ours are hard at work at the problem, and just might've discovered a way to keep smart car-filled roads from becoming riddled with the bodies of overly-optimistic bloggers. Alasdair Renfrew of Manchester University, UK, along with a couple of colleagues, has devised an extendable fender that can keep you safe and humming along the freeway, even when traditional wireless communications fail. The smart cars will traditionally be communicating with each other and roadside beacons wirelessly, and if one of those elements breaks down, the cars bust out powered bumpers to feel the car in front and navigate accordingly. That way, as long as the front car of a pack keeps to the speed limit and in its lane, the group should be fine -- and your Xbox session needn't be interrupted. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93410533/</address><date>2007-02-20T17:08:00</date></alert><alert sourceid="1" unread="true" id="alert_89"><title>GoogleFi gives 360 addicts Xbox Live on the go</title><summary>Filed under: Gaming, Transportation, Wireless - Obviously, quite a few possibilities open up when your whole town is wired for WiFi, but we can't say we really pegged drive-by 360 play as one of them. Mountain View, CA residents Brandon Wirtz and Jake Ludington fixed up Brandon's Jeep with 23-inch Samsung LCD and an Xbox connected to Google WiFi via Jake's laptop. The total cost of wire-free 360 action is about $4000 if starting from scratch, but isn't that a small price to pay for the freedom to frag?[Via BBC News] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93394047/</address><date>2007-02-20T16:38:00</date></alert><alert sourceid="1" unread="true" id="alert_90"><title>Cingular's BlackBerry 8800 unboxed</title><summary>Filed under: Cellphones -He got us those original BlackBerry 8800 shots, so we're guessing these unboxing pics of the phone here were no sweat for Boy Genius. We still can't claim to be crazy about the device, which launched last week, but we're sure plenty of suits will be glad to replace their aging CrackBerries with this fancy new QWERTY version. As a side note -- could Cingular's boxes be any more boring? Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93388948/</address><date>2007-02-20T16:08:00</date></alert><alert sourceid="0" unread="true" id="alert_91"><title>Blair announces Iraq troops cut</title><summary>Tony Blair says he hopes to cut the number of UK troops in Iraq from 7,100 to 5,000 within months.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/uk_politics/6380933.stm</address><date>2007-02-21T13:15:15</date></alert><alert sourceid="0" unread="true" id="alert_92"><title>Tehran dismisses threat of force</title><summary>Iran's top nuclear negotiator dismisses threats of force against it, as the UN prepares to make a crucial report.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6380879.stm</address><date>2007-02-21T02:38:26</date></alert><alert sourceid="0" unread="true" id="alert_93"><title>Zimbabwe's police ban protests</title><summary>Zimbabwe police ban protests as Robert Mugabe marks his 83rd birthday by vowing to stay on as president.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/africa/6382405.stm</address><date>2007-02-21T11:35:20</date></alert><alert sourceid="0" unread="true" id="alert_94"><title>S Asia rivals sign nuclear pact</title><summary>India and Pakistan sign an agreement to reduce the risk of accidental nuclear conflict in the region.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6381261.stm</address><date>2007-02-21T11:54:32</date></alert><alert sourceid="0" unread="true" id="alert_95"><title>Iraq PM sacks 'rape case' critic</title><summary>Iraq's prime minister moves to put an end to disquiet about an alleged rape of a Sunni women by police.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6382119.stm</address><date>2007-02-21T13:01:17</date></alert><alert sourceid="0" unread="true" id="alert_96"><title>Maoists walk out of Nepal camp</title><summary>Hundreds of former Maoist rebels walk out of a holding camp in Nepal, complaining of poor conditions.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6382093.stm</address><date>2007-02-21T12:16:21</date></alert><alert sourceid="0" unread="true" id="alert_97"><title>Philippines army is 'in denial'</title><summary>A UN envoy says the Philippines army is in "almost total denial" about a wave of extra-judicial killings.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/asia-pacific/6381291.stm</address><date>2007-02-21T05:15:15</date></alert><alert sourceid="0" unread="true" id="alert_98"><title>Stars raise $1.3m for Obama</title><summary>Celebrities donate $1.3m to Democrat Barack Obama's presidential campaign at a lavish Beverly Hills fund-raiser.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6381375.stm</address><date>2007-02-21T07:55:03</date></alert><alert sourceid="0" unread="true" id="alert_99"><title>Britney Spears 'back into rehab'</title><summary>Pop star Britney Spears is back in rehab, days after shaving her head, US media reports say.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/entertainment/6380827.stm</address><date>2007-02-21T09:02:53</date></alert><alert sourceid="0" unread="true" id="alert_100"><title>Football: Lille 0-1 Man Utd</title><summary>Ryan Giggs' controversial late winner for Man Utd almost sparks a Champions League walk-out by Lille.</summary><address>http://news.bbc.co.uk/go/rss/-/sport1/hi/football/europe/6371329.stm</address><date>2007-02-20T21:38:44</date></alert><alert sourceid="0" unread="true" id="alert_101"><title>UN backs peace force for Somalia</title><summary>The UN Security Council approves the deployment of an African peacekeeping force to tackle unrest in Somalia.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/africa/6381189.stm</address><date>2007-02-21T08:39:08</date></alert><alert sourceid="0" unread="true" id="alert_102"><title>Big Anglo American profits jump</title><summary>Mining giant Anglo American is to return $3bn to shareholders after reporting a 46% rise in annual profits.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/business/6381739.stm</address><date>2007-02-21T09:36:52</date></alert><alert sourceid="0" unread="true" id="alert_103"><title>US probes troops' neglect claims</title><summary>The US says it is reviewing the way its wounded soldiers are cared for at hospitals, after critical media reports.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6381453.stm</address><date>2007-02-21T09:17:06</date></alert><alert sourceid="0" unread="true" id="alert_104"><title>No end to deadly Bolivian floods</title><summary>Up to 340,000 people have been affected by continuing flooding in Bolivia, which has left 35 people dead.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6380331.stm</address><date>2007-02-20T18:25:36</date></alert><alert sourceid="0" unread="true" id="alert_105"><title>Japan ups interest rates to 0.5%</title><summary>Japan's central bank shows signs of confidence in the country's economy, raising interest rates to 0.5%.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/business/6381335.stm</address><date>2007-02-21T08:07:26</date></alert><alert sourceid="0" unread="true" id="alert_106"><title>Prison demand for Poso suspects</title><summary>Indonesia prosecutors seek 20 year jail terms for three men accused of beheading Christian schoolgirls.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/asia-pacific/6381511.stm</address><date>2007-02-21T08:40:06</date></alert><alert sourceid="0" unread="true" id="alert_107"><title>Denmark to pull troops from Iraq</title><summary>Denmark will withdraw its troops from Iraq by August, Danish Prime Minister Anders Fogh Rasmussen says.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6382675.stm</address><date>2007-02-21T13:07:30</date></alert><alert sourceid="0" unread="true" id="alert_108"><title>Leaders discuss UN's Kosovo plan</title><summary>Serbian and ethnic Albanian leaders are holding final talks in Vienna on the UN plan for Kosovo's future.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/europe/6380565.stm</address><date>2007-02-21T11:48:45</date></alert><alert sourceid="0" unread="true" id="alert_109"><title>Iran 'swiftly seeks nuclear goal'</title><summary>Iran's president says he wants nuclear power as soon as possible, as critics in Iran urge him to accept UN demands.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6381477.stm</address><date>2007-02-21T12:10:51</date></alert><alert sourceid="0" unread="true" id="alert_110"><title>Militant dies in Israeli ambush</title><summary>Israeli undercover agents kill a commander of the militant Islamic Jihad group in the northern West Bank.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6381653.stm</address><date>2007-02-21T08:49:42</date></alert><alert sourceid="0" unread="true" id="alert_111"><title>India eyes Scotch takeover</title><summary>An Indian businessman is set to complete a deal to buy Scottish whisky firm Whyte and Mackay for ?550m.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/business/6381339.stm</address><date>2007-02-21T13:04:47</date></alert><alert sourceid="0" unread="true" id="alert_112"><title>India boat capsize bodies found</title><summary>Rescue workers recover bodies of 15 children and three men from a school trip boat accident in India.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6381289.stm</address><date>2007-02-21T04:57:46</date></alert><alert sourceid="0" unread="true" id="alert_113"><title>Blair announces Iraq troops cut</title><summary>Tony Blair says he hopes to cut the number of UK troops in Iraq from 7,100 to 5,000 within months.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/uk_politics/6380933.stm</address><date>2007-02-21T13:44:46</date></alert><alert sourceid="0" unread="true" id="alert_114"><title>Fear as cyclone nears Mozambique</title><summary>Mozambique is on the highest level of alert as a cyclone with winds of up to 175km/h approaches.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/africa/6383675.stm</address><date>2007-02-21T17:06:58</date></alert><alert sourceid="0" unread="true" id="alert_115"><title>Italian PM faces coalition crisis</title><summary>Italy's Romano Prodi calls a special cabinet session after his fragile coalition loses a key foreign policy vote.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/6383051.stm</address><date>2007-02-21T17:22:45</date></alert><alert sourceid="1" unread="true" id="alert_116"><title>Fujifilm's FinePix S5700</title><summary>Filed under: Digital Cameras - Another hot off the pre-PMA presses, Fujifilm's got their new FinePix S5600 followup ready to go, the S5700. It's got a 10x zoom, 7.1 megapixel sensor, 2.5-inch display, 1600 ISO setting, image stabilization, 27MB internal memory, and, you're not going to believe this, xD and SD support. Unfortunately it uses four AA cells instead of a nice Li-ion battery. No price just yet, but the black model lands (somewhere) at the end of March, with the silver following in April.Gallery: Fujifilm's FinePix S5700 Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94150403/</address><date>2007-02-22T06:14:00</date></alert><alert sourceid="1" unread="true" id="alert_117"><title>Fujifilm's FinePix A820 and A900 for consumers</title><summary>Filed under: Digital Cameras - Just like Canon's new PMA-bound A Series cameras, Fujifilm's new A820 and A900 cameras don't really break a lot of new ground, but there sure is a lot more megapixel bang-for-buck going on here. For $180 and $200, respectively, the A820 brings 8 megapixels and the A900 goes for 9, while both camera have 4x zooms and 2.5-inch LCDs. Unfortunately, there doesn't seem to be any form of optical image stabilisation here, nor any of those much-hyped Face Recognition AF/AE features we've been seeing in other PMA offerings, but if all you're looking for is pixels and lots of 'em, you can't go far wrong with this pair of FinePix, which will be hitting shelves in March. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94137650/</address><date>2007-02-22T05:46:00</date></alert><alert sourceid="1" unread="true" id="alert_118"><title>Canon's new PowerShot A570 and A560</title><summary>Filed under: Digital Cameras - Canon sure likes to yuk it up with the "A Series" puns. "A" for affordable, for the AA batteries you can stick in these things, for the "A" Team the cameras represent -- it's a real riot. Luckily, "affordable" doesn't have to mean "boring" anymore, and these two PowerShots include fancy 4x zooms, 7.1 megapixel CCDs, 2.5-inch LCDs and that DIGIC III processor for speedier operation, along with 1600 ISO and Face Detection. Sound familiar? You can have it all for a few more bucks, 1x less zoom and quite a bit more pocketability in the Digital ELPH series. What the A570 adds that the A560 and those ELPH cousins lack is optical image stabilisation. You can pick one up for $280, or if you don't mind the blur, grab an A560 for $230. Both will be out in March.Gallery: Canon's new PowerShot A570 and A560 Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94115873/</address><date>2007-02-22T04:43:00</date></alert><alert sourceid="1" unread="true" id="alert_119"><title>Canon's compact PowerShot TX1 captures 7.1 megapixel stills and HD video</title><summary>Filed under: Digital Cameras - Watch out, Sanyo, because your diminutive HD2 camcorder is about to face some very daunting competition from Canon. Like the recently announced Sanyo, the PowerShot TX1 packs a 7.1 megapixel CCD into a tiny little package capable of capturing 720p HD video as well -- but unlike the $700 HD2, Canon is hanging just a $500 pricetag on this model. Besides its one-two punch of high resolution stills and videos, this device offers a 10x optical zoom (with an optically-stabilized lens), a 115,000 pixel LCD, and ISO settings ranging from 80 to 1600. You're also getting the latest Digic image processor, advanced face detection and red eye reduction, Vista-compatibility, 14 shooting modes, and a so-called "Intelligent Orientation Sensor" to keep the display looking right no matter how you're holding the cam. No word so far on a release date, but with all this functionality at a very attractive price, you can probably expect the TX1 to fly off shelves when it finally makes its debut.Gallery: Canon's compact PowerShot TX1 captures 7.1 megapixel stills and HD video Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94113961/</address><date>2007-02-22T04:25:00</date></alert><alert sourceid="1" unread="true" id="alert_120"><title>Canon debuts SD750 and SD1000 Digital ELPH cameras</title><summary>Filed under: Digital Cameras - Two new compact and fashionable PowerShot Digital ELPHs from big C, the SD750 and SD1000. Canon seems to be mostly focused on the looks here: we've never seen a growed-up digicam manufacturer be so proud of "Dynamic Dual-Tone Elegance," but there's decent stuff under the hood. Like most of the PMA-bound cameras we've spotted, these include Face Detection-based auto focus, auto exposure and red-eye correction. There's also the DIGIC III Image processor, and ISO as high as 1600, but everybody comes for the basics: 3x zoom, 7.1 megapixel CCD and a 2.5-inch LCD in each shooter. The $300 SD750 gets a bit fancy on form factor, but manages to be a mere 0.75-inches thick, while the 4.5 ounce SD1000 keeps the the classic ELPH look and also retails for $300. Both should be out in March, and include 32MB SD cards for good luck, though no mention is made of SDHC. Remember, it's fashion first for this line.Gallery: Canon debuts SD750 and SD1000 Digital ELPH cameras Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94113962/</address><date>2007-02-22T04:23:00</date></alert><alert sourceid="1" unread="true" id="alert_121"><title>Canon's EOS-1D Mark III DSLR with live LCD</title><summary>Filed under: Digital Cameras - Canon's latest pro DSLR is officially here as of tonight: welcome the EOS-1D Mark III. This 10.1 megapixel shooter can fire 10fps in bursts of up to 110 large JPEGs or 30 RAW files with is dual DIGIC III processor. It also features a really friggin light sensitive APS-H size 28.1 x 18.7mm CMOS sensor with ISO modes up to 3200 (it's also got a "highly usable" just-in-case 6400 mode sure to kill image quality), but the real winner here is the 3-inch live LCD (with 5 and 10x magnification for locking that zoom). There's also a new WFT- E2A Wireless File Transmitter option for dumping to external storage and even GPS geotagging, the OSK-E3 Original Data Security Kit for file encryption and verification (if your images are just that valuable), the Speedlite 580EX II flash, and EF 16-35mm f/2.8L II USM lens. We don't yet have word on price or release date, but you know what they say about having to ask.Gallery: Canon's EOS-1D Mark III DSLR with live LCD Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94110286/</address><date>2007-02-22T04:16:00</date></alert><alert sourceid="1" unread="true" id="alert_122"><title>S1Digital's impressive new lineup of Media Centers</title><summary>Filed under: Home Entertainment, Media PCsMedia Centers are so in now and that you have to really do something to make your black box stand out, and S1Digital's new lineup of media centers and servers does just that. Actually there are two series, the ProLine for professional installers and home automation companies and the Home Series for the rest of us. The Home Series includes the Platinum, Gold and Mighty editions, all running Core 2 Duo processors and Vista Home Premium. The Mighty is the size of a book and includes built in WiFi and DVD burner. Up next is the Gold, which is a more traditional size and adds up to 1TB of storage, HDMI, 2 ATSC and 2 NTSC tuners (sorry no CableCARD here), 7.1 audio and Viiv. The Platinum tops the Home Series, adding a quiet design an internal scaler and optional HD DVD or Blu-ray drive. But they don't stop there and are trying to join Niveus in the high end market with the ProLine Series, which of course does everything the Home series does, but with Vista Ultimate, rack mountable, a silent design and two-way control for all your favorite home automation systems like Crestron and AMX. As impressive as this lineup is, we are once again left wonder, where are the CableCARDs?Read: S1Digital Introduces the Home Series Line of Media CentersRead: S1Digital Sets a New Reference Standard with ProLine Series Media Centers Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94110287/</address><date>2007-02-22T04:04:00</date></alert><alert sourceid="1" unread="true" id="alert_123"><title>Apple and Cisco settle! iPhone name to be used by both</title><summary>Filed under: Cellphones - - -Here's one we didn't exactly see coming (at least not like this): Apple and Cisco have settled that "silly" lawsuit, with Apple agreeing to guarantee the exploration of "interoperability in the areas of security, and consumer and enterprise communications" according to the WSJ. We don't know exactly what that means, but it doesn't sound fantastic for Jobs, who we're sure wanted to have exclusivity over the name without cutting a partnership with Cisco, and didn't want to have to pay a red cent for it. But this does sound a lot like what Cisco wanted initially from Apple, and might possibly wind up in some kind of SIP / VoIP solution that allows iPhones and iPhones to communicate. Apparently both will make use of the trademark in the market (i.e. Apple's and Cisco's iPhones will both continue to be iPhones), and all's well that ends non-litigious.[Thanks, Nick and Jay] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94075975/</address><date>2007-02-22T02:42:00</date></alert><alert sourceid="1" unread="true" id="alert_124"><title>Nintendo Wii beats up on the competition in power savings</title><summary>Filed under: Gaming, Home Entertainment -So, the graphics might just be warmed over GameCube fare, but the Wii sure does take those wimpy specs and runs with 'em. A new showdown between the big three home consoles and a mid-range PC doesn't compare games or GPUs, but rather power consumption, and the Wii wins by a landslide. The watts don't just bleed during gameplay, DVD playback seems to require immense effort from the 360 and PS3, and even the consoles in "idle" mode consume about ten times the watts of the Wii. Of course, the consoles consume a minimal amount of power in standby, which is substantially more when the Wii's Connect24 service is on, but not quite a deal breaker, just about a $1 a month of power. So if you're looking to shave a few bucks off your power bill or do your treehuggin' duty to the environment, it looks like the choice is fairly obvious -- though you'll naturally have to look elsewhere than the Wii to get your video playback kicks.[Via Joystiq] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94066659/</address><date>2007-02-22T02:09:00</date></alert><alert sourceid="1" unread="true" id="alert_125"><title>Frenzy Rumble transforming headphones: lamer it sounds</title><summary>Filed under: Misc. Gadgets, Portable Audio -You know, a Transformers movie was really its own reward, but all these transforming gadgets -- movie related and no -- are really making it all the more exciting, especially when we're talking completely superfluous fluff. Take these new Frenzy Rumble Earphones, for example. There's no reason you'd want 'em on your head, and there's no way they push out an adequate volume for desktop use when in that transformed state. A perfect blend of uselessness and inconvenience. You can get yours in July for about $37.[Thanks, Aaron D] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94046982/</address><date>2007-02-22T01:14:00</date></alert><alert sourceid="1" unread="true" id="alert_126"><title>Bill Gates clamps down on daughter's internet time</title><summary>Filed under: Desktops, Laptops, Tablet PCsSure, we've seen individuals getting their hand slapped (or worse) for browsing the internet a bit too often, but you'd assume that having a dad who envisioned the Redmond powerhouse and pays the bills by way of computing would be the perfect father figure for the computer-addicted. Apparently, that's not exactly so, as a recent Reuters report tells of Bill Gates himself clamping down on his 10-year old daughter's internet and gaming time. According to Bill, his oldest gal wasn't even into the 'net until this school year, where tablet PCs became a necessary tool, but now that she's found access to a never-ending supply of information, her habits have suddenly changed. She latched onto Viva Pi ata, purportedly playing for "two to three hours per day," after which her health started deteriorating and her chore accomplishments plummeted. Although we mention those last bits in jest, Mr. Gates slapped down a "45-minutes per day" law for non-school related computing tasks on the weekdays, and added just 15 minutes for weekends, probably garnering quite the evil eye and stirring up early thoughts of rebellion in his youngster. Seriously Bill, if you're that worried about daddy's little girl stumbling upon some form of cyber predator, there's always the parent-approved IM-Me, but throwing time restrictions on your own products is just a tad illogical, no?[Via BloggingStocks, thanks Randall] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94027868/</address><date>2007-02-22T00:19:00</date></alert><alert sourceid="1" unread="true" id="alert_127"><title>Pentax busts out Hasselbladian 31.6 megapixel 645 Digital</title><summary>Filed under: Digital Cameras - Pentax has apparently tapped Kodak to provide its 31.6 megapixel KAF-31600 medium format CCD for the upcoming 645 Digital, which would seem to be the company's highest resolution digital camera to date. So far all that's known from the pre-PMA announcement is that the 645 will sport both SD and CF slots, and will ship with a specially-built 55mm lens that's also compatible with 645-series SLR film cameras. We should find out more about this behemoth in early March -- although possibly not pricing and release info -- but one thing we can say for sure is that if it's priced anything like the Hasselblad H3D-31 whose sensor it shares, expect to pay out well into five figures.[Thanks, David N.] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94009335/</address><date>2007-02-21T23:24:00</date></alert><alert sourceid="1" unread="true" id="alert_128"><title>Pentax pops out the Optio W30 and A30</title><summary>Filed under: Digital Cameras -There's some heated competition already for our PMA eyeballs, and Pentax sure wants a slice. They don't have anything terribly outstanding on the consumer end, but these W30 and A30 Optio shooters still do pretty well for themselves. The A30 (pictured) takes a pretty traditional approach to the compact genre, boosting the megapixels to 10 and offering up 2.5-inches of LCD. There's also ISO 3200 and some fancy gyro-based shake reduction, along with face recognition auto focus and auto exposure, all in a pretty dang compact SDHC-munching body. The W30 steps it back a bit, with a 7.1 megapixel CCD and mere digital shake reduction, but the rest of the specs are there, along with a waterproof and dustproof housing that can handle being up to three meters under water for two hours. No word on price or availability for either camera, but we're sure we'll be finding out soon enough. Peep the W30 after the break.[Thanks, David N]Read - Optio A30Read - Optio W30Continue reading Pentax pops out the Optio W30 and A30 Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/94000890/</address><date>2007-02-21T23:09:00</date></alert><alert sourceid="1" unread="true" id="alert_129"><title>Xbox 360 Wireless Receiver for Windows now available</title><summary>Filed under: Desktops, Gaming, Peripherals, Wireless -It sure took its own sweet time to make it to market -- we first saw this thing at E3 in 2006 -- but the Xbox 360 Wireless Receiver for Windows is finally available for purchase. The adapter lets you use your standard wireless 360 peripherals, such as the Xbox 360 Wireless Controller and Wireless Headset, with your Windows PC. That means Windows users, which have been enjoying the fruits of a USB 360 controller since before the console launched, can finally get in on some wireless action, and it'll only cost them $20 for the privilege. It also means that much more fun for upcoming Games for Windows titles such as Shadowrun, UNO and Halo 2, along with generic game controls and VoIP functionality. Microsoft is also releasing a $60 package which includes a receiver and a wireless controller. Both items should be available at retail now. Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93985665/</address><date>2007-02-21T22:24:00</date></alert><alert sourceid="1" unread="true" id="alert_130"><title>Engadget Podcast 100 - 02.21.2007</title><summary>Engadget Podcast 100</summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93966098/</address><date>2007-02-21T21:49:00</date></alert><alert sourceid="1" unread="true" id="alert_131"><title>Switched On: What of the Wii-buked?</title><summary>Filed under: Features, Gaming -Each week Ross Rubin contributes Switched On, a column about technology, multimedia, and digital entertainment: - -Nintendo has been on an Apple-like hit parade since the disappointing market performance of the GameCube. The DS and DS Lite handily staved off highly touted competition from Sony. The PSP may have appealed to a different, if for now narrower, demographic, but units are units, and there's no escaping them when you're marketing a platform. -The launch of the Wii has been nothing but magic mushrooms from the hype around the controller to the E3 reception to late-night Wii Tennis face-offs between Conan and Serena Williams. Check out this apologetic fan comment on Amazon's product page: "Graphics might not be high definition, but it looks very close to the Xbox 360 and PS3 when not running in HD mode. And definitively better than the original Xbox and PS2." Better than the Xbox and PS2, eh? That's setting the sensor bar pretty low for a system that shipped six years after the PS2. -Yet, it's no suprise that the Wii has been highly sought. I thought it was the best consumer technology product of 2006. The Nintendo team has executed almost flawlessly, but the company has brushed aside criticisms regarding product shortages without so much as a flick from a Wiimote. Commenting earlier this month on the mayhem surrounding Sony's PlayStation 3's product launch shortages, Nintendo of America vice president of marketing and corporate affairs Perrin Kaplan noted that "we didn't have anyone in line that got shot waiting for our system. So there's one sign of the different approaches between our two companies."Continue reading Switched On: What of the Wii-buked? Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93966099/</address><date>2007-02-21T21:34:00</date></alert><alert sourceid="1" unread="true" id="alert_132"><title>Sirius' and XM's merger presentation revealed</title><summary>Filed under: Portable Audio, Portable Video - Brace yourself: corporate speak ahead. We normally aren't in for all this "cost synergies" and "roadmap" hogwash that all the suits seem to get so hot for, but when it comes to a merger of two cutthroat competitors like this, we couldn't help but take a peek. Other than the technology improvements we mentioned, there isn't much talk about consumer benefits in here, and there's absolutely no mention of creating some sort of single satellite radio provider, just the power of combined resources. Most of the talk is directed at shareholders and those "synergies" that help out the bottom line -- to the tune of an estimated $3-7 billion in savings, though a $4 billion "flex" does seem to cast a bit of doubt on those numbers. The rest of the slides deal with plans for getting regulatory approval, which basically amount to arguing the case of intense competition from radio, iPods and other emerging wireless standards (see above). That said, XM and Sirius seem quite confident of success on the regulatory end of things, and look to have put a quite a bit of thought into it. Pending approval from the feds, along with respective shareholder go-ahead, XM and Sirius plan on sealing the deal by the end of 2007.Gallery: Sirius and XM's merger presentation revealed Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93959647/</address><date>2007-02-21T21:12:00</date></alert><alert sourceid="1" unread="true" id="alert_133"><title>Art Lebedev intros Verbarius electronic clock</title><summary>Filed under: Misc. GadgetsArt Lebedev may be best known these days for its various display-ridden peripherals, and the delays and uncertainty surrounding each, but the prolific design firm's got plenty more on its plate, to which it's now added the Verbarius electronic clock. As you can see above, the clock does away with the usual time-telling tools in favor of spelling things out, in five different languages no less. What's more, it changes up its verbiage each time you ask it the time, displaying variations like "forty-five minutes past four," "fifteen minutes to five," "four forty-five", and "a quarter to five." This being Lebedev, of course, they're also taking their time to build up anticipation in the device, with the clock supposedly set to only begin shipping in November. You can get your pre-orders in now, however, with a discount price of $158.25 available to those who order before September 1st, after which it'll set you back about $180. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93944802/</address><date>2007-02-21T20:44:00</date></alert><alert sourceid="1" unread="true" id="alert_134"><title>HTC "Gene" makes FCC appearance</title><summary>Filed under: Cellphones, Handhelds -After a fairly productive 3GSM last week showing off new Windows Mobile 6 wares in the form of the Vox and the Advantage, everyone's favorite Taiwanese Windows Mobile ODM has graced us with this here "Gene" (or at least we think that's what it's called, based on its model number, GENE100) via our usual Tipster Extraordinare, the FCC. The specs aren't really enough to knock our socks off -- data tops out with quadband EDGE, the cam is a simple 2 megapixel unit, plus the usual Bluetooth 2.0, 128MB of ROM, 64MB of RAM, and QVGA display atop a 201MHz TI OMAP850 -- but at this point, we're still happy to get whatever new Professional hardware we can get. Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93941965/</address><date>2007-02-21T20:24:00</date></alert><alert sourceid="1" unread="true" id="alert_135"><title>Helio's Pantech PN-810 QWERTY device pops up in FCC</title><summary>Filed under: Cellphones, Handhelds -And here it is, Helio's coup de gr ce. The QWERTY handset we'd heard Helio was cookin' up with Korea's Pantech actually hit the FCC some time ago, but the shots we were able to glean from the test apparatus documentation were teasers at best. Thanks to the wonders of expired confientiality agreements, that same FCC documentation now yields a bounty of goodness, including a user's manual and a full array of pictures. The so-called PN-810 gives the illusion of a dual slider, but actually employs two distinct layers to provide two completely different keypads depending on the slide direction: QWERTY in one, numeric in the other. Key features (other than the unusual form factor, of course) include a 2.1 megapixel cam, Bluetooth, and the full array of goodies that comes with Helio membership. A release date remains uncertain, but the PN-810's been chilling with the feds for some time now, so we wouldn't be terribly surprised to see it hit in the near term.Gallery: Helio's Pantech PN-810 QWERTY device pops up in FCC Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93938442/</address><date>2007-02-21T20:05:00</date></alert><alert sourceid="1" unread="true" id="alert_136"><title>ATI's R600 graphics chip hits snag</title><summary>Filed under: Desktops, GamingWe've had our eye on ATI"s new top-end R600 graphics chip for some time now, first getting a look at some impressive early benchmarks and then being taken aback by the foot-long graphics card the chips will call home (at least in some configurations). Sadly, it seems that those with money and power (as in 270W) to spare will have to wait a bit longer to slot one of the behemoths into their own PCs, with The Inquirer reporting that the R600 chips, and consequently the graphics cards based on 'em, have been delayed yet again, now pushed back to sometime in the second quarter of this year. There doesn't seem to be any word on the reason for the delay, but the news apparently came straight from ATI parent company AMD. Given what the cards are likely to cost, however, we're guessing that at least some won't be too disappointed in the delay, with the extra time allowing you to save up some more money and make some more excuses for why you're spending so much on a graphics card.[Via TG Daily] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93920986/</address><date>2007-02-21T19:32:00</date></alert><alert sourceid="1" unread="true" id="alert_137"><title>Russians congregate over internet, drink via USB shot glasses</title><summary>Filed under: Misc. Gadgets - Considering that we've all some of us have been enjoying online chats, poker, and dating for quite some while, it's not too shocking to see the Russians utilize the power of the web to bring alcoholics and social drinkers together in inebriated harmony. Sergey Mikheev, head of e-generator, has devised a USB shot glass to allow lonely, alcohol-needing individuals to get their drink on while safely at home. While we don't consider ourselves experts in Russian culture, it's apparently not tactful to get plastered solo, and while online drinking might be stretching the rules just a bit, we're sure those vodka-lovin' internet dwellers aren't complaining. The idea is to join a group of drinkers in an online lounge, where the USB shot glass levels are shown on each person's screen; once the go-ahead is given, the folks turn up their glasses and chug it down, ideally showing an empty glass after a random smashing of keys somehow spells out congratulatory phrases. As interesting and novel as this may be, let it remind us all how "getting a life" should be taken oh-so-seriously.[Via ChipChick] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93918114/</address><date>2007-02-21T19:02:00</date></alert><alert sourceid="1" unread="true" id="alert_138"><title>Samsung's 19-inch SyncMaster 940UX LCD picks USB</title><summary>Filed under: Displays -After DisplayLink hit us up with a cordless monitor care of Wireless USB, things really can't get much simpler for connecting LCDs with PC towers, but for those not quite ready to jump into all that, Samsung is reportedly readying a USB-only monitor that'll be showcased at CeBIT. Yep, according to reports, the 19-inch SyncMaster 940UX will be axing the DVI and VGA inputs in favor of a USB 2.0 connector, which means you can finally do away with those flakey USB to VGA adapters of days past. Slated for a May release, the display should sync up with Windows XP initially, with Vista drivers (no OS X love?) to follow shortly thereafter. No other details regarding contrast ratio, resolution, or whether a 0.25-page installation manual will be included is currently available, and more importantly, we're not so sure how your CPU is going to feel about its newfangled processing duties when you plug this sucka in. Still, Samsung claims between "three and five" of these monitors can be plugged in and used at any given time based on the amount of processing requirements your applications have, but the real question is how quickly can ATI / NVIDIA can crank out a next-generation GPU with USB 2.0 outputs, eh?[Via Slashgear] Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93898699/</address><date>2007-02-21T18:32:00</date></alert><alert sourceid="1" unread="true" id="alert_139"><title>Latest BlackBerry OS confirms 8820 with WiFi</title><summary>Filed under: Cellphones, Handhelds, Wireless - A feature notoriously missing from RIM's range, WiFi is one add-on we can pretty much all agree would make the average BlackBerry user's life noticeably better. We'd heard rumblings ahead of the 8800's release that Canada's newest handset would sport some manner of 802.11 out of the box, but alas -- the release came and went with no 2.4GHz (or 5GHz, for that matter) goodness in sight, allegedly due to technical glitches on RIM's side that the company was unwilling to delay the initial model for. No worries, though -- well, maybe a few worries if you're AT T and you're trying to push the 8800 out the door -- the WiFi-enabled 8820 looks pretty official now thanks to a cameo in RIM's latest BlackBerry OS offering. Other changes should be minimal from its predecessor; a camera still isn't in the cards, leaving shutterbugs who like their BlackBerry served QWERTY style up the same creek they are now. No word on a release, but rumblings have the device launching mid-year. Read | Permalink | Email this | CommentsBOLD MOVES: THE FUTURE OF FORD A new documentary series. Be part of the transformation as it happens in real-timeOffice Depot Featured Gadget: Xbox 360 Platinum System Packs the power to bring games to life! - </summary><address>http://feeds.engadget.com/~r/weblogsinc/engadget/~3/93882167/</address><date>2007-02-21T18:02:00</date></alert><alert sourceid="0" unread="true" id="alert_140"><title>Italian crisis talks as PM quits</title><summary>Italian President Giorgio Napolitano is to begin crisis talks after the resignation of PM Romano Prodi.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/europe/6384953.stm</address><date>2007-02-22T07:09:56</date></alert><alert sourceid="0" unread="true" id="alert_141"><title>Iraq leader welcomes troops' exit</title><summary>The Iraqi president welcomes Tony Blair's plans to cut UK troops in Iraq from 7,100 to 5,000 within months.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/uk_politics/6384685.stm</address><date>2007-02-22T01:06:14</date></alert><alert sourceid="0" unread="true" id="alert_142"><title>Apple and Cisco share iPhone</title><summary>Apple and Cisco Systems agree to share the iPhone trademark, allowing both firms to use the name.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/business/6384875.stm</address><date>2007-02-22T04:52:01</date></alert><alert sourceid="0" unread="true" id="alert_143"><title>Indonesia ferry fire kills six</title><summary>At least seven people - two of them children - die as fire breaks out on a ferry sailing from Indonesia's capital.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/asia-pacific/6384859.stm</address><date>2007-02-22T07:29:35</date></alert><alert sourceid="0" unread="true" id="alert_144"><title>Clinton and Obama row erupts</title><summary>A row erupts between two leading contenders for the US Democratic Party's presidential nomination.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6384821.stm</address><date>2007-02-22T02:02:19</date></alert><alert sourceid="0" unread="true" id="alert_145"><title>Menchu to stand in Guatemala</title><summary>Indigenous activist and Nobel winner Rigoberta Menchu says she will run for president in Guatemala.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6384845.stm</address><date>2007-02-22T03:33:05</date></alert><alert sourceid="0" unread="true" id="alert_146"><title>Most-premature baby goes home</title><summary>The world's most-premature baby leaves a Miami hospital, four months after weighing in at just 280 grams.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6384621.stm</address><date>2007-02-21T22:33:54</date></alert><alert sourceid="0" unread="true" id="alert_147"><title>US wants tougher Iran sanctions</title><summary>Washington says it will now push for tougher sanctions against Iran over its nuclear activities.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6384725.stm</address><date>2007-02-21T23:43:08</date></alert><alert sourceid="0" unread="true" id="alert_148"><title>US soldier admits murdering girl</title><summary>A second US soldier admits to the gang rape and murder of a 14-year-old Iraqi girl and her family.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6384781.stm</address><date>2007-02-22T01:40:53</date></alert><alert sourceid="0" unread="true" id="alert_149"><title>Football: Barca 1-2 L'pool</title><summary>Craig Bellamy and John Arne Riise both score as Liverpool beat holders Barcelona in the first leg of their Champions League tie.</summary><address>http://news.bbc.co.uk/go/rss/-/sport1/hi/football/europe/6371395.stm</address><date>2007-02-21T21:37:03</date></alert><alert sourceid="0" unread="true" id="alert_150"><title>Football: Porto 1-1 Chelsea</title><summary>Andriy Shevchenko's goal earns Chelsea a draw, but the Blues lose John Terry to an ankle injury in Porto.</summary><address>http://news.bbc.co.uk/go/rss/-/sport1/hi/football/europe/6371399.stm</address><date>2007-02-21T21:36:15</date></alert><alert sourceid="0" unread="true" id="alert_151"><title>Crisis talks over Bolivian floods</title><summary>The Bolivian government is holding emergency talks over the severe flooding in much of the country.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/americas/6384267.stm</address><date>2007-02-21T20:54:40</date></alert><alert sourceid="0" unread="true" id="alert_152"><title>Spears 'leaves rehab after a day'</title><summary>Pop star Britney Spears has left a rehab centre after just one day for the second time, according to US reports.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/entertainment/6384081.stm</address><date>2007-02-21T18:31:01</date></alert><alert sourceid="0" unread="true" id="alert_153"><title>Australia may lift Afghan force</title><summary>Australia studies sending 450 more troops to Afghanistan, as US Vice-President Dick Cheney prepares to visit.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/asia-pacific/6384965.stm</address><date>2007-02-22T06:43:29</date></alert><alert sourceid="0" unread="true" id="alert_154"><title>Blair announces Iraq troops cut</title><summary>Tony Blair says he hopes to cut the number of UK troops in Iraq from 7,100 to 5,000 within months.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/uk_politics/6380933.stm</address><date>2007-02-21T18:15:55</date></alert><alert sourceid="0" unread="true" id="alert_155"><title>India ban on Iran nuclear exports</title><summary>Indian officials say exports to Iran that could be used in the country's nuclear programme have been banned.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6384919.stm</address><date>2007-02-22T05:52:36</date></alert><alert sourceid="0" unread="true" id="alert_156"><title>Quartet warning to Palestinians</title><summary>The Quartet of Mid-East peace negotiators says the new Palestinian government must recognise Israel.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/middle_east/6384189.stm</address><date>2007-02-21T20:30:30</date></alert><alert sourceid="0" unread="true" id="alert_157"><title>Three 'detained' over train blast</title><summary>Police in India say they are holding three people after Sunday's bomb attack on a train to Pakistan.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6384867.stm</address><date>2007-02-22T05:20:31</date></alert><alert sourceid="0" unread="true" id="alert_158"><title>India state airlines set to merge</title><summary>Air India and Indian, India's two main state-owned airlines, are to merge to compete with private rivals.</summary><address>http://news.bbc.co.uk/go/rss/-/1/hi/world/south_asia/6384881.stm</address><date>2007-02-22T05:11:16</date></alert></alerts> diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/index.html b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/index.html deleted file mode 100644 index 2ecd0434b6..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/index.html +++ /dev/null @@ -1,280 +0,0 @@ -<!--
- 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>
- <TITLE>Apache Tuscany Alert Aggregator Sample</TITLE>
- <link REL="stylesheet" TYPE="text/css" href="style.css">
-</HEAD>
-
-<BODY ONLOAD="getSources()">
-<script type="text/javascript">
-function getXMLHTTP()
-{
- var xmlHttp;
- try
- {
- // Firefox, Opera 8.0+, Safari
- xmlHttp=new XMLHttpRequest();
- }
- catch (e)
- {
- // Internet Explorer
- try
- {
- xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
- }
- catch (e)
- {
- try
- {
- xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
- }
- catch (e)
- {
- alert("Your browser does not support AJAX!");
- return false;
- }
- }
- }
- return xmlHttp;
-}
-
-var callIsRunning = false;
-
-function getAlerts()
-{
- var xmlHttp = getXMLHTTP();
- xmlHttp.onreadystatechange=function()
- {
- var refr = document.getElementById("refresh");
- if(xmlHttp.readyState<4)
- {
- callIsRunning = true;
- refr.innerHTML="<SPAN>Updating...</SPAN>";
- }
- if(xmlHttp.readyState==4)
- {
- callIsRunning = false;
- refr.innerHTML="<SPAN CLASS=\"clickable link\" ONCLICK=\"getAlerts()\">Refresh</SPAN>";
- document.getElementById("alertTable").innerHTML=xmlHttp.responseText;
- }
- }
-
- if(!callIsRunning)
- {
- xmlHttp.open("GET","AlertDisplay.php/getAlertsHTMLTable",true);
- xmlHttp.send(null);
- }
-
- // Call this function again after x minutes
- setTimeout("getAlerts();", 5*60000);
-}
-
-function displayAlert(url, alertid)
-{
- if(alertid=="")
- {
- document.getElementById("alertData").innerHTML="<IFRAME CLASS=\"alert_data\" SRC=\""+url+"\"/>";
- window.location="#data";
- return;
- }
-
- document.getElementById(alertid).className="read_title";
-
- var xmlHttp = getXMLHTTP()
- xmlHttp.onreadystatechange=function()
- {
- if(xmlHttp.readyState==4)
- {
- if(xmlHttp.responseText=="")
- {
- document.getElementById("alertData").innerHTML="<IFRAME CLASS=\"alert_data\" SRC=\""+url+"\"/>";
- }
- else
- {
- document.getElementById("alertData").innerHTML=xmlHttp.responseText;
- }
- window.location="#data";
- }
- }
-
- xmlHttp.open("GET","AlertDisplay.php/readAlert?alertID="+alertid,true);
- xmlHttp.send(null);
-}
-
-function getSources()
-{
- var xmlHttp = getXMLHTTP()
- xmlHttp.onreadystatechange=function()
- {
- var refreshSources = document.getElementById("refreshSources");
- var refresh = document.getElementById("refresh");
- if(xmlHttp.readyState<4)
- {
- refreshSources.innerHTML=" (Updating...)";
- refresh.innerHTML="<SPAN>Updating...</SPAN>";
- }
- if(xmlHttp.readyState==4)
- {
- refreshSources.innerHTML="";
- document.getElementById("sourcesTable").innerHTML=xmlHttp.responseText;
- getAlerts();
- }
- }
- xmlHttp.open("GET","AlertDisplay.php/getAlertSourcesHTMLTable",true);
- xmlHttp.send(null);
-}
-
-function showEditSource(sourceid)
-{
- document.getElementById("edit_source_"+sourceid).className = "source_"+sourceid;
-}
-
-function hideEditSource(sourceid)
-{
- document.getElementById("edit_source_"+sourceid).className = "hidden source_"+sourceid;
-}
-
-function updateSource(sourceid)
-{
- hideEditSource(sourceid);
- var type = document.getElementById("source_"+sourceid+"_type").value;
- var sourceXML = constructSourceXML(sourceid, type);
-
- sendSource("AlertDisplay.php/updateAlertSource", sourceXML);
-
-}
-
-function sendSource(url, sourceXML)
-{
- var xmlHttp = getXMLHTTP()
- xmlHttp.onreadystatechange=function()
- {
- var refreshSources = document.getElementById("refreshSources");
- var refresh = document.getElementById("refresh");
- if(xmlHttp.readyState<4)
- {
- refreshSources.innerHTML=" (Updating...)";
- refresh.innerHTML="<SPAN>Updating...</SPAN>";
- }
- if(xmlHttp.readyState==4)
- {
- getSources();
- }
- }
- xmlHttp.open("POST",url,true);
- xmlHttp.send(sourceXML);
-
-}
-
-function deleteSource(sourceid)
-{
- var xmlHttp = getXMLHTTP()
- xmlHttp.onreadystatechange=function()
- {
- if(xmlHttp.readyState==4)
- {
- getSources();
- document.getElementById("alertData").innerHTML=""
- }
- }
- xmlHttp.open("GET","AlertDisplay.php/deleteAlertSource?sourceId="+sourceid,true);
- xmlHttp.send(null);
-}
-
-function showAddNewSource(sourceid)
-{
- document.getElementById("add_source_"+sourceid).className = "source_"+sourceid;
-}
-
-function hideAddNewSource(sourceid)
-{
- document.getElementById("add_source_"+sourceid).className = "hidden source_"+sourceid;
-}
-
-function showSourceType(sourceid)
-{
- var typeElem = document.getElementById("source_"+sourceid+"_type");
- var type = typeElem.options[typeElem.selectedIndex].value;
-
- if(type=="rss")
- {
- document.getElementById("add_rss_source").className = "";
- document.getElementById("add_pop_source").className = "hidden";
- }
- else if(type=="pop")
- {
- document.getElementById("add_rss_source").className = "hidden";
- document.getElementById("add_pop_source").className = "";
- }
-}
-
-function addSource(sourceid)
-{
- hideAddNewSource(sourceid);
-
- var typeElem = document.getElementById("source_"+sourceid+"_type");
- var type = typeElem.options[typeElem.selectedIndex].value;
- var sourceXML = constructSourceXML(sourceid, type);
-
- sendSource("AlertDisplay.php/addAlertSource", sourceXML);
-
-}
-
-function constructSourceXML(sourceid, type)
-{
- var name = document.getElementById("source_"+sourceid+"_name").value;
- var address = document.getElementById("source_"+sourceid+"_address").value;
-
- var sourceXML = "<source xmlns=\"http://tuscany.apache.org/samples/alerter\" type=\""+type+"\" id=\""+sourceid+"\">";
- sourceXML += "<name>"+name+"</name>";
- sourceXML += "<address>"+address+"</address>";
-
- if(type=="rss")
- {
- var feedAddress = document.getElementById("source_"+sourceid+"_feedAddress").value;
- sourceXML += "<feedAddress>"+feedAddress+"</feedAddress>";
- }
- else if(type=="pop")
- {
- var popServer = document.getElementById("source_"+sourceid+"_popServer").value;
- sourceXML += "<popServer>"+popServer+"</popServer>";
- var popUsername = document.getElementById("source_"+sourceid+"_popUsername").value;
- sourceXML += "<popUsername>"+popUsername+"</popUsername>";
- var popPassword = document.getElementById("source_"+sourceid+"_popPassword").value;
- sourceXML += "<popPassword>"+popPassword+"</popPassword>";
- }
- sourceXML += "</source>";
-
- return sourceXML;
-}
-</script>
-<H1 ID="top">Apache Tuscany Alert Aggregator Sample</H1>
-<P>Alert Sources<SPAN ID="refreshSources"></SPAN>:</P>
-<DIV ID="sourcesTable"></DIV>
-<P>Recent Alerts (<SPAN ID="refresh"><SPAN CLASS="clickable link" ONCLICK="getAlerts()">Refresh</SPAN></SPAN>):</P
-<DIV ID="alertTable"></DIV>
-<HR></HR>
-<P><A ID="data" HREF="#top">Back to top</A></P>
-<DIV ID="alertData"></DIV>
-
-</BODY>
-</HTML>
-
diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/pop.png b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/pop.png Binary files differdeleted file mode 100644 index 1cf1df24a7..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/pop.png +++ /dev/null diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/rss.png b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/rss.png Binary files differdeleted file mode 100644 index b3c949d224..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/rss.png +++ /dev/null diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/style.css b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/style.css deleted file mode 100644 index cd377e90e5..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/htdocs/style.css +++ /dev/null @@ -1,166 +0,0 @@ -/*
- * 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.
- */
-
-p,table,li,h1,h2,h3
-{
-font-family: verdana, arial, 'sans serif';
-}
-
-p, h1, h2, h3, table, li, hr
-{
-margin-left: 10pt;
-}
-
-table
-{
-border-color: black;
-border-collapse: separate;
-border-spacing: 0px 1px;
-
-margin-right: 10pt;
-margin-left: 10pt;
-width: 800px;
-}
-
-.sourceDetailsTable
-{
-width: 600px;
-}
-
-tr, td
-{
-margin-left: 0pt;
-margin-right: 0pt;
-padding-left: 10pt;
-font-size: 90%;
-}
-
-p,li,th
-{
-font-size: 90%;
-margin-left: 10pt;
-}
-
-pre
-{
-margin-left: 10pt;
-}
-
-body
-{
-#ffffff;
-}
-
-h1,h2,h3,hr
-{
-color: firebrick;
-}
-
-a:link {COLOR: firebrick;}
-a:visited {COLOR: firebrick;}
-a:active {COLOR: navy;}
-
-.link
-{
-COLOR: firebrick;
-text-decoration: underline;
-}
-
-.clickable
-{
-cursor: pointer
-}
-
-.unread_title
-{
-font-weight: bold;
-}
-
-.read_title
-{
-font-weight: normal;
-}
-
-.summary
-{
-color: DimGrey;
-}
-
-.hidden
-{
-display: none;
-}
-
-.alert_data
-{
-margin-left: 10px;
-width: 800px;
-height: 800px;
-}
-
-.source_0
-{
-background-color: LightGreen;
-}
-
-.source_1
-{
-background-color: LightSkyBlue;
-}
-
-.source_2
-{
-background-color: Khaki;
-}
-
-.source_3
-{
-background-color: LightPink;
-}
-
-.source_4
-{
-background-color: Orange;
-}
-
-.source_5
-{
-background-color: LightCoral;
-}
-
-.source_6
-{
-background-color: Orchid;
-}
-
-.source_7
-{
-background-color: Peru;
-}
-
-.source_8
-{
-background-color: SpringGreen;
-}
-
-.source_9
-{
-background-color: LightGrey;
-}
-
diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/startserver.bat b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/startserver.bat deleted file mode 100644 index dab8cd6c61..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver.php/startserver.bat +++ /dev/null @@ -1,76 +0,0 @@ -@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
-
-set APFULLDIR=%~d0%~p0
-echo Running from %APFULLDIR%
-
-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 "%HTTPD_HOME%" == "" (
-echo "HTTPD_HOME not set"
-goto end
-)
-echo Using HTTPD installed at %HTTPD_HOME%
-
-set PATH=%TUSCANY_SCACPP%\extensions\python\bin;%TUSCANY_SCACPP%\extensions\rest\interface\bin;%TUSCANY_SCACPP%\extensions\rest\service\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%HTTPD_HOME%\bin;%PATH%
-set PYTHONPATH=%TUSCANY_SCACPP%\extensions\python\bin
-
-set TUSCANY_SCACPP_ROOT=%APFULLDIR%\..\
-set TUSCANY_SCACPP_BASE_URI=http://localhost:9091
-
-@REM Generate the tuscany_sca_mod_rest configuration
-if not exist %APFULLDIR%\conf\tuscany_sca_mod_rest.conf (
- echo LoadModule sca_rest_module %TUSCANY_SCACPP%/extensions/rest\service/bin/tuscany_sca_mod_rest.dll > %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
- echo TuscanyHome %TUSCANY_SCACPP% >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
- echo ^<Location /rest^> >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
- echo SetHandler sca_rest_module >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
- echo TuscanyRoot %TUSCANY_SCACPP_ROOT% >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
- echo ^</Location^> >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
-)
-
-@REM Generate the base HTTPD configuration
-if not exist %APFULLDIR%\conf\base.conf (
- echo LoadModule mime_module %HTTPD_HOME%\modules\mod_mime.so > %APFULLDIR%\conf\base.conf
- echo LoadModule dir_module %HTTPD_HOME%\modules\mod_dir.so >> %APFULLDIR%\conf\base.conf
- echo DocumentRoot %APFULLDIR%\htdocs >> %APFULLDIR%\conf\base.conf
- echo LoadModule php5_module %PHP_HOME%\php5apache2.dll >> %APFULLDIR%\conf\base.conf
- echo AddType application/x-httpd-php .php >> %APFULLDIR%\conf\base.conf
- echo PHPIniDir %PHP_HOME% >> %APFULLDIR%\conf\base.conf
-)
-
-@REM Create logs directory
-if not exist %APFULLDIR%\logs mkdir %APFULLDIR%\logs
-set TUSCANY_SCACPP_LOG=%APFULLDIR%\logs\tuscany-server.log
-set TUSCANY_SCACPP_LOGGING=9
-
-@REM Start the HTTP server
-echo Starting Apache httpd
-httpd -d %APFULLDIR%
diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/Makefile.am b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/Makefile.am deleted file mode 100644 index 5db11696dc..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/AlertAggregator/deploy -serverdir=$(deploydir)/httpserver - -server_SCRIPTS = startserver.sh stopserver.sh -EXTRA_DIST = startserver.sh stopserver.sh conf htdocs -nobase_server_DATA = conf/httpd.conf conf/mime.types htdocs/index.html htdocs/style.css htdocs/*.png diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/conf/httpd.conf b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/conf/httpd.conf deleted file mode 100644 index d243f85fbf..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/conf/httpd.conf +++ /dev/null @@ -1,43 +0,0 @@ -# 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.
-
-# This is the main Apache HTTP server configuration file. It contains the
-# configuration directives that give the server its instructions.
-# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
-
-Listen 9090
-
-# Generated by the startserver script
-Include conf/base.conf
-Include conf/tuscany_sca_mod_rest.conf
-
-# User and Group directives may be required if the server must be
-# started from the root account. Uncomment the following lines and
-# set the correct username and group
-#
-# User myusername
-# Group mygroupname
-
-
-# The Mime module may need to be specifically loaded if
-# text rather than a web page is displayed when the web browser goes to
-# http://localhost:9090/index.html. Uncomment the following LoadModule
-# directive and ensure that the path to mod_mime.so is correct
-#
-# LoadModule mime_module /usr/lib/httpd/modules/mod_mime.so
-
-
diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/conf/mime.types b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/conf/mime.types deleted file mode 100644 index 4279f51bca..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/conf/mime.types +++ /dev/null @@ -1,607 +0,0 @@ -# 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. - -# This file controls what Internet media types are sent to the client for -# given file extension(s). Sending the correct media type to the client -# is important so they know how to handle the content of the file. -# Extra types can either be added here or by using an AddType directive -# in your config files. For more information about Internet media types, -# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type -# registry is at <http://www.iana.org/assignments/media-types/>. - -# MIME type Extensions -application/activemessage -application/andrew-inset ez -application/applefile -application/atom+xml atom -application/atomicmail -application/batch-smtp -application/beep+xml -application/cals-1840 -application/cnrp+xml -application/commonground -application/cpl+xml -application/cybercash -application/dca-rft -application/dec-dx -application/dvcs -application/edi-consent -application/edifact -application/edi-x12 -application/eshop -application/font-tdpfr -application/http -application/hyperstudio -application/iges -application/index -application/index.cmd -application/index.obj -application/index.response -application/index.vnd -application/iotp -application/ipp -application/isup -application/mac-binhex40 hqx -application/mac-compactpro cpt -application/macwriteii -application/marc -application/mathematica -application/mathml+xml mathml -application/msword doc -application/news-message-id -application/news-transmission -application/ocsp-request -application/ocsp-response -application/octet-stream bin dms lha lzh exe class so dll dmg -application/oda oda -application/ogg ogg -application/parityfec -application/pdf pdf -application/pgp-encrypted -application/pgp-keys -application/pgp-signature -application/pkcs10 -application/pkcs7-mime -application/pkcs7-signature -application/pkix-cert -application/pkix-crl -application/pkixcmp -application/postscript ai eps ps -application/prs.alvestrand.titrax-sheet -application/prs.cww -application/prs.nprend -application/prs.plucker -application/qsig -application/rdf+xml rdf -application/reginfo+xml -application/remote-printing -application/riscos -application/rtf -application/sdp -application/set-payment -application/set-payment-initiation -application/set-registration -application/set-registration-initiation -application/sgml -application/sgml-open-catalog -application/sieve -application/slate -application/smil smi smil -application/srgs gram -application/srgs+xml grxml -application/timestamp-query -application/timestamp-reply -application/tve-trigger -application/vemmi -application/vnd.3gpp.pic-bw-large -application/vnd.3gpp.pic-bw-small -application/vnd.3gpp.pic-bw-var -application/vnd.3gpp.sms -application/vnd.3m.post-it-notes -application/vnd.accpac.simply.aso -application/vnd.accpac.simply.imp -application/vnd.acucobol -application/vnd.acucorp -application/vnd.adobe.xfdf -application/vnd.aether.imp -application/vnd.amiga.ami -application/vnd.anser-web-certificate-issue-initiation -application/vnd.anser-web-funds-transfer-initiation -application/vnd.audiograph -application/vnd.blueice.multipass -application/vnd.bmi -application/vnd.businessobjects -application/vnd.canon-cpdl -application/vnd.canon-lips -application/vnd.cinderella -application/vnd.claymore -application/vnd.commerce-battelle -application/vnd.commonspace -application/vnd.contact.cmsg -application/vnd.cosmocaller -application/vnd.criticaltools.wbs+xml -application/vnd.ctc-posml -application/vnd.cups-postscript -application/vnd.cups-raster -application/vnd.cups-raw -application/vnd.curl -application/vnd.cybank -application/vnd.data-vision.rdz -application/vnd.dna -application/vnd.dpgraph -application/vnd.dreamfactory -application/vnd.dxr -application/vnd.ecdis-update -application/vnd.ecowin.chart -application/vnd.ecowin.filerequest -application/vnd.ecowin.fileupdate -application/vnd.ecowin.series -application/vnd.ecowin.seriesrequest -application/vnd.ecowin.seriesupdate -application/vnd.enliven -application/vnd.epson.esf -application/vnd.epson.msf -application/vnd.epson.quickanime -application/vnd.epson.salt -application/vnd.epson.ssf -application/vnd.ericsson.quickcall -application/vnd.eudora.data -application/vnd.fdf -application/vnd.ffsns -application/vnd.fints -application/vnd.flographit -application/vnd.framemaker -application/vnd.fsc.weblaunch -application/vnd.fujitsu.oasys -application/vnd.fujitsu.oasys2 -application/vnd.fujitsu.oasys3 -application/vnd.fujitsu.oasysgp -application/vnd.fujitsu.oasysprs -application/vnd.fujixerox.ddd -application/vnd.fujixerox.docuworks -application/vnd.fujixerox.docuworks.binder -application/vnd.fut-misnet -application/vnd.grafeq -application/vnd.groove-account -application/vnd.groove-help -application/vnd.groove-identity-message -application/vnd.groove-injector -application/vnd.groove-tool-message -application/vnd.groove-tool-template -application/vnd.groove-vcard -application/vnd.hbci -application/vnd.hhe.lesson-player -application/vnd.hp-hpgl -application/vnd.hp-hpid -application/vnd.hp-hps -application/vnd.hp-pcl -application/vnd.hp-pclxl -application/vnd.httphone -application/vnd.hzn-3d-crossword -application/vnd.ibm.afplinedata -application/vnd.ibm.electronic-media -application/vnd.ibm.minipay -application/vnd.ibm.modcap -application/vnd.ibm.rights-management -application/vnd.ibm.secure-container -application/vnd.informix-visionary -application/vnd.intercon.formnet -application/vnd.intertrust.digibox -application/vnd.intertrust.nncp -application/vnd.intu.qbo -application/vnd.intu.qfx -application/vnd.irepository.package+xml -application/vnd.is-xpr -application/vnd.japannet-directory-service -application/vnd.japannet-jpnstore-wakeup -application/vnd.japannet-payment-wakeup -application/vnd.japannet-registration -application/vnd.japannet-registration-wakeup -application/vnd.japannet-setstore-wakeup -application/vnd.japannet-verification -application/vnd.japannet-verification-wakeup -application/vnd.jisp -application/vnd.kde.karbon -application/vnd.kde.kchart -application/vnd.kde.kformula -application/vnd.kde.kivio -application/vnd.kde.kontour -application/vnd.kde.kpresenter -application/vnd.kde.kspread -application/vnd.kde.kword -application/vnd.kenameaapp -application/vnd.koan -application/vnd.liberty-request+xml -application/vnd.llamagraphics.life-balance.desktop -application/vnd.llamagraphics.life-balance.exchange+xml -application/vnd.lotus-1-2-3 -application/vnd.lotus-approach -application/vnd.lotus-freelance -application/vnd.lotus-notes -application/vnd.lotus-organizer -application/vnd.lotus-screencam -application/vnd.lotus-wordpro -application/vnd.mcd -application/vnd.mediastation.cdkey -application/vnd.meridian-slingshot -application/vnd.micrografx.flo -application/vnd.micrografx.igx -application/vnd.mif mif -application/vnd.minisoft-hp3000-save -application/vnd.mitsubishi.misty-guard.trustweb -application/vnd.mobius.daf -application/vnd.mobius.dis -application/vnd.mobius.mbk -application/vnd.mobius.mqy -application/vnd.mobius.msl -application/vnd.mobius.plc -application/vnd.mobius.txf -application/vnd.mophun.application -application/vnd.mophun.certificate -application/vnd.motorola.flexsuite -application/vnd.motorola.flexsuite.adsi -application/vnd.motorola.flexsuite.fis -application/vnd.motorola.flexsuite.gotap -application/vnd.motorola.flexsuite.kmr -application/vnd.motorola.flexsuite.ttc -application/vnd.motorola.flexsuite.wem -application/vnd.mozilla.xul+xml xul -application/vnd.ms-artgalry -application/vnd.ms-asf -application/vnd.ms-excel xls -application/vnd.ms-lrm -application/vnd.ms-powerpoint ppt -application/vnd.ms-project -application/vnd.ms-tnef -application/vnd.ms-works -application/vnd.ms-wpl -application/vnd.mseq -application/vnd.msign -application/vnd.music-niff -application/vnd.musician -application/vnd.netfpx -application/vnd.noblenet-directory -application/vnd.noblenet-sealer -application/vnd.noblenet-web -application/vnd.novadigm.edm -application/vnd.novadigm.edx -application/vnd.novadigm.ext -application/vnd.obn -application/vnd.osa.netdeploy -application/vnd.palm -application/vnd.pg.format -application/vnd.pg.osasli -application/vnd.powerbuilder6 -application/vnd.powerbuilder6-s -application/vnd.powerbuilder7 -application/vnd.powerbuilder7-s -application/vnd.powerbuilder75 -application/vnd.powerbuilder75-s -application/vnd.previewsystems.box -application/vnd.publishare-delta-tree -application/vnd.pvi.ptid1 -application/vnd.pwg-multiplexed -application/vnd.pwg-xhtml-print+xml -application/vnd.quark.quarkxpress -application/vnd.rapid -application/vnd.s3sms -application/vnd.sealed.net -application/vnd.seemail -application/vnd.shana.informed.formdata -application/vnd.shana.informed.formtemplate -application/vnd.shana.informed.interchange -application/vnd.shana.informed.package -application/vnd.smaf -application/vnd.sss-cod -application/vnd.sss-dtf -application/vnd.sss-ntf -application/vnd.street-stream -application/vnd.svd -application/vnd.swiftview-ics -application/vnd.triscape.mxs -application/vnd.trueapp -application/vnd.truedoc -application/vnd.ufdl -application/vnd.uplanet.alert -application/vnd.uplanet.alert-wbxml -application/vnd.uplanet.bearer-choice -application/vnd.uplanet.bearer-choice-wbxml -application/vnd.uplanet.cacheop -application/vnd.uplanet.cacheop-wbxml -application/vnd.uplanet.channel -application/vnd.uplanet.channel-wbxml -application/vnd.uplanet.list -application/vnd.uplanet.list-wbxml -application/vnd.uplanet.listcmd -application/vnd.uplanet.listcmd-wbxml -application/vnd.uplanet.signal -application/vnd.vcx -application/vnd.vectorworks -application/vnd.vidsoft.vidconference -application/vnd.visio -application/vnd.visionary -application/vnd.vividence.scriptfile -application/vnd.vsf -application/vnd.wap.sic -application/vnd.wap.slc -application/vnd.wap.wbxml wbxml -application/vnd.wap.wmlc wmlc -application/vnd.wap.wmlscriptc wmlsc -application/vnd.webturbo -application/vnd.wrq-hp3000-labelled -application/vnd.wt.stf -application/vnd.wv.csp+wbxml -application/vnd.xara -application/vnd.xfdl -application/vnd.yamaha.hv-dic -application/vnd.yamaha.hv-script -application/vnd.yamaha.hv-voice -application/vnd.yellowriver-custom-menu -application/voicexml+xml vxml -application/watcherinfo+xml -application/whoispp-query -application/whoispp-response -application/wita -application/wordperfect5.1 -application/x-bcpio bcpio -application/x-cdlink vcd -application/x-chess-pgn pgn -application/x-compress -application/x-cpio cpio -application/x-csh csh -application/x-director dcr dir dxr -application/x-dvi dvi -application/x-futuresplash spl -application/x-gtar gtar -application/x-gzip -application/x-hdf hdf -application/x-javascript js -application/x-koan skp skd skt skm -application/x-latex latex -application/x-netcdf nc cdf -application/x-sh sh -application/x-shar shar -application/x-shockwave-flash swf -application/x-stuffit sit -application/x-sv4cpio sv4cpio -application/x-sv4crc sv4crc -application/x-tar tar -application/x-tcl tcl -application/x-tex tex -application/x-texinfo texinfo texi -application/x-troff t tr roff -application/x-troff-man man -application/x-troff-me me -application/x-troff-ms ms -application/x-ustar ustar -application/x-wais-source src -application/x400-bp -application/xhtml+xml xhtml xht -application/xslt+xml xslt -application/xml xml xsl -application/xml-dtd dtd -application/xml-external-parsed-entity -application/zip zip -audio/32kadpcm -audio/amr -audio/amr-wb -audio/basic au snd -audio/cn -audio/dat12 -audio/dsr-es201108 -audio/dvi4 -audio/evrc -audio/evrc0 -audio/g722 -audio/g.722.1 -audio/g723 -audio/g726-16 -audio/g726-24 -audio/g726-32 -audio/g726-40 -audio/g728 -audio/g729 -audio/g729D -audio/g729E -audio/gsm -audio/gsm-efr -audio/l8 -audio/l16 -audio/l20 -audio/l24 -audio/lpc -audio/midi mid midi kar -audio/mpa -audio/mpa-robust -audio/mp4a-latm -audio/mpeg mpga mp2 mp3 -audio/parityfec -audio/pcma -audio/pcmu -audio/prs.sid -audio/qcelp -audio/red -audio/smv -audio/smv0 -audio/telephone-event -audio/tone -audio/vdvi -audio/vnd.3gpp.iufp -audio/vnd.cisco.nse -audio/vnd.cns.anp1 -audio/vnd.cns.inf1 -audio/vnd.digital-winds -audio/vnd.everad.plj -audio/vnd.lucent.voice -audio/vnd.nortel.vbk -audio/vnd.nuera.ecelp4800 -audio/vnd.nuera.ecelp7470 -audio/vnd.nuera.ecelp9600 -audio/vnd.octel.sbc -audio/vnd.qcelp -audio/vnd.rhetorex.32kadpcm -audio/vnd.vmx.cvsd -audio/x-aiff aif aiff aifc -audio/x-alaw-basic -audio/x-mpegurl m3u -audio/x-pn-realaudio ram ra -audio/x-pn-realaudio-plugin -application/vnd.rn-realmedia rm -audio/x-wav wav -chemical/x-pdb pdb -chemical/x-xyz xyz -image/bmp bmp -image/cgm cgm -image/g3fax -image/gif gif -image/ief ief -image/jpeg jpeg jpg jpe -image/naplps -image/png png -image/prs.btif -image/prs.pti -image/svg+xml svg -image/t38 -image/tiff tiff tif -image/tiff-fx -image/vnd.cns.inf2 -image/vnd.djvu djvu djv -image/vnd.dwg -image/vnd.dxf -image/vnd.fastbidsheet -image/vnd.fpx -image/vnd.fst -image/vnd.fujixerox.edmics-mmr -image/vnd.fujixerox.edmics-rlc -image/vnd.globalgraphics.pgb -image/vnd.mix -image/vnd.ms-modi -image/vnd.net-fpx -image/vnd.svf -image/vnd.wap.wbmp wbmp -image/vnd.xiff -image/x-cmu-raster ras -image/x-icon ico -image/x-portable-anymap pnm -image/x-portable-bitmap pbm -image/x-portable-graymap pgm -image/x-portable-pixmap ppm -image/x-rgb rgb -image/x-xbitmap xbm -image/x-xpixmap xpm -image/x-xwindowdump xwd -message/delivery-status -message/disposition-notification -message/external-body -message/http -message/news -message/partial -message/rfc822 -message/s-http -message/sip -message/sipfrag -model/iges igs iges -model/mesh msh mesh silo -model/vnd.dwf -model/vnd.flatland.3dml -model/vnd.gdl -model/vnd.gs-gdl -model/vnd.gtw -model/vnd.mts -model/vnd.parasolid.transmit.binary -model/vnd.parasolid.transmit.text -model/vnd.vtu -model/vrml wrl vrml -multipart/alternative -multipart/appledouble -multipart/byteranges -multipart/digest -multipart/encrypted -multipart/form-data -multipart/header-set -multipart/mixed -multipart/parallel -multipart/related -multipart/report -multipart/signed -multipart/voice-message -text/calendar ics ifb -text/css css -text/directory -text/enriched -text/html html htm -text/parityfec -text/plain asc txt -text/prs.lines.tag -text/rfc822-headers -text/richtext rtx -text/rtf rtf -text/sgml sgml sgm -text/t140 -text/tab-separated-values tsv -text/uri-list -text/vnd.abc -text/vnd.curl -text/vnd.dmclientscript -text/vnd.fly -text/vnd.fmi.flexstor -text/vnd.in3d.3dml -text/vnd.in3d.spot -text/vnd.iptc.nitf -text/vnd.iptc.newsml -text/vnd.latex-z -text/vnd.motorola.reflex -text/vnd.ms-mediapackage -text/vnd.net2phone.commcenter.command -text/vnd.sun.j2me.app-descriptor -text/vnd.wap.si -text/vnd.wap.sl -text/vnd.wap.wml wml -text/vnd.wap.wmlscript wmls -text/x-setext etx -text/xml -text/xml-external-parsed-entity -video/bmpeg -video/bt656 -video/celb -video/dv -video/h261 -video/h263 -video/h263-1998 -video/h263-2000 -video/jpeg -video/mp1s -video/mp2p -video/mp2t -video/mp4v-es -video/mpv -video/mpeg mpeg mpg mpe -video/nv -video/parityfec -video/pointer -video/quicktime qt mov -video/smpte292m -video/vnd.fvt -video/vnd.motorola.video -video/vnd.motorola.videop -video/vnd.mpegurl mxu m4u -video/vnd.nokia.interleaved-multimedia -video/vnd.objectvideo -video/vnd.vivo -video/x-msvideo avi -video/x-sgi-movie movie -x-conference/x-cooltalk ice diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/index.html b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/index.html deleted file mode 100644 index 911f66e013..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/index.html +++ /dev/null @@ -1,290 +0,0 @@ -<!-- - 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> - <TITLE>Apache Tuscany Alert Aggregator Sample</TITLE> - <link REL="stylesheet" TYPE="text/css" href="style.css"> -</HEAD> - -<BODY ONLOAD="getSources('')"> -<script type="text/javascript"> -function getXMLHTTP() -{ - var xmlHttp; - try - { - // Firefox, Opera 8.0+, Safari - xmlHttp=new XMLHttpRequest(); - } - catch (e) - { - // Internet Explorer - try - { - xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); - } - catch (e) - { - try - { - xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); - } - catch (e) - { - alert("Your browser does not support AJAX!"); - return false; - } - } - } - return xmlHttp; -} - -var callIsRunning = false; - -function getAlerts(sourceid) -{ - var xmlHttp = getXMLHTTP(); - xmlHttp.onreadystatechange=function() - { - var refr = document.getElementById("refresh"); - if(xmlHttp.readyState<4) - { - callIsRunning = true; - refr.innerHTML="<SPAN>Updating...</SPAN>"; - } - if(xmlHttp.readyState==4) - { - callIsRunning = false; - refr.innerHTML="<SPAN CLASS=\"clickable link\" ONCLICK=\"getAlerts('')\">Refresh</SPAN>"; - document.getElementById("alertTable").innerHTML=xmlHttp.responseText; - } - } - - if(!callIsRunning) - { - if(sourceid=='') - { - xmlHttp.open("GET","rest/sample.display.DisplayComponent/HTMLDisplayService/updateAllAlertsHTMLTable",true); - } - else - { - xmlHttp.open("GET","rest/sample.display.DisplayComponent/HTMLDisplayService/updateSourceAlertsHTMLTable?sourceId="+sourceid,true); - } - xmlHttp.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); - xmlHttp.send(null); - } - - // Call this function again after x minutes - setTimeout("getAlerts('');", 5*60000); -} - -function displayAlert(url, alertid) -{ - if(alertid=="") - { - document.getElementById("alertData").innerHTML="<IFRAME CLASS=\"alert_data\" SRC=\""+url+"\"/>"; - window.location="#data"; - return; - } - - document.getElementById(alertid).className="read_title"; - - var xmlHttp = getXMLHTTP() - xmlHttp.onreadystatechange=function() - { - if(xmlHttp.readyState==4) - { - if(xmlHttp.responseText=="") - { - document.getElementById("alertData").innerHTML="<IFRAME CLASS=\"alert_data\" SRC=\""+url+"\"/>"; - } - else - { - document.getElementById("alertData").innerHTML=xmlHttp.responseText; - } - window.location="#data"; - } - } - - xmlHttp.open("GET","rest/sample.display.DisplayComponent/HTMLDisplayService/readAlert?alertID="+alertid,true); - xmlHttp.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); - xmlHttp.send(null); -} - -function getSources(sourceid) -{ - var xmlHttp = getXMLHTTP() - xmlHttp.onreadystatechange=function() - { - var refreshSources = document.getElementById("refreshSources"); - var refresh = document.getElementById("refresh"); - if(xmlHttp.readyState<4) - { - refreshSources.innerHTML=" (Updating...)"; - refresh.innerHTML="<SPAN>Updating...</SPAN>"; - } - if(xmlHttp.readyState==4) - { - refreshSources.innerHTML=""; - document.getElementById("sourcesTable").innerHTML=xmlHttp.responseText; - getAlerts(sourceid); - } - } - xmlHttp.open("GET","rest/sample.display.DisplayComponent/HTMLDisplayService/getAlertSourcesHTMLTable",true); - xmlHttp.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); - xmlHttp.send(null); -} - -function showEditSource(sourceid) -{ - document.getElementById("edit_source_"+sourceid).className = "source_"+sourceid; -} - -function hideEditSource(sourceid) -{ - document.getElementById("edit_source_"+sourceid).className = "hidden source_"+sourceid; -} - -function updateSource(sourceid) -{ - hideEditSource(sourceid); - var type = document.getElementById("source_"+sourceid+"_type").value; - var sourceXML = constructSourceXML(sourceid, type); - - sendSourceData("rest/sample.display.DisplayComponent/HTMLDisplayService/updateAlertSource", sourceXML, sourceid); -} - -function sendSourceData(url, sourceXML, sourceid) -{ - var xmlHttp = getXMLHTTP() - xmlHttp.onreadystatechange=function() - { - var refreshSources = document.getElementById("refreshSources"); - var refresh = document.getElementById("refresh"); - if(xmlHttp.readyState<4) - { - refreshSources.innerHTML=" (Updating...)"; - refresh.innerHTML="<SPAN>Updating...</SPAN>"; - } - if(xmlHttp.readyState==4) - { - getSources(sourceid); - } - } - xmlHttp.open("POST",url,true); - xmlHttp.send(sourceXML); - -} - -function deleteSource(sourceid) -{ - var xmlHttp = getXMLHTTP() - xmlHttp.onreadystatechange=function() - { - if(xmlHttp.readyState==4) - { - getSources(''); - document.getElementById("alertData").innerHTML=""; - } - } - xmlHttp.open("GET","rest/sample.display.DisplayComponent/HTMLDisplayService/deleteAlertSource?sourceId="+sourceid,true); - xmlHttp.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); - xmlHttp.send(null); -} - -function showAddNewSource(sourceid) -{ - document.getElementById("add_source_"+sourceid).className = "source_"+sourceid; -} - -function hideAddNewSource(sourceid) -{ - document.getElementById("add_source_"+sourceid).className = "hidden source_"+sourceid; -} - -function showSourceType(sourceid) -{ - var typeElem = document.getElementById("source_"+sourceid+"_type"); - var type = typeElem.options[typeElem.selectedIndex].value; - - if(type=="rss") - { - document.getElementById("add_rss_source").className = ""; - document.getElementById("add_pop_source").className = "hidden"; - } - else if(type=="pop") - { - document.getElementById("add_rss_source").className = "hidden"; - document.getElementById("add_pop_source").className = ""; - } -} - -function addSource(sourceid) -{ - hideAddNewSource(sourceid); - - var typeElem = document.getElementById("source_"+sourceid+"_type"); - var type = typeElem.options[typeElem.selectedIndex].value; - var sourceXML = constructSourceXML(sourceid, type); - - sendSourceData("rest/sample.display.DisplayComponent/HTMLDisplayService/addAlertSource", sourceXML, sourceid); - -} - -function constructSourceXML(sourceid, type) -{ - var name = document.getElementById("source_"+sourceid+"_name").value; - var address = document.getElementById("source_"+sourceid+"_address").value; - - var sourceXML = "<source xmlns=\"http://tuscany.apache.org/samples/alerter\" type=\""+type+"\" id=\""+sourceid+"\">"; - sourceXML += "<name>"+name+"</name>"; - sourceXML += "<address>"+address+"</address>"; - - if(type=="rss") - { - var feedAddress = document.getElementById("source_"+sourceid+"_feedAddress").value; - sourceXML += "<feedAddress>"+feedAddress+"</feedAddress>"; - } - else if(type=="pop") - { - var popServer = document.getElementById("source_"+sourceid+"_popServer").value; - sourceXML += "<popServer>"+popServer+"</popServer>"; - var popUsername = document.getElementById("source_"+sourceid+"_popUsername").value; - sourceXML += "<popUsername>"+popUsername+"</popUsername>"; - var popPassword = document.getElementById("source_"+sourceid+"_popPassword").value; - sourceXML += "<popPassword>"+popPassword+"</popPassword>"; - } - sourceXML += "</source>"; - - return sourceXML; -} -</script> -<H1 ID="top">Apache Tuscany Alert Aggregator Sample</H1> -<P>Alert Sources<SPAN ID="refreshSources"></SPAN>:</P> -<DIV ID="sourcesTable"></DIV> -<P>Recent Alerts (<SPAN ID="refresh"><SPAN CLASS="clickable link" ONCLICK="getAlerts('')">Refresh</SPAN></SPAN>):</P> -<DIV ID="alertTable"></DIV> -<HR></HR> -<P><A ID="data" HREF="#top">Back to top</A></P> -<DIV ID="alertData"></DIV> - -</BODY> -</HTML> - diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/pop.png b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/pop.png Binary files differdeleted file mode 100644 index 1cf1df24a7..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/pop.png +++ /dev/null diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/rss.png b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/rss.png Binary files differdeleted file mode 100644 index b3c949d224..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/rss.png +++ /dev/null diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/style.css b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/style.css deleted file mode 100644 index cd377e90e5..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/htdocs/style.css +++ /dev/null @@ -1,166 +0,0 @@ -/*
- * 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.
- */
-
-p,table,li,h1,h2,h3
-{
-font-family: verdana, arial, 'sans serif';
-}
-
-p, h1, h2, h3, table, li, hr
-{
-margin-left: 10pt;
-}
-
-table
-{
-border-color: black;
-border-collapse: separate;
-border-spacing: 0px 1px;
-
-margin-right: 10pt;
-margin-left: 10pt;
-width: 800px;
-}
-
-.sourceDetailsTable
-{
-width: 600px;
-}
-
-tr, td
-{
-margin-left: 0pt;
-margin-right: 0pt;
-padding-left: 10pt;
-font-size: 90%;
-}
-
-p,li,th
-{
-font-size: 90%;
-margin-left: 10pt;
-}
-
-pre
-{
-margin-left: 10pt;
-}
-
-body
-{
-#ffffff;
-}
-
-h1,h2,h3,hr
-{
-color: firebrick;
-}
-
-a:link {COLOR: firebrick;}
-a:visited {COLOR: firebrick;}
-a:active {COLOR: navy;}
-
-.link
-{
-COLOR: firebrick;
-text-decoration: underline;
-}
-
-.clickable
-{
-cursor: pointer
-}
-
-.unread_title
-{
-font-weight: bold;
-}
-
-.read_title
-{
-font-weight: normal;
-}
-
-.summary
-{
-color: DimGrey;
-}
-
-.hidden
-{
-display: none;
-}
-
-.alert_data
-{
-margin-left: 10px;
-width: 800px;
-height: 800px;
-}
-
-.source_0
-{
-background-color: LightGreen;
-}
-
-.source_1
-{
-background-color: LightSkyBlue;
-}
-
-.source_2
-{
-background-color: Khaki;
-}
-
-.source_3
-{
-background-color: LightPink;
-}
-
-.source_4
-{
-background-color: Orange;
-}
-
-.source_5
-{
-background-color: LightCoral;
-}
-
-.source_6
-{
-background-color: Orchid;
-}
-
-.source_7
-{
-background-color: Peru;
-}
-
-.source_8
-{
-background-color: SpringGreen;
-}
-
-.source_9
-{
-background-color: LightGrey;
-}
-
diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/startserver.bat b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/startserver.bat deleted file mode 100644 index fa4d66df31..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/startserver.bat +++ /dev/null @@ -1,73 +0,0 @@ -@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 - -set APFULLDIR=%~d0%~p0 -echo Running from %APFULLDIR% - -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 "%HTTPD_HOME%" == "" ( -echo "HTTPD_HOME not set" -goto end -) -echo Using HTTPD installed at %HTTPD_HOME% - -set PATH=%TUSCANY_SCACPP%\extensions\python\bin;%TUSCANY_SCACPP%\extensions\rest\interface\bin;%TUSCANY_SCACPP%\extensions\rest\service\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%HTTPD_HOME%\bin;%PATH% -set PYTHONPATH=%TUSCANY_SCACPP%\extensions\python\bin - -set TUSCANY_SCACPP_ROOT=%APFULLDIR%\..\ -set TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -@REM Generate the tuscany_sca_mod_rest configuration -if not exist %APFULLDIR%\conf\tuscany_sca_mod_rest.conf ( - echo LoadModule sca_rest_module %TUSCANY_SCACPP%/extensions/rest\service/bin/tuscany_sca_mod_rest.dll > %APFULLDIR%\conf\tuscany_sca_mod_rest.conf - echo TuscanyHome %TUSCANY_SCACPP% >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf - echo ^<Location /rest^> >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf - echo SetHandler sca_rest_module >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf - echo TuscanyRoot %TUSCANY_SCACPP_ROOT% >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf - echo ^</Location^> >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf -) - -@REM Generate the base HTTPD configuration -if not exist %APFULLDIR%\conf\base.conf ( - echo LoadModule mime_module %HTTPD_HOME%\modules\mod_mime.so > %APFULLDIR%\conf\base.conf - echo LoadModule dir_module %HTTPD_HOME%\modules\mod_dir.so >> %APFULLDIR%\conf\base.conf - echo DocumentRoot %APFULLDIR%\htdocs >> %APFULLDIR%\conf\base.conf -) - -@REM Create logs directory -if not exist %APFULLDIR%\logs mkdir %APFULLDIR%\logs -set TUSCANY_SCACPP_LOG=%APFULLDIR%\logs\tuscany-server.log -set TUSCANY_SCACPP_LOGGING=9 - -@REM Start the HTTP server -echo Starting Apache httpd -httpd -d %APFULLDIR% diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/startserver.sh b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/startserver.sh deleted file mode 100755 index d197b94245..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/startserver.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/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" - -if [ x$PYTHON_LIB != x ]; then -echo "Using Python library installed at $PYTHON_LIB" -export LD_LIBRARY_PATH=$PYTHON_LIB:$LD_LIBRARY_PATH -export PATH=$PYTHON_LIB/../bin:$PATH -fi - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/extensions/python/lib:$TUSCANY_SCACPP/extensions/ruby/lib:$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$LD_LIBRARY_PATH -export PYTHONPATH=$TUSCANY_SCACPP/extensions/python/lib:$PYTHONPATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -libsuffix=.so -UNAME=`uname -s` -if [ "x$UNAME" = "xDarwin" ]; then - libsuffix=.dylib -fi - -# Generate the mod_rest configuration -if [ ! -f conf/tuscany_sca_mod_rest.conf ]; then - echo "LoadModule sca_rest_module $TUSCANY_SCACPP/extensions/rest/service/lib/libtuscany_sca_mod_rest$libsuffix" >conf/tuscany_sca_mod_rest.conf - echo "TuscanyHome $TUSCANY_SCACPP" >>conf/tuscany_sca_mod_rest.conf - echo "<Location /rest>" >>conf/tuscany_sca_mod_rest.conf - echo " SetHandler sca_rest_module" >>conf/tuscany_sca_mod_rest.conf - echo " TuscanyRoot $TUSCANY_SCACPP_ROOT" >>conf/tuscany_sca_mod_rest.conf - echo "</Location>" >>conf/tuscany_sca_mod_rest.conf -fi - -if [ ! -f conf/base.conf ]; then - echo "DocumentRoot $APFULLDIR/htdocs" >conf/base.conf -fi - -# Create logs directory -if [ ! -d logs ]; then - mkdir logs -fi - -# Start the HTTP server -echo "Starting Apache httpd" - -# 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 - -apachectl -k start -d $APFULLDIR - diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/stopserver.sh b/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/stopserver.sh deleted file mode 100755 index c17f632a3e..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/httpserver/stopserver.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/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` - -# Stop the HTTP server -echo "Stopping Apache httpd" -apachectl -k stop -d $APFULLDIR - diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter.app.composite b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter.app.composite deleted file mode 100644 index 4c0d4ccd1a..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter.app.composite +++ /dev/null @@ -1,33 +0,0 @@ -<?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.alerter.app"> - - <component name="sample.display.DisplayComponent"> - <implementation.composite name="sample.display" /> - <reference name="AlerterService">sample.alerter.AlerterComponent/AlerterService</reference> - </component> - - <component name="sample.alerter.AlerterComponent"> - <implementation.composite name="sample.alerter" /> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/AlertCheckerImpl.py b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/AlertCheckerImpl.py deleted file mode 100644 index d9aab820ac..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/AlertCheckerImpl.py +++ /dev/null @@ -1,116 +0,0 @@ -# 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. -# -import xml.etree.ElementTree, datetime - -def getAllNewAlerts (): - - returnXML = "<alerts xmlns=\"http://tuscany.apache.org/samples/alerter\">\n</alerts>" - returnElem = xml.etree.ElementTree.XML(returnXML) - - # Use the alertConfigService to get the configuration - configElem = alertConfigService.getAlertConfig() - - for sourceElem in configElem.findall("./{http://tuscany.apache.org/samples/alerter}source"): - - sourceid = sourceElem.attrib["id"] - - newAlerts = getAlerts(sourceElem) - if xml.etree.ElementTree.iselement(newAlerts): - # Add the sourceid to each alert and append to the entire list - for alert in newAlerts.findall("./{http://tuscany.apache.org/samples/alerter}alert"): - alert.attrib["sourceid"] = sourceid - returnElem.append(alert) - - return returnElem - -def getAlerts (sourceElem): - - lastcheckedElem = sourceElem.find("./{http://tuscany.apache.org/samples/alerter}lastChecked") - if not xml.etree.ElementTree.iselement(lastcheckedElem): - lastcheckedElem = xml.etree.ElementTree.SubElement(sourceElem, "lastChecked") - lastcheckedElem.text = "" - - if sourceElem.attrib["type"] == "rss": - - feedaddress = sourceElem.find("./{http://tuscany.apache.org/samples/alerter}feedAddress").text - - if feedaddress: - # Use the rssCheckerService to get new articles for this config - newAlerts = rssCheckerService.getNewAlerts(feedaddress, lastcheckedElem.text) - - lastcheckedElem.text = datetime.datetime.now().replace(microsecond=0).isoformat() - alertConfigService.updateSourceConfig(sourceElem) - return newAlerts - - elif sourceElem.attrib["type"] == "pop": - - popserver = sourceElem.find("./{http://tuscany.apache.org/samples/alerter}popServer").text - popusername = sourceElem.find("./{http://tuscany.apache.org/samples/alerter}popUsername").text - poppassword = sourceElem.find("./{http://tuscany.apache.org/samples/alerter}popPassword").text - - if popserver and popusername and poppassword: - # Use the popCheckerService to get new emails for this config - newAlerts = popCheckerService.getNewAlerts(popserver, popusername, poppassword, lastcheckedElem.text) - - lastcheckedElem.text = datetime.datetime.now().replace(microsecond=0).isoformat() - alertConfigService.updateSourceConfig(sourceElem) - return newAlerts - - else: - print "Source type not supported: ", sourceElem.attrib["type"] - - return None - - -def getNewAlerts (sourceId): - # Use the alertConfigService to get the configuration - sourceConfigElem = alertConfigService.getSourceConfig(sourceId) - - # Get the alerts - newAlerts = getAlerts(sourceConfigElem) - - if xml.etree.ElementTree.iselement(newAlerts): - # Add the sourceid to each alert - for alert in newAlerts.findall("./{http://tuscany.apache.org/samples/alerter}alert"): - alert.attrib["sourceid"] = sourceId - - return newAlerts - -def addAlertSource (sourceElem): - # Add the source directly to the configuration - return alertConfigService.addSourceConfig(sourceElem) - -def updateAlertSource (sourceElem): - # Update the source in the configuration - return alertConfigService.updateSourceConfig(sourceElem) - -def removeAlertSource (sourceId): - # Remove the source from the configuration - alertConfigService.removeSourceConfig(sourceId) - -def getAlertSources (): - # Get the config for all the sources - return alertConfigService.getAlertConfig() - -# # Testing -# import AlertConfigImpl as alertConfigService -# import RSSCheckerImpl as rssCheckerService -# import POPCheckerImpl as popCheckerService -# -# print xml.etree.ElementTree.tostring(getAlertSources()) -# print xml.etree.ElementTree.tostring(getAllNewAlerts()) diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/AlertConfigImpl.py b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/AlertConfigImpl.py deleted file mode 100644 index 2800a940b4..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/AlertConfigImpl.py +++ /dev/null @@ -1,175 +0,0 @@ -# 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. -# - -import xml.etree.ElementTree, os.path, os - -def getAlertConfig (): - - # Set up some default config data - configData = "<config xmlns=\"http://tuscany.apache.org/samples/alerter\">\n</config>" - - if os.path.isfile(os.environ['TUSCANY_SCACPP_ROOT']+"/config.xml"): - # Retrieve the configuration from a file - f = open(os.environ['TUSCANY_SCACPP_ROOT']+"/config.xml") - try: - configData = f.read() - finally: - f.close() - - configElem = xml.etree.ElementTree.XML(configData) - - return configElem - -def getSourceConfig (sourceId): - - configElem = getAlertConfig() - - for sourceElem in configElem.findall("./{http://tuscany.apache.org/samples/alerter}source"): - if sourceElem.attrib["id"] == sourceId: - return sourceElem - - print "Source with id matching",sourceId,"not found" - return - -def updateSourceConfig (alertSourceConfigElem): - - configElem = getAlertConfig() - sourceId = alertSourceConfigElem.attrib["id"] - - for sourceElem in configElem.findall("./{http://tuscany.apache.org/samples/alerter}source"): - if sourceElem.attrib["id"] == sourceId: - configElem.remove(sourceElem) - configElem.append(alertSourceConfigElem) - saveConfigData(configElem) - return - print "Source with id matching",sourceId,"not found" - return - -def addSourceConfig (alertSourceConfigElem): - configElem = getAlertConfig() - - #check for source ID, make sure it's not the same as others and create one if it's missing - if "id" in alertSourceConfigElem.attrib: - configId = alertSourceConfigElem.attrib["id"] - else: - configId = "0" - - gotConfigId = False - - while gotConfigId == False: - - config = getSourceConfig(configId) - if config: - configId = str( int(configId)+1 ) - else: - gotConfigId = True - - - alertSourceConfigElem.attrib["id"] = configId - - configElem.append(alertSourceConfigElem) - saveConfigData(configElem) - - return configId - -def saveConfigData (configElem): - configData = xml.etree.ElementTree.tostring(configElem) - - # Save the configuration to a file - f = open(os.environ['TUSCANY_SCACPP_ROOT']+"/config.xml", "w") - - if not f: - print "Failed to open config file for writing" - try: - f.write(configData) - finally: - f.close() - -def removeSourceConfig(sourceId): - configElem = getAlertConfig() - for sourceElem in configElem.findall("./{http://tuscany.apache.org/samples/alerter}source"): - if sourceElem.attrib["id"] == sourceId: - configElem.remove(sourceElem) - saveConfigData(configElem) - return - -# # Testing -# if os.path.isfile("config.xml"): -# os.remove("config.xml") -# data = getAlertConfig() -# print xml.etree.ElementTree.tostring(data), "\n" -# -# newsrcxml = "<source xmlns=\"http://tuscany.apache.org/samples/alerter\" type=\"rss\" id=\"0\">\n" -# newsrcxml += "<name>PSP Updates</name>\n" -# newsrcxml += "<address>http://pspupdates.qj.net</address>\n" -# newsrcxml += "<feedAddress>http://pspupdates.qj.net/rss.xml</feedAddress></source>" -# -# newsrc = xml.etree.ElementTree.XML(newsrcxml) -# ID = addSourceConfig(newsrc) -# print "Added src with ID:", ID, "\n" -# -# newsrcxml = "<source xmlns=\"http://tuscany.apache.org/samples/alerter\" type=\"rss\" id=\"1\">\n" -# newsrcxml += "<name>PSP Updates</name>\n" -# newsrcxml += "<address>http://pspupdates.qj.net!</address>\n" -# newsrcxml += "<feedAddress>http://pspupdates.qj.net/atom.xml</feedAddress></source>" -# -# newsrc = xml.etree.ElementTree.XML(newsrcxml) -# ID = addSourceConfig(newsrc) -# print "Added src with ID:", ID, "\n" -# -# data = getAlertConfig() -# print xml.etree.ElementTree.tostring(data), "\n" -# -# data = getSourceConfig("0") -# print xml.etree.ElementTree.tostring(data), "\n" -# print dir(data), "\n" -# -# name = data.find("./{http://tuscany.apache.org/samples/alerter}name") -# name.text = "Hello world!" -# -# updateSourceConfig(data) -# data = getSourceConfig("1") -# print xml.etree.ElementTree.tostring(data), "\n" -# -# removeSourceConfig("1") -# data = getAlertConfig() -# print xml.etree.ElementTree.tostring(data), "\n" -# -# ID = addSourceConfig(newsrc) -# print "Added src with ID:", ID, "\n" -# -# ID = addSourceConfig(newsrc) -# print "Added src with ID:", ID, "\n" -# -# data = getAlertConfig() -# print xml.etree.ElementTree.tostring(data), "\n" -# -# -# newsrcxml = "<source xmlns=\"http://tuscany.apache.org/samples/alerter\" type=\"rss\">\n" -# newsrcxml += "<name>PSP Updates</name>\n" -# newsrcxml += "<address>http://pspupdates.qj.net!</address>\n" -# newsrcxml += "<feedAddress>http://pspupdates.qj.net/atom.xml</feedAddress></source>" -# -# newsrc = xml.etree.ElementTree.XML(newsrcxml) -# ID = addSourceConfig(newsrc) -# print "Added src with ID:", ID, "\n" -# -# data = getAlertConfig() -# print xml.etree.ElementTree.tostring(data), "\n" -# - diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/Alerter.xsd b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/Alerter.xsd deleted file mode 100644 index c59460995d..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/Alerter.xsd +++ /dev/null @@ -1,73 +0,0 @@ -<?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.
--->
-
-<schema targetNamespace="http://tuscany.apache.org/samples/alerter"
- xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://tuscany.apache.org/samples/alerter"> - <element name="alerts" type="ns:alerts"/>
- - <complexType name="alert"> - <sequence> - <element name="title" type="string"/>
- <element name="summary" type="string"/> - <element name="address" type="anyURI" maxOccurs="1" minOccurs="1"/> - <element name="date" type="string" maxOccurs="1" minOccurs="1"/> - </sequence>
- <attribute name="sourceid" type="string" use="optional"/>
- </complexType> - - <complexType name="alerts"> - <sequence> - <element name="alert" type="ns:alert" maxOccurs="unbounded" minOccurs="0" /> - </sequence>
- </complexType>
- - <element name="config" type="ns:config"/>
- <element name="source" type="ns:source"/>
- - <complexType name="source"> - <sequence> - <element name="name" type="string" maxOccurs="1" minOccurs="1"/>
- <element name="address" type="anyURI" maxOccurs="1" minOccurs="1"/>
- <element name="lastChecked" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="feedAddress" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="popServer" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="popUsername" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="popPassword" type="string" maxOccurs="1" minOccurs="0"/>
- <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> - </sequence>
- <attribute name="id" type="string" use="optional"/>
- <attribute name="type" use="required">
- <simpleType>
- <restriction base="string">
- <enumeration value="rss"/>
- <enumeration value="pop"/> - <enumeration value="nntp"/> - </restriction>
- </simpleType>
- </attribute> - </complexType> - - <complexType name="config"> - <sequence> - <element name="source" type="ns:source" maxOccurs="unbounded" minOccurs="0"/>
- </sequence>
- </complexType> -</schema>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/Makefile.am b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/Makefile.am deleted file mode 100644 index 9a0ca276a0..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/AlertAggregator/deploy -compositedir=$(deploydir)/sample.alerter - -composite_DATA = *.composite *.py *.rb *.xsd -EXTRA_DIST = *.composite *.py *.rb *.xsd - diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/POPCheckerImpl.py b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/POPCheckerImpl.py deleted file mode 100644 index 0ae115ac2e..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/POPCheckerImpl.py +++ /dev/null @@ -1,104 +0,0 @@ -# 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. -# - -import poplib, email, datetime, re, xml.etree.ElementTree - -def getNewAlerts(popserver, username, password, lastchecktimestamp): - - print "POPCheckerImpl getting new POP e-mail alerts\n" - - alertsXML = "<alerts xmlns=\"http://tuscany.apache.org/samples/alerter\">\n" - - # initially set lastchecked to the epoch before trying to use the lastchecked string - lastcheckdate = datetime.datetime.min - if lastchecktimestamp: - lastcheckdate = datetime.datetime.strptime(lastchecktimestamp, "%Y-%m-%dT%H:%M:%S") - - numberOfNewEmails = 0 - - mail = poplib.POP3(popserver) - mail.user(username) - mail.pass_(password) - msgCount, inboxSize = mail.stat() - - for msgNum in range(msgCount): - - print "getting msg", msgNum+1, "of", msgCount - - data = "" - for line in mail.retr(msgNum+1)[1]: - data += str(line) - data += "\n" - - msg = email.message_from_string(data) - - # date is of form "Sun, 21 Jan 2007 13:51:53 -0500" - msgDateString = msg.get("Date") - msgDateString, tz = msgDateString.rsplit(None, 1) - - timezoneadjust = datetime.timedelta(0, (int(tz)/100)*60*60 + int(tz[3:5])*60) - - msgdate = datetime.datetime.strptime(msgDateString, "%a, %d %b %Y %H:%M:%S") + timezoneadjust - - if msgdate >= lastcheckdate: - msgTo = msg.get("To") - msgFrom = msg.get("From") - msgSubject = msg.get("Subject") - - msgBody = "" - if msg.is_multipart(): - for msgPart in msg.get_payload(): - if msgPart.get_content_type() == "text/plain" or (msgPart.get_content_type() == "text/html" and msgBody == ""): - msgBody = msgPart.get_payload() - else: - msgBody = msg.get_payload() - - alertsXML += "<alert><title>" + encodeXML(msgFrom) + " - "+encodeXML(msgSubject)+"</title>\n" - alertsXML += "<address></address>\n" - alertsXML += "<date>" + msgdate.isoformat() + "</date>\n" - alertsXML += "<summary>From: " + encodeXML(msgFrom) - alertsXML += "\nTo: "+encodeXML(msgTo) - alertsXML += "\nSubject: "+encodeXML(msgSubject) - alertsXML += "\nDate: " + msgdate.isoformat() - alertsXML += "\n\n" + stripXML(msgBody) + "</summary></alert>\n" - - - mail.quit() - - alertsXML += "</alerts>" - - return xml.etree.ElementTree.XML(alertsXML) - - -def encodeXML(data): - data = re.sub("<","[", data) - data = re.sub(">","]", data) - return data - -def stripXML(data): - elementsRemoved = re.sub("<.*?>","", data) - entitiesRemoved = re.sub("&.*?;", " ", elementsRemoved) - asciiEncoded = entitiesRemoved.encode('ASCII', 'replace') - returnData = asciiEncoded.replace('&', 'and') - return returnData - - - -# Testing - -# print getNewAlerts("mail.eclipse.co.uk", "andrew@borley-hall.eclipse.co.uk", "app73sauc3", "2007-01-29T02:15:53") diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/POPCheckerImpl.rb b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/POPCheckerImpl.rb deleted file mode 100644 index e61046cb84..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/POPCheckerImpl.rb +++ /dev/null @@ -1,122 +0,0 @@ -# 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 'net/pop' -require "rexml/document" -include REXML - -# class POPChecker -# -# def initialize() -# print "POPCheckerImpl.initialize\n" -# end - -def getNewAlerts(popserver, username, password, lastchecked) - - print "POPCheckerImpl getting new POP e-mail alerts\n" - - alertsXML = "<alerts xmlns=\"http://tuscany.apache.org/samples/alerter\">\n" - - # initially set lastchecked to the epoch before trying to use the lastchecked string - lastcheckedtime = Time.at(0) - if lastchecked != '' - # lastchecked (if provided) is of form 2007-02-17T23:34:56 - year , month, day, hour, min, sec = lastchecked.split(/[-T:]/) - lastcheckedtime = Time.gm(year , month, day, hour, min, sec, nil) - end - - numberOfEmails = 0 - - Net::POP3.start(popserver, 110, username, password) do |pop| - - if !pop.mails.empty? - pop.each_mail do |m| - msg = m.pop - - header, body = msg.split("\r\n\r\n", 2) - date = getMessageField("Date", header) - # date is of form "Sun, 21 Jan 2007 13:51:53 -0500" - parts = date.split(' ') - timeparts = parts[4].split(':') - timezoneSecs = (parts[5].to_i()/100)*60*60 + (parts[5].slice(-2,0).to_i())*60 - - msgtime = Time.gm(timeparts[2], timeparts[1], timeparts[0], parts[1], parts[2], parts[3], nil, nil, nil, nil) + timezoneSecs - - - if msgtime >= lastcheckedtime - from = getMessageField("From", header) - subject = getMessageField("Subject", header) - - alertsXML += "<alert><title>From: " + encodeXML(from) + "\nSubject: "+encodeXML(subject)+"</title>\n" - alertsXML += "<address></address>\n" - alertsXML += "<date>" + msgtime.strftime("%Y-%m-%dT%H:%M:%S") + "</date>\n" - alertsXML += "<summary>" + stripXML(body) + "</summary></alert>\n" - - numberOfEmails += 1 - end - - end - end - end - alertsXML += "</alerts>" - - # Print XML - # puts alertsXML - print "POPCheckerImpl retrieved "+numberOfEmails.to_s+" new POP e-mail alerts\n" - - # Return data as REXML document - result = Document.new(alertsXML) - - return result -end - - -def getMessageField(field, message) - - # Use a regex to get the field - pattern = '^'+field+': (.*?)$' - - re = Regexp.new(pattern) - re =~ message - - if $1 == nil - return '' - end - - return $1 -end - -def encodeXML(data) - data = data.gsub(/</,'<') - data = data.gsub(/>/,'>') - return data -end - -def stripXML(data) - data = data.gsub(/<.*?>/m,'') - data = data.gsub(/&.*?;/, ' ') - data = data.gsub(/&/, 'and') - data = encodeXML(data) - return data -end - - - -# # Testing -# pop = POPChecker.new() -# print pop.getNewAlerts("mail.eclipse.co.uk", "andrew@borley-hall.eclipse.co.uk", "app73sauc3", "2007-01-29T02:15:53") diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/RSSCheckerImpl.py b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/RSSCheckerImpl.py deleted file mode 100644 index 2e320c0b22..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/RSSCheckerImpl.py +++ /dev/null @@ -1,76 +0,0 @@ -# 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. -# - -import feedparser, datetime, xml.etree.ElementTree, re - -def getNewAlerts(rssaddress, lastchecktimestamp): - - print "RSSCheckerImpl.getNewAlerts() called", rssaddress, lastchecktimestamp - - #Get and parse the RSS/Atom data - d = feedparser.parse(rssaddress) - - newalertsxml = "<alerts xmlns=\"http://tuscany.apache.org/samples/alerter\">\n" - - lastcheckdate = datetime.datetime.min - if lastchecktimestamp: - lastcheckdate = datetime.datetime.strptime(lastchecktimestamp, "%Y-%m-%dT%H:%M:%S") - - defaultTitle = d.feed.get('title', 'RSS feed article') - defaultLink = d.feed.get('link', 'http://incubator.apache.org/tuscany') - defaultSummary = 'No information provided' - - for entry in d.entries: - - if entry.has_key('date'): - (year, month, day, hour, minute, second, millisecond, microsecond, tzinfo) = entry.date_parsed - entrydate = datetime.datetime(year, month, day, hour, minute, second) - else: - entrydate = datetime.datetime.now() - - - if (entrydate > lastcheckdate) : - - newalertsxml += "<alert><title>" + stripXML(entry.get('title', defaultTitle)) + "</title>\n" - newalertsxml += "<address>" + entry.get('link', defaultLink) + "</address>\n" - newalertsxml += "<date>" + entrydate.isoformat() + "</date>\n" - newalertsxml += "<summary>" + stripXML(entry.get('description', defaultSummary)) + "</summary></alert>\n" - newalertsxml += "</alerts>" - - return xml.etree.ElementTree.XML(newalertsxml) - -def stripXML(data): - elementsRemoved = re.sub("<.*?>","", data) - entitiesRemoved = re.sub("&.*?;", " ", elementsRemoved) - asciiEncoded = entitiesRemoved.encode('ASCII', 'replace') - returnData = asciiEncoded.replace('&', 'and') - return returnData - - -# Testing -# print xml.etree.ElementTree.tostring(getNewAlerts("http://www.engadget.com/rss.xml", "2007-02-07T17:11:14")) -# -# -# today = datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) -# data2 = getNewAlerts("http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml", today.isoformat()) -# print xml.etree.ElementTree.tostring(data2) -# -# print "1st call returned", len(data.findall("./{http://tuscany.apache.org/samples/alerter}alert")), "elements" -# print "2nd call returned", len(data2.findall("./{http://tuscany.apache.org/samples/alerter}alert")), "elements" - - diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/sample.alerter.composite b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/sample.alerter.composite deleted file mode 100644 index 21c4ee1093..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.alerter/sample.alerter.composite +++ /dev/null @@ -1,49 +0,0 @@ -<?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.alerter"> - - <service name="AlerterService"> - <binding.rest/> - <reference>AlertCheckerComponent</reference> - </service> - - <component name="AlertCheckerComponent"> - <implementation.python module="AlertCheckerImpl" scope="composite"/> - <reference name="alertConfigService">AlertConfigComponent</reference> - <reference name="rssCheckerService">RSSCheckerComponent</reference> - <reference name="popCheckerService">POPCheckerComponent</reference> - </component> - - <component name="RSSCheckerComponent"> - <implementation.python module="RSSCheckerImpl" scope="composite"/> - </component> - - <component name="POPCheckerComponent"> - <!--implementation.ruby script="POPCheckerImpl.rb" scope="stateless"/--> - <implementation.python module="POPCheckerImpl" scope="composite"/> - </component> - - <component name="AlertConfigComponent"> - <implementation.python module="AlertConfigImpl" scope="composite"/> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/Alerter.xsd b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/Alerter.xsd deleted file mode 100644 index c59460995d..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/Alerter.xsd +++ /dev/null @@ -1,73 +0,0 @@ -<?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.
--->
-
-<schema targetNamespace="http://tuscany.apache.org/samples/alerter"
- xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:ns="http://tuscany.apache.org/samples/alerter"> - <element name="alerts" type="ns:alerts"/>
- - <complexType name="alert"> - <sequence> - <element name="title" type="string"/>
- <element name="summary" type="string"/> - <element name="address" type="anyURI" maxOccurs="1" minOccurs="1"/> - <element name="date" type="string" maxOccurs="1" minOccurs="1"/> - </sequence>
- <attribute name="sourceid" type="string" use="optional"/>
- </complexType> - - <complexType name="alerts"> - <sequence> - <element name="alert" type="ns:alert" maxOccurs="unbounded" minOccurs="0" /> - </sequence>
- </complexType>
- - <element name="config" type="ns:config"/>
- <element name="source" type="ns:source"/>
- - <complexType name="source"> - <sequence> - <element name="name" type="string" maxOccurs="1" minOccurs="1"/>
- <element name="address" type="anyURI" maxOccurs="1" minOccurs="1"/>
- <element name="lastChecked" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="feedAddress" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="popServer" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="popUsername" type="string" maxOccurs="1" minOccurs="0"/>
- <element name="popPassword" type="string" maxOccurs="1" minOccurs="0"/>
- <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> - </sequence>
- <attribute name="id" type="string" use="optional"/>
- <attribute name="type" use="required">
- <simpleType>
- <restriction base="string">
- <enumeration value="rss"/>
- <enumeration value="pop"/> - <enumeration value="nntp"/> - </restriction>
- </simpleType>
- </attribute> - </complexType> - - <complexType name="config"> - <sequence> - <element name="source" type="ns:source" maxOccurs="unbounded" minOccurs="0"/>
- </sequence>
- </complexType> -</schema>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/HTMLDisplayImpl.py b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/HTMLDisplayImpl.py deleted file mode 100644 index 0122701063..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/HTMLDisplayImpl.py +++ /dev/null @@ -1,379 +0,0 @@ -# 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. -# -# - - -import xml.etree.ElementTree, datetime, os.path, os - -ns = "./{http://tuscany.apache.org/samples/alerter}" - -def getSavedAlerts(): - - # Set up some default config data - alertsData = "<alerts xmlns=\"http://tuscany.apache.org/samples/alerter\">\n</alerts>" - - if os.path.isfile(os.environ['TUSCANY_SCACPP_ROOT']+"/sample.display/alerts.xml"): - # Retrieve the configuration from a file - f = open(os.environ['TUSCANY_SCACPP_ROOT']+"/sample.display/alerts.xml") - try: - alertsData = f.read() - finally: - f.close() - - alertsElem = xml.etree.ElementTree.XML(alertsData) - - return alertsElem - -def saveAlerts(alertsElem): - alertsData = xml.etree.ElementTree.tostring(alertsElem) - - # Save the configuration to a file - f = open(os.environ['TUSCANY_SCACPP_ROOT']+"/sample.display/alerts.xml", "w") - - if not f: - print "Failed to open alerts file for writing" - try: - f.write(alertsData) - finally: - f.close() - - -def updateAllAlertsHTMLTable (): - - alertsElem = getSavedAlerts() - - # Use the alertService reference - newAlertsElem = alertService.getAllNewAlerts() - #newAlertsElem = getAllNewAlerts(); # For testing - - for alert in newAlertsElem.findall(ns+"alert"): - - alert.attrib["unread"]="True" - alertsElem.append(alert) - - return generateHTMLTable(alertsElem) - - -def updateSourceAlertsHTMLTable (sourceId): - - alertsElem = getSavedAlerts() - - # Use the alertService reference - newAlertsElem = alertService.getNewAlerts(sourceId); - #newAlertsElem = getAllNewAlerts(); # For testing - - for alert in newAlertsElem.findall(ns+"alert"): - - alert.attrib["unread"]="True" - alertsElem.append(alert) - - return generateHTMLTable(alertsElem) - - - -def generateHTMLTable (alertsElem): - - returnData = "<TABLE border=\"0\">" - - # If we have more than x alerts, clear out any that have been read - # x is determined by the showNumberOfReadAlerts property - alerts = alertsElem.findall(ns+"alert") - if len(alerts) > int(showNumberOfReadAlerts): - for alert in alerts: - if alert.attrib["unread"]!="True": - alertsElem.remove(alert) - - alertIDNumber = 0 - for alert in alertsElem.findall(ns+"alert"): - - date = datetime.datetime.strptime(alert.find(ns+"date").text, "%Y-%m-%dT%H:%M:%S") - alertID = "alert_"+str(alertIDNumber) - alert.attrib["id"]= alertID - alertIDNumber += 1 - - returnData += "<TR class=\"source_" - returnData += alert.attrib["sourceid"] - returnData += " clickable\" onclick=\"displayAlert('" - address = alert.find(ns+"address").text - if address != None: - returnData += address - returnData += "', '"+alertID+"')\"><TD><SPAN id=\""+alertID+"\" class=\"" - if alert.attrib["unread"] == "True": - returnData += "unread_title" - else: - returnData += "read_title" - returnData += "\">" - title = alert.find(ns+"title").text - noOfChars = 75-len(title) - - if noOfChars>0: - returnData += title - returnData += "</SPAN><SPAN class=\"summary\"> - " - returnData += alert.find(ns+"summary").text[0:noOfChars] - returnData += "...</SPAN></TD><TD>" - else: - returnData += title[0:80] - returnData += "</SPAN></TD><TD>" - - returnData += date.strftime("%d/%m/%Y %I:%M %p") - returnData += "</TD></TR>\n" - - returnData += "</TABLE>" - - saveAlerts(alertsElem) - #print xml.etree.ElementTree.tostring(alertsElem) - return returnData - -def readAlert (alertID): - - alertsElem = getSavedAlerts() - - returnData = "" - for alert in alertsElem.findall(ns+"alert"): - - if alert.attrib["id"]==alertID: - alert.attrib["unread"] = "False" - - saveAlerts(alertsElem) - - srcType = getSourceType(alert.attrib["sourceid"]) - - if srcType=="pop": - returnData += "<PRE>" - returnData += alert.find(ns+"summary").text - returnData += "</PRE>" - return returnData - - return - -def getSourceType(sourceid): - # Use the alertService reference - alertSources = alertService.getAlertSources() - #alertSources = getAlertSources() #testing - - for source in alertSources.findall(ns+"source"): - - if sourceid == source.attrib["id"]: - return source.attrib["type"] - - return "none" - - -def getAlertSourcesHTMLTable(): - - returnData = "<TABLE border=\"0\">\n" - - # Use the alertService reference - alertSources = alertService.getAlertSources() - #alertSources = getAlertSources() #testing - - srcIdList = [] - - for source in alertSources.findall(ns+"source"): - - srcId = source.attrib["id"] - srcIdList.append(srcId) - srcType = source.attrib["type"] - - # Write out the source data row - returnData += "<TR CLASS=\"source_" - returnData += srcId - returnData += "\"><TD CLASS=\"clickable\" ONCLICK=\"displayAlert('" - returnData += source.find(ns+"address").text - returnData += "', '')\">" - returnData += "<IMG SRC=\"" - returnData += srcType - returnData += ".png\"/> " - returnData += source.find(ns+"name").text - returnData += "</TD><TD CLASS=\"clickable link\" ONCLICK=\"getAlerts('" - returnData += srcId - returnData += "')\">Update Alerts</TD><TD CLASS=\"clickable link\" ONCLICK=\"showEditSource('" - returnData += srcId - returnData += "')\">Edit Source</TD><TD CLASS=\"clickable link\" ONCLICK=\"deleteSource('" - returnData += srcId - returnData += "')\">Delete Source</TD></TR>\n" - - # Now write out the row that gets shown when "edit" is pressed - returnData += "<TR ID=\"edit_source_" - returnData += srcId - returnData += "\" CLASS=\"hidden source_" - returnData += srcId - returnData += "\"><TD COLSPAN=\"4\"><TABLE CLASS=\"sourceDetailsTable\"><TR><TD>Source name:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_name\" TYPE=\"TEXT\" SIZE=\"50\" VALUE=\"" - returnData += source.find(ns+"name").text - returnData += "\"/></TR><TR><TD>Source address:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_address\" TYPE=\"TEXT\" SIZE=\"50\" VALUE=\"" - returnData += source.find(ns+"address").text - returnData += "\"/></TR>" - if srcType=="rss": - returnData += "<TR><TD>Feed address:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_feedAddress\" TYPE=\"TEXT\" SIZE=\"50\" VALUE=\"" - returnData += source.find(ns+"feedAddress").text - returnData += "\"/></TR>" - elif srcType=="pop": - returnData += "<TR><TD>POP3 server:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_popServer\" TYPE=\"TEXT\" SIZE=\"50\" VALUE=\"" - returnData += source.find(ns+"popServer").text - returnData += "\"/></TR>" - returnData += "<TR><TD>Username:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_popUsername\" TYPE=\"TEXT\" SIZE=\"50\" VALUE=\"" - returnData += source.find(ns+"popUsername").text - returnData += "\"/></TD></TR>" - returnData += "<TR><TD>Password:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_popPassword\" TYPE=\"PASSWORD\" SIZE=\"50\" VALUE=\"" - returnData += source.find(ns+"popPassword").text - returnData += "\"/></TD></TR>" - returnData += "<TR><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_type\" TYPE=\"HIDDEN\" VALUE=\"" - returnData += srcType - returnData += "\"/><INPUT TYPE=\"BUTTON\" VALUE=\"Update\" ONCLICK=\"updateSource('" - returnData += srcId - returnData += "')\"><INPUT TYPE=\"BUTTON\" VALUE=\"Cancel\" ONCLICK=\"hideEditSource('" - returnData += srcId - returnData += "')\"></TR></TABLE></TD></TR>" - - # Get the first unused srcId - srcId = "0" - while srcId in srcIdList: - srcId = str(int(srcId)+1) - - # Now write out the "add new source" row - returnData += "<TR CLASS=\"source_" - returnData += srcId - returnData += "\"><TD COLSPAN=\"4\" CLASS=\"clickable link\" ONCLICK=\"showAddNewSource('" - returnData += srcId - returnData += "')\">Add new Alert Source</TD></TR>" - # Add the (initially hidden) new source details row - returnData += "<TR ID=\"add_source_" - returnData += srcId - returnData += "\"CLASS=\"hidden source_" - returnData += srcId - returnData += "\"><TD COLSPAN=\"4\"><TABLE CLASS=\"sourceDetailsTable\"><TR><TD>Source name:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_name\" TYPE=\"TEXT\" SIZE=\"50\"/></TD></TR><TR><TD>Source address:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_address\" TYPE=\"TEXT\" SIZE=\"50\"/></TD></TR><TR><TD>Source type:</TD><TD><SELECT ID=\"source_" - returnData += srcId - returnData += "_type\" ONCHANGE=\"showSourceType('" - returnData += srcId - returnData += "')\"><OPTION value=\"rss\" selected=\"selected\">RSS/Atom feed</OPTION>" - returnData += "<OPTION value=\"pop\">POP3 Email</OPTION></SELECT></TD></TR>" - # Section for RSS feeds - returnData += "<TR ID=\"add_rss_source\"><TD COLSPAN=\"2\"><TABLE CLASS=\"sourceDetailsTable\"><TR><TD>Feed address:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_feedAddress\" TYPE=\"TEXT\" SIZE=\"50\"/></TD></TR></TABLE></TD></TR>" - # Section for POP3 email - returnData += "<TR ID=\"add_pop_source\" CLASS=\"hidden\"><TD COLSPAN=\"2\"><TABLE CLASS=\"sourceDetailsTable\"><TR><TD>POP3 server:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_popServer\" TYPE=\"TEXT\" SIZE=\"50\"/></TR>" - returnData += "<TR><TD>Username:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_popUsername\" TYPE=\"TEXT\" SIZE=\"50\"/></TD></TR>" - returnData += "<TR><TD>Password:</TD><TD><INPUT ID=\"source_" - returnData += srcId - returnData += "_popPassword\" TYPE=\"PASSWORD\" SIZE=\"50\"/></TD></TR></TABLE></TD></TR>" - # Last row for buttons - returnData += "<TR><TD><INPUT TYPE=\"BUTTON\" VALUE=\"Add\" ONCLICK=\"addSource('" - returnData += srcId - returnData += "')\"><INPUT TYPE=\"BUTTON\" VALUE=\"Cancel\" ONCLICK=\"hideAddNewSource('" - returnData += srcId - returnData += "')\"></TD></TR></TABLE></TD></TR>" - returnData += "</TABLE>\n" - return returnData - - -def deleteAlertSource (sourceId): - # Use the alertService reference - alertService.removeAlertSource(sourceId) - - - # Remove all alerts with this sourceid - alertsElem = getSavedAlerts() - for alert in alertsElem.findall(ns+"alert"): - if alert.attrib["sourceid"]==sourceId: - alertsElem.remove(alert) - - saveAlerts(alertsElem) - -def addAlertSource(alertSourceElem): - if xml.etree.ElementTree.iselement(alertSourceElem): - # Use the alertService reference - alertService.addAlertSource(alertSourceElem) - return - -def updateAlertSource(alertSourceElem): - - if xml.etree.ElementTree.iselement(alertSourceElem): - - alertsElem = getSavedAlerts() - - # Get the sourceid - sourceId = alertSourceElem.attrib["id"] - - # Remove all alerts with this sourceid - they may have changed - for alert in alertsElem.findall(ns+"alert"): - if alert.attrib["sourceid"]==sourceId: - alertsElem.remove(alert) - - # Use the alertService reference to update the config - alertService.updateAlertSource(alertSourceElem) - - saveAlerts(alertsElem) - - return - - -# # For testing -# showNumberOfReadAlerts = 3 -# -# def getAllNewAlerts (): -# -# data = "<alerts xmlns=\"http://tuscany.apache.org/samples/alerter\">" -# -# data += "<alert sourceid=\"0\" id=\"alert_0\"><title>Arrests over 'terror kidnap plot'</title>" -# data += "<summary>Anti-terror police arrest eight people in Birmingham over an alleged plot to kidnap a member of the armed forces.</summary>" -# data += "<address>http://news.bbc.co.uk/go/rss/-/1/hi/uk/6315989.stm</address><date>2007-01-31T15:34:18</date></alert>" -# -# data += "</alerts>" -# -# return xml.etree.ElementTree.XML(data) -# -# print getAlertsHTMLTable () + "\n" -# -# readAlert("http://news.bbc.co.uk/go/rss/-/1/hi/uk/6315989.stm") -# -# print getAlertsHTMLTable () + "\n" -# -# def getAlertSources (): -# -# data = "<config xmlns=\"http://tuscany.apache.org/samples/alerter\">" -# data += "<source id=\"0\" type=\"rss\"><name>BBC News</name>" -# data += "<address>http://news.bbc.co.uk/</address>" -# data += "<lastChecked>2007-02-02T10:08:40</lastChecked>" -# data += "<feedAddress>http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml</feedAddress></source>" -# data += "</config>" -# return xml.etree.ElementTree.XML(data) -# -# print getAlertSourcesHTMLTable() diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/Makefile.am b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/Makefile.am deleted file mode 100644 index 6ac781c7df..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/AlertAggregator/deploy -compositedir=$(deploydir)/sample.display - -composite_DATA = *.composite *.py *.xsd -EXTRA_DIST = *.composite *.py *.xsd - diff --git a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/sample.display.composite b/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/sample.display.composite deleted file mode 100644 index 593c53c15f..0000000000 --- a/sca-cpp/trunk/contrib/samples/AlertAggregator/sample.display/sample.display.composite +++ /dev/null @@ -1,39 +0,0 @@ -<?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.display"> - - <service name="HTMLDisplayService"> - <binding.rest/> - <reference>HTMLDisplayComponent</reference> - </service> - - <component name="HTMLDisplayComponent"> - <implementation.python module="HTMLDisplayImpl" scope="composite"/> - <reference name="alertService">AlerterService</reference> - <property name="showNumberOfReadAlerts">20</property> - </component> - - <reference name="AlerterService"> - <binding.rest/> - </reference> - -</composite>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/COPYING b/sca-cpp/trunk/contrib/samples/COPYING deleted file mode 100755 index 6b0b1270ff..0000000000 --- a/sca-cpp/trunk/contrib/samples/COPYING +++ /dev/null @@ -1,203 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed 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. - diff --git a/sca-cpp/trunk/contrib/samples/ChangeLog b/sca-cpp/trunk/contrib/samples/ChangeLog deleted file mode 100644 index e69de29bb2..0000000000 --- a/sca-cpp/trunk/contrib/samples/ChangeLog +++ /dev/null diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/Makefile.am b/sca-cpp/trunk/contrib/samples/CppBigBank/Makefile.am deleted file mode 100644 index 95045e0be6..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# 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)/CppBigBank/deploy -SUBDIRS = bigbank.account bigbank.client bigbank.phpwsclient -EXTRA_DIST = *.composite README.html -deploy_DATA = *.composite diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/README b/sca-cpp/trunk/contrib/samples/CppBigBank/README deleted file mode 100644 index 341db17b63..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/README +++ /dev/null @@ -1,26 +0,0 @@ -Tuscany SCA for C++ Samples - C++ BigBank Sample -=============================================== - -This sample implements the "Simplified BigBank" scenario. A whitepaper -describing the scenario based on the SCA 0.9 Assembly specification can be -found here. This sample uses multiple C++ components, calls out to an -external Web Service via a reference, exposes the service as a Web Service -and also provides a PHP based client. - -There are three sub projects in this workspace: - - bigbank.account - This contains the source code and SCDL artifacts for the SCA BigBank - composite implementing the account services. - - - bigbank.client - A sample client which does a local call to the BigBank service. - - - bigbank.phpclient - A sample PHP client which calls the BigBank Web service and then - deconstructs and displays the result by using the SDO for PHP extension. - -Additionally, there is the bigbank.app.composite file. This describes the -configuration of the SCA BigBank 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/CppBigBank/README.html b/sca-cpp/trunk/contrib/samples/CppBigBank/README.html deleted file mode 100644 index 4720dd7b57..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/README.html +++ /dev/null @@ -1,389 +0,0 @@ - -<!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 - C++ BigBank Sample</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native Samples - C++ BigBank Sample</H1> - - <P>This sample implements the "Simplified BigBank" scenario. A whitepaper describing - the scenario based on the SCA 0.9 Assembly specification can be found - <A HREF="http://www.osoa.org/display/Main/SCA+-+Previously+Published+Specifications">here</A>. - This sample uses multiple C++ components, calls out to an external Web Service via a reference, - exposes the service as a Web Service and also provides a PHP based client. - </P> - <P>There are three sub projects in this workspace:</P> - <UL> - <LI>bigbank.account<BR/> - This contains the source code and SCDL artifacts for the SCA BigBank - composite implementing the account services. - </LI> - <LI>bigbank.client<BR/> - A sample client which does a local call to the BigBank service. - </LI> - <LI>bigbank.phpclient<BR/> - A sample PHP client which calls the BigBank Web service and then deconstructs - and displays the result by using the - <A HREF="http://www.osoa.org/display/PHP/SOA+PHP+Homepage">SDO for PHP extension</A>. - <P>This is a pair of very simple PHP scripts to demonstrate how the Accounts service - that the C++ Big Bank sample exposes can be used from within the PHP scripting - language. - </P> - <P>bigwelcome.php<BR/> - A bootstrap script that shows a form and allows the user to press a button - in order to invoke the bigaccount.php script - </P> - <P>bigaccount.php<BR/> - Makes a call to a locally installed BigBank Accounts service. The script - shows how to use PHP SDO and SOAP extensions to construct the call - and interpret the result. - </P> - </LI> - </UL> - <P>Additionally, there is the bigbank.app.composite file. This describes the - configuration of the SCA BigBank composite deployed to the SCA runtime. - </P> - - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#linuxbld">Building the C++ samples on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxrun">Running the C++ BigBank sample on Linux and Mac OS X:</A></LI> - <UL> - <LI><A HREF="#linuxbasic">Running the basic client</A></LI> - <LI><A HREF="#linuxphp">Installing and running the PHP web client</A></LI> - </UL> - <LI><A HREF="#winbld">Building the C++ BigBank sample on Windows</A></LI> - <LI><A HREF="#winrun">Running the C++ BigBank sample on Windows:</A></LI> - <UL> - <LI><A HREF="#winbasic">Running the basic client</A></LI> - <LI><A HREF="#winphp">Installing and running the PHP web client</A></LI> - </UL> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="linuxbld"><H2>Building the C++ samples on Linux and Mac OS X</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>Build the C++ samples with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples</LI> - <LI>./configure --prefix=$TUSCANY_SCACPP/samples --enable-static=no</LI> - <LI>make</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/CppBigBank</LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="linuxrun"><H2>Running the C++ BigBank sample on Linux and Mac OS X</H2></A> - <A NAME="linuxbasic"><H3>BigBank with basic client</H3></A> - <OL> - <LI>The C++ BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/CppExtension.html">C++ Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services 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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples/CppBigBank/deploy/bigbank.client</LI> - <LI>./runclient.sh</LI> - </UL> - </LI> - </OL> - <A NAME="linuxphp"><H3>BigBank with PHP web client</H3></A> - <OL> - <LI>The C++ BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/CppExtension.html">C++ Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </LI> - <LI>Ensure you have enabled Axis2/C to run Tuscany SCA services. Follow the instructions - found <A HREF="../../doc/Axis2CWSExtension.html#deploy">here</A>. - </LI> - <LI>Start the Axis2/C simple http server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>/samples/CppBigBank/deploy/bin - </LI> - <LI>./runwsserver.sh</LI> - </OL> - </LI> - <LI>To run the php scripts requires some configuration and setup of a php runtime with - the SDO and SimpleXML extensions enabled. The bits you will need are: - <UL> - <LI><A HREF="http://httpd.apache.org/">Apache web server</A> (tested with version 2.0.55)</LI> - <LI><A HREF="http://www.php.net/downloads.php">PHP 5</A> (tested with version 5.1.6)</LI> - <LI><A HREF="http://pecl.php.net/package/sdo">PHP SDO</A> (tested with version 1.0.3)</LI> - </UL> - <P>Follow - <A HREF="http://livedocs.phpdoc.info/index.php?l=en&q=ref.sdo">these instructions</A> to - install SDO and DAS. - </P> - </LI> - <LI>You need to configure Apache to run PHP of course. This is well documented but this - is what to put at the end of httpd.conf: - <PRE># PHP5 Support -LoadModule php5_module "/home/php/php5.1.6/php5apache2.so" -AddType application/x-httpd-php .php - -# configure the path to php.ini -PHPIniDir "/home/php/php5.1.6"</PRE> - </LI> - <LI>Copy the <tuscany_sca_install_dir>/samples/CppBigBank/bigbank.phpwsclient - directory to your Apache document root directory (by default this is named 'htdocs'). - </LI> - <LI>Finally, start your Apache web server. - </LI> - <LI>Run the PHP web client by pointing your browser at - <A HREF="http://localhost/bigbank.phpwsclient/welcome.php">http://localhost/bigbank.phpwsclient/welcome.php</A>. - You should now be able to press the "GetAccount" button and see the values - returned from the BigBank SCA application. - </LI> - - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winbld"><H2>Building the C++ BigBank sample on Windows</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>You must have set up the environment for Microsoft Visual C++ tools. - The build command will call vcvars32 to set the environment. Ensure the - directory containing this is on your path. This will be where you - installed the compiler. - </LI> - <LI>Build the source, either via the Visual Studio Express projects under - <tuscany_sca_install_dir>\samples\CppBigBank\VSExpress\CppBigBank.sln or via the command-line build file - found at <tuscany_sca_install_dir>\samples\CppBigBank\VSExpress\CppBigBank\build.bat - which will build and deploy the samples. - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winrun"><H2>Running the C++ BigBank sample on Windows</H2></A> - <A NAME="winbasic"><H3>BigBank with basic client</H3></A> - <OL> - <LI>The C++ BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/CppExtension.html">C++ Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services 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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\CppBigBank\deploy\bigbank.client</LI> - <LI>runclient.bat</LI> - </UL> - </LI> - </OL> - <A NAME="winphp"><H3>BigBank with PHP web client</H3></A> - <OL> - <LI>The C++ BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/CppExtension.html">C++ Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </LI> - <LI>Ensure you have enabled Axis2/C to run Tuscany SCA services. Follow the instructions - found <A HREF="../../doc/Axis2CWSExtension.html#deploy">here</A>. - </LI> - <LI>Start the Axis2/C simple http server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>\samples\CppBigBank\deploy\bigbank.account - </LI> - <LI>runwsserver.bat</LI> - </OL> - </LI> - <LI>To run the php scripts requires some configuration and setup of a php runtime with - the SDO and SimpleXML extensions enabled. The bits you will need are: - <UL> - <LI><A HREF="http://httpd.apache.org/">Apache web server</A> (tested with version 2.0.55)</LI> - <LI><A HREF="http://www.php.net/downloads.php">PHP 5</A> (tested with version 5.1.6)</LI> - <LI><A HREF="http://pecl.php.net/package/sdo">PHP SDO</A> (tested with version 1.0.3)</LI> - </UL> - <P>You can get Windows binary builds from - <A HREF="http://www.php.net/downloads.php">http://www.php.net/downloads.php</A>. - For SDO you need two dlls as follows: - </P> - <UL> - <LI><A HREF="http://pecl4win.php.net/ext.php/php_sdo.dll">php_sdo.dll</A></LI> - <LI><A HREF="http://pecl4win.php.net/ext.php/php_sdo_das_xml.dll">php_sdo_das_xml.dll</A></LI> - </UL> - <P>Copy these to the php5.1.6\ext dir ( php_soap.dll is already there) and add the - following to php.ini file (having already renamed php.ini-recommended to php.ini - of course) - <PRE>extension=php_soap.dll -extension=php_sdo.dll -extension=php_sdo_das_xml.dll</PRE> - I also changed the extension_dir directive to point to my extensions directory: - <PRE>extension_dir="C:\php5.1.6\ext"</PRE> - </P> - <P>Asking PHP to list what modules are active gives the following: - <PRE>C:\php5.1.6>php -m -[PHP Modules] -bcmath -calendar -com_dotnet -ctype -date -dom -ftp -hash -iconv -libxml -odbc -pcre -Reflection -sdo -sdo_das_xml -session -SimpleXML -soap -SPL -standard -tokenizer -wddx -xml -xmlreader -xmlwriter -zlib - -[Zend Modules]</PRE> - Of particular relevance to these scripts note that soap, sdo and sdo_das_xml are active. - </P> - </LI> - <LI>You need to configure Apache to run PHP of course. This is well documented but this - is what to put at the end of httpd.conf: - <PRE># PHP5 Support -LoadModule php5_module "C:\php5.1.6\php5apache2.dll" -AddType application/x-httpd-php .php - -# configure the path to php.ini -PHPIniDir "C:\php5.1.6"</PRE> - </LI> - <LI>Copy the <tuscany_sca_install_dir>\samples\CppBigBank\bigbank.phpwsclient - directory to your Apache document root directory (by default this is named 'htdocs'). - </LI> - <LI>Finally, start your Apache web server. - </LI> - <LI>Run the PHP web client by pointing your browser at - <A HREF="http://localhost/bigbank.phpwsclient/welcome.php">http://localhost/bigbank.phpwsclient/welcome.php</A>. - You should now be able to press the "GetAccount" button and see the values - returned from the BigBank SCA application. - </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 <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/CppBigBank/bigbank.account/AccountDataService.h b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataService.h deleted file mode 100644 index 64d093ac6f..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataService.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <string> - -#include "commonj/sdo/SDO.h" - -namespace services -{ - namespace accountdata - { - - /** - * AccountDataService business interface - */ - class AccountDataService - { - public: - - // CheckingAccount is a data object containing - // string accountNumber - // float balance - - virtual commonj::sdo::DataObjectPtr /* CheckingAccount*/ getCheckingAccount( - const std::string id) = 0; - - // SavingsAccount is a data object containing - // string accountNumber - // float balance - - virtual commonj::sdo::DataObjectPtr /* SavingsAccount */ getSavingsAccount( - const std::string id) = 0; - - // StockAccount is a data object containing - // string accountNumber - // string symbol - // int quantity - - virtual commonj::sdo::DataObjectPtr /* StockAccount */ getStockAccount ( - const std::string id) = 0; - - }; - - } // End accountdata -} // End services diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.componentType b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.componentType deleted file mode 100644 index b1cab9e1f9..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.componentType +++ /dev/null @@ -1,28 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - - <service name="AccountDataService"> - <interface.cpp header="AccountDataService.h"/> - </service> - -</componentType> -
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.cpp b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.cpp deleted file mode 100644 index 2deee17eb2..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "commonj/sdo/SDO.h" -#include "osoa/sca/sca.h" - -#include "AccountDataServiceImpl.h" - -using namespace std; -using namespace commonj::sdo; -using namespace osoa::sca; - -/** - * AccountDataServiceImpl component implementation - */ - -namespace services -{ - namespace accountdata - { - - DataObjectPtr /* CheckingAccount*/ - AccountDataServiceImpl::getCheckingAccount(const string id) - { - try { - - DataFactoryPtr factory = ComponentContext::getCurrent().getDataFactory(); - - DataObjectPtr newaccount = - factory->create("http://www.bigbank.com/AccountService","CheckingAccount"); - - char* name = new char[id.size() + 10]; - strcpy(name,id.c_str()); - strcat(name,"_CHA12345"); - - newaccount->setCString("accountNumber",name); - - delete name; - - newaccount->setFloat("balance",1500.0f); - - return newaccount; - - } - catch (SDORuntimeException&) - { - return 0; - } - } - - - - DataObjectPtr /* SavingsAccount */ - AccountDataServiceImpl::getSavingsAccount(const string id) - { - try { - - DataFactoryPtr factory = ComponentContext::getCurrent().getDataFactory(); - - DataObjectPtr newaccount = - factory->create("http://www.bigbank.com/AccountService","SavingsAccount"); - - char* name = new char[id.size() + 10]; - strcpy(name,id.c_str()); - strcat(name,"_SAA12345"); - - newaccount->setCString("accountNumber",name); - - delete name; - - newaccount->setFloat("balance",1500.0f); - - return newaccount; - - } - catch (SDORuntimeException&) - { - return 0; - } - } - - - DataObjectPtr /* StockAccount */ - AccountDataServiceImpl::getStockAccount (const string id) - { - try { - - DataFactoryPtr factory = ComponentContext::getCurrent().getDataFactory(); - - DataObjectPtr newaccount = - factory->create("http://www.bigbank.com/AccountService","StockAccount"); - - char* name = new char[id.size() + 10]; - strcpy(name,id.c_str()); - strcat(name,"_STA12345"); - - newaccount->setCString("accountNumber",name); - - delete name; - - newaccount->setCString("symbol","IBM"); - - newaccount->setInt("quantity",100); - - return newaccount; - - } - catch (SDORuntimeException&) - { - return 0; - } - } - - } // End accountdata -} // End services diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.h b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.h deleted file mode 100644 index 9312175540..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include "AccountDataService.h" - -namespace services -{ - namespace accountdata - { - - /** - * AccountDataServiceImpl component implementation class - */ - class AccountDataServiceImpl : public AccountDataService - { - public: - - // CheckingAccount is a data object containing - // string accountNumber - // float balance - - virtual commonj::sdo::DataObjectPtr /* CheckingAccount*/ getCheckingAccount( - const std::string id); - - // SavingsAccount is a data object containing - // string accountNumber - // float balance - - virtual commonj::sdo::DataObjectPtr /* SavingsAccount */ getSavingsAccount( - const std::string id); - - // StockAccount is a data object containing - // string accountNumber - // string symbol - // int quantity - - virtual commonj::sdo::DataObjectPtr /* StockAccount */ getStockAccount ( - const std::string id); - - }; - - } // End accountdata -} // End services diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountService.h b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountService.h deleted file mode 100644 index 85337d37a9..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountService.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <string> - -#include "commonj/sdo/SDO.h" - -namespace services -{ - namespace account - { - - /** - * AccountService business interface - */ - class AccountService - { - public: - - // The account report data object has one many-valued - // property "accountSummaries", containing the following - // properties: - // string accountNumber - // string accountType - // float balance. - - virtual commonj::sdo::DataObjectPtr /*AccountReport*/ - getAccountReport(const std::string customerID) = 0; - - }; - - } // End account -} // End services diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountService.wsdl b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountService.wsdl deleted file mode 100644 index b83c453462..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountService.wsdl +++ /dev/null @@ -1,126 +0,0 @@ -<?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. ---> - -<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.bigbank.com/AccountService" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.bigbank.com/AccountService" - name="AccountService"> - - <wsdl:types> - <xsd:schema - targetNamespace="http://www.bigbank.com/AccountService" - xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - - <xsd:element name="getAccountReport"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerID" - type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:element name="getAccountReportResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="result" - type="tns:AccountReport" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="AccountReport"> - <xsd:sequence> - <xsd:element name="checking" - type="tns:CheckingAccount" maxOccurs="unbounded" /> - <xsd:element name="savings" - type="tns:SavingsAccount" maxOccurs="unbounded" /> - <xsd:element name="stocks" type="tns:StockAccount" - maxOccurs="unbounded" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="StockAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="symbol" type="xsd:string" /> - <xsd:element name="quantity" type="xsd:integer" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="CheckingAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="SavingsAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - </xsd:schema> - </wsdl:types> - - <wsdl:message name="getAccountReportRequest"> - <wsdl:part element="tns:getAccountReport" - name="getAccountReportRequest" /> - </wsdl:message> - - <wsdl:message name="getAccountReportResponse"> - <wsdl:part element="tns:getAccountReportResponse" - name="getAccountReportResponse" /> - </wsdl:message> - - <wsdl:portType name="AccountService"> - <wsdl:operation name="getAccountReport"> - <wsdl:input message="tns:getAccountReportRequest" /> - <wsdl:output message="tns:getAccountReportResponse" /> - </wsdl:operation> - </wsdl:portType> - - <wsdl:binding name="AccountServiceSOAP" type="tns:AccountService"> - <soap:binding style="document" - transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="getAccountReport"> - <soap:operation - soapAction="http://www.bigbank.com/AccountService/getAccountReport" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - - <wsdl:service name="AccountService"> - <wsdl:port binding="tns:AccountServiceSOAP" - name="AccountServiceSOAP"> - <soap:address - location="http://localhost:9090/axis2/services/bigbank.AccountManagementComponent/AccountService" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions> diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.componentType b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.componentType deleted file mode 100644 index b65fa1dc18..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.componentType +++ /dev/null @@ -1,40 +0,0 @@ -<?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. ---> - - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <service name="AccountService"> - <interface.cpp header="AccountService.h"/> - </service> - - <reference name="accountDataService"> - <interface.cpp header="AccountDataService.h"/> - </reference> - - <reference name="stockQuoteService"> - <interface.cpp header="StockQuoteService.h"/> - </reference> - - <property name="currency" type="xs:string">USD</property> - -</componentType> -
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.cpp b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.cpp deleted file mode 100644 index e9fcace81f..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.cpp +++ /dev/null @@ -1,132 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "osoa/sca/sca.h" - -#include "AccountServiceImpl.h" -#include "StockQuoteService.h" -#include "AccountDataService.h" - -using namespace std; -using namespace commonj::sdo; -using namespace osoa::sca; -using namespace services::accountdata; -using namespace services::stockquote; - -/** - * AccountServiceImpl component implementation - */ -namespace services -{ - namespace account - { - - DataObjectPtr /*AccountReport**/ - AccountServiceImpl::getAccountReport(const string customerID) - { - ComponentContext theContext = ComponentContext::getCurrent(); - - commonj::sdo::DataFactoryPtr factory = theContext.getDataFactory(); - - commonj::sdo::DataObjectPtr newReport = - factory->create("http://www.bigbank.com/AccountService","AccountReport"); - - // Get the accountDataService service - AccountDataService *dataService = - (AccountDataService*)theContext.getService("accountDataService"); - - // would be better to return a list of accounts - this only - // gets the first of each. - - commonj::sdo::DataObjectPtr checking = - dataService->getCheckingAccount(customerID); - - if (checking != 0) - { - commonj::sdo::DataObjectList& dl = newReport->getList("checking"); - checking->setFloat("balance", - fromUSDollarToCurrency(checking->getFloat("balance"))); - dl.append(checking); - } - - commonj::sdo::DataObjectPtr savings = dataService->getSavingsAccount(customerID); - - if (savings != 0) - { - commonj::sdo::DataObjectList& dl = newReport->getList("savings"); - savings->setFloat("balance", - fromUSDollarToCurrency(savings->getFloat("balance"))); - dl.append(savings); - } - - // Get the stockQuoteService service - StockQuoteService* stockService = - (StockQuoteService*)theContext.getService("stockQuoteService"); - - commonj::sdo::DataObjectPtr stocks = dataService->getStockAccount(customerID); - - if (stocks != 0) - { - commonj::sdo::DataObjectList& dl = newReport->getList("stocks"); - - float value = 10.0f; - try { - value = stockService->getQuote( - stocks->getCString("symbol")); - } - catch (ServiceRuntimeException& e) - { - std::cout << "Fault from stock quote service" << e << std::endl; - } - stocks->setFloat("balance", - fromUSDollarToCurrency(stocks->getInt("quantity") * - value)); - dl.append(stocks); - } - - return newReport; - } - - float AccountServiceImpl::fromUSDollarToCurrency(float value) - { - // Get the "currency" property - ComponentContext myContext = ComponentContext::getCurrent(); - - commonj::sdo::DataObjectPtr properties = myContext.getProperties(); - if (properties) - { - const char* currency = properties->getCString("currency"); - if (currency != 0) - { - std::cout << "Currency is : " << currency << std::endl; - if (!strcmp(currency,"USD")) return value; - if (!strcmp(currency,"EURO")) return 0.8f * value; - } - } - return 0.0f; - } - - } // End account -} // End services diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.h b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.h deleted file mode 100644 index 0c172823fb..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.h +++ /dev/null @@ -1,44 +0,0 @@ -/** - * - * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -#include "AccountService.h" - - -namespace services -{ - namespace account - { - - /** - * AccountServiceImpl component implementation class - */ - class AccountServiceImpl: public AccountService - { - public: - - virtual commonj::sdo::DataObjectPtr /*AccountReport*/ - getAccountReport(const std::string customerID); - - private: - - float fromUSDollarToCurrency(float value); - - }; - - } // End account -} // End services - diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/Makefile.am b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/Makefile.am deleted file mode 100644 index e9af461312..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/Makefile.am +++ /dev/null @@ -1,59 +0,0 @@ -# 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)/CppBigBank/deploy -compositedir=$(deploydir)/bigbank.account - -BUILT_SOURCES = scagen - -noinst_HEADERS = *.h - -composite_SCRIPTS = runwsserver.sh - -scagen: - java -jar $(TUSCANY_SCACPP)/bin/scagen.jar -dir . -output . - -composite_LTLIBRARIES = libAccount.la -composite_DATA = *.composite *.componentType *.wsdl *.xsd -EXTRA_DIST = *.composite *.componentType *.wsdl *.xsd runwsserver.sh - -dist_libAccount_la_SOURCES = \ -AccountDataServiceImpl.cpp \ -AccountServiceImpl.cpp \ -StockQuoteServiceImpl.cpp - -nodist_libAccount_la_SOURCES = \ -AccountDataServiceImpl_AccountDataService_Proxy.cpp \ -AccountDataServiceImpl_AccountDataService_Wrapper.cpp \ -AccountServiceImpl_accountDataService_Proxy.cpp \ -AccountServiceImpl_AccountService_Proxy.cpp \ -AccountServiceImpl_AccountService_Wrapper.cpp \ -AccountServiceImpl_stockQuoteService_Proxy.cpp \ -StockQuoteServiceImpl_StockQuoteService_Proxy.cpp \ -StockQuoteServiceImpl_StockQuoteService_Wrapper.cpp \ -StockQuoteServiceImpl_webService_Proxy.cpp - -libAccount_la_LIBADD = \ --L${TUSCANY_SCACPP}/lib \ - -ltuscany_sca \ --L${TUSCANY_SCACPP}/extensions/cpp/lib \ - -ltuscany_sca_cpp - -INCLUDES = \ - -I$(TUSCANY_SCACPP)/extensions/cpp/include \ - -I$(TUSCANY_SCACPP)/include \ - -I${TUSCANY_SDOCPP}/include diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteService.h b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteService.h deleted file mode 100644 index 379af5b425..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteService.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * - * Copyright 2006 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -#include <string> - -namespace services -{ - namespace stockquote - { - /** - * StockQuoteService business interface - */ - class StockQuoteService - { - public: - - virtual float getQuote(const std::string symbol) = 0; - - }; - - } // End stockquote -} // End services diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.componentType b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.componentType deleted file mode 100644 index 6ac2b77255..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.componentType +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright 2005 The Apache Software Foundation or its licensors, as applicable. - - Licensed 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. - --> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - - <service name="StockQuoteService"> - <interface.cpp header="StockQuoteService.h"/> - </service> - - <reference name="webService"> - <interface.cpp header="StockQuoteWebService.h"/> - </reference> - -</componentType> -
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.cpp b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.cpp deleted file mode 100644 index 8332730d73..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - * - * Copyright 2006 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "osoa/sca/sca.h" -#include "commonj/sdo/SDO.h" - -#include "StockQuoteServiceImpl.h" -#include "StockQuoteWebService.h" - -using namespace std; -using namespace osoa::sca; -using namespace commonj::sdo; - -/** - * StockQuoteServiceImpl component implementation - */ -namespace services { - namespace stockquote { - - // Map the format returned by the StockQuote Web service to - // the format expected in the BigBank application - float StockQuoteServiceImpl::getQuote(const string symbol) - { - ComponentContext myContext = ComponentContext::getCurrent(); - - // Get the StockQuote Web service - StockQuoteWebService* webService = - (StockQuoteWebService*)myContext.getService("webService"); - - // Invoke the service - const string result = webService->GetQuote(symbol); - - float stockPrice = 0.0f; - - // Get the stock price out of the document returned by the StockQuote - // Web service - try - { - XMLHelperPtr xmlHelper = HelperProvider::getXMLHelper(myContext.getDataFactory()); - XMLDocumentPtr stockDoc = xmlHelper->load(result); - if (stockDoc->getRootDataObject()) - { - stockPrice=stockDoc->getRootDataObject()->getFloat("Stock.0/Last"); - } - } - catch (SDORuntimeException& e) - { - std::cout << e << std::endl; - return 0.0f; - } - return stockPrice; - } - - } // End stockquote -} // End services diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.h b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.h deleted file mode 100644 index 9b0ac69b0c..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * - * Copyright 2006 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -#include "StockQuoteService.h" - -namespace services -{ - namespace stockquote - { - - /** - * StockQuoteServiceImpl component implementation class - */ - class StockQuoteServiceImpl : public StockQuoteService - { - public: - - virtual float getQuote(const std::string symbol); - }; - - } // End stockquote -} // End services diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteTypes.xsd b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteTypes.xsd deleted file mode 100644 index 5bce3a63dc..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteTypes.xsd +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> -<!-- - Copyright 2006 The Apache Software Foundation or its licensors, as applicable. - - Licensed 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. - --> - -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <xs:element name="StockQuotes" type="tStockQuotes"/> - <xs:complexType name="tStockQuotes"> - <xs:sequence> - <xs:element name="Stock" type="tStock" minOccurs="0" maxOccurs="unbounded"/> - <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:anyAttribute namespace="##any" processContents="lax"/> - </xs:complexType> - - <xs:complexType name="tStock"> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="1" name="Symbol" type="xs:string"/> - <xs:element minOccurs="0" maxOccurs="1" name="Last" type="xs:float"/> - <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:anyAttribute namespace="##any" processContents="lax"/> - </xs:complexType> -</xs:schema>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.h b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.h deleted file mode 100644 index 5c32ff8eaa..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - * Copyright 2006 The Apache Software Foundation or its licensors, as applicable. - * - * Licensed 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. - */ - -#include <string> - -namespace services -{ - namespace stockquote - { - - /** - * StockQuoteWebService business interface - * - * This is the interface of the Web service used to get - * live stock quotes. - */ - class StockQuoteWebService - { - public: - - virtual const std::string GetQuote(const std::string symbol) = 0; - - }; - - } // End stockquote -} // End services diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.wsdl b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.wsdl deleted file mode 100644 index c14f97c87b..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.wsdl +++ /dev/null @@ -1,165 +0,0 @@ -<?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. ---> - -<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:s="http://www.w3.org/2001/XMLSchema" - xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" - xmlns:tns="http://www.webserviceX.NET/" - xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" - xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" - targetNamespace="http://www.webserviceX.NET/" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> - <wsdl:types> - <s:schema elementFormDefault="qualified" - targetNamespace="http://www.webserviceX.NET/"> - <s:element name="GetQuote"> - <s:complexType> - <s:sequence> - <s:element minOccurs="0" maxOccurs="1" - name="symbol" type="s:string" /> - </s:sequence> - </s:complexType> - - </s:element> - <s:element name="GetQuoteResponse"> - <s:complexType> - <s:sequence> - <s:element minOccurs="0" maxOccurs="1" - name="GetQuoteResult" type="s:string" /> - </s:sequence> - </s:complexType> - </s:element> - <s:element name="string" nillable="true" type="s:string" /> - - </s:schema> - </wsdl:types> - <wsdl:message name="GetQuoteSoapIn"> - <wsdl:part name="parameters" element="tns:GetQuote" /> - </wsdl:message> - <wsdl:message name="GetQuoteSoapOut"> - <wsdl:part name="parameters" element="tns:GetQuoteResponse" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpGetIn"> - - <wsdl:part name="symbol" type="s:string" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpGetOut"> - <wsdl:part name="Body" element="tns:string" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpPostIn"> - <wsdl:part name="symbol" type="s:string" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpPostOut"> - - <wsdl:part name="Body" element="tns:string" /> - </wsdl:message> - <wsdl:portType name="StockQuoteSoap"> - <wsdl:operation name="GetQuote"> - <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"> - Get Stock quote for a company Symbol - </documentation> - <wsdl:input message="tns:GetQuoteSoapIn" /> - <wsdl:output message="tns:GetQuoteSoapOut" /> - </wsdl:operation> - - </wsdl:portType> - <wsdl:portType name="StockQuoteHttpGet"> - <wsdl:operation name="GetQuote"> - <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"> - Get Stock quote for a company Symbol - </documentation> - <wsdl:input message="tns:GetQuoteHttpGetIn" /> - <wsdl:output message="tns:GetQuoteHttpGetOut" /> - </wsdl:operation> - </wsdl:portType> - - <wsdl:portType name="StockQuoteHttpPost"> - <wsdl:operation name="GetQuote"> - <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"> - Get Stock quote for a company Symbol - </documentation> - <wsdl:input message="tns:GetQuoteHttpPostIn" /> - <wsdl:output message="tns:GetQuoteHttpPostOut" /> - </wsdl:operation> - </wsdl:portType> - <wsdl:binding name="StockQuoteSoap" type="tns:StockQuoteSoap"> - - <soap:binding transport="http://schemas.xmlsoap.org/soap/http" - style="document" /> - <wsdl:operation name="GetQuote"> - <soap:operation - soapAction="http://www.webserviceX.NET/GetQuote" style="document" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - - </wsdl:operation> - </wsdl:binding> - <wsdl:binding name="StockQuoteHttpGet" - type="tns:StockQuoteHttpGet"> - <http:binding verb="GET" /> - <wsdl:operation name="GetQuote"> - <http:operation location="/GetQuote" /> - <wsdl:input> - <http:urlEncoded /> - </wsdl:input> - - <wsdl:output> - <mime:mimeXml part="Body" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - <wsdl:binding name="StockQuoteHttpPost" - type="tns:StockQuoteHttpPost"> - <http:binding verb="POST" /> - <wsdl:operation name="GetQuote"> - <http:operation location="/GetQuote" /> - - <wsdl:input> - <mime:content type="application/x-www-form-urlencoded" /> - </wsdl:input> - <wsdl:output> - <mime:mimeXml part="Body" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - <wsdl:service name="StockQuote"> - - <wsdl:port name="StockQuoteSoap" binding="tns:StockQuoteSoap"> - <soap:address - location="http://www.webservicex.net/stockquote.asmx" /> - </wsdl:port> - <wsdl:port name="StockQuoteHttpGet" - binding="tns:StockQuoteHttpGet"> - <http:address - location="http://www.webservicex.net/stockquote.asmx" /> - </wsdl:port> - <wsdl:port name="StockQuoteHttpPost" - binding="tns:StockQuoteHttpPost"> - <http:address - location="http://www.webservicex.net/stockquote.asmx" /> - </wsdl:port> - - </wsdl:service> -</wsdl:definitions>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/bigbank.account.composite b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/bigbank.account.composite deleted file mode 100644 index 7173d584d2..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/bigbank.account.composite +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable. - - Licensed 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="bigbank.account"> - - <service name="AccountService"> - <interface.wsdl interface="http://www.bigbank.com/AccountService#wsdl.interface(AccountService)"/> - <!-- The endpoint is optional --> - <!-- <binding.ws endpoint="http://www.bigbank.com/AccountService#wsdl.endpoint(AccountService/AccountServiceSOAP)"/> --> - <binding.ws/> - <reference>AccountServiceComponent</reference> - </service> - - <component name="AccountServiceComponent"> - <implementation.cpp library="Account" header="AccountServiceImpl.h"/> - <reference name="accountDataService">AccountDataServiceComponent</reference> - <reference name="stockQuoteService">StockQuoteServiceComponent</reference> - <property name="currency">EURO</property> - </component> - - <component name="AccountDataServiceComponent"> - <implementation.cpp library="Account" header="AccountDataServiceImpl.h"/> - </component> - - <component name="StockQuoteServiceComponent"> - <implementation.cpp library="Account" header="StockQuoteServiceImpl.h"/> - <reference name="webService">StockQuoteWebService</reference> - </component> - - <reference name="StockQuoteWebService"> - <interface.wsdl interface="http://www.webserviceX.NET/#wsdl.interface(StockQuoteSoap)"/> - <binding.ws endpoint="http://www.webserviceX.NET/#wsdl.endpoint(StockQuote/StockQuoteSoap)"/> - </reference> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/runwsserver.bat b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/runwsserver.bat deleted file mode 100644 index c08a8fc5d9..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/runwsserver.bat +++ /dev/null @@ -1,50 +0,0 @@ -@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 "%AXIS2C_HOME%" == "" ( -echo "AXIS2C_HOME not set" -goto end -) -echo Using Axis2C installed at %AXIS2C_HOME% - -rem Run the server -set PATH=%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\cpp\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH% - -set APFULLDIR=%~d0%~p0 -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ - -cd %AXIS2C_HOME%\bin -.\axis2_http_server.exe - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/runwsserver.sh b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/runwsserver.sh deleted file mode 100755 index 047e541360..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.account/runwsserver.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/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" - -if [ x$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi -echo "Using Axis2C installed at $AXIS2C_HOME" - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/extensions/cpp/lib:$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$AXIS2C_HOME/lib:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ - -cd $AXIS2C_HOME/bin -./axis2_http_server diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.app.composite b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.app.composite deleted file mode 100644 index 5d68e0ae1a..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.app.composite +++ /dev/null @@ -1,29 +0,0 @@ -<?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="bigbank.app"> - - <component name="bigbank.AccountManagementComponent"> - <implementation.composite name="bigbank.account"/> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/AccountClient.cpp b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/AccountClient.cpp deleted file mode 100644 index 009c2d0c4d..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/AccountClient.cpp +++ /dev/null @@ -1,127 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include <iostream> -#include <stdlib.h> - -#include "osoa/sca/sca.h" - -#include "AccountService.h" - -using namespace std; -using namespace commonj::sdo; -using namespace osoa::sca; -using namespace services::account; - -int main(int argc, char* argv[]) -{ - - if (argc != 2) - { - cout << "account_client: Argument must be the name of the account" << endl; - return 0; - } - try - { - - // Locate a service - CompositeContext myContext = CompositeContext::getCurrent(); - AccountService *accountService = - (AccountService*) myContext.locateService("AccountServiceComponent"); - if (accountService == 0) - { - cout << "account_client: Unable to find Account service" << endl; - } - else - { - try - { - // exercise the account service - - DataObjectPtr report = - accountService->getAccountReport(argv[1]); - - XMLHelperPtr xmlHelper = HelperProvider::getXMLHelper(myContext.getDataFactory()); - char* doc = xmlHelper->save(report, report->getType().getURI(), report->getType().getName()); - cout << "XML: " << doc <<endl; - - if (report != 0) - { - unsigned int i; - char balanceStr[20]; - float balance; - - cout << "My Account Report" << endl; - cout << "=================" << endl; - - DataObjectList& stocks = report->getList("stocks"); - - for (i=0;i< stocks.size() ;i++) - { - cout << "Stock Account " << stocks[i]->getCString("accountNumber") << endl; - cout << "Stock Symbol : " << stocks[i]->getCString("symbol") << endl; - cout << " Holding : " << stocks[i]->getCString("quantity") << endl; - balance = stocks[i]->getFloat("balance"); - sprintf(balanceStr,"%.2f",balance); - cout << " Value : " << balanceStr << endl << endl; - } - - DataObjectList& checking = report->getList("checking"); - - for (i=0;i< checking.size() ;i++) - { - cout << "Checking Account " << checking[i]->getCString("accountNumber") << endl; - balance = checking[i]->getFloat("balance"); - sprintf(balanceStr,"%.2f",balance); - cout << " Balance : " << balanceStr << endl << endl; - } - - DataObjectList& savings = report->getList("savings"); - - for (i=0;i< savings.size() ;i++) - { - cout << "Savings Account " << savings[i]->getCString("accountNumber") << endl; - balance = savings[i]->getFloat("balance"); - sprintf(balanceStr,"%.2f",balance); - cout << " Balance : " << balanceStr << endl << endl; - } - - cout << endl; - } - } - catch (SDORuntimeException& e) - { - cout << e << endl; - } - } - - } - catch (ServiceRuntimeException& ex) - { - cout << ex << endl; - } - return 0; -} - diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/Makefile.am b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/Makefile.am deleted file mode 100644 index cfc5e8a661..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/Makefile.am +++ /dev/null @@ -1,35 +0,0 @@ -# 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)/CppBigBank/deploy -clientdir=$(deploydir)/bigbank.client - -client_PROGRAMS = account_client -client_SCRIPTS = runclient.sh -EXTRA_DIST = runclient.sh - -account_client_SOURCES = AccountClient.cpp - -account_client_LDADD = -L${TUSCANY_SCACPP}/lib -ltuscany_sca \ - -L${TUSCANY_SCACPP}/extensions/cpp/lib -ltuscany_sca_cpp \ - -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo - - -INCLUDES = -I$(TUSCANY_SCACPP)/extensions/cpp/include \ - -I${TUSCANY_SCACPP}/include \ - -I${TUSCANY_SDOCPP}/include \ - -I../bigbank.account diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/runclient.bat b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/runclient.bat deleted file mode 100644 index 069463ba2d..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/runclient.bat +++ /dev/null @@ -1,50 +0,0 @@ -@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 "%AXIS2C_HOME%" == "" ( -echo "AXIS2C_HOME not set" -goto end -) -echo Using Axis2C installed at %AXIS2C_HOME% - -rem Run the client -set PATH=%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\cpp\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH% - -set APFULLDIR=%~d0%~p0 -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ -set TUSCANY_SCACPP_COMPONENT=bigbank.AccountManagementComponent - -.\AccountClient.exe 1234 - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/runclient.sh b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/runclient.sh deleted file mode 100755 index 1cf924a008..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.client/runclient.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/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" - -if [ x$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi -echo "Using Axis2C installed at $AXIS2C_HOME" - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/extensions/cpp/lib:$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$AXIS2C_HOME/lib:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=bigbank.AccountManagementComponent - -./AccountClient 1234 - diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/AccountService.wsdl b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/AccountService.wsdl deleted file mode 100644 index b83c453462..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/AccountService.wsdl +++ /dev/null @@ -1,126 +0,0 @@ -<?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. ---> - -<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.bigbank.com/AccountService" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.bigbank.com/AccountService" - name="AccountService"> - - <wsdl:types> - <xsd:schema - targetNamespace="http://www.bigbank.com/AccountService" - xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - - <xsd:element name="getAccountReport"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerID" - type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:element name="getAccountReportResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="result" - type="tns:AccountReport" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="AccountReport"> - <xsd:sequence> - <xsd:element name="checking" - type="tns:CheckingAccount" maxOccurs="unbounded" /> - <xsd:element name="savings" - type="tns:SavingsAccount" maxOccurs="unbounded" /> - <xsd:element name="stocks" type="tns:StockAccount" - maxOccurs="unbounded" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="StockAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="symbol" type="xsd:string" /> - <xsd:element name="quantity" type="xsd:integer" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="CheckingAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="SavingsAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - </xsd:schema> - </wsdl:types> - - <wsdl:message name="getAccountReportRequest"> - <wsdl:part element="tns:getAccountReport" - name="getAccountReportRequest" /> - </wsdl:message> - - <wsdl:message name="getAccountReportResponse"> - <wsdl:part element="tns:getAccountReportResponse" - name="getAccountReportResponse" /> - </wsdl:message> - - <wsdl:portType name="AccountService"> - <wsdl:operation name="getAccountReport"> - <wsdl:input message="tns:getAccountReportRequest" /> - <wsdl:output message="tns:getAccountReportResponse" /> - </wsdl:operation> - </wsdl:portType> - - <wsdl:binding name="AccountServiceSOAP" type="tns:AccountService"> - <soap:binding style="document" - transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="getAccountReport"> - <soap:operation - soapAction="http://www.bigbank.com/AccountService/getAccountReport" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - - <wsdl:service name="AccountService"> - <wsdl:port binding="tns:AccountServiceSOAP" - name="AccountServiceSOAP"> - <soap:address - location="http://localhost:9090/axis2/services/bigbank.AccountManagementComponent/AccountService" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions> diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/Makefile.am b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/Makefile.am deleted file mode 100644 index bdc846e58c..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# 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)/CppBigBank/deploy -phpwsclientdir=$(deploydir)/bigbank.phpwsclient - -phpwsclient_DATA = *.php *.wsdl README -EXTRA_DIST = *.php *.wsdl README diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/README b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/README deleted file mode 100644 index d02873e860..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/README +++ /dev/null @@ -1,137 +0,0 @@ -Big Bank PHP Client -=================== - -Overview --------- - -This is a pair of very simple PHP scripts to demonstrate how the Accounts service -that the C++ Big Bank sample exposes can be used from within the PHP scripting -language. - -bigwelcome.php - A bootstrap script that shows a form and allows the user to press a button - in order to invoke the bigaccount.php script - -bigaccount.php - Makes a call to a locally installed BigBank Accounts service. The script - shows how to use PHP SDO and SOAP extensions to construct the call - and interpret the result. - -As this is a very simple test client once you have reached bigaccount.php you are done. -So there are no further buttons other than the browser back button. - -Installation ------------- - -This assumes that you have the BigBank sample runnig as a web service in your local -Axis2C container at http://localhost:9090/axis2/services/AccountService - -To run the php scripts requires some configuration and setup of a php runtime with -the SDO and SimpleXML extensions enabled. The bits you will need are: - -Apache web server - http://httpd.apache.org/ (I'm currently at 2.0.55) -PHP 5.1.6 - http://www.php.net/downloads.php (I'm currently at 5.1.6) -PHP SDO - http://pecl.php.net/package/sdo (I'm currently at 1.0.3) - -Windows -------- -If you are on windows you can get binary builds from http://www.php.net/downloads.php. -For SDO you need two dlls as followd - -php_sdo.dll http://pecl4win.php.net/ext.php/php_sdo.dll -php_sdo_das_xml.dll http://pecl4win.php.net/ext.php/php_sdo_das_xml.dll - -I copied these to my php5.1.6/ext dir ( php_soap.dll is already there) - -And added the following to my php.ini file (having already renamed php.ini-recommended to -php.ini of course) - -extension=php_soap.dll -extension=php_sdo.dll -extension=php_sdo_das_xml.dll - -I also changed the extension_dir directive to point to my extensions directory: - -extension_dir="C:/simon/apps/php5.1.6/ext" - -When I ask PHP to list what modules are active in my version of PHP I get the -following - -C:\simon\apps\php5.1.6>php -m -[PHP Modules] -bcmath -calendar -com_dotnet -ctype -date -dom -ftp -hash -iconv -libxml -odbc -pcre -Reflection -sdo -sdo_das_xml -session -SimpleXML -soap -SPL -standard -tokenizer -wddx -xml -xmlreader -xmlwriter -zlib - -[Zend Modules] - -Of particular relevance to these scripts note that soap, sdo and sd_das_xml are active. - -Other Platforms ---------------- - -If your on on another platform, such as Linux, then you will need to compile the -SDO extension. The documentation at the SDO extension page (http://livedocs.phpdoc.info/index.php?l=en&q=ref.sdo) -is currently a bit missleading and needs updating. What you need to do is do a -phpize build of the SDO PECL extension. This is discussed in the SDO documentation -but is also discussed in many other places, for example, http://www.php.net/manual/en/install.pecl.phpize.php. -Here is not the time to go into the details of how to build PHP extensions using -phpize but if you are familar with the process I use the following configure line -on windows. - -cscript configure.js --with-extra-includes=c:\simon\projects\tuscany\php\win32build\include; - c:\simon\apps\libxml2-2.6.23.win32\include; - c:\simon\apps\iconv-1.9.1.win32\include - --with-extra-libs=c:\simon\projects\tuscany\php\win32build\lib; - c:\simon\apps\libxml2-2.6.23.win32\lib; - c:\simon\apps\iconv-1.9.1.win32\lib - --enable-sdo=shared - --enable-soap - -There are no newlines in my command line by the way. I've just included them -here so you can see the command. - -Running -------- - -You need to configure Apache to run PHP of course. This is well documented but this -is what I put at the end of httpd.conf - -# PHP5 Support -LoadModule php5_module "C:/simon/apps/php5.1.6/php5apache2.dll" -AddType application/x-httpd-php .php - -# configure the path to php.ini -PHPIniDir "C:/simon/apps/php5.1.6" - -Having set up Apache all that remains is to - -- put the bigbank.phpwsclient directory in your web server's root documents directory -- start up the Axis2C runtime configured to run BigBank -- point your browser at http://myserver:port/bigbank.phpwsclient/bigwelcome.php - -You should now be able to press the "GetAccount" button and see the values -returned from the BigBank SCA application. diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/bigaccount.php b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/bigaccount.php deleted file mode 100644 index b9f77d3297..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/bigaccount.php +++ /dev/null @@ -1,113 +0,0 @@ -<!-- - 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. - -$Rev$ $Date: 2005/12/22 11:33:21 $ ---> -<head> - <title>BigBank Sample</title> -</head> - -<body BGCOLOR="#EFEFEF"> - -<script type="text/javascript"></script> - -<?php - try - { - // In case we want to see what's in the request - //print_r ($_POST); - - // get the entered account name - $accountname = $_POST['accountname']; - - try - { - // configure the SOAP client - $client = new SoapClient("AccountService.wsdl"); - - // make the call but its a wrapped call so we - // can't just do... - // $result = $client->getAccountReport($accountname); - // we have to construct an object hierarchy that matches the - // WSDL request. We can use SDO to do this for us - - // configure SDO based on the WSDL - $xmldas = SDO_DAS_XML::create("AccountService.wsdl"); - - // Get a document that represents the request - // and get the root element - $requestxdoc = $xmldas->createDocument("getAccountReport"); - $requestsdo = $requestxdoc->getRootDataObject(); - - // add the parameter - $requestsdo['customerID'] = $accountname; - - // make the call - $result = $client->getAccountReport($requestsdo); - - // now we have the result as a PHP object - // we can turn this into an SDO but we have to do it manually - // as the SOAP extension won't generate types for us - // automatically just yet - $responsexdoc = $xmldas->createDocument("getAccountReportResponse"); - $responsesdo = $responsexdoc->getRootDataObject(); - - // flesh out the object hierarchy - $account = $responsesdo->createDataObject ('result'); - $checking = $account->createDataObject ('checking'); - $saving = $account->createDataObject ('savings'); - $stocks = $account->createDataObject ('stocks'); - - //copy the data - $checking['accountNumber'] = $result->result->checking->accountNumber; - $checking['balance'] = $result->result->checking->balance; - //etc.. - // This is a bit rubbish as we would want this to happen automatically - - // Now just put the data on the screen - // To do this we don't need to use SDO as you can see but - // it would be really handy if we wanted to pass the XML doc - // onto another service or if we wanted to do some other - // more complex XML manipulation or XPath searches - echo "<h2>Account $accountname</h2>"; - echo "<h2>Checking Account</h2><table>"; - echo "<tr><td>Account Number</td><td> $checking->accountNumber </td></tr>"; - echo "<tr><td>Balance</td><td> $checking->balance </td></tr>"; - echo "</table><h2>Saving Account</h2><table>"; - echo "<tr><td>Account Number</td><td>" . $result->result->savings->accountNumber . "</td></tr>"; - echo "<tr><td>Balance</td><td>" . $result->result->savings->balance . "</td></tr>"; - echo "</table><h2>Stock Account</h2><table>"; - echo "<tr><td>Account Number</td><td>" . $result->result->stocks->accountNumber . "</td></tr>"; - echo "<tr><td>Symbol</td><td>" . $result->result->stocks->symbol . "</td></tr>"; - echo "<tr><td>Quantity</td><td>" . $result->result->stocks->quantity . "</td></tr>"; - echo "<tr><td>Banalce</td><td>" . $result->result->stocks->balance . "</td></tr>"; - echo "</table>"; - } - catch (SoapFault $f) - { - echo "Caught soap exception: \n"; - print_r ( $f ); - } - } - catch ( Exception $e ) - { - echo "Caught exception: \n"; - print_r ( $e ); - - } -?> diff --git a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/bigwelcome.php b/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/bigwelcome.php deleted file mode 100644 index 32159ddc16..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppBigBank/bigbank.phpwsclient/bigwelcome.php +++ /dev/null @@ -1,44 +0,0 @@ -<html> -<!-- - 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. - -$Rev$ $Date: 2005/12/22 11:33:21 $ ---> -<head> - <title>BigBank Sample</title> -</head> - -<body BGCOLOR="#EFEFEF"> - -<script type="text/javascript"></script> - -<?php -define('APP_ROOT', $_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].'/bigbank.phpwsclient'); -?> - -<h1>Welcome To The BigBank Sample</h1> - - <form action="http://<?php echo APP_ROOT . '/bigaccount.php' ?>" method="POST"> - Please enter your account ID - <input type="text" name="accountname" size="30" value="ED" /> - <button type="submit">GetAccount</button> - </form> - - <div id="statusString"/> -</body> -</html> diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/Makefile.am b/sca-cpp/trunk/contrib/samples/CppCalculator/Makefile.am deleted file mode 100644 index d9d4b499b7..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# 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)/CppCalculator/deploy -SUBDIRS = sample.calculator sample.calculator.client -EXTRA_DIST = *.composite README.html -deploy_DATA = *.composite diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/README b/sca-cpp/trunk/contrib/samples/CppCalculator/README deleted file mode 100644 index b9dedd2da3..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/README +++ /dev/null @@ -1,4 +0,0 @@ -Tuscany SCA for C++ Samples - C++ Calculator Sample -=================================================== - -See the README.html file for instructions to build and run this sample diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/README.html b/sca-cpp/trunk/contrib/samples/CppCalculator/README.html deleted file mode 100644 index 264ba3d881..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/README.html +++ /dev/null @@ -1,176 +0,0 @@ - -<!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 - C++ Calculator Sample</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native Samples - C++ Calculator Sample</H1> - - <P>This is a very simple sample to show how an SCA composite can wire - together two C++ components to implement a Calculator service and invoke - the service via a local client. - </P> - <P>There are two sub projects in this workspace:</P> - <UL> - <LI>sample.calculator<BR/> - This contains the source code and SCDL artifacts for the SCA Calculator - composite implementing the sample Calculator. - </LI> - <LI>sample.calculator.client<BR/> - A sample client which does a local call to the Calculator service. - </LI> - </UL> - <P>Additionally, there is the sample.calculator.app.composite file. This - describes the configuration of the SCA Calculator composite deployed to the SCA - runtime. - </P> - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#linuxbld">Building the C++ samples on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxrun">Running the C++ Calculator sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbld">Building the C++ Calculator sample on Windows</A></LI> - <LI><A HREF="#winrun">Running the C++ Calculator sample on Windows</A></LI> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="linuxbld"><H2>Building the C++ samples on Linux and Mac OS X</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>Build the C++ samples with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples</LI> - <LI>./configure --prefix=$TUSCANY_SCACPP/samples --enable-static=no</LI> - <LI>make</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/CppCalculator</LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="linuxrun"><H2>Running the C++ Calculator sample on Linux and Mac OS X</H2></A> - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples/CppCalculator/deploy/sample.calculator.client</LI> - <LI>./runclient.sh</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winbld"><H2>Building the C++ Calculator sample on Windows</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>You must have set up the environment for Microsoft Visual C++ tools. - The build command will call vcvars32 to set the environment. Ensure the - directory containing this is on your path. This will be where you - installed the compiler. - </LI> - <LI>Build the source, either via the Visual Studio Express projects under - <tuscany_sca_install_dir>\samples\CppCalculator\VSExpress\CppCalculator.sln or via the command-line build file - found at <tuscany_sca_install_dir>\samples\CppCalculator\VSExpress\CppCalculator\build.bat - which will build and deploy the samples. - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winrun"><H2>Running the C++ Calculator sample on Windows</H2></A> - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\CppCalculator\deploy\sample.calculator.client</LI> - <LI>runclient.bat</LI> - </UL> - </LI> - </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 <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/CppCalculator/sample.calculator.app.composite b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.app.composite deleted file mode 100644 index 5753b3c593..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.app.composite +++ /dev/null @@ -1,29 +0,0 @@ -<?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.calculator.app"> - - <component name="sample.calculator.CalculatorComponent"> - <implementation.composite name="sample.calculator" /> - </component> - -</composite> - diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/CalculatorClient.cpp b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/CalculatorClient.cpp deleted file mode 100644 index 37e9d40f66..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/CalculatorClient.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <iostream> -#include <stdlib.h> - -#include "osoa/sca/sca.h" - -#include "Calculator.h" - -using namespace std; -using namespace osoa::sca; - - -void usage(); -bool IsNumber(const char *p); - -int main(int argc, char* argv[]) -{ - const char *operation; - float arg1 = 0; - float arg2 = 0; - - if (argc == 4) - { - operation = argv[1]; - - if (!IsNumber(argv[2])) - { - cout << "calculator_client: Argument 1 is not a number" << endl; - usage(); - } - else - { - arg1 = atof(argv[2]); - } - - if (!IsNumber(argv[3])) - { - cout << "calculator_client: Argument 2 is not a number" << endl; - usage(); - } - else - { - arg2 = atof(argv[3]); - } - } - else - { - usage(); - } - - try - { - // Locate a service - CompositeContext myContext = CompositeContext::getCurrent(); - Calculator *calcService = (Calculator*) myContext.locateService("CalculatorComponent/CalculatorService"); - if (calcService == 0) - { - cout << "calculator_client: Unable to find Calculator service" << endl; - } - else - { - float result = 0; - if (strcmp(operation, "add") == 0) - { - result = calcService->add(arg1, arg2); - cout << "calculator_client: add(" << arg1 << "," << arg2 << ") = " << result << endl; - } - else - if (strcmp(operation, "sub") == 0) - { - result = calcService->sub(arg1, arg2); - cout << "calculator_client: sub(" << arg1 << "," << arg2 << ") = " << result << endl; - } - else - if (strcmp(operation, "mul") == 0) - { - result = calcService->mul(arg1, arg2); - cout << "calculator_client: mul(" << arg1 << "," << arg2 << ") = " << result << endl; - } - else - if (strcmp(operation, "div") == 0) - { - result = calcService->div(arg1, arg2); - cout << "calculator_client: div(" << arg1 << "," << arg2 << ") = " << result << endl; - } - else - { - cout << "calculator_client: Unrecognized operation: " << operation << endl; - } - } - } - catch (ServiceRuntimeException& ex) - { - cout << "calculator_client: exception caught: " << ex << endl; - } - return 0; -} - -void usage() -{ - cout << "Usage: calculator_client add|sub|mul|div arg1 arg2" << endl; - exit(1); -} - -bool IsNumber (const char *p) -{ - int len = strlen(p); - int pointcount = 0; - - if (!isdigit (p[0]) && p[0] != '-' && p[0] != '+') - { - return false; - } - for (int i = 1; i < len; i++) - { - if (!isdigit (p[i])) - { - if (p[i] == '.') - { - if (pointcount > 0) return false; - pointcount++; - } - else - { - return false; - } - } - } - return true; -} diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/Makefile.am b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/Makefile.am deleted file mode 100644 index 9782bf5041..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# 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)/CppCalculator/deploy -clientdir=$(deploydir)/sample.calculator.client - -client_PROGRAMS = calculator_client -client_SCRIPTS = runclient.sh -EXTRA_DIST = runclient.sh - -calculator_client_SOURCES = \ -CalculatorClient.cpp - -calculator_client_LDADD = \ --L${TUSCANY_SCACPP}/lib \ - -ltuscany_sca \ --L${TUSCANY_SCACPP}/extensions/cpp/lib \ - -ltuscany_sca_cpp \ --L${TUSCANY_SDOCPP}/lib \ - -ltuscany_sdo - -INCLUDES = \ --I$(TUSCANY_SCACPP)/extensions/cpp/include \ --I${TUSCANY_SCACPP}/include \ --I${TUSCANY_SDOCPP}/include \ --I../sample.calculator diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/runclient.bat b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/runclient.bat deleted file mode 100644 index 795325ab52..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/runclient.bat +++ /dev/null @@ -1,42 +0,0 @@ -@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% - -set PATH=%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\cpp\bin;%TUSCANY_SDOCPP%\bin;%PATH% - -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ -set TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorComponent - -.\calculator_client.exe div 5 2 - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/runclient.sh b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/runclient.sh deleted file mode 100755 index feae29d557..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator.client/runclient.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/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/cpp/lib:$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorComponent - -./calculator_client div 5 2 diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/Calculator.h b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/Calculator.h deleted file mode 100644 index 90e97b5319..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/Calculator.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef sample_calculator_h -#define sample_calculator_h - -class Calculator -{ -public: - virtual float add(float arg1, float arg2) = 0; - virtual float sub(float arg1, float arg2) = 0; - virtual float mul(float arg1, float arg2) = 0; - virtual float div(float arg1, float arg2) = 0; -}; - -#endif // sample_calculator_h diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/CalculatorImpl.componentType b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/CalculatorImpl.componentType deleted file mode 100644 index 72fe9842e8..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/CalculatorImpl.componentType +++ /dev/null @@ -1,31 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - - <service name="CalculatorService"> - <interface.cpp header="Calculator.h"/> - </service> - - <reference name="divideService"> - <interface.cpp header="Divide.h"/> - </reference> - -</componentType>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/CalculatorImpl.cpp b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/CalculatorImpl.cpp deleted file mode 100644 index 01dac77c92..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/CalculatorImpl.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <stdio.h> - -#include "osoa/sca/ComponentContext.h" -#include "osoa/sca/ServiceRuntimeException.h" - -#include "CalculatorImpl.h" -#include "Divide.h" - -CalculatorImpl::CalculatorImpl() -{ -} - -CalculatorImpl::~CalculatorImpl() -{ -} - -// Calculator interface -float CalculatorImpl::add(float arg1, float arg2) -{ - float result = arg1 + arg2; - - printf("CalculatorImpl::add %f + %f = %f\n", arg1, arg2, result); - return result; -} - -float CalculatorImpl::sub(float arg1, float arg2) -{ - float result = arg1 - arg2; - printf("CalculatorImpl::sub %f - %f = %f\n", arg1, arg2, result); - return result; -} - -float CalculatorImpl::mul(float arg1, float arg2) -{ - float result = arg1 * arg2; - printf("CalculatorImpl::mul %f * %f = %f\n", arg1, arg2, result); - return result; -} - -float CalculatorImpl::div(float arg1, float arg2) -{ - float result = 0; - - // This method shows how to invoke a service on a different component from within a component - - // First, get the current ComponentContext - osoa::sca::ComponentContext myContext = osoa::sca::ComponentContext::getCurrent(); - - try - { - // Find the required service, as referenced in CalculatorImpl.componentType - Divide* divideService = (Divide*)myContext.getService("divideService"); - - // Finally, invoke the service - result = divideService->divide(arg1, arg2); - - printf("CalculatorImpl::div Divide returned result: %f\n", result); - - } - catch (osoa::sca::ServiceRuntimeException& e) - { - // Print out error message and carry on - printf("CalculatorImpl::div Error whilst invoking Divide: %s", e.getMessageText()); - } - - return result; -} - - diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/CalculatorImpl.h b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/CalculatorImpl.h deleted file mode 100644 index af8a5eeab1..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/CalculatorImpl.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef sample_calculatorimpl_h -#define sample_calculatorimpl_h - -#include "Calculator.h" - -class CalculatorImpl : public Calculator -{ -public: - CalculatorImpl(); - virtual ~CalculatorImpl(); - - // Calculator interface - virtual float add(float arg1, float arg2); - virtual float sub(float arg1, float arg2); - virtual float mul(float arg1, float arg2); - virtual float div(float arg1, float arg2); -}; - -#endif // sample_calculatorimpl_h - diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/Divide.h b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/Divide.h deleted file mode 100644 index 6e171ed733..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/Divide.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef sample_divide_h -#define sample_divide_h - -class Divide -{ -public: - virtual float divide(float arg1, float arg2) = 0; -}; - -#endif // sample_divide_h - - diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/DivideImpl.componentType b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/DivideImpl.componentType deleted file mode 100644 index d7369e3ff0..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/DivideImpl.componentType +++ /dev/null @@ -1,27 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - - <service name="DivideService"> - <interface.cpp header="Divide.h"/> - </service> - -</componentType> diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/DivideImpl.cpp b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/DivideImpl.cpp deleted file mode 100644 index f1a927cf4c..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/DivideImpl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <stdio.h> - -#include "DivideImpl.h" - -DivideImpl::DivideImpl() -{ -} - -DivideImpl::~DivideImpl() -{ -} - -// Divide interface -float DivideImpl::divide(float arg1, float arg2) -{ - if(arg2 == 0.0) - { - printf("DivideImpl::div %f / %f !! Cannot divide by zero, so returning 0\n", arg1, arg2); - return 0; - } - - float result = arg1 / arg2; - printf("DivideImpl::div %f / %f = %f\n", arg1, arg2, result); - return result; -} - - diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/DivideImpl.h b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/DivideImpl.h deleted file mode 100644 index 64045f1899..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/DivideImpl.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef sample_divideimpl_h -#define sample_divideimpl_h - -#include "Divide.h" - -class DivideImpl : public Divide -{ -public: - DivideImpl(); - virtual ~DivideImpl(); - - // Divide interface - virtual float divide(float arg1, float arg2); -}; - -#endif // sample_divideimpl_h - diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/Makefile.am b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/Makefile.am deleted file mode 100644 index de6dad787d..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/Makefile.am +++ /dev/null @@ -1,53 +0,0 @@ -# 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)/CppCalculator/deploy -compositedir=$(deploydir)/sample.calculator - -BUILT_SOURCES = scagen - -noinst_HEADERS = *.h - -scagen: - java -jar $(TUSCANY_SCACPP)/bin/scagen.jar -dir . -output . - -composite_LTLIBRARIES = libCalculator.la -composite_DATA = *.composite *.componentType -EXTRA_DIST = *.composite *.componentType - -dist_libCalculator_la_SOURCES = \ -CalculatorImpl.cpp \ -DivideImpl.cpp - -nodist_libCalculator_la_SOURCES = \ -CalculatorImpl_CalculatorService_Proxy.cpp \ -CalculatorImpl_CalculatorService_Wrapper.cpp \ -CalculatorImpl_divideService_Proxy.cpp \ -DivideImpl_DivideService_Proxy.cpp \ -DivideImpl_DivideService_Wrapper.cpp - -libCalculator_la_LIBADD = \ --L${TUSCANY_SCACPP}/lib \ - -ltuscany_sca \ --L${TUSCANY_SCACPP}/extensions/cpp/lib \ - -ltuscany_sca_cpp - -INCLUDES = \ --I$(TUSCANY_SCACPP)/extensions/cpp/include \ --I$(TUSCANY_SCACPP)/include \ --I${TUSCANY_SDOCPP}/include - diff --git a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/sample.calculator.composite b/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/sample.calculator.composite deleted file mode 100644 index 6903cf21d8..0000000000 --- a/sca-cpp/trunk/contrib/samples/CppCalculator/sample.calculator/sample.calculator.composite +++ /dev/null @@ -1,33 +0,0 @@ -<?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.calculator"> - - <component name="CalculatorComponent"> - <implementation.cpp library="Calculator" header="CalculatorImpl.h"/> - <reference name="divideService">DivideComponent/DivideService</reference> - </component> - - <component name="DivideComponent"> - <implementation.cpp library="Calculator" header="DivideImpl.h"/> - </component> - -</composite>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/GettingStarted.html b/sca-cpp/trunk/contrib/samples/GettingStarted.html deleted file mode 100644 index dcb2cfd19c..0000000000 --- a/sca-cpp/trunk/contrib/samples/GettingStarted.html +++ /dev/null @@ -1,513 +0,0 @@ -<!-- - 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. ---> - -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<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 - Getting Started</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany Samples - Getting Started - SCA Native Milestone release 3</H1> - - <P>Tuscany SCA Native includes a set of simple technology samples that demonstrates some of the functionality of - the Tuscany SCA Native runtime. This page describes the samples and links to the documents that describe how to - build and run them - </P> - </DIV> - - <DIV CLASS="section"> - <A NAME="samples"><H2>Samples</H2></A> - <TABLE CLASS="bodyTable"> - <TBODY> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="CppCalculator/README.html">CppCalculator</A></TD> - <TD>A very simple sample to show how an SCA composite can wire - together two C++ components to implement a Calculator service - </TD> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="PythonCalculator/README.html">PythonCalculator</A></TD> - <TD>A very simple sample to show how an SCA composite can wire - together two Python components to implement a Calculator service - </TD> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RubyCalculator/README.html">RubyCalculator</A></TD> - <TD>A very simple sample to show how an SCA composite can wire - together two Ruby components to implement a Calculator service - </TD> - </TR> -<!-- <TR CLASS="a"> --> -<!-- <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="PHPCalculator/README.html">PHPCalculator</A></TD> --> -<!-- <TD>This is a simple sample to show how an SCA composite can wire together --> -<!-- a number of components to implement a Calculator service and expose that service as --> -<!-- to a number of different tpyes of client. The sample components are implemented in various --> -<!-- ways to demonstrate the different features of the PHP SCA extension. --> -<!-- </TD> --> -<!-- </TR> --> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RestCalculator/README.html">RESTCalculator</A></TD> - <TD>This sample is based on RubyCalculator but exposes the Calculator service as a REST Service - running under the Apache HTTPD server</TD> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="CppBigBank/README.html">CppBigBank</A></TD> - <TD>A more complex sample that implements the "Simplified BigBank" scenario. A whitepaper describing - the scenario based on the SCA 0.9 Assembly specification can be found - <A HREF="http://www.osoa.org/display/Main/SCA+-+Previously+Published+Specifications">here</A>. - This sample uses multiple C++ components, calls out to an external Web Service via a reference, - exposes the service as a Web Service and also provides a PHP based client. - </TD> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RubyBigBank/README.html">RubyBigBank</A></TD> - <TD>A more complex sample that implements the "Simplified BigBank" scenario. This sample uses multiple - Ruby components, calls out to an external Web Service via a reference and exposes the service as a - Web Service. - </TD> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="HTTPDBigBank/README.html">HTTPDBigBank</A></TD> - <TD>A more complex sample that implements the "Simplified BigBank" scenario. This sample contains the same - SCA components and calls as RubyBigBank, but demonstrates running the sample under the Apache HTTPD server - </TD> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="PythonWeatherForecast/README.html">PythonWeatherForecast</A></TD> - <TD>This sample makes calls to an external Web Service via a reference, demonstrating how Python - ElementTree objects are used in Tuscany to access the XML data returned from the service.</TD> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RestCustomer/README.html">RestCustomer</A></TD> - <TD>This sample demonstrates a Python component exposed as a REST Service either with or without the REST - interface (which specifies whether the service uses CRUD operations that translate to HTTP POST, GET, PUT - and DELETE or uses HTTP GET and XML over HTTP POST to invoke named operations) running under the Apache - HTTPD server</TD> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RestYahoo/README.html">RestYahoo</A></TD> - <TD>This sample demonstrates a Python component that is wired to make REST calls out to the external - Yahoo! Web Search service. This sample uses a Ruby local client to invoke the Python component.</TD> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="AlertAggregator/README.html">AlertAggregator</A></TD> - <TD>A more complex sample that shows how a Web 2.0-style application can be built using SCA. The Alert - Aggregator Sample aggregates various data sources and presents a unified view of data from these sources, - served as XML and displayed via a web page</TD> - </TR> - </TBODY> - </TABLE> - <BR> - </DIV> - <DIV CLASS="section"> - <A NAME="samples"><H2>Sample Dependencies</H2></A> - <P>The Tuscany samples each demonstrate different aspects of functionality provided by Tuscany, often in - particular extensions. The table below documents the extension dependencies that each sample has. - Please see the extension documentation for more details on the dependencies that particular extensions have. - </P> - <TABLE CLASS="bodyTable"> - <THEAD> - <TR STYLE="vertical-align: top;"> - <TD></TD> - <TD><A HREF="../doc/CppExtension.html">C++ Extension</A></TD> - <TD><A HREF="../doc/PythonExtension.html">Python Extension</A></TD> - <TD><A HREF="../doc/RubyExtension.html">Ruby Extension</A></TD> - <!--TD><A HREF="../doc/PHPExtension.html">PHP Extension</A></TD> --> - <TD><A HREF="../doc/Axis2CWSExtension.html#service">Axis2C Web Service Service Extension</A></TD> - <TD><A HREF="../doc/Axis2CWSExtension.html#reference">Axis2C Web Service Reference Extension</A></TD> - <TD><A HREF="../doc/RESTExtension.html#service">REST Service Extension</A></TD> - <TD><A HREF="../doc/RESTExtension.html#reference">REST Reference Extension</A></TD> - <TD><A HREF="../doc/RESTExtension.html#interface">REST Interface Extension</A></TD> - <TD><A HREF="../doc/SCAExtension.html#service">SCA Service Extension</A></TD> - <TD><A HREF="../doc/SCAExtension.html#reference">SCA Reference Extension</A></TD> - </TR> - </THEAD> - <TBODY> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="CppCalculator/README.html">CppCalculator</A></TD> - <TD>Yes</TD> <!-- C++ --> - <TD></TD> <!-- Python --> - <TD></TD> <!-- Ruby --> - <TD></TD> <!-- WS Service --> - <TD></TD> <!-- WS Reference --> - <TD></TD> <!-- REST Service --> - <TD></TD> <!-- REST Reference --> - <TD></TD> <!-- REST Interface --> - <TD></TD> <!-- SCA Service --> - <TD></TD> <!-- SCA Reference --> - </TR> - <TR CLASS="b"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="PythonCalculator/README.html">PythonCalculator</A></TD> - <TD></TD> <!-- C++ --> - <TD>Yes</TD> <!-- Python --> - <TD></TD> <!-- Ruby --> - <TD></TD> <!-- WS Service --> - <TD></TD> <!-- WS Reference --> - <TD></TD> <!-- REST Service --> - <TD></TD> <!-- REST Reference --> - <TD></TD> <!-- REST Interface --> - <TD></TD> <!-- SCA Service --> - <TD></TD> <!-- SCA Reference --> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RubyCalculator/README.html">RubyCalculator</A></TD> - <TD></TD> <!-- C++ --> - <TD></TD> <!-- Python --> - <TD>Yes</TD> <!-- Ruby --> - <TD></TD> <!-- WS Service --> - <TD></TD> <!-- WS Reference --> - <TD></TD> <!-- REST Service --> - <TD></TD> <!-- REST Reference --> - <TD></TD> <!-- REST Interface --> - <TD></TD> <!-- SCA Service --> - <TD></TD> <!-- SCA Reference --> - </TR> -<!-- <TR CLASS="b"> --> -<!-- <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="PHPCalculator/README.html">PHPCalculator</A></TD> --> -<!-- <TD></TD> <!-- C++ - -> --> -<!-- <TD></TD> <!-- Python - -> --> -<!-- <TD></TD> <!-- Ruby - -> --> -<!-- <TD>Yes</TD> <!-- PHP - -> --> -<!-- <TD>?</TD> <!-- WS Service - -> --> -<!-- <TD>?</TD> <!-- WS Reference - -> --> -<!-- <TD></TD> <!-- REST Service - -> --> -<!-- <TD></TD> <!-- REST Reference - -> --> -<!-- <TD></TD> <!-- REST Interface - -> --> -<!-- <TD></TD> <!-- SCA Service - -> --> -<!-- <TD></TD> <!-- SCA Reference - -> --> -<!-- </TR> --> - <TR CLASS="b"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RestCalculator/README.html">RESTCalculator</A></TD> - <TD></TD> <!-- C++ --> - <TD></TD> <!-- Python --> - <TD>Yes</TD> <!-- Ruby --> - <TD></TD> <!-- WS Service --> - <TD></TD> <!-- WS Reference --> - <TD>Yes</TD> <!-- REST Service --> - <TD>Yes</TD> <!-- REST Reference --> - <TD></TD> <!-- REST Interface --> - <TD></TD> <!-- SCA Service --> - <TD></TD> <!-- SCA Reference --> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="CppBigBank/README.html">CppBigBank</A></TD> - <TD>Yes</TD> <!-- C++ --> - <TD></TD> <!-- Python --> - <TD></TD> <!-- Ruby --> - <TD>Yes</TD> <!-- WS Service --> - <TD>Yes</TD> <!-- WS Reference --> - <TD></TD> <!-- REST Service --> - <TD></TD> <!-- REST Reference --> - <TD></TD> <!-- REST Interface --> - <TD></TD> <!-- SCA Service --> - <TD></TD> <!-- SCA Reference --> - </TR> - <TR CLASS="b"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RubyBigBank/README.html">RubyBigBank</A></TD> - <TD></TD> <!-- C++ --> - <TD></TD> <!-- Python --> - <TD>Yes</TD> <!-- Ruby --> - <TD>Yes</TD> <!-- WS Service --> - <TD>Yes</TD> <!-- WS Reference --> - <TD></TD> <!-- REST Service --> - <TD></TD> <!-- REST Reference --> - <TD></TD> <!-- REST Interface --> - <TD></TD> <!-- SCA Service --> - <TD></TD> <!-- SCA Reference --> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="HTTPDBigBank/README.html">HTTPDBigBank</A></TD> - <TD></TD> <!-- C++ --> - <TD></TD> <!-- Python --> - <TD>Yes</TD> <!-- Ruby --> - <TD>Yes</TD> <!-- WS Service --> - <TD>Yes</TD> <!-- WS Reference --> - <TD></TD> <!-- REST Service --> - <TD></TD> <!-- REST Reference --> - <TD></TD> <!-- REST Interface --> - <TD>Yes</TD> <!-- SCA Service --> - <TD>Yes</TD> <!-- SCA Reference --> - </TR> - <TR CLASS="b"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="PythonWeatherForecast/README.html">PythonWeatherForecast</A></TD> - <TD></TD> <!-- C++ --> - <TD>Yes</TD> <!-- Python --> - <TD></TD> <!-- Ruby --> - <TD></TD> <!-- WS Service --> - <TD>Yes</TD> <!-- WS Reference --> - <TD></TD> <!-- REST Service --> - <TD></TD> <!-- REST Reference --> - <TD></TD> <!-- REST Interface --> - <TD></TD> <!-- SCA Service --> - <TD></TD> <!-- SCA Reference --> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RestCustomer/README.html">RestCustomer</A></TD> - <TD></TD> <!-- C++ --> - <TD>Yes</TD> <!-- Python --> - <TD></TD> <!-- Ruby --> - <TD></TD> <!-- WS Service --> - <TD></TD> <!-- WS Reference --> - <TD>Yes</TD> <!-- REST Service --> - <TD>Yes</TD> <!-- REST Reference --> - <TD>Yes</TD> <!-- REST Interface --> - <TD></TD> <!-- SCA Service --> - <TD></TD> <!-- SCA Reference --> - </TR> - <TR CLASS="b"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RestYahoo/README.html">RestYahoo</A></TD> - <TD></TD> <!-- C++ --> - <TD>Yes</TD> <!-- Python --> - <TD>Yes</TD> <!-- Ruby --> - <TD></TD> <!-- WS Service --> - <TD></TD> <!-- WS Reference --> - <TD></TD> <!-- REST Service --> - <TD>Yes</TD> <!-- REST Reference --> - <TD></TD> <!-- REST Interface --> - <TD></TD> <!-- SCA Service --> - <TD></TD> <!-- SCA Reference --> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="AlertAggregator/README.html">AlertAggregator</A></TD> - <TD></TD> <!-- C++ --> - <TD>Yes</TD> <!-- Python --> - <TD></TD> <!-- Ruby --> - <TD></TD> <!-- WS Service --> - <TD></TD> <!-- WS Reference --> - <TD>Yes</TD> <!-- REST Service --> - <TD>Yes</TD> <!-- REST Reference --> - <TD></TD> <!-- REST Interface --> - <TD></TD> <!-- SCA Service --> - <TD></TD> <!-- SCA Reference --> - </TR> - </TBODY> - </TABLE> - <BR/> - <P>The table below documents the libraries or environments necessary to build and/or run each sample. These are generally - required by the Tuscany extensions that the sample employs. - Please see the extension documentation for more details (such as the version required) about the dependencies that particular - extensions require. - </P> - <TABLE CLASS="bodyTable"> - <THEAD> - <TR STYLE="vertical-align: top;"> - <TD></TD> - <TD><A HREF="http://java.sun.com/javase/downloads/index.jsp">Java runtime</A></TD> - <TD><A HREF="http://www.python.org/">Python runtime</A></TD> - <TD><A HREF="http://www.ruby-lang.org/">Ruby runtime</A></TD> -<!-- <TD><A HREF="http://www.php.net/">PHP runtime</A></TD> --> -<!-- <TD><A HREF="http://pecl.php.net/package/SCA_SDO/">PHP SCA_SDO package</A></TD> --> - <TD><A HREF="http://ws.apache.org/axis2/c/">Axis2/C library</A></TD> - <TD><A HREF="http://ws.apache.org/axis2/c/">Axis2/C HTTP server</A></TD> - <TD><A HREF="http://curl.haxx.se/">libcurl library</A></TD> - <TD><A HREF="http://httpd.apache.org/">HTTPD server</A></TD> - <TD><A HREF="http://feedparser.org/">Universal Feed Parser library</A></TD> - </TR> - </THEAD> - <TBODY> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="CppCalculator/README.html">CppCalculator</A></TD> - <TD>Build</TD> <!-- Java runtime --> - <TD></TD> <!--Python runtime --> - <TD></TD> <!--Ruby runtime --> - <TD></TD> <!--Axis2/C library --> - <TD></TD> <!--Axis2/C server --> - <TD></TD> <!--libcurl library --> - <TD></TD> <!--HTTPD server --> - <TD></TD> <!--Universal Feed Parser --> - </TR> - <TR CLASS="b"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="PythonCalculator/README.html">PythonCalculator</A></TD> - <TD></TD> <!-- Java runtime --> - <TD>Run</TD> <!--Python runtime --> - <TD></TD> <!--Ruby runtime --> - <TD></TD> <!--Axis2/C library --> - <TD></TD> <!--Axis2/C server --> - <TD></TD> <!--libcurl library --> - <TD></TD> <!--HTTPD server --> - <TD></TD> <!--Universal Feed Parser --> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RubyCalculator/README.html">RubyCalculator</A></TD> - <TD></TD> <!-- Java runtime --> - <TD></TD> <!--Python runtime --> - <TD>Run</TD> <!--Ruby runtime --> - <TD></TD> <!--Axis2/C library --> - <TD></TD> <!--Axis2/C server --> - <TD></TD> <!--libcurl library --> - <TD></TD> <!--HTTPD server --> - <TD></TD> <!--Universal Feed Parser --> - </TR> -<!-- <TR CLASS="b"> --> -<!-- <!-- TODO - check/fix/remove this - -> --> -<!-- <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="PHPCalculator/README.html">PHPCalculator</A></TD> --> -<!-- <TD></TD> <!-- Java runtime - -> --> -<!-- <TD></TD> <!--Python runtime - -> --> -<!-- <TD></TD> <!--Ruby runtime - -> --> -<!-- <TD>Run</TD> <!--PHP runtime - -> --> -<!-- <TD>Run</TD> <!--PHP SCA_SDO package - -> --> -<!-- <TD>?</TD> <!--Axis2/C library - -> --> -<!-- <TD>?</TD> <!--Axis2/C server - -> --> -<!-- <TD></TD> <!--libcurl library - -> --> -<!-- <TD>?</TD> <!--HTTPD server - -> --> -<!-- <TD></TD> <!--Universal Feed Parser - -> --> -<!-- </TR> --> - <TR CLASS="b"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RestCalculator/README.html">RESTCalculator</A></TD> - <TD></TD> <!-- Java runtime --> - <TD></TD> <!--Python runtime --> - <TD>Run</TD> <!--Ruby runtime --> - <TD></TD> <!--Axis2/C library --> - <TD></TD> <!--Axis2/C server --> - <TD>Run</TD> <!--libcurl library --> - <TD>Run</TD> <!--HTTPD server --> - <TD></TD> <!--Universal Feed Parser --> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="CppBigBank/README.html">CppBigBank</A></TD> - <TD>Build</TD> <!-- Java runtime --> - <TD></TD> <!--Python runtime --> - <TD></TD> <!--Ruby runtime --> - <TD>Run</TD> <!--Axis2/C library --> - <TD></TD> <!--Axis2/C server --> - <TD></TD> <!--libcurl library --> - <TD></TD> <!--HTTPD server --> - <TD></TD> <!--Universal Feed Parser --> - </TR> - <TR CLASS="b"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RubyBigBank/README.html">RubyBigBank</A></TD> - <TD></TD> <!-- Java runtime --> - <TD></TD> <!--Python runtime --> - <TD>Run</TD> <!--Ruby runtime --> - <TD>Run</TD> <!--Axis2/C library --> - <TD>Run</TD> <!--Axis2/C server --> - <TD></TD> <!--libcurl library --> - <TD></TD> <!--HTTPD server --> - <TD></TD> <!--Universal Feed Parser --> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="HTTPDBigBank/README.html">HTTPDBigBank</A></TD> - <TD></TD> <!-- Java runtime --> - <TD></TD> <!--Python runtime --> - <TD>Run</TD> <!--Ruby runtime --> - <TD>Run</TD> <!--Axis2/C library --> - <TD></TD> <!--Axis2/C server --> - <TD></TD> <!--libcurl library --> - <TD>Run</TD> <!--HTTPD server --> - <TD></TD> <!--Universal Feed Parser --> - </TR> - <TR CLASS="b"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="PythonWeatherForecast/README.html">PythonWeatherForecast</A></TD> - <TD></TD> <!-- Java runtime --> - <TD>Run</TD> <!--Python runtime --> - <TD></TD> <!--Ruby runtime --> - <TD>Run</TD> <!--Axis2/C library --> - <TD></TD> <!--Axis2/C server --> - <TD></TD> <!--libcurl library --> - <TD></TD> <!--HTTPD server --> - <TD></TD> <!--Universal Feed Parser --> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RestCustomer/README.html">RestCustomer</A></TD> - <TD></TD> <!-- Java runtime --> - <TD>Run</TD> <!--Python runtime --> - <TD></TD> <!--Ruby runtime --> - <TD></TD> <!--Axis2/C library --> - <TD></TD> <!--Axis2/C server --> - <TD>Run</TD> <!--libcurl library --> - <TD>Run</TD> <!--HTTPD server --> - <TD></TD> <!--Universal Feed Parser --> - </TR> - <TR CLASS="b"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="RestYahoo/README.html">RestYahoo</A></TD> - <TD></TD> <!-- Java runtime --> - <TD>Run</TD> <!--Python runtime --> - <TD>Run</TD> <!--Ruby runtime --> - <TD></TD> <!--Axis2/C library --> - <TD></TD> <!--Axis2/C server --> - <TD>Run</TD> <!--libcurl library --> - <TD></TD> <!--HTTPD server --> - <TD></TD> <!--Universal Feed Parser --> - </TR> - <TR CLASS="a"> - <TD STYLE="vertical-align: top; white-space: nowrap;"><A HREF="AlertAggregator/README.html">AlertAggregator</A></TD> - <TD></TD> <!-- Java runtime --> - <TD>Run</TD> <!--Python runtime --> - <TD></TD> <!--Ruby runtime --> - <TD></TD> <!--Axis2/C library --> - <TD></TD> <!--Axis2/C server --> - <TD>Run</TD> <!--libcurl library --> - <TD>Run</TD> <!--HTTPD server --> - <TD>Run</TD> <!--Universal Feed Parser --> - </TR> - </TBODY> - </TABLE> - <BR/> - </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 <A HREF="http://issues.apache.org/jira/browse/Tuscany" - TARGET="_blank">http://issues.apache.org/jira/browse/Tuscany</A>.</P> - - - <P> </P> - - <P> </P> - - <P> </P> - <TABLE CLASS="bodyTable"> - <TBODY> - <TR CLASS="a"> - <TD> - - <P>Thank you for your interest in Tuscany.</P> <STRONG><EM>-The - Tuscany Development Team</EM></STRONG> - </TD> - </TR> - </TBODY> - </TABLE> - </DIV> - - </DIV> - -</DIV> -</BODY> - -</HTML> diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/Makefile.am b/sca-cpp/trunk/contrib/samples/HttpdBigBank/Makefile.am deleted file mode 100644 index 7ae86e6d2c..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# 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)/HttpdBigBank/deploy -SUBDIRS = bigbank.account bigbank.accountdata bigbank.wsclient httpserver -EXTRA_DIST = *.composite -deploy_DATA = *.composite diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/README b/sca-cpp/trunk/contrib/samples/HttpdBigBank/README deleted file mode 100644 index a3442236bd..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/README +++ /dev/null @@ -1,37 +0,0 @@ -# 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. - -This sample shows how to run the Bigbank app with the Apache HTTP server - -This is a more modular version of the original Bigbank app, the account -service and the account data service are in different composites. - -The httpserver directory contains a minimal httpd configuration. -Make sure that Apache apachectl and httpd 2.2.x are on the PATH. - -To start the server, cd to httpserver, and run ./startserver.sh. - -To verify that the server is working, point your Web browser to -http://localhost:9090. - -To verify that Axis2C is working, point your Web browser to -http://localhost:9090/axis2, you should see a list of deployed services. - -To stop the server, cd to httpserver, and run ./stopserver.sh. - -To run the sample go to bigbank.wsclient, and run ./runwsclient.sh. - diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/README.html b/sca-cpp/trunk/contrib/samples/HttpdBigBank/README.html deleted file mode 100644 index bfd33ee1cd..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/README.html +++ /dev/null @@ -1,197 +0,0 @@ - -<!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 - HTTPD BigBank Sample</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native Samples - HTTPD BigBank Sample</H1> - - <P>This sample implements the "Simplified BigBank" scenario. A whitepaper describing - the scenario based on the SCA 0.9 Assembly specification can be found - <A HREF="http://www.osoa.org/display/Main/SCA+-+Previously+Published+Specifications">here</A>. - This is a more modular version of the original Bigbank app, with the account - service and the account data service are in different composites. - </P> - <P>The HTTPD BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI> - <LI><A HREF="../../doc/SCAExtension.html">SCA Binding Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </P> - <P>There are three sub-projects in this workspace:</P> - <UL> - <LI>bigbank.account<BR/> - This contains the source code and SCDL artifacts for the SCA HTTPD BigBank - composite implementing the account services. - </LI> - <LI>bigbank.accountdata<BR/> - This contains the source code and SCDL artifacts for the SCA HTTPD BigBank - composite implementing the account data services. - </LI> - <LI>bigbank.wsclient<BR/> - A sample client which uses an SCA Web Service reference to make a remote - call to the BigBank service. - </LI> - </UL> - <P>Additionally, there is the bigbank.app.composite file. This - describes the configuration of the SCA BigBank composite deployed to the SCA - runtime. - </P> - <P>Note that this sample does not run on Windows, due to threading incompatibilities - between Apache HTTPD and the Ruby runtime</P> - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#linuxbld">Building the HTTPD BigBank sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxrun">Running the HTTPD BigBank sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#win">The HTTPD BigBank sample on Windows</A></LI> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="linuxbld"><H2>Building the HTTPD BigBank sample on Linux and Mac OS X</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>As the HTTPD BigBank sample is based on Ruby scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the Ruby samples only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples</LI> - <LI>./configure --enable-ruby --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/HttpdBigBank - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="linuxrun"><H2>Running the HTTPD BigBank sample on Linux and Mac OS X</H2></A> - <OL> - <LI>The HTTPD BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI> - <LI><A HREF="../../doc/SCAExtension.html">SCA Binding Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </LI> - <LI>Ensure you have enabled Axis2/C to run Tuscany SCA services. Follow the instructions - found <A HREF="../../doc/Axis2CWSExtension.html#deploy">here</A>. - </LI> - <LI>Start the Apache HTTPD server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>/samples/HttpdBigBank/deploy/httpserver</LI> - <LI>./startserver.sh<BR/> - NOTE: Depending on your installation of Apache HTTPD you may need to log in as root before following - these steps. If so, you may also need to uncomment the User and Group directives in the - <tuscany_sca_install_dir>/samples/HttpdBigBank/deploy/httpserver/conf/httpd.conf file - and set these to the appropriate username and group that the server should run as</LI> - </OL> - </LI> - <LI>Now run the Web Service client: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples/HttpdBigBank/deploy/bigbank.wsclient</LI> - <LI>./runwsclient.sh</LI> - </UL> - </LI> - </OL> - </LI> - <LI>The PHP web client detailed in the - <A HREF="../CppBigBank/README.html">CppBigBank</A> sample can also be used - with the HTTPD BigBank service that is served by the HTTPD server started above. - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="win"><H2>The HTTPD BigBank sample on Windows</H2></A> - <P>The HttpdBigBank sample does not currently run on Windows, due to the sample being based on Ruby - components running under Apache HTTPD. The Ruby runtime is single-threaded and, on Windows, HTTPD - is multi-threaded, which means that Ruby throws "cross-thread violation" errors when Tuscany - attempts to run a Ruby script under HTTPD.</P> - </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 <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/HttpdBigBank/bigbank.account/AccountService.wsdl b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/AccountService.wsdl deleted file mode 100644 index b83c453462..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/AccountService.wsdl +++ /dev/null @@ -1,126 +0,0 @@ -<?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. ---> - -<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.bigbank.com/AccountService" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.bigbank.com/AccountService" - name="AccountService"> - - <wsdl:types> - <xsd:schema - targetNamespace="http://www.bigbank.com/AccountService" - xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - - <xsd:element name="getAccountReport"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerID" - type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:element name="getAccountReportResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="result" - type="tns:AccountReport" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="AccountReport"> - <xsd:sequence> - <xsd:element name="checking" - type="tns:CheckingAccount" maxOccurs="unbounded" /> - <xsd:element name="savings" - type="tns:SavingsAccount" maxOccurs="unbounded" /> - <xsd:element name="stocks" type="tns:StockAccount" - maxOccurs="unbounded" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="StockAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="symbol" type="xsd:string" /> - <xsd:element name="quantity" type="xsd:integer" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="CheckingAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="SavingsAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - </xsd:schema> - </wsdl:types> - - <wsdl:message name="getAccountReportRequest"> - <wsdl:part element="tns:getAccountReport" - name="getAccountReportRequest" /> - </wsdl:message> - - <wsdl:message name="getAccountReportResponse"> - <wsdl:part element="tns:getAccountReportResponse" - name="getAccountReportResponse" /> - </wsdl:message> - - <wsdl:portType name="AccountService"> - <wsdl:operation name="getAccountReport"> - <wsdl:input message="tns:getAccountReportRequest" /> - <wsdl:output message="tns:getAccountReportResponse" /> - </wsdl:operation> - </wsdl:portType> - - <wsdl:binding name="AccountServiceSOAP" type="tns:AccountService"> - <soap:binding style="document" - transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="getAccountReport"> - <soap:operation - soapAction="http://www.bigbank.com/AccountService/getAccountReport" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - - <wsdl:service name="AccountService"> - <wsdl:port binding="tns:AccountServiceSOAP" - name="AccountServiceSOAP"> - <soap:address - location="http://localhost:9090/axis2/services/bigbank.AccountManagementComponent/AccountService" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions> diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/AccountServiceImpl.rb b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/AccountServiceImpl.rb deleted file mode 100644 index 20af2cfedb..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/AccountServiceImpl.rb +++ /dev/null @@ -1,83 +0,0 @@ -# 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 "rexml/document" -include REXML - -class AccountServiceImpl - - attr_writer :accountDataService - attr_writer :stockQuoteService - attr_writer :currency - - def initialize() - print "Ruby - AccountServiceImpl.initialize\n" - end - - def getAccountReport(customerID) - - # Get the checking account info - checking = @accountDataService.getCheckingAccount(customerID) - - # Get the savings account info - savings = @accountDataService.getSavingsAccount(customerID) - - # Get the stocks account info - stock = @accountDataService.getStockAccount(customerID); - - symbol = stock.root.elements["symbol"].text - quantity = stock.root.elements["quantity"].text - - # Get the stock price - price = @stockQuoteService.getQuote(symbol); - - # Convert to the configured currency - price = price.to_f * 0.80 if @currency == "EUR" - - # Calculate the balance - balance = price.to_f * quantity.to_f - - # Form the AccountReport document - report = Document.new <<-eof - <AccountReport xmlns="http://www.bigbank.com/AccountService" - xsi:type="AccountReport" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - - <checking> - <accountNumber>#{ checking.root.elements["accountNumber"].text }</accountNumber> - <balance>#{ checking.root.elements["balance"].text }</balance> - </checking> - - <savings> - <accountNumber>#{ savings.root.elements["accountNumber"].text }</accountNumber> - <balance>#{ savings.root.elements["balance"].text }</balance> - </savings> - - <stocks> - <accountNumber>#{ stock.root.elements["accountNumber"].text }</accountNumber> - <symbol>#{ symbol }</symbol> - <quantity>#{ quantity }</quantity> - <balance>#{ balance }</balance> - </stocks> - - </AccountReport> - eof - - return report - end - -end diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/Makefile.am b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/Makefile.am deleted file mode 100644 index 01c8681555..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# 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)/HttpdBigBank/deploy -compositedir=$(deploydir)/bigbank.account - -composite_DATA = *.composite *.wsdl *.xsd *.rb -EXTRA_DIST = *.composite *.wsdl *.xsd *.rb diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/StockQuoteServiceImpl.rb b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/StockQuoteServiceImpl.rb deleted file mode 100644 index 7f8634072c..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/StockQuoteServiceImpl.rb +++ /dev/null @@ -1,52 +0,0 @@ -# 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 "rexml/document" -include REXML - -class StockQuoteServiceImpl - - attr_writer :webService - - def initialize() - print "Ruby - StockQuoteServiceImpl.initialize\n" - end - - def getQuote(symbol) - print "Ruby - StockQuoteServiceImpl.getQuote ", symbol, "\n" - - price = 0 - catch (:RuntimeError) do - begin - - result = @webService.GetQuote(symbol) - doc = Document.new(result) - price = doc.root.elements["Stock"].elements["Last"].text; - - rescue - # offline or StockQuote web service is down - price = 95.0 - end - end - - print "Ruby - stock price = ", price, "\n" - - return price.to_f - end - -end
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/StockQuoteTypes.xsd b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/StockQuoteTypes.xsd deleted file mode 100644 index 2f7012b5fb..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/StockQuoteTypes.xsd +++ /dev/null @@ -1,40 +0,0 @@ -<?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. ---> - -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <xs:element name="StockQuotes" type="tStockQuotes"/> - <xs:complexType name="tStockQuotes"> - <xs:sequence> - <xs:element name="Stock" type="tStock" minOccurs="0" maxOccurs="unbounded"/> - <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:anyAttribute namespace="##any" processContents="lax"/> - </xs:complexType> - - <xs:complexType name="tStock"> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="1" name="Symbol" type="xs:string"/> - <xs:element minOccurs="0" maxOccurs="1" name="Last" type="xs:float"/> - <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:anyAttribute namespace="##any" processContents="lax"/> - </xs:complexType> -</xs:schema>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/StockQuoteWebService.wsdl b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/StockQuoteWebService.wsdl deleted file mode 100644 index c14f97c87b..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/StockQuoteWebService.wsdl +++ /dev/null @@ -1,165 +0,0 @@ -<?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. ---> - -<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:s="http://www.w3.org/2001/XMLSchema" - xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" - xmlns:tns="http://www.webserviceX.NET/" - xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" - xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" - targetNamespace="http://www.webserviceX.NET/" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> - <wsdl:types> - <s:schema elementFormDefault="qualified" - targetNamespace="http://www.webserviceX.NET/"> - <s:element name="GetQuote"> - <s:complexType> - <s:sequence> - <s:element minOccurs="0" maxOccurs="1" - name="symbol" type="s:string" /> - </s:sequence> - </s:complexType> - - </s:element> - <s:element name="GetQuoteResponse"> - <s:complexType> - <s:sequence> - <s:element minOccurs="0" maxOccurs="1" - name="GetQuoteResult" type="s:string" /> - </s:sequence> - </s:complexType> - </s:element> - <s:element name="string" nillable="true" type="s:string" /> - - </s:schema> - </wsdl:types> - <wsdl:message name="GetQuoteSoapIn"> - <wsdl:part name="parameters" element="tns:GetQuote" /> - </wsdl:message> - <wsdl:message name="GetQuoteSoapOut"> - <wsdl:part name="parameters" element="tns:GetQuoteResponse" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpGetIn"> - - <wsdl:part name="symbol" type="s:string" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpGetOut"> - <wsdl:part name="Body" element="tns:string" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpPostIn"> - <wsdl:part name="symbol" type="s:string" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpPostOut"> - - <wsdl:part name="Body" element="tns:string" /> - </wsdl:message> - <wsdl:portType name="StockQuoteSoap"> - <wsdl:operation name="GetQuote"> - <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"> - Get Stock quote for a company Symbol - </documentation> - <wsdl:input message="tns:GetQuoteSoapIn" /> - <wsdl:output message="tns:GetQuoteSoapOut" /> - </wsdl:operation> - - </wsdl:portType> - <wsdl:portType name="StockQuoteHttpGet"> - <wsdl:operation name="GetQuote"> - <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"> - Get Stock quote for a company Symbol - </documentation> - <wsdl:input message="tns:GetQuoteHttpGetIn" /> - <wsdl:output message="tns:GetQuoteHttpGetOut" /> - </wsdl:operation> - </wsdl:portType> - - <wsdl:portType name="StockQuoteHttpPost"> - <wsdl:operation name="GetQuote"> - <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"> - Get Stock quote for a company Symbol - </documentation> - <wsdl:input message="tns:GetQuoteHttpPostIn" /> - <wsdl:output message="tns:GetQuoteHttpPostOut" /> - </wsdl:operation> - </wsdl:portType> - <wsdl:binding name="StockQuoteSoap" type="tns:StockQuoteSoap"> - - <soap:binding transport="http://schemas.xmlsoap.org/soap/http" - style="document" /> - <wsdl:operation name="GetQuote"> - <soap:operation - soapAction="http://www.webserviceX.NET/GetQuote" style="document" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - - </wsdl:operation> - </wsdl:binding> - <wsdl:binding name="StockQuoteHttpGet" - type="tns:StockQuoteHttpGet"> - <http:binding verb="GET" /> - <wsdl:operation name="GetQuote"> - <http:operation location="/GetQuote" /> - <wsdl:input> - <http:urlEncoded /> - </wsdl:input> - - <wsdl:output> - <mime:mimeXml part="Body" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - <wsdl:binding name="StockQuoteHttpPost" - type="tns:StockQuoteHttpPost"> - <http:binding verb="POST" /> - <wsdl:operation name="GetQuote"> - <http:operation location="/GetQuote" /> - - <wsdl:input> - <mime:content type="application/x-www-form-urlencoded" /> - </wsdl:input> - <wsdl:output> - <mime:mimeXml part="Body" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - <wsdl:service name="StockQuote"> - - <wsdl:port name="StockQuoteSoap" binding="tns:StockQuoteSoap"> - <soap:address - location="http://www.webservicex.net/stockquote.asmx" /> - </wsdl:port> - <wsdl:port name="StockQuoteHttpGet" - binding="tns:StockQuoteHttpGet"> - <http:address - location="http://www.webservicex.net/stockquote.asmx" /> - </wsdl:port> - <wsdl:port name="StockQuoteHttpPost" - binding="tns:StockQuoteHttpPost"> - <http:address - location="http://www.webservicex.net/stockquote.asmx" /> - </wsdl:port> - - </wsdl:service> -</wsdl:definitions>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/bigbank.account.composite b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/bigbank.account.composite deleted file mode 100644 index 208402cdb3..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.account/bigbank.account.composite +++ /dev/null @@ -1,51 +0,0 @@ -<?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="bigbank.account"> - - <service name="AccountService"> - <interface.wsdl interface="http://www.bigbank.com/AccountService#wsdl.interface(AccountService)"/> - <binding.ws/> - <reference>AccountServiceComponent</reference> - </service> - - <component name="AccountServiceComponent"> - <implementation.ruby script="AccountServiceImpl.rb" class="AccountServiceImpl"/> - <reference name="accountDataService">AccountDataService</reference> - <reference name="stockQuoteService">StockQuoteServiceComponent</reference> - <property name="currency">USD</property> - </component> - - <component name="StockQuoteServiceComponent"> - <implementation.ruby script="StockQuoteServiceImpl.rb" class="StockQuoteServiceImpl"/> - <reference name="webService">StockQuoteWebService</reference> - </component> - - <reference name="StockQuoteWebService"> - <interface.wsdl interface="http://www.webserviceX.NET/#wsdl.interface(StockQuoteSoap)"/> - <binding.ws endpoint="http://www.webserviceX.NET/#wsdl.endpoint(StockQuote/StockQuoteSoap)"/> - </reference> - - <reference name="AccountDataService"> - <binding.sca/> - </reference> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/AccountData.xsd b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/AccountData.xsd deleted file mode 100644 index 8c8ff7c637..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/AccountData.xsd +++ /dev/null @@ -1,45 +0,0 @@ -<?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 targetNamespace="http://www.bigbank.com/AccountService" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - - <xsd:complexType name="StockAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="symbol" type="xsd:string" /> - <xsd:element name="quantity" type="xsd:integer" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="CheckingAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="SavingsAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - -</xsd:schema> diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/AccountDataServiceImpl.rb b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/AccountDataServiceImpl.rb deleted file mode 100644 index 8ae0e23bab..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/AccountDataServiceImpl.rb +++ /dev/null @@ -1,72 +0,0 @@ -# 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 "rexml/document" -include REXML - -class AccountDataServiceImpl - - def initialize() - print "Ruby - AccountDataServiceImpl.initialize\n" - end - - def getCheckingAccount(id) - print "Ruby - AccountDataServiceImpl.getCheckingAccount ", id, "\n" - - result = Document.new <<-eof - <CheckingAccount xmlns="http://www.bigbank.com/AccountService" - xsi:type="CheckingAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <accountNumber>#{ id.to_s + "_CHA12345"}</accountNumber> - <balance>1500.0</balance> - </CheckingAccount> - eof - - return result - end - - def getSavingsAccount(id) - print "Ruby - AccountDataServiceImpl.getSavingsAccount ", id, "\n" - - result = Document.new <<-eof - <SavingsAccount xmlns="http://www.bigbank.com/AccountService" - xsi:type="SavingsAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <accountNumber>#{ id.to_s + "_SAA12345"}</accountNumber> - <balance>1500.0</balance> - </SavingsAccount> - eof - - return result - end - - def getStockAccount(id) - print "Ruby - AccountDataServiceImpl.getStockAccount ", id, "\n" - - result = Document.new <<-eof - <StockAccount xmlns="http://www.bigbank.com/AccountService" - xsi:type="StockAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <accountNumber>#{ id.to_s + "_STA12345"}</accountNumber> - <symbol>IBM</symbol> - <quantity>100</quantity> - <balance></balance> - </StockAccount> - eof - - return result - end - -end diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/Makefile.am b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/Makefile.am deleted file mode 100644 index 7735720b26..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# 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)/HttpdBigBank/deploy -compositedir=$(deploydir)/bigbank.accountdata - -composite_DATA = *.composite *.xsd *.rb -EXTRA_DIST = *.composite *.xsd *.rb diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/bigbank.accountdata.composite b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/bigbank.accountdata.composite deleted file mode 100644 index 30c2802d5b..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.accountdata/bigbank.accountdata.composite +++ /dev/null @@ -1,33 +0,0 @@ -<?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="bigbank.accountdata"> - - <service name="AccountDataService"> - <binding.sca/> - <reference>AccountDataServiceComponent</reference> - </service> - - <component name="AccountDataServiceComponent"> - <implementation.ruby script="AccountDataServiceImpl.rb" class="AccountDataServiceImpl"/> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.app.composite b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.app.composite deleted file mode 100644 index 9507997464..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.app.composite +++ /dev/null @@ -1,39 +0,0 @@ -<?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="bigbank.app"> - - <component name="bigbank.AccountManagementComponent"> - <implementation.composite name="bigbank.account"/> - <reference name="AccountDataService">bigbank.AccountDataManagementComponent/AccountDataService</reference> - </component> - - <component name="bigbank.AccountDataManagementComponent"> - <implementation.composite name="bigbank.accountdata"/> - </component> - - <component name="bigbank.AccountWSClientComponent"> - <implementation.composite name="bigbank.wsclient"/> - <reference name="AccountService">bigbank.AccountManagementComponent/AccountService</reference> - </component> - -</composite> -
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/AccountService.wsdl b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/AccountService.wsdl deleted file mode 100644 index b83c453462..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/AccountService.wsdl +++ /dev/null @@ -1,126 +0,0 @@ -<?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. ---> - -<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.bigbank.com/AccountService" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.bigbank.com/AccountService" - name="AccountService"> - - <wsdl:types> - <xsd:schema - targetNamespace="http://www.bigbank.com/AccountService" - xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - - <xsd:element name="getAccountReport"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerID" - type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:element name="getAccountReportResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="result" - type="tns:AccountReport" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="AccountReport"> - <xsd:sequence> - <xsd:element name="checking" - type="tns:CheckingAccount" maxOccurs="unbounded" /> - <xsd:element name="savings" - type="tns:SavingsAccount" maxOccurs="unbounded" /> - <xsd:element name="stocks" type="tns:StockAccount" - maxOccurs="unbounded" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="StockAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="symbol" type="xsd:string" /> - <xsd:element name="quantity" type="xsd:integer" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="CheckingAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="SavingsAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - </xsd:schema> - </wsdl:types> - - <wsdl:message name="getAccountReportRequest"> - <wsdl:part element="tns:getAccountReport" - name="getAccountReportRequest" /> - </wsdl:message> - - <wsdl:message name="getAccountReportResponse"> - <wsdl:part element="tns:getAccountReportResponse" - name="getAccountReportResponse" /> - </wsdl:message> - - <wsdl:portType name="AccountService"> - <wsdl:operation name="getAccountReport"> - <wsdl:input message="tns:getAccountReportRequest" /> - <wsdl:output message="tns:getAccountReportResponse" /> - </wsdl:operation> - </wsdl:portType> - - <wsdl:binding name="AccountServiceSOAP" type="tns:AccountService"> - <soap:binding style="document" - transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="getAccountReport"> - <soap:operation - soapAction="http://www.bigbank.com/AccountService/getAccountReport" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - - <wsdl:service name="AccountService"> - <wsdl:port binding="tns:AccountServiceSOAP" - name="AccountServiceSOAP"> - <soap:address - location="http://localhost:9090/axis2/services/bigbank.AccountManagementComponent/AccountService" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions> diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/AccountWSClient.rb b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/AccountWSClient.rb deleted file mode 100644 index 6775b80f7a..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/AccountWSClient.rb +++ /dev/null @@ -1,40 +0,0 @@ -# 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") - -accountService = SCA::locateService("AccountService") - -report = accountService.getAccountReport(1234) - -checking = report.root.elements["checking"] -savings = report.root.elements["savings"] -stocks = report.root.elements["stocks"] - -print "\n\n" -print "Checking account #: ", checking.elements["accountNumber"].text.strip, "\n" -print "Balance: ", checking.elements["balance"].text.strip, "\n" - -print "Savings account #: ", savings.elements["accountNumber"].text.strip, "\n" -print "Balance: ", savings.elements["balance"].text.strip, "\n" - -print "Stocks account #:", stocks.elements["accountNumber"].text.strip, "\n" -print "Symbol: ", stocks.elements["symbol"].text.strip, "\n" -print "Quantity: ", stocks.elements["quantity"].text.strip, "\n" -print "Balance: ", stocks.elements["balance"].text.strip, "\n" diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/Makefile.am b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/Makefile.am deleted file mode 100644 index b1f1cfff0e..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -deploydir=$(prefix)/HttpdBigBank/deploy -clientdir=$(deploydir)/bigbank.wsclient - -client_DATA = *.rb *.composite *.wsdl -client_SCRIPTS = runwsclient.sh -EXTRA_DIST = runwsclient.sh *.rb *.composite *.wsdl diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/bigbank.wsclient.composite b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/bigbank.wsclient.composite deleted file mode 100644 index f484a2fc7c..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/bigbank.wsclient.composite +++ /dev/null @@ -1,29 +0,0 @@ -<?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="bigbank.wsclient"> - - <reference name="AccountService"> - <interface.wsdl interface="http://www.bigbank.com/AccountService#wsdl.interface(AccountService)"/> - <binding.ws/> - </reference> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/runwsclient.bat b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/runwsclient.bat deleted file mode 100644 index 05d0ee2153..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/runwsclient.bat +++ /dev/null @@ -1,51 +0,0 @@ -@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 "%AXIS2C_HOME%" == "" ( -echo "AXIS2C_HOME not set" -goto end -) -echo Using Axis2C installed at %AXIS2C_HOME% - -rem Run the client -set PATH=%TUSCANY_SCACPP%\extensions\ruby\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\ws\reference\bin;%TUSCANY_SCACPP%\extensions\ws\service\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH% - -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ -set TUSCANY_SCACPP_COMPONENT=bigbank.AccountWSClientComponent -set TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd %TUSCANY_SCACPP_ROOT%\bigbank.wsclient -ruby -I%TUSCANY_SCACPP%\extensions\ruby\bin AccountWSClient.rb - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/runwsclient.sh b/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/runwsclient.sh deleted file mode 100755 index d50e6a4b0a..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/bigbank.wsclient/runwsclient.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/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" - -if [ x$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi -echo "Using Axis2C installed at $AXIS2C_HOME" - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/extensions/ruby/lib:$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$AXIS2C_HOME/lib:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=bigbank.AccountWSClientComponent -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd $TUSCANY_SCACPP_ROOT/bigbank.wsclient -ruby -I$TUSCANY_SCACPP/extensions/ruby/lib AccountWSClient.rb diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/Makefile.am b/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/Makefile.am deleted file mode 100644 index 1195ee1aae..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -deploydir=$(prefix)/HttpdBigBank/deploy -serverdir=$(deploydir)/httpserver - -server_SCRIPTS = startserver.sh stopserver.sh -EXTRA_DIST = startserver.sh stopserver.sh conf htdocs -nobase_server_DATA = conf/httpd.conf conf/mime.types htdocs/index.html diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/conf/httpd.conf b/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/conf/httpd.conf deleted file mode 100644 index e9a438dc85..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/conf/httpd.conf +++ /dev/null @@ -1,35 +0,0 @@ -# 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.
-
-# This is the main Apache HTTP server configuration file. It contains the
-# configuration directives that give the server its instructions.
-# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
-
-Listen 9090
-
-# Generated by the startserver script
-Include conf/base.conf
-Include conf/mod_axis2.conf
-# Include conf/tuscany_sca_mod_rest.conf
-
-# User and Group directives may be required if the server must be
-# started from the root account. Uncomment the following lines and
-# set the correct username and group
-#
-# User myusername
-# Group mygroupname
-
diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/conf/mime.types b/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/conf/mime.types deleted file mode 100644 index 4279f51bca..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/conf/mime.types +++ /dev/null @@ -1,607 +0,0 @@ -# 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. - -# This file controls what Internet media types are sent to the client for -# given file extension(s). Sending the correct media type to the client -# is important so they know how to handle the content of the file. -# Extra types can either be added here or by using an AddType directive -# in your config files. For more information about Internet media types, -# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type -# registry is at <http://www.iana.org/assignments/media-types/>. - -# MIME type Extensions -application/activemessage -application/andrew-inset ez -application/applefile -application/atom+xml atom -application/atomicmail -application/batch-smtp -application/beep+xml -application/cals-1840 -application/cnrp+xml -application/commonground -application/cpl+xml -application/cybercash -application/dca-rft -application/dec-dx -application/dvcs -application/edi-consent -application/edifact -application/edi-x12 -application/eshop -application/font-tdpfr -application/http -application/hyperstudio -application/iges -application/index -application/index.cmd -application/index.obj -application/index.response -application/index.vnd -application/iotp -application/ipp -application/isup -application/mac-binhex40 hqx -application/mac-compactpro cpt -application/macwriteii -application/marc -application/mathematica -application/mathml+xml mathml -application/msword doc -application/news-message-id -application/news-transmission -application/ocsp-request -application/ocsp-response -application/octet-stream bin dms lha lzh exe class so dll dmg -application/oda oda -application/ogg ogg -application/parityfec -application/pdf pdf -application/pgp-encrypted -application/pgp-keys -application/pgp-signature -application/pkcs10 -application/pkcs7-mime -application/pkcs7-signature -application/pkix-cert -application/pkix-crl -application/pkixcmp -application/postscript ai eps ps -application/prs.alvestrand.titrax-sheet -application/prs.cww -application/prs.nprend -application/prs.plucker -application/qsig -application/rdf+xml rdf -application/reginfo+xml -application/remote-printing -application/riscos -application/rtf -application/sdp -application/set-payment -application/set-payment-initiation -application/set-registration -application/set-registration-initiation -application/sgml -application/sgml-open-catalog -application/sieve -application/slate -application/smil smi smil -application/srgs gram -application/srgs+xml grxml -application/timestamp-query -application/timestamp-reply -application/tve-trigger -application/vemmi -application/vnd.3gpp.pic-bw-large -application/vnd.3gpp.pic-bw-small -application/vnd.3gpp.pic-bw-var -application/vnd.3gpp.sms -application/vnd.3m.post-it-notes -application/vnd.accpac.simply.aso -application/vnd.accpac.simply.imp -application/vnd.acucobol -application/vnd.acucorp -application/vnd.adobe.xfdf -application/vnd.aether.imp -application/vnd.amiga.ami -application/vnd.anser-web-certificate-issue-initiation -application/vnd.anser-web-funds-transfer-initiation -application/vnd.audiograph -application/vnd.blueice.multipass -application/vnd.bmi -application/vnd.businessobjects -application/vnd.canon-cpdl -application/vnd.canon-lips -application/vnd.cinderella -application/vnd.claymore -application/vnd.commerce-battelle -application/vnd.commonspace -application/vnd.contact.cmsg -application/vnd.cosmocaller -application/vnd.criticaltools.wbs+xml -application/vnd.ctc-posml -application/vnd.cups-postscript -application/vnd.cups-raster -application/vnd.cups-raw -application/vnd.curl -application/vnd.cybank -application/vnd.data-vision.rdz -application/vnd.dna -application/vnd.dpgraph -application/vnd.dreamfactory -application/vnd.dxr -application/vnd.ecdis-update -application/vnd.ecowin.chart -application/vnd.ecowin.filerequest -application/vnd.ecowin.fileupdate -application/vnd.ecowin.series -application/vnd.ecowin.seriesrequest -application/vnd.ecowin.seriesupdate -application/vnd.enliven -application/vnd.epson.esf -application/vnd.epson.msf -application/vnd.epson.quickanime -application/vnd.epson.salt -application/vnd.epson.ssf -application/vnd.ericsson.quickcall -application/vnd.eudora.data -application/vnd.fdf -application/vnd.ffsns -application/vnd.fints -application/vnd.flographit -application/vnd.framemaker -application/vnd.fsc.weblaunch -application/vnd.fujitsu.oasys -application/vnd.fujitsu.oasys2 -application/vnd.fujitsu.oasys3 -application/vnd.fujitsu.oasysgp -application/vnd.fujitsu.oasysprs -application/vnd.fujixerox.ddd -application/vnd.fujixerox.docuworks -application/vnd.fujixerox.docuworks.binder -application/vnd.fut-misnet -application/vnd.grafeq -application/vnd.groove-account -application/vnd.groove-help -application/vnd.groove-identity-message -application/vnd.groove-injector -application/vnd.groove-tool-message -application/vnd.groove-tool-template -application/vnd.groove-vcard -application/vnd.hbci -application/vnd.hhe.lesson-player -application/vnd.hp-hpgl -application/vnd.hp-hpid -application/vnd.hp-hps -application/vnd.hp-pcl -application/vnd.hp-pclxl -application/vnd.httphone -application/vnd.hzn-3d-crossword -application/vnd.ibm.afplinedata -application/vnd.ibm.electronic-media -application/vnd.ibm.minipay -application/vnd.ibm.modcap -application/vnd.ibm.rights-management -application/vnd.ibm.secure-container -application/vnd.informix-visionary -application/vnd.intercon.formnet -application/vnd.intertrust.digibox -application/vnd.intertrust.nncp -application/vnd.intu.qbo -application/vnd.intu.qfx -application/vnd.irepository.package+xml -application/vnd.is-xpr -application/vnd.japannet-directory-service -application/vnd.japannet-jpnstore-wakeup -application/vnd.japannet-payment-wakeup -application/vnd.japannet-registration -application/vnd.japannet-registration-wakeup -application/vnd.japannet-setstore-wakeup -application/vnd.japannet-verification -application/vnd.japannet-verification-wakeup -application/vnd.jisp -application/vnd.kde.karbon -application/vnd.kde.kchart -application/vnd.kde.kformula -application/vnd.kde.kivio -application/vnd.kde.kontour -application/vnd.kde.kpresenter -application/vnd.kde.kspread -application/vnd.kde.kword -application/vnd.kenameaapp -application/vnd.koan -application/vnd.liberty-request+xml -application/vnd.llamagraphics.life-balance.desktop -application/vnd.llamagraphics.life-balance.exchange+xml -application/vnd.lotus-1-2-3 -application/vnd.lotus-approach -application/vnd.lotus-freelance -application/vnd.lotus-notes -application/vnd.lotus-organizer -application/vnd.lotus-screencam -application/vnd.lotus-wordpro -application/vnd.mcd -application/vnd.mediastation.cdkey -application/vnd.meridian-slingshot -application/vnd.micrografx.flo -application/vnd.micrografx.igx -application/vnd.mif mif -application/vnd.minisoft-hp3000-save -application/vnd.mitsubishi.misty-guard.trustweb -application/vnd.mobius.daf -application/vnd.mobius.dis -application/vnd.mobius.mbk -application/vnd.mobius.mqy -application/vnd.mobius.msl -application/vnd.mobius.plc -application/vnd.mobius.txf -application/vnd.mophun.application -application/vnd.mophun.certificate -application/vnd.motorola.flexsuite -application/vnd.motorola.flexsuite.adsi -application/vnd.motorola.flexsuite.fis -application/vnd.motorola.flexsuite.gotap -application/vnd.motorola.flexsuite.kmr -application/vnd.motorola.flexsuite.ttc -application/vnd.motorola.flexsuite.wem -application/vnd.mozilla.xul+xml xul -application/vnd.ms-artgalry -application/vnd.ms-asf -application/vnd.ms-excel xls -application/vnd.ms-lrm -application/vnd.ms-powerpoint ppt -application/vnd.ms-project -application/vnd.ms-tnef -application/vnd.ms-works -application/vnd.ms-wpl -application/vnd.mseq -application/vnd.msign -application/vnd.music-niff -application/vnd.musician -application/vnd.netfpx -application/vnd.noblenet-directory -application/vnd.noblenet-sealer -application/vnd.noblenet-web -application/vnd.novadigm.edm -application/vnd.novadigm.edx -application/vnd.novadigm.ext -application/vnd.obn -application/vnd.osa.netdeploy -application/vnd.palm -application/vnd.pg.format -application/vnd.pg.osasli -application/vnd.powerbuilder6 -application/vnd.powerbuilder6-s -application/vnd.powerbuilder7 -application/vnd.powerbuilder7-s -application/vnd.powerbuilder75 -application/vnd.powerbuilder75-s -application/vnd.previewsystems.box -application/vnd.publishare-delta-tree -application/vnd.pvi.ptid1 -application/vnd.pwg-multiplexed -application/vnd.pwg-xhtml-print+xml -application/vnd.quark.quarkxpress -application/vnd.rapid -application/vnd.s3sms -application/vnd.sealed.net -application/vnd.seemail -application/vnd.shana.informed.formdata -application/vnd.shana.informed.formtemplate -application/vnd.shana.informed.interchange -application/vnd.shana.informed.package -application/vnd.smaf -application/vnd.sss-cod -application/vnd.sss-dtf -application/vnd.sss-ntf -application/vnd.street-stream -application/vnd.svd -application/vnd.swiftview-ics -application/vnd.triscape.mxs -application/vnd.trueapp -application/vnd.truedoc -application/vnd.ufdl -application/vnd.uplanet.alert -application/vnd.uplanet.alert-wbxml -application/vnd.uplanet.bearer-choice -application/vnd.uplanet.bearer-choice-wbxml -application/vnd.uplanet.cacheop -application/vnd.uplanet.cacheop-wbxml -application/vnd.uplanet.channel -application/vnd.uplanet.channel-wbxml -application/vnd.uplanet.list -application/vnd.uplanet.list-wbxml -application/vnd.uplanet.listcmd -application/vnd.uplanet.listcmd-wbxml -application/vnd.uplanet.signal -application/vnd.vcx -application/vnd.vectorworks -application/vnd.vidsoft.vidconference -application/vnd.visio -application/vnd.visionary -application/vnd.vividence.scriptfile -application/vnd.vsf -application/vnd.wap.sic -application/vnd.wap.slc -application/vnd.wap.wbxml wbxml -application/vnd.wap.wmlc wmlc -application/vnd.wap.wmlscriptc wmlsc -application/vnd.webturbo -application/vnd.wrq-hp3000-labelled -application/vnd.wt.stf -application/vnd.wv.csp+wbxml -application/vnd.xara -application/vnd.xfdl -application/vnd.yamaha.hv-dic -application/vnd.yamaha.hv-script -application/vnd.yamaha.hv-voice -application/vnd.yellowriver-custom-menu -application/voicexml+xml vxml -application/watcherinfo+xml -application/whoispp-query -application/whoispp-response -application/wita -application/wordperfect5.1 -application/x-bcpio bcpio -application/x-cdlink vcd -application/x-chess-pgn pgn -application/x-compress -application/x-cpio cpio -application/x-csh csh -application/x-director dcr dir dxr -application/x-dvi dvi -application/x-futuresplash spl -application/x-gtar gtar -application/x-gzip -application/x-hdf hdf -application/x-javascript js -application/x-koan skp skd skt skm -application/x-latex latex -application/x-netcdf nc cdf -application/x-sh sh -application/x-shar shar -application/x-shockwave-flash swf -application/x-stuffit sit -application/x-sv4cpio sv4cpio -application/x-sv4crc sv4crc -application/x-tar tar -application/x-tcl tcl -application/x-tex tex -application/x-texinfo texinfo texi -application/x-troff t tr roff -application/x-troff-man man -application/x-troff-me me -application/x-troff-ms ms -application/x-ustar ustar -application/x-wais-source src -application/x400-bp -application/xhtml+xml xhtml xht -application/xslt+xml xslt -application/xml xml xsl -application/xml-dtd dtd -application/xml-external-parsed-entity -application/zip zip -audio/32kadpcm -audio/amr -audio/amr-wb -audio/basic au snd -audio/cn -audio/dat12 -audio/dsr-es201108 -audio/dvi4 -audio/evrc -audio/evrc0 -audio/g722 -audio/g.722.1 -audio/g723 -audio/g726-16 -audio/g726-24 -audio/g726-32 -audio/g726-40 -audio/g728 -audio/g729 -audio/g729D -audio/g729E -audio/gsm -audio/gsm-efr -audio/l8 -audio/l16 -audio/l20 -audio/l24 -audio/lpc -audio/midi mid midi kar -audio/mpa -audio/mpa-robust -audio/mp4a-latm -audio/mpeg mpga mp2 mp3 -audio/parityfec -audio/pcma -audio/pcmu -audio/prs.sid -audio/qcelp -audio/red -audio/smv -audio/smv0 -audio/telephone-event -audio/tone -audio/vdvi -audio/vnd.3gpp.iufp -audio/vnd.cisco.nse -audio/vnd.cns.anp1 -audio/vnd.cns.inf1 -audio/vnd.digital-winds -audio/vnd.everad.plj -audio/vnd.lucent.voice -audio/vnd.nortel.vbk -audio/vnd.nuera.ecelp4800 -audio/vnd.nuera.ecelp7470 -audio/vnd.nuera.ecelp9600 -audio/vnd.octel.sbc -audio/vnd.qcelp -audio/vnd.rhetorex.32kadpcm -audio/vnd.vmx.cvsd -audio/x-aiff aif aiff aifc -audio/x-alaw-basic -audio/x-mpegurl m3u -audio/x-pn-realaudio ram ra -audio/x-pn-realaudio-plugin -application/vnd.rn-realmedia rm -audio/x-wav wav -chemical/x-pdb pdb -chemical/x-xyz xyz -image/bmp bmp -image/cgm cgm -image/g3fax -image/gif gif -image/ief ief -image/jpeg jpeg jpg jpe -image/naplps -image/png png -image/prs.btif -image/prs.pti -image/svg+xml svg -image/t38 -image/tiff tiff tif -image/tiff-fx -image/vnd.cns.inf2 -image/vnd.djvu djvu djv -image/vnd.dwg -image/vnd.dxf -image/vnd.fastbidsheet -image/vnd.fpx -image/vnd.fst -image/vnd.fujixerox.edmics-mmr -image/vnd.fujixerox.edmics-rlc -image/vnd.globalgraphics.pgb -image/vnd.mix -image/vnd.ms-modi -image/vnd.net-fpx -image/vnd.svf -image/vnd.wap.wbmp wbmp -image/vnd.xiff -image/x-cmu-raster ras -image/x-icon ico -image/x-portable-anymap pnm -image/x-portable-bitmap pbm -image/x-portable-graymap pgm -image/x-portable-pixmap ppm -image/x-rgb rgb -image/x-xbitmap xbm -image/x-xpixmap xpm -image/x-xwindowdump xwd -message/delivery-status -message/disposition-notification -message/external-body -message/http -message/news -message/partial -message/rfc822 -message/s-http -message/sip -message/sipfrag -model/iges igs iges -model/mesh msh mesh silo -model/vnd.dwf -model/vnd.flatland.3dml -model/vnd.gdl -model/vnd.gs-gdl -model/vnd.gtw -model/vnd.mts -model/vnd.parasolid.transmit.binary -model/vnd.parasolid.transmit.text -model/vnd.vtu -model/vrml wrl vrml -multipart/alternative -multipart/appledouble -multipart/byteranges -multipart/digest -multipart/encrypted -multipart/form-data -multipart/header-set -multipart/mixed -multipart/parallel -multipart/related -multipart/report -multipart/signed -multipart/voice-message -text/calendar ics ifb -text/css css -text/directory -text/enriched -text/html html htm -text/parityfec -text/plain asc txt -text/prs.lines.tag -text/rfc822-headers -text/richtext rtx -text/rtf rtf -text/sgml sgml sgm -text/t140 -text/tab-separated-values tsv -text/uri-list -text/vnd.abc -text/vnd.curl -text/vnd.dmclientscript -text/vnd.fly -text/vnd.fmi.flexstor -text/vnd.in3d.3dml -text/vnd.in3d.spot -text/vnd.iptc.nitf -text/vnd.iptc.newsml -text/vnd.latex-z -text/vnd.motorola.reflex -text/vnd.ms-mediapackage -text/vnd.net2phone.commcenter.command -text/vnd.sun.j2me.app-descriptor -text/vnd.wap.si -text/vnd.wap.sl -text/vnd.wap.wml wml -text/vnd.wap.wmlscript wmls -text/x-setext etx -text/xml -text/xml-external-parsed-entity -video/bmpeg -video/bt656 -video/celb -video/dv -video/h261 -video/h263 -video/h263-1998 -video/h263-2000 -video/jpeg -video/mp1s -video/mp2p -video/mp2t -video/mp4v-es -video/mpv -video/mpeg mpeg mpg mpe -video/nv -video/parityfec -video/pointer -video/quicktime qt mov -video/smpte292m -video/vnd.fvt -video/vnd.motorola.video -video/vnd.motorola.videop -video/vnd.mpegurl mxu m4u -video/vnd.nokia.interleaved-multimedia -video/vnd.objectvideo -video/vnd.vivo -video/x-msvideo avi -video/x-sgi-movie movie -x-conference/x-cooltalk ice diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/htdocs/index.html b/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/htdocs/index.html deleted file mode 100644 index 1bfb3e30c2..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/htdocs/index.html +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - 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><body><h1>It works!</h1></body></html> - diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/startserver.bat b/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/startserver.bat deleted file mode 100644 index fe319248f5..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/startserver.bat +++ /dev/null @@ -1,89 +0,0 @@ -@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 - -set APFULLDIR=%~d0%~p0 -echo Running from %APFULLDIR% - -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 "%AXIS2C_HOME%" == "" ( -echo "AXIS2C_HOME not set" -goto end -) -echo Using Axis2C installed at %AXIS2C_HOME% - -if "%HTTPD_HOME%" == "" ( -echo "HTTPD_HOME not set" -goto end -) -echo Using HTTPD installed at %HTTPD_HOME% - -set PATH=%TUSCANY_SCACPP%\extensions\sca\reference\bin;%TUSCANY_SCACPP%\extensions\sca\service\bin;%TUSCANY_SCACPP%\extensions\ws\reference\bin;%TUSCANY_SCACPP%\extensions\ws\service\bin;%TUSCANY_SCACPP%\extensions\ruby\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%HTTPD_HOME%\bin;%PATH% - -set TUSCANY_SCACPP_ROOT=%APFULLDIR%\..\ -set TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -@REM Generate the mod_axis2 configuration -if not exist %APFULLDIR%\conf\mod_axis2.conf ( - echo LoadModule axis2_module %AXIS2C_HOME%\lib\mod_axis2.dll > %APFULLDIR%\conf\mod_axis2.conf - echo Axis2RepoPath %AXIS2C_HOME% >> %APFULLDIR%\conf\mod_axis2.conf - echo Axis2LogFile %AXIS2C_HOME%\logs\httpd.log >> %APFULLDIR%\conf\mod_axis2.conf - echo Axis2LogLevel AXIS2_LOG_LEVEL_DEBUG >> %APFULLDIR%\conf\mod_axis2.conf - echo ^<Location /axis2^> >> %APFULLDIR%\conf\mod_axis2.conf - echo SetHandler axis2_module >> %APFULLDIR%\conf\mod_axis2.conf - echo ^</Location^> >> %APFULLDIR%\conf\mod_axis2.conf -) - -@REM Generate the tuscany_sca_mod_rest configuration -@REM if not exist %APFULLDIR%\conf\tuscany_sca_mod_rest.conf ( -@REM echo LoadModule sca_rest_module %TUSCANY_SCACPP%/extensions/rest\service/bin/tuscany_sca_mod_rest.dll > %APFULLDIR%\conf\tuscany_sca_mod_rest.conf -@REM echo TuscanyHome %TUSCANY_SCACPP% >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf -@REM echo ^<Location /rest^> >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf -@REM echo SetHandler sca_rest_module >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf -@REM echo TuscanyRoot %TUSCANY_SCACPP_ROOT% >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf -@REM echo ^</Location^> >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf -@REM ) - -@REM Generate the base HTTPD configuration -if not exist %APFULLDIR%\conf\base.conf ( - echo LoadModule mime_module %HTTPD_HOME%\modules\mod_mime.so > %APFULLDIR%\conf\base.conf - echo LoadModule dir_module %HTTPD_HOME%\modules\mod_dir.so >> %APFULLDIR%\conf\base.conf - echo DocumentRoot %APFULLDIR%\htdocs >> %APFULLDIR%\conf\base.conf -) - -@REM Create logs directory -if not exist %APFULLDIR%\logs mkdir %APFULLDIR%\logs -@rem set TUSCANY_SCACPP_LOG=%APFULLDIR%\logs\tuscany-server.log -set TUSCANY_SCACPP_LOGGING=9 - -@REM Start the HTTP server -echo Starting Apache httpd -httpd -X -d %APFULLDIR% diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/startserver.sh b/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/startserver.sh deleted file mode 100755 index cca8472b75..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/startserver.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/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" - -if [ x$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi -echo "Using Axis2C installed at $AXIS2C_HOME" - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/extensions/cpp/lib:$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$AXIS2C_HOME/lib:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -# Generate the mod_axis2 configuration -if [ ! -f conf/mod_axis2.conf ]; then - echo "LoadModule axis2_module $AXIS2C_HOME/lib/libmod_axis2.so.0.0.0" >conf/mod_axis2.conf - echo "Axis2RepoPath $AXIS2C_HOME" >>conf/mod_axis2.conf - echo "Axis2LogFile $AXIS2C_HOME/logs/httpd.log" >>conf/mod_axis2.conf - echo "Axis2LogLevel AXIS2_LOG_LEVEL_INFO" >>conf/mod_axis2.conf - echo "<Location /axis2>" >>conf/mod_axis2.conf - echo " SetHandler axis2_module" >>conf/mod_axis2.conf - echo "</Location>" >>conf/mod_axis2.conf -fi - -# Generate the mod_rest configuration -if [ ! -f conf/tuscany_sca_mod_rest.conf ]; then - echo "LoadModule sca_rest_module $TUSCANY_SCACPP/extensions/rest/service/lib/libtuscany_sca_mod_rest.so.0.0.0" >conf/tuscany_sca_mod_rest.conf - echo "TuscanyHome $TUSCANY_SCACPP" >>conf/tuscany_sca_mod_rest.conf - echo "<Location /rest>" >>conf/tuscany_sca_mod_rest.conf - echo " SetHandler sca_rest_module" >>conf/tuscany_sca_mod_rest.conf - echo " TuscanyRoot $TUSCANY_SCACPP_ROOT" >>conf/tuscany_sca_mod_rest.conf - echo "</Location>" >>conf/tuscany_sca_mod_rest.conf -fi - -# Generate the HTTPD base configuration -if [ ! -f conf/base.conf ]; then - echo "DocumentRoot $APFULLDIR/htdocs" >conf/base.conf -fi - -# Create logs directory -if [ ! -d logs ]; then - mkdir logs -fi - -# Start the HTTP server -echo "Starting Apache httpd" -apachectl -k start -d $APFULLDIR diff --git a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/stopserver.sh b/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/stopserver.sh deleted file mode 100755 index c17f632a3e..0000000000 --- a/sca-cpp/trunk/contrib/samples/HttpdBigBank/httpserver/stopserver.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/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` - -# Stop the HTTP server -echo "Stopping Apache httpd" -apachectl -k stop -d $APFULLDIR - diff --git a/sca-cpp/trunk/contrib/samples/INSTALL b/sca-cpp/trunk/contrib/samples/INSTALL deleted file mode 100644 index 3d7155367d..0000000000 --- a/sca-cpp/trunk/contrib/samples/INSTALL +++ /dev/null @@ -1,2 +0,0 @@ -Please read the GettingStarted.html document for information on -building, installing and running Tuscany SCA for C++ Samples
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/LICENSE b/sca-cpp/trunk/contrib/samples/LICENSE deleted file mode 100755 index f433b1a53f..0000000000 --- a/sca-cpp/trunk/contrib/samples/LICENSE +++ /dev/null @@ -1,177 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS diff --git a/sca-cpp/trunk/contrib/samples/Makefile.am b/sca-cpp/trunk/contrib/samples/Makefile.am deleted file mode 100644 index 0fdf524cc1..0000000000 --- a/sca-cpp/trunk/contrib/samples/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -# 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. - -if WANT_ALL_SAMPLES - CPP_SAMPLES = CppCalculator CppBigBank - PYTHON_SAMPLES = PythonCalculator PythonWeatherForecast RestCustomer AlertAggregator - RUBY_SAMPLES = RubyCalculator RubyBigBank HttpdBigBank RestCalculator - PYTHON_RUBY_SAMPLES = RestYahoo -else -if WANT_CPP_SAMPLES - CPP_SAMPLES = CppCalculator CppBigBank -endif -if WANT_PYTHON_SAMPLES - PYTHON_SAMPLES = PythonCalculator PythonWeatherForecast RestCustomer AlertAggregator -if WANT_RUBY_SAMPLES - PYTHON_RUBY_SAMPLES = RestYahoo -endif -endif -if WANT_RUBY_SAMPLES - RUBY_SAMPLES = RubyCalculator RubyBigBank HttpdBigBank RestCalculator -endif -endif -SUBDIRS = ${CPP_SAMPLES} ${PYTHON_SAMPLES} ${RUBY_SAMPLES} ${PYTHON_RUBY_SAMPLES} - -EXTRA_DIST = autogen.sh build.sh GettingStarted.html - diff --git a/sca-cpp/trunk/contrib/samples/NEWS b/sca-cpp/trunk/contrib/samples/NEWS deleted file mode 100644 index e69de29bb2..0000000000 --- a/sca-cpp/trunk/contrib/samples/NEWS +++ /dev/null diff --git a/sca-cpp/trunk/contrib/samples/NOTICE b/sca-cpp/trunk/contrib/samples/NOTICE deleted file mode 100644 index 44befbee63..0000000000 --- a/sca-cpp/trunk/contrib/samples/NOTICE +++ /dev/null @@ -1,5 +0,0 @@ -Apache Tuscany SCA Native -Copyright 2005, 2007 The Apache Software Foundation - -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/)
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/Makefile.am b/sca-cpp/trunk/contrib/samples/PHPCalculator/Makefile.am deleted file mode 100644 index 3277f97e6e..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# 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)/PHPCalculator/deploy -# SUBDIRS = sample.calculator sample.calculator.client -SUBDIRS = sample.calculator -EXTRA_DIST = *.composite -deploy_DATA = *.composite diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/README b/sca-cpp/trunk/contrib/samples/PHPCalculator/README deleted file mode 100644 index d91c958763..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/README +++ /dev/null @@ -1,122 +0,0 @@ -Tuscany SCA for C++ Samples - PHP Calculator Sample -=================================================== - -This is a simple sample to show how an SCA composite can wire together -a number of components to implement a Calculator service and expose that service as -to a number of different tpyes of client. The sample components are implemented in various -ways to demonstrate the different features of the PHP SCA extension. - -There are three sub projects in this workspace: - - sample.calculator - This contains the source code and SCDL artifacts for the SCA Calculator - composite implementing the sample Calculator - - - sample.calculator.client - A sample client which does a local call to the Calculator service - - - sample.calculator.wsclient - A sample PHP SCA Web Service client which calls the Calculator Web service. - -Additionally, there is the sample.calculator.app.composite file. This -describes the configuration of the SCA Calculator composite deployed to the -SCA runtime. - -(See the README.html file for instructions to build and run this sample - TODO) - -The file phpcalculator.png is a picture of the sample. Given the restrictions on the -current PHP extension (see TODOs in the PHP Extension README) some parts of this -have not been tested yet. - -The path that has been tested is as follows: - -Local CPP client -> CPP Calculator -> PHP Divide -> PHP Add ------> PHP Log - |-------> PHP Subtract -> PHP Log - |-------> PHP Multiple -> PHP Log - |-------> PHP Divide ---> PHP Log - -The local CPP client is used because - - the work to enable PHP to host SCA is not done yet - - running with the axis service causes missing symbols errors on my box - -The CPP Calculator component is used because - - The local CPP client can only talk directly to a CPP component - -To run the sample in this configuration use the CalculatorClient.cpp found in the -sample.calculator.client directory - -Windows -======= - -Hasn't yet been tests on windows in this configuration so ignore the following - -I use the following bat file to start the stand alone axis server and include -appropriate references to PHP dependencies. This needs turning into a proper -run script but I haven't got to this yet - -set TUSCANY_SCACPP_LOGGING=9 -set AXIS2C_HOME=C:\axis2c-bin-0.95-win32 -set PATH=%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%TUSCANY_SCACPP%\extensions\php\bin;%AXIS2C_HOME%\lib;c:\libxml2-2.6.23.win32\bin;c:\apps\iconv-1.9.1.win32\bin;c:\apps\zlib-1.2.3.win32\bin;C:\php-5.2.0\ -set TUSCANY_SCACPP_ROOT=%TUSCANY_SCACPP%\samples\PHPCalculator -rem set TUSCANY_SCACPP_DEFAULT_COMPONENT=sample.calculator.CalculatorComponent - -%AXIS2C_HOME%\bin\axis2_http_server.exe -l 9 - -I then - -cd %TUSCANY_SCACPP%\samples\PHPCalculator\samples.calculator.wsclient -runwsclient.bat - -This has the effect of runing a PHP/SCA client (no C++ SCA content at all) -to generate a web service request to the C++ SCA runtime hosting the calculator -application. - -Currently this doesn't run all the way through due to a WSDL bug in PHP SCA -(http://pecl.php.net/bugs/bug.php?id=9572). But it gets 99% of the way there. -You will see the server doing all of its stuff and returning the correct result. - -Linux -===== - -I find the following environment variables useful when running PHP embedded inside of -Tuscany SCA. - -# the library path use to locate shared libraries -export LD_LIBRARY_PATH=$LIBXML2_LIB:\ -$AXIS2C_HOME/lib:\ -$PHP_LIB:\ -$TUSCANY_SDOCPP/lib:\ -$TUSCANY_SCACPP/lib:\ -$TUSCANY_SCACPP/extensions/cpp/lib:\ -$TUSCANY_SCACPP/extensions/php/lib:\ -$TUSCANY_SCACPP/extensions/ws/lib:\ -$TUSCANY_SCACPP/samples/PHPCalculator/deploy/sample.calculator:\ -$PHP_SCA_SDO_LIB - -# tell PHP specifically where to find php.ini rather than relying on the default -set PHPRC=/usr/local/lib - -# tell Tuscany SCA which composite appplication to run -export TUSCANY_SCACPP_ROOT=/usr/local/tuscany/cpp/sca/deploy/samples/PHPCalculator - -# tell Tuscany SCA which is the default component in this composite -export TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorComponent - -# turn on logging so you can see what's going on -export TUSCANY_SCACPP_LOGGING=9 - -There is an env.sh file that can be edited and used to set your environment. One edited -to reflect your environment do: - -source env.sh - -The CPP client currently has an independent Makefile due to build problems with the automake -build on my box. If you have your environment configured as above you should be able to do: - -make - -This will produce a.out which can be run using the provided script. - -runclient_cpp.sh - - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/phpcalculator.png b/sca-cpp/trunk/contrib/samples/PHPCalculator/phpcalculator.png Binary files differdeleted file mode 100644 index c251364548..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/phpcalculator.png +++ /dev/null diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.app.composite b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.app.composite deleted file mode 100644 index 1450ad687b..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.app.composite +++ /dev/null @@ -1,33 +0,0 @@ -<?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.calculator.app"> - - <component name="sample.calculator.CalculatorComponent"> - <implementation.composite name="sample.calculator" /> - </component> - -<!-- - <component name="sample.calculator.CalculatorWSClientComponent"> - <implementation.composite name="sample.calculator.wsclient" /> - </component> ---> -</composite> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/CalculatorClient.cpp b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/CalculatorClient.cpp deleted file mode 100644 index e72b52f87e..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/CalculatorClient.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -// some strangeness in the build that causes -// WinSock.h and WinSock2.h to be included leading to redefinitions -//#define _WINSOCKAPI_ - - -#include <iostream> - -#include <php_embed.h> - -#include <string> - -#include "commonj/sdo/SDO.h" - -#include "osoa/sca/sca.h" - -#include "Calculator.h" - - -using namespace std; -using namespace commonj::sdo; -using namespace osoa::sca; - - -int main (int argc, char** argv) -{ - - try - { - CompositeContext myContext = CompositeContext::getCurrent(); - Calculator *calcService = (Calculator*) myContext.locateService("CalculatorCPPComponent/CalculatorService"); - float result = calcService->div(10, 2); - cout << "calculator_client: div(10,2) = " << result << endl; - } - catch (...) - { - printf("Got and exception"); - } - - return 0; -} diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/CalculatorClient.php b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/CalculatorClient.php deleted file mode 100644 index 7a512260ae..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/CalculatorClient.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php -# 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. -# -# - -include 'SCA/SCA.php'; - -// Get a proxy to the local Calculator.php -$service = SCA::getService('../sample.calculator/Calculator.php'); - -// Call the local service and write out the response -echo "add(1.23, 4.56) = " . $service->add(1.23, 4.56) . "\n"; -echo "sub(1.23, 4.56) = " . $service->sub(1.23, 4.56) . "\n"; -echo "mul(1.23, 4.56) = " . $service->mul(1.23, 4.56) . "\n"; -echo "div(1.23, 4.56) = " . $service->div(1.23, 4.56) . "\n"; - -?> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/env.sh b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/env.sh deleted file mode 100755 index de34f1b42a..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/env.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# 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. - -export AXIS2C_HOME=/home/slaws/apps/axis2c-bin-0.96-linux - -export LIBXML2_LIB=/usr/lib -export LIBXML2_INCLUDE=/usr/include/libxml2 - -export PHP_LIB=/usr/local/lib -export PHP_INCLUDE=/usr/local/include/php - -export PHP_SCA_SDO_INCLUDE=/home/slaws/phpbuild-5-2/pecl/SDO -export PHP_SCA_SDO_LIB=$PHP_LIB/php/extensions/no-debug-zts-20060613/ - -export TUSCANY_SDOCPP=/sdo/deploy -export TUSCANY_SCACPP=/usr/local/tuscany/cpp/sca/deploy - -export LD_LIBRARY_PATH=$LIBXML2_LIB:\ -$AXIS2C_HOME/lib:\ -$PHP_LIB:\ -$TUSCANY_SDOCPP/lib:\ -$TUSCANY_SCACPP/lib:\ -$TUSCANY_SCACPP/extensions/cpp/lib:\ -$TUSCANY_SCACPP/extensions/php/lib:\ -$TUSCANY_SCACPP/extensions/ws/lib:\ -$TUSCANY_SCACPP/samples/PHPCalculator/deploy/sample.calculator:\ -$PHP_SCA_SDO_LIB - -export TUSCANY_SCACPP_LOGGING=9 -export TUSCANY_SCACPP_ROOT=/usr/local/tuscany/cpp/sca/deploy/samples/PHPCalculator - -export PATH=.:$PATH diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/runclient_cpp.bat b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/runclient_cpp.bat deleted file mode 100644 index 0493d7410d..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/runclient_cpp.bat +++ /dev/null @@ -1,26 +0,0 @@ -@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.
-
-set TUSCANY_SCACPP_ROOT=%TUSCANY_SCACPP%\samples\PHPCalculator\deploy
-set TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorComponent
-set TUSCANY_SCACPP_LOGGING=9
-set PHRC=C:\simon\Projects\Tuscany\php\php-5.2.0\Debug_TS
-
-calculator_client.exe
-
diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/runclient_cpp.sh b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/runclient_cpp.sh deleted file mode 100755 index 85a472b7fb..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/runclient_cpp.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -# 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. - -export TUSCANY_SCACPP_ROOT=/usr/local/tuscany/cpp/sca/deploy/samples/PHPCalculator -export TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorComponent - -a.out -# gdb a.out -# strace a.out &> strace.txt -# valgrind a.out diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/runclient_php.bat b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/runclient_php.bat deleted file mode 100644 index 815c4fb58e..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.client/runclient_php.bat +++ /dev/null @@ -1,25 +0,0 @@ -@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 - -php TuscanyTest.php - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.wsclient/Calculator.wsdl b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.wsclient/Calculator.wsdl deleted file mode 100644 index 4d6904b687..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.wsclient/Calculator.wsdl +++ /dev/null @@ -1,173 +0,0 @@ -<?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. ---> - -<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://sample/calculator" - targetNamespace="http://sample/calculator"> - <types> - <xs:schema targetNamespace="http://sample/calculator" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://sample/calculator" elementFormDefault="qualified"> - - <xs:element name="add"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="sub"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="mul"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="div"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="addResponse"> - <xs:complexType> - <xs:sequence> - <xs:element name="addReturn" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="result"> - <xs:complexType> - <xs:sequence> - <xs:element name="data" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - </xs:schema> - </types> - - <message name="addRequestMsg"> - <part name="body" element="tns:add" /> - </message> - <message name="addResponseMsg"> - <part name="body" element="tns:addResponse" /> - </message> - <message name="subRequestMsg"> - <part name="body" element="tns:sub" /> - </message> - <message name="mulRequestMsg"> - <part name="body" element="tns:mul" /> - </message> - <message name="divRequestMsg"> - <part name="body" element="tns:div" /> - </message> - - <message name="calculatorResponseMsg"> - <part name="body" element="tns:result" /> - </message> - - <portType name="Calculator"> - <operation name="add"> - <input message="tns:addRequestMsg" /> - <output message="tns:addResponseMsg" /> - </operation> - <operation name="sub"> - <input message="tns:subRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="mul"> - <input message="tns:mulRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="div"> - <input message="tns:divRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - </portType> - - <binding name="CalculatorBinding" - type="tns:Calculator"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> - <operation name="add"> - <soap:operation soapAction="CalculatorService#add" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="sub"> - <soap:operation soapAction="CalculatorService#sub" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="mul"> - <soap:operation soapAction="CalculatorService#mul" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="div"> - <soap:operation soapAction="CalculatorService#div" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - </binding> - - <service name="CalculatorService"> - <port name="CalculatorPort" - binding="tns:CalculatorBinding"> - <soap:address location="http://localhost:9090/axis2/services/sample.calculator.CalculatorComponent/CalculatorService" /> - </port> - </service> -</definitions> -<!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove --> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.wsclient/CalculatorWSClient.php b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.wsclient/CalculatorWSClient.php deleted file mode 100644 index 82faf1ef19..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.wsclient/CalculatorWSClient.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php -# 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. -# -# -include 'SCA/SCA.php'; - -// Get a proxy to the local Calculator.php -$service = SCA::getService('Calculator.wsdl'); - -// Call the local service and write out the response -//echo "add(1.23, 4.56) = " . $service->add(1.23, 4.56) . "\n"; -//echo "sub(1.23, 4.56) = " . $service->sub(1.23, 4.56) . "\n"; -//echo "mul(1.23, 4.56) = " . $service->mul(1.23, 4.56) . "\n"; -echo "div(1.23, 4.56) = " . $service->div(1.23, 4.56) . "\n"; - -?> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.wsclient/runwsclient.bat b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.wsclient/runwsclient.bat deleted file mode 100644 index a1482be5db..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator.wsclient/runwsclient.bat +++ /dev/null @@ -1,25 +0,0 @@ -@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 - -php CalculatorWSClient.php - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Add.componentType b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Add.componentType deleted file mode 100644 index aca0b2a6e4..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Add.componentType +++ /dev/null @@ -1,29 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - <service name="AddService"> - <interface.cpp header="Add.h"/> - </service> - - <reference name="log_service"> - <interface.cpp header="Log.h"/> - </reference> -</componentType> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Add.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Add.h deleted file mode 100644 index 4abfe9af6b..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Add.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef sample_add_h -#define sample_add_h - -class Add -{ - public: - virtual float add(float num1, float num2) = 0; -}; - -#endif // sample_add_h - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Add.php b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Add.php deleted file mode 100644 index 4b5747e10f..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Add.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php -# 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 'SCA/SCA.php'; - -$num1 = $_REQUEST[0]; -$num2 = $_REQUEST[1]; - -$result = $num1 + $num2; - -$log_proxy = SCA::getService("log_service"); -$log_proxy->log_message($result); - -echo $result; -?> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.componentType b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.componentType deleted file mode 100644 index 7767c663bf..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.componentType +++ /dev/null @@ -1,43 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - - <service name="CalculatorService"> - <interface.cpp header="Calculator.h"/> - </service> - - <reference name="add_service"> - <interface.cpp header="Add.h"/> - </reference> - - <reference name="sub_service"> - <interface.cpp header="Subtract.h"/> - </reference> - - <reference name="mul_service"> - <interface.cpp header="Multiply.h"/> - </reference> - - <reference name="div_service"> - <interface.cpp header="Divide.h"/> - </reference> - -</componentType> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.h deleted file mode 100644 index 90e97b5319..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef sample_calculator_h -#define sample_calculator_h - -class Calculator -{ -public: - virtual float add(float arg1, float arg2) = 0; - virtual float sub(float arg1, float arg2) = 0; - virtual float mul(float arg1, float arg2) = 0; - virtual float div(float arg1, float arg2) = 0; -}; - -#endif // sample_calculator_h diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.php b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.php deleted file mode 100644 index ce8f7899da..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php -# 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. -# -# -include 'SCA/SCA.php'; - -/** - * @service - * @binding.ws - */ -class Calculator { - - /** - * @reference - * @binding.php Add.php - */ - public $add_service; - - /** - * @reference - * @binding.php Subtract.php - */ - public $sub_service; - - /** - * @reference - * @binding.php Multiply.php - */ - public $mul_service; - - /** - * @reference - * @binding.ws Divide.wsdl - */ - public $div_service; - - /** - * Addition - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function add($num1, $num2) { - return $this->mul_service->add($num1, $num2); - } - - /** - * Subtraction - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function sub($num1, $num2) { - return $this->mul_service->sub($num1, $num2); - } - - /** - * Multiplication - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function mul($num1, $num2) { - return $this->mul_service->mul($num1, $num2); - } - - /** - * Division - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function div($num1, $num2) { - return $this->div_service->div($num1, $num2); - } -} - -?> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.wsdl b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.wsdl deleted file mode 100644 index 331b996ba2..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Calculator.wsdl +++ /dev/null @@ -1,161 +0,0 @@ -<?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. ---> - -<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://sample/calculator" - targetNamespace="http://sample/calculator"> - <types> - <xs:schema targetNamespace="http://sample/calculator" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://sample/calculator" elementFormDefault="qualified"> - - <xs:element name="add"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="sub"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="mul"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="div"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="result"> - <xs:complexType> - <xs:sequence> - <xs:element name="data" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - </xs:schema> - </types> - - <message name="addRequestMsg"> - <part name="body" element="tns:add" /> - </message> - <message name="subRequestMsg"> - <part name="body" element="tns:sub" /> - </message> - <message name="mulRequestMsg"> - <part name="body" element="tns:mul" /> - </message> - <message name="divRequestMsg"> - <part name="body" element="tns:div" /> - </message> - - <message name="calculatorResponseMsg"> - <part name="body" element="tns:result" /> - </message> - - <portType name="Calculator"> - <operation name="add"> - <input message="tns:addRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="sub"> - <input message="tns:subRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="mul"> - <input message="tns:mulRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="div"> - <input message="tns:divRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - </portType> - - <binding name="CalculatorBinding" - type="tns:Calculator"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> - <operation name="add"> - <soap:operation soapAction="CalculatorService#add" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="sub"> - <soap:operation soapAction="CalculatorService#sub" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="mul"> - <soap:operation soapAction="CalculatorService#mul" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="div"> - <soap:operation soapAction="CalculatorService#div" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - </binding> - - <service name="CalculatorService"> - <port name="CalculatorPort" - binding="tns:CalculatorBinding"> - <soap:address location="http://localhost:9090/axis2/services/sample.calculator.CalculatorComponent/CalculatorService" /> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl.componentType b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl.componentType deleted file mode 100644 index e2799af955..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl.componentType +++ /dev/null @@ -1,31 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - - <service name="CalculatorService"> - <interface.cpp header="Calculator.h"/> - </service> - - <reference name="divideService"> - <interface.cpp header="Divide.h"/> - </reference> - -</componentType> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl.cpp b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl.cpp deleted file mode 100644 index 2d880de72d..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <stdio.h> - -#include "osoa/sca/ComponentContext.h" -#include "osoa/sca/ServiceRuntimeException.h" - -#include "CalculatorImpl.h" -#include "Divide.h" - -CalculatorImpl::CalculatorImpl() -{ -} - -CalculatorImpl::~CalculatorImpl() -{ -} - -// Calculator interface -float CalculatorImpl::add(float arg1, float arg2) -{ - float result = arg1 + arg2; - - printf("CalculatorImpl::add %f + %f = %f\n", arg1, arg2, result); - return result; -} - -float CalculatorImpl::sub(float arg1, float arg2) -{ - float result = arg1 - arg2; - printf("CalculatorImpl::sub %f - %f = %f\n", arg1, arg2, result); - return result; -} - -float CalculatorImpl::mul(float arg1, float arg2) -{ - float result = arg1 * arg2; - printf("CalculatorImpl::mul %f * %f = %f\n", arg1, arg2, result); - return result; -} - -float CalculatorImpl::div(float arg1, float arg2) -{ - float result = 0; - - // This method shows how to invoke a service on a different component from within a component - - // First, get the current ComponentContext - osoa::sca::ComponentContext myContext = osoa::sca::ComponentContext::getCurrent(); - - try - { - // Find the required service, as referenced in CalculatorImpl.componentType - Divide* divideService = (Divide*)myContext.getService("divideService"); - - // Finally, invoke the service - result = divideService->div(arg1, arg2); - - printf("CalculatorImpl::div Divide returned result: %f\n", result); - - } - catch (osoa::sca::ServiceRuntimeException& e) - { - // Print out error message and carry on - printf("CalculatorImpl::div Error whilst invoking Divide: %s", e.getMessageText()); - } - - return result; -} - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl.h deleted file mode 100644 index af8a5eeab1..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef sample_calculatorimpl_h -#define sample_calculatorimpl_h - -#include "Calculator.h" - -class CalculatorImpl : public Calculator -{ -public: - CalculatorImpl(); - virtual ~CalculatorImpl(); - - // Calculator interface - virtual float add(float arg1, float arg2); - virtual float sub(float arg1, float arg2); - virtual float mul(float arg1, float arg2); - virtual float div(float arg1, float arg2); -}; - -#endif // sample_calculatorimpl_h - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Proxy.cpp b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Proxy.cpp deleted file mode 100644 index 084e6fbf2f..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Proxy.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - * 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. - */ - -#include "CalculatorImpl_CalculatorService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorImpl_CalculatorService_Proxy* CalculatorImpl_CalculatorService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CalculatorImpl_CalculatorService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CalculatorImpl_CalculatorService_Proxy_Destructor(void* proxy) - { - delete (CalculatorImpl_CalculatorService_Proxy*)proxy; - } -} - -CalculatorImpl_CalculatorService_Proxy::CalculatorImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CalculatorImpl_CalculatorService_Proxy::~CalculatorImpl_CalculatorService_Proxy() -{ - if (target) - delete target; -} - -float CalculatorImpl_CalculatorService_Proxy::add( float arg0, float arg1) -{ - tuscany::sca::Operation operation("add"); - operation.addParameter("arg1", &arg0); - operation.addParameter("arg2", &arg1); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -float CalculatorImpl_CalculatorService_Proxy::sub( float arg0, float arg1) -{ - tuscany::sca::Operation operation("sub"); - operation.addParameter("arg1", &arg0); - operation.addParameter("arg2", &arg1); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -float CalculatorImpl_CalculatorService_Proxy::mul( float arg0, float arg1) -{ - tuscany::sca::Operation operation("mul"); - operation.addParameter("arg1", &arg0); - operation.addParameter("arg2", &arg1); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - -float CalculatorImpl_CalculatorService_Proxy::div( float arg0, float arg1) -{ - tuscany::sca::Operation operation("div"); - operation.addParameter("arg1", &arg0); - operation.addParameter("arg2", &arg1); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Proxy.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Proxy.h deleted file mode 100644 index 700a060636..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Proxy.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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. - */ - -#ifndef CalculatorImpl_CalculatorService_Proxy_h -#define CalculatorImpl_CalculatorService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "Calculator.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CalculatorImpl_CalculatorService_Proxy : public Calculator -{ -public: - CalculatorImpl_CalculatorService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CalculatorImpl_CalculatorService_Proxy(); - virtual float add( float arg1, float arg2); - virtual float sub( float arg1, float arg2); - virtual float mul( float arg1, float arg2); - virtual float div( float arg1, float arg2); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CalculatorImpl_CalculatorService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Wrapper.cpp b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Wrapper.cpp deleted file mode 100644 index 82114b4d6d..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Wrapper.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* - * 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. - */ - -#include "CalculatorImpl_CalculatorService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorImpl_CalculatorService_Wrapper* CalculatorImpl_CalculatorService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new CalculatorImpl_CalculatorService_Wrapper(target); - } -} - -CalculatorImpl_CalculatorService_Wrapper::CalculatorImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (CalculatorImpl*)getImplementation(); -} - -CalculatorImpl_CalculatorService_Wrapper::~CalculatorImpl_CalculatorService_Wrapper() -{ - releaseImplementation(); -} - -void* CalculatorImpl_CalculatorService_Wrapper::newImplementation() -{ - return new CalculatorImpl; -} - -void CalculatorImpl_CalculatorService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void CalculatorImpl_CalculatorService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "add") - { - float& p0 = *( float*)operation.getParameterValue(0); - float& p1 = *( float*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->add(p0, p1); - } - else - { - float* ret = new float; - *ret = impl->add(p0, p1); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "sub") - { - float& p0 = *( float*)operation.getParameterValue(0); - float& p1 = *( float*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->sub(p0, p1); - } - else - { - float* ret = new float; - *ret = impl->sub(p0, p1); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "mul") - { - float& p0 = *( float*)operation.getParameterValue(0); - float& p1 = *( float*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->mul(p0, p1); - } - else - { - float* ret = new float; - *ret = impl->mul(p0, p1); - operation.setReturnValue((const float*)ret); - } - return; - } - if (operationName == "div") - { - float& p0 = *( float*)operation.getParameterValue(0); - float& p1 = *( float*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->div(p0, p1); - } - else - { - float* ret = new float; - *ret = impl->div(p0, p1); - operation.setReturnValue((const float*)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Wrapper.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Wrapper.h deleted file mode 100644 index 63bae2f75c..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_CalculatorService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef CalculatorImpl_CalculatorService_Wrapper_h -#define CalculatorImpl_CalculatorService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "CalculatorImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class CalculatorImpl_CalculatorService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - CalculatorImpl_CalculatorService_Wrapper(tuscany::sca::model::Service* target); - virtual ~CalculatorImpl_CalculatorService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - CalculatorImpl* impl; -}; - -#endif // CalculatorImpl_CalculatorService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_divideService_Proxy.cpp b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_divideService_Proxy.cpp deleted file mode 100644 index 510069c331..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_divideService_Proxy.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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. - */ - -#include "CalculatorImpl_divideService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - CalculatorImpl_divideService_Proxy* CalculatorImpl_divideService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new CalculatorImpl_divideService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void CalculatorImpl_divideService_Proxy_Destructor(void* proxy) - { - delete (CalculatorImpl_divideService_Proxy*)proxy; - } -} - -CalculatorImpl_divideService_Proxy::CalculatorImpl_divideService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -CalculatorImpl_divideService_Proxy::~CalculatorImpl_divideService_Proxy() -{ - if (target) - delete target; -} - -float CalculatorImpl_divideService_Proxy::div( float arg0, float arg1) -{ - tuscany::sca::Operation operation("div"); - operation.addParameter("num1", &arg0); - operation.addParameter("num2", &arg1); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_divideService_Proxy.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_divideService_Proxy.h deleted file mode 100644 index 0459e70f33..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/CalculatorImpl_divideService_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef CalculatorImpl_divideService_Proxy_h -#define CalculatorImpl_divideService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "Divide.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class CalculatorImpl_divideService_Proxy : public Divide -{ -public: - CalculatorImpl_divideService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~CalculatorImpl_divideService_Proxy(); - virtual float div( float num1, float num2); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // CalculatorImpl_divideService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Divide.componentType b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Divide.componentType deleted file mode 100644 index 428d19f8bc..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Divide.componentType +++ /dev/null @@ -1,41 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - <service name="DivideService"> - <interface.cpp header="Divide.h"/> - </service> - - <reference name="cppDivideService"> - <interface.cpp header="Divide.h"/> - </reference> - - <reference name="add_service"> - <interface.cpp header="Add.h"/> - </reference> - - <reference name="subtract_service"> - <interface.cpp header="Subtract.h"/> - </reference> - - <reference name="multiply_service"> - <interface.cpp header="Multiply.h"/> - </reference> -</componentType> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Divide.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Divide.h deleted file mode 100644 index c2ab3b816c..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Divide.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef sample_divide_h -#define sample_divide_h - -class Divide -{ - public: - virtual float div(float num1, float num2) = 0; -}; - -#endif // sample_divide_h - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Divide.php b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Divide.php deleted file mode 100644 index c2e9adda70..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Divide.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php -# 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. -# -# - -/** - * @service - * @binding.ws - */ -class Divide { - - /** - * @reference - * @binding.tuscany cppDivideService - */ - public $another_divide; - - /** - * @reference - * @binding.tuscany add_service - */ - public $add_service; - - /** - * @reference - * @binding.tuscany subtract_service - */ - public $subtract_service; - - /** - * @reference - * @binding.tuscany multiply_service - */ - public $multiply_service; - - /** - * Division - * - * @param float $num1 (the first number) - * @param float $num2 (the second number) - * @return float The result - */ - function div($num1, $num2) { - - //$this->add_service->add(12.0, 27.0); - //$this->subtract_service->sub(12.0, 27.0); - $this->multiply_service->mul(12.0, 27.0); - - $result = $this->another_divide->div($num1, $num2); - - return $result; - } - -} - -?> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl.componentType b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl.componentType deleted file mode 100644 index d7369e3ff0..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl.componentType +++ /dev/null @@ -1,27 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - - <service name="DivideService"> - <interface.cpp header="Divide.h"/> - </service> - -</componentType> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl.cpp b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl.cpp deleted file mode 100644 index 88b9065171..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <stdio.h> - -#include "DivideImpl.h" - -DivideImpl::DivideImpl() -{ -} - -DivideImpl::~DivideImpl() -{ -} - -// Divide interface -float DivideImpl::div(float arg1, float arg2) -{ - if(arg2 == 0.0) - { - printf("DivideImpl::div %f / %f !! Cannot divide by zero, so returning 0\n", arg1, arg2); - return 0; - } - - float result = arg1 / arg2; - printf("DivideImpl::div %f / %f = %f\n", arg1, arg2, result); - return result; -} - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl.h deleted file mode 100644 index 42cf47b1d4..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef sample_divideimpl_h -#define sample_divideimpl_h - -#include "Divide.h" - -class DivideImpl : public Divide -{ -public: - DivideImpl(); - virtual ~DivideImpl(); - - // Divide interface - virtual float div(float arg1, float arg2); -}; - -#endif // sample_divideimpl_h - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Proxy.cpp b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Proxy.cpp deleted file mode 100644 index e8dbeb2e0d..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Proxy.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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. - */ - -#include "DivideImpl_DivideService_Proxy.h" - -#include "osoa/sca/sca.h" - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - DivideImpl_DivideService_Proxy* DivideImpl_DivideService_Proxy_Factory(tuscany::sca::ServiceWrapper* target) - { - return new DivideImpl_DivideService_Proxy(target); - } - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - void DivideImpl_DivideService_Proxy_Destructor(void* proxy) - { - delete (DivideImpl_DivideService_Proxy*)proxy; - } -} - -DivideImpl_DivideService_Proxy::DivideImpl_DivideService_Proxy(tuscany::sca::ServiceWrapper* targ) : target(targ) -{ -} - -DivideImpl_DivideService_Proxy::~DivideImpl_DivideService_Proxy() -{ - if (target) - delete target; -} - -float DivideImpl_DivideService_Proxy::div( float arg0, float arg1) -{ - tuscany::sca::Operation operation("div"); - operation.addParameter("num1", &arg0); - operation.addParameter("num2", &arg1); - float ret; - operation.setReturnValue(&ret); - target->invoke(operation); - return *(float*)operation.getReturnValue(); -} - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Proxy.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Proxy.h deleted file mode 100644 index d66cde1c06..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Proxy.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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. - */ - -#ifndef DivideImpl_DivideService_Proxy_h -#define DivideImpl_DivideService_Proxy_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "Divide.h" -#include "tuscany/sca/core/ServiceWrapper.h" - -class DivideImpl_DivideService_Proxy : public Divide -{ -public: - DivideImpl_DivideService_Proxy(tuscany::sca::ServiceWrapper*); - virtual ~DivideImpl_DivideService_Proxy(); - virtual float div( float num1, float num2); -private: - tuscany::sca::ServiceWrapper* target; -}; - -#endif // DivideImpl_DivideService_Proxy_h - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Wrapper.cpp b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Wrapper.cpp deleted file mode 100644 index 9c6f2101fe..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Wrapper.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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. - */ - -#include "DivideImpl_DivideService_Wrapper.h" - -#include "osoa/sca/sca.h" - - - -extern "C" -{ - - #if defined(WIN32) || defined(_WINDOWS) - __declspec(dllexport) - #endif - DivideImpl_DivideService_Wrapper* DivideImpl_DivideService_Wrapper_Factory(tuscany::sca::model::Service* target) - { - return new DivideImpl_DivideService_Wrapper(target); - } -} - -DivideImpl_DivideService_Wrapper::DivideImpl_DivideService_Wrapper(tuscany::sca::model::Service* target) : tuscany::sca::cpp::CPPServiceWrapper(target) -{ - impl = (DivideImpl*)getImplementation(); -} - -DivideImpl_DivideService_Wrapper::~DivideImpl_DivideService_Wrapper() -{ - releaseImplementation(); -} - -void* DivideImpl_DivideService_Wrapper::newImplementation() -{ - return new DivideImpl; -} - -void DivideImpl_DivideService_Wrapper::deleteImplementation() -{ - delete impl; -} - -void DivideImpl_DivideService_Wrapper::invokeService(tuscany::sca::Operation& operation) -{ - const std::string& operationName = operation.getName(); - - if (operationName == "div") - { - float& p0 = *( float*)operation.getParameterValue(0); - float& p1 = *( float*)operation.getParameterValue(1); - - if(operation.getReturnValue() != NULL) - { - *(float*)operation.getReturnValue() = impl->div(p0, p1); - } - else - { - float* ret = new float; - *ret = impl->div(p0, p1); - operation.setReturnValue((const float*)ret); - } - return; - } - - - throw osoa::sca::ServiceRuntimeException("Invalid operation"); - -} - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Wrapper.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Wrapper.h deleted file mode 100644 index 5cd10f5188..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/DivideImpl_DivideService_Wrapper.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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. - */ - -#ifndef DivideImpl_DivideService_Wrapper_h -#define DivideImpl_DivideService_Wrapper_h - -#if defined(WIN32) || defined (_WINDOWS) -#pragma warning(disable: 4786) -#endif - -#include "DivideImpl.h" -#include "tuscany/sca/cpp/CPPServiceWrapper.h" - -class DivideImpl_DivideService_Wrapper : public tuscany::sca::cpp::CPPServiceWrapper -{ -public: - DivideImpl_DivideService_Wrapper(tuscany::sca::model::Service* target); - virtual ~DivideImpl_DivideService_Wrapper(); - virtual void invokeService(tuscany::sca::Operation& operation); - virtual void* newImplementation(); - virtual void deleteImplementation(); -private: - DivideImpl* impl; -}; - -#endif // DivideImpl_DivideService_Wrapper_h - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Log.componentType b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Log.componentType deleted file mode 100644 index 0b4423300d..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Log.componentType +++ /dev/null @@ -1,25 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - <service name="LogService"> - <interface.cpp header="Log.h"/> - </service> -</componentType> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Log.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Log.h deleted file mode 100644 index c21da1bddf..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Log.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef sample_log_h -#define sample_log_h - -class Log -{ - public: - virtual void div(char *message) = 0; -}; - -#endif // sample_log_h - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Log.php b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Log.php deleted file mode 100644 index 0a955f36d3..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Log.php +++ /dev/null @@ -1,36 +0,0 @@ -<?php -# 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. -# -# - -/** - * @service - */ -class Log { - - /** - * Log - * - * @param string $message (the message to be logged) - */ - function log_message($message) { - SCA::$logger->toLog('>>> ' . $message); - } -} - -?> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Makefile.am b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Makefile.am deleted file mode 100644 index 84567a5add..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Makefile.am +++ /dev/null @@ -1,56 +0,0 @@ -# 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)/PHPCalculator/deploy -compositedir=$(deploydir)/sample.calculator - -BUILT_SOURCES = scagen - -noinst_HEADERS = *.h - -scagen: - java -jar $(TUSCANY_SCACPP)/bin/scagen.jar -dir . -output . - -composite_SCRIPTS = runwsserver.sh - -composite_LTLIBRARIES = libCalculator.la -composite_DATA = *.composite *.componentType *.wsdl *.php -EXTRA_DIST = *.composite *.componentType *.wsdl *.php runwsserver.sh - -dist_libCalculator_la_SOURCES = \ -CalculatorImpl.cpp \ -DivideImpl.cpp - -nodist_libCalculator_la_SOURCES = \ -CalculatorImpl_CalculatorService_Proxy.cpp \ -CalculatorImpl_CalculatorService_Wrapper.cpp \ -CalculatorImpl_divideService_Proxy.cpp \ -DivideImpl_DivideService_Proxy.cpp \ -DivideImpl_DivideService_Wrapper.cpp - - -libCalculator_la_LIBADD = \ --L${TUSCANY_SCACPP}/lib \ - -ltuscany_sca \ --L${TUSCANY_SCACPP}/extensions/cpp/lib \ - -ltuscany_sca_cpp - -INCLUDES = \ --I$(TUSCANY_SCACPP)/extensions/cpp/include \ --I$(TUSCANY_SCACPP)/include \ --I${TUSCANY_SDOCPP}/include - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Multiply.componentType b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Multiply.componentType deleted file mode 100644 index af1631518a..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Multiply.componentType +++ /dev/null @@ -1,28 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - <service name="MultiplyService"> - <interface.cpp header="Multiply.h"/> - </service> - <reference name="log_service"> - <interface.cpp header="Log.h"/> - </reference> -</componentType> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Multiply.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Multiply.h deleted file mode 100644 index 94de825f62..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Multiply.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef sample_multiply_h -#define sample_multiply_h - -class Multiply -{ - public: - virtual float mul(float num1, float num2) = 0; -}; - -#endif // sample_multiply_h - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Multiply.php b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Multiply.php deleted file mode 100644 index 8ffe02675d..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Multiply.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php -# 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 'SCA/SCA.php'; - -class Multiply { - function mul($num1, $num2) { - $result = $num1 * $num2; - - $log_proxy = SCA::getService("log_service"); - $log_proxy->log_message($result); - - return $result; - } -} - -?> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Subtract.componentType b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Subtract.componentType deleted file mode 100644 index 35dab8bb9b..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Subtract.componentType +++ /dev/null @@ -1,29 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0"> - <service name="SubtractService"> - <interface.cpp header="Subtract.h"/> - </service> - - <reference name="log_service"> - <interface.cpp header="Log.h"/> - </reference> -</componentType> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Subtract.h b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Subtract.h deleted file mode 100644 index a50b79ccc6..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Subtract.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - - -#ifndef sample_subtract_h -#define sample_subtract_h - -class Subtract -{ - public: - virtual float sub(float num1, float num2) = 0; -}; - -#endif // sample_subtract_h - - diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Subtract.php b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Subtract.php deleted file mode 100644 index 8d3a1b3ddf..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/Subtract.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php -# 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 'SCA/SCA.php'; - -function sub($num1, $num2){ - $result = $num1 - $num2; - - $log_proxy = SCA::getService("log_service"); - $log_proxy->log_message($result); - - return $result; -} -?> diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/runwsserver.sh b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/runwsserver.sh deleted file mode 100755 index 069d734fea..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/runwsserver.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/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" - -if [ x$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi -echo "Using Axis2C installed at $AXIS2C_HOME" - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/lib:$TUSCANY_SCACPP/extensions/cpp/lib:$TUSCANY_SDOCPP/lib:$AXIS2C_HOME/lib:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ - -cd $AXIS2C_HOME/bin -./axis2_http_server diff --git a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/sample.calculator.composite b/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/sample.calculator.composite deleted file mode 100644 index 09b7070fb8..0000000000 --- a/sca-cpp/trunk/contrib/samples/PHPCalculator/sample.calculator/sample.calculator.composite +++ /dev/null @@ -1,81 +0,0 @@ -<?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.calculator"> -<!-- - <service name="CalculatorService"> - <interface.wsdl interface="http://sample/calculator#wsdl.interface(Calculator)"/> - <binding.ws/> - <reference>CalculatorCPPComponent</reference> - </service> ---> - - <component name="CalculatorCPPComponent"> - <implementation.cpp library="Calculator" header="CalculatorImpl.h"/> - <reference name="divideService">DivideComponent/DivideService</reference> - </component> - - <component name="CalculatorPHPComponent"> - <implementation.php module="Calculator" scope="composite"/> - <reference name="add_service">AddComponent</reference> - <reference name="sub_service">SubtractComponent</reference> - <reference name="mul_service">MultiplyComponent</reference> - <reference name="div_service">DivideComponent</reference> - </component> - - <component name="AddComponent"> - <implementation.php module="Add" scope="composite"/> - <reference name="log_service">LogComponent</reference> - </component> - - <component name="SubtractComponent"> - <implementation.php module="Subtract" scope="composite"/> - <reference name="log_service">LogComponent</reference> - </component> - - <component name="MultiplyComponent"> - <implementation.php module="Multiply" class="Multiply" scope="composite"/> - <reference name="log_service">LogComponent</reference> - </component> - - <component name="DivideComponent"> - <implementation.php module="Divide" class="Divide" scope="composite"/> - <reference name="cppDivideService">DivideCPPComponent/DivideService</reference> - <reference name="add_service">AddComponent</reference> - <reference name="multiply_service">MultiplyComponent</reference> - <reference name="subtract_service">SubtractComponent</reference> - <reference name="add_service">AddComponent</reference> - </component> - - <component name="DivideCPPComponent"> - <implementation.cpp library="Calculator" header="DivideImpl.h"/> - </component> - - <component name="LogComponent"> - <implementation.php module="Log" class="Log" scope="composite"/> - </component> - - - - - -</composite> - diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/Makefile.am b/sca-cpp/trunk/contrib/samples/PythonCalculator/Makefile.am deleted file mode 100644 index 21952e3df4..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# 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)/PythonCalculator/deploy -SUBDIRS = sample.calculator sample.calculator.client -EXTRA_DIST = *.composite README.html -deploy_DATA = *.composite diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/README b/sca-cpp/trunk/contrib/samples/PythonCalculator/README deleted file mode 100644 index 670f561dc1..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/README +++ /dev/null @@ -1,20 +0,0 @@ -Tuscany SCA for C++ Samples - Calculator Sample -=============================================== - -This is a very simple sample to show how an SCA composite can wire together -two components to implement a Calculator service and expose that service as -a Web Service. - -There are two sub projects in this workspace: - - sample.calculator - This contains the source code and SCDL artifacts for the SCA Calculator. - composite implementing the sample Calculator. - - - sample.calculator.client - A sample client which does a local call to the Calculator service. - -Additionally, there is the sample.calculator.app.composite file. This -describes the configuration of the SCA Calculator 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/PythonCalculator/README.html b/sca-cpp/trunk/contrib/samples/PythonCalculator/README.html deleted file mode 100644 index 3b9f72864e..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/README.html +++ /dev/null @@ -1,191 +0,0 @@ - -<!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 - Python Calculator Sample</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native Samples - Python Calculator Sample</H1> - - <P>This is a very simple sample to show how an SCA composite can wire - together two Python components to implement a Calculator service and invoke - the service via a local client. - </P> - <P>See the <A HREF="../../doc/PythonExtension.html">Python extension</A> - documentation for information about building the Tuscany Python extension - and using Python in SCA composites. - </P> - <P>There are two sub projects in this workspace:</P> - <UL> - <LI>sample.calculator<BR/> - This contains the Python scripts and SCDL artifacts for the SCA Calculator - composite implementing the sample Calculator. - </LI> - <LI>sample.calculator.client<BR/> - A sample client which does a local call to the Calculator service. - </LI> - </UL> - <P>Additionally, there is the sample.calculator.app.composite file. This - describes the configuration of the SCA Calculator composite deployed to the SCA - runtime. - </P> - - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#linuxbld">Building the Python samples on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxrun">Running the Python Calculator sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbld">Building the Python Calculator sample on Windows</A></LI> - <LI><A HREF="#winrun">Running the Python Calculator sample on Windows</A></LI> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="linuxbld"><H2>Building the Python samples on Linux and Mac OS X</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL></LI> - </LI> - <LI>As the Python Calculator sample is based on Python scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the Python samples only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples</LI> - <LI>./configure --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/PythonCalculator</LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="linuxrun"><H2>Running the Python Calculator sample on Linux and Mac OS X</H2></A> - <OL> - <LI>The Python Calculator sample requires the following extension: - <UL> - <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI> - </UL> - Please follow the documentation to ensure you have this extension built and installed - on your system - </LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples/PythonCalculator/deploy/sample.calculator.client</LI> - <LI>./runclient.sh</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winbld"><H2>Building the Python Calculator sample on Windows</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL></LI> - </LI> - <LI>As this sample is based on Python scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\PythonCalculator</LI> - <LI>deploy.bat</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winrun"><H2>Running the Python Calculator sample on Windows</H2></A> - <OL> - <LI>The Python Calculator sample requires the following extension: - <UL> - <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI> - </UL> - Please follow the documentation to ensure you have this extension built and installed - on your system - </LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\PythonCalculator\deploy\sample.calculator.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 <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/PythonCalculator/sample.calculator.app.composite b/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.app.composite deleted file mode 100644 index ea4e3e118d..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.app.composite +++ /dev/null @@ -1,28 +0,0 @@ -<?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.calculator.app"> - - <component name="sample.calculator.CalculatorComponent"> - <implementation.composite name="sample.calculator" /> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/Makefile.am b/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/Makefile.am deleted file mode 100644 index df1187aab1..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/PythonCalculator/deploy -clientdir=$(deploydir)/sample.calculator.client - -client_DATA = *.py -client_SCRIPTS = runclient.sh -EXTRA_DIST = runclient.sh *.py diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/calculator_client.py b/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/calculator_client.py deleted file mode 100644 index 58d6f45606..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/calculator_client.py +++ /dev/null @@ -1,50 +0,0 @@ -# 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. -# -# -# -# -# This Python code is a simple sample that provides a Python -# client for the Calculator sample - - -import sys -import sca - -op = sys.argv[1] -val1 = sys.argv[2] -val2 = sys.argv[3] - -# Locate the calculator service -calc = sca.locateservice("CalculatorComponent") - -# Invoke the calculator operations -if op == 'add': - result = calc.add(val1, val2) - -elif op == 'sub': - result = calc.sub(val1, val2) - -elif op == 'mul': - result = calc.mul(val1, val2) - -elif op == 'div': - result = calc.div(val1, val2) - - -print "calculator_client: ",op,"(",val1,",",val2,") = ",result - diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/runclient.bat b/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/runclient.bat deleted file mode 100644 index 206b1e5a59..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/runclient.bat +++ /dev/null @@ -1,45 +0,0 @@ -@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% - -set PATH=%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\python\bin;%TUSCANY_SDOCPP%\bin;%PATH% -set PYTHONPATH=%TUSCANY_SCACPP%\extensions\python\bin - -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ -set TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorComponent -set TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd %TUSCANY_SCACPP_ROOT%\sample.calculator.client -python calculator_client.py div 5 2 - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/runclient.sh b/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/runclient.sh deleted file mode 100755 index d500d3d132..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator.client/runclient.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/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" - -if [ x$PYTHON_LIB != x ]; then -echo "Using Python library installed at $PYTHON_LIB" -export LD_LIBRARY_PATH=$PYTHON_LIB:$LD_LIBRARY_PATH -export PATH=$PYTHON_LIB/../bin:$PATH -fi - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/lib:$TUSCANY_SCACPP/extensions/python/lib:$TUSCANY_SDOCPP/lib:$LD_LIBRARY_PATH -export PYTHONPATH=$TUSCANY_SCACPP/extensions/python/lib:$PYTHONPATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorComponent -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd $TUSCANY_SCACPP_ROOT/sample.calculator.client -python calculator_client.py div 5 2 diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/Calculator.wsdl b/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/Calculator.wsdl deleted file mode 100644 index 331b996ba2..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/Calculator.wsdl +++ /dev/null @@ -1,161 +0,0 @@ -<?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. ---> - -<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://sample/calculator" - targetNamespace="http://sample/calculator"> - <types> - <xs:schema targetNamespace="http://sample/calculator" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://sample/calculator" elementFormDefault="qualified"> - - <xs:element name="add"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="sub"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="mul"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="div"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="result"> - <xs:complexType> - <xs:sequence> - <xs:element name="data" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - </xs:schema> - </types> - - <message name="addRequestMsg"> - <part name="body" element="tns:add" /> - </message> - <message name="subRequestMsg"> - <part name="body" element="tns:sub" /> - </message> - <message name="mulRequestMsg"> - <part name="body" element="tns:mul" /> - </message> - <message name="divRequestMsg"> - <part name="body" element="tns:div" /> - </message> - - <message name="calculatorResponseMsg"> - <part name="body" element="tns:result" /> - </message> - - <portType name="Calculator"> - <operation name="add"> - <input message="tns:addRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="sub"> - <input message="tns:subRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="mul"> - <input message="tns:mulRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="div"> - <input message="tns:divRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - </portType> - - <binding name="CalculatorBinding" - type="tns:Calculator"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> - <operation name="add"> - <soap:operation soapAction="CalculatorService#add" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="sub"> - <soap:operation soapAction="CalculatorService#sub" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="mul"> - <soap:operation soapAction="CalculatorService#mul" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="div"> - <soap:operation soapAction="CalculatorService#div" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - </binding> - - <service name="CalculatorService"> - <port name="CalculatorPort" - binding="tns:CalculatorBinding"> - <soap:address location="http://localhost:9090/axis2/services/sample.calculator.CalculatorComponent/CalculatorService" /> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/CalculatorImpl.py b/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/CalculatorImpl.py deleted file mode 100644 index 86dbef9e4d..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/CalculatorImpl.py +++ /dev/null @@ -1,56 +0,0 @@ -# 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. -# -# -# -# -# This Python code is a simple sample that provides a Python implementation of -# the Calculator sample -# - - -# The module-level add function -def add(val1, val2): - result = float(val1) + float(val2) - print "Python - CalculatorImpl.add " + str(val1) + " + " + str(val2) + " = " + str(result) - return result - -# The module-level sub function -def sub(val1, val2): - result = float(val1) - float(val2) - print "Python - CalculatorImpl.sub " + str(val1) + " - " + str(val2) + " = " + str(result) - return result - -# The module-level mul function -def mul(val1, val2): - result = float(val1) * float(val2) - print "Python - CalculatorImpl.mul " + str(val1) + " * " + str(val2) + " = " + str(result) - return result - -# The module-level div function -def div(val1, val2): - - - print "Python - CalculatorImpl.div calling divideService to determine " + str(val1) + " / " + str(val2) - - # Use the divideService reference - result = divideService.divide(val1, val2) - - print "Python - CalculatorImpl.div divideService returned " + str(result) - - return result - diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/DivideImpl.py b/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/DivideImpl.py deleted file mode 100644 index 3921731de6..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/DivideImpl.py +++ /dev/null @@ -1,65 +0,0 @@ -# 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. -# -# -# -# -# This Python code is a simple sample that provides a Python implementation of -# the Divide Service used in the Calculator sample -# -# Either use the divide function in the DivideClass class (using classes allows -# composite scoping to be used) -# e.g. in CalculatorComposite.composite use the line: -# <implementation.python module="DivideImpl" class="DivideClass"/> -# -# Or just use the module-level divide function -# e.g. in CalculatorComposite.composite use the line: -# <implementation.python module="DivideImpl" /> -# - - -class DivideClass: - "A class to handle dividing" - - def __init__(self): - print "Python - DivideImpl.DivideClass constructor" - - # The class-level divide function - def divide(self, val1, val2): - result = float(val1) / float(val2) - - print "Python - DivideImpl.DivideClass.divide " + str( val1 ) + " / " + str(val2) + " = " + str(result) - - # Use the doRounding property - if doRounding: - result = round(result) - print "Python - DivideImpl.DivideClass.divide is rounding the result to " + str(result) - - return result - -# The module-level divide function -def divide(val1, val2): - result = float(val1) / float(val2) - print "Python - DivideImpl.divide " + str(val1) + " / " + str(val2) + " = " + str(result) - - # Use the doRounding property - if doRounding: - result = round(result) - print "Python - DivideImpl.divide is rounding the result to " + str(result) - - return result - diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/Makefile.am b/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/Makefile.am deleted file mode 100644 index ec7cf8a8ad..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/PythonCalculator/deploy -compositedir=$(deploydir)/sample.calculator - -composite_DATA = *.composite *.wsdl *.py - -EXTRA_DIST = *.composite *.wsdl *.py diff --git a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/sample.calculator.composite b/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/sample.calculator.composite deleted file mode 100644 index 7f2221b696..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonCalculator/sample.calculator/sample.calculator.composite +++ /dev/null @@ -1,34 +0,0 @@ -<?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.calculator"> - - <component name="CalculatorComponent"> - <implementation.python module="CalculatorImpl" scope="composite"/> - <reference name="divideService">DivideComponent</reference> - </component> - - <component name="DivideComponent"> - <implementation.python module="DivideImpl" scope="composite"/> - <property name="doRounding">true</property> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/Makefile.am b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/Makefile.am deleted file mode 100644 index 6b2d218134..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# 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)/PythonWeatherForecast/deploy -SUBDIRS = sample.weather sample.weather.client -EXTRA_DIST = *.composite README.html -deploy_DATA = *.composite diff --git a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/README b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/README deleted file mode 100644 index c590973f5f..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/README +++ /dev/null @@ -1,20 +0,0 @@ -Tuscany SCA for C++ Samples - Weather Sample -============================================ - -This is a very simple sample to show how an SCA composite can wire together -two components to implement calls to a Weather Forecast web service - -There are three sub projects in this workspace: - - sample.weather - This contains the source code and SCDL artifacts for the SCA Weather - composite implementing the calls to the Weather web services. - - - sample.weather.client - A sample client which does a local call to the SCA Weather service. - - -Additionally, there is the sample.weather.app.composite file. This -describes the configuration of the SCA Weather 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/PythonWeatherForecast/README.html b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/README.html deleted file mode 100644 index c52cb6ec86..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/README.html +++ /dev/null @@ -1,200 +0,0 @@ - -<!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 - PythonWeatherForecast Sample</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native Samples - PythonWeatherForecast Sample</H1> - - <P>This is a very simple sample to show how an SCA composite can wire - together two components to implement calls to a Weather Forecast web service. - </P> - <P>The PythonWeatherForecast sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Service Reference Extension</A></LI> - <LI><A HREF="../../doc/PythonExtension.html">Python 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.weather<BR/> - This contains the source code and SCDL artifacts for the SCA Weather - composite implementing the calls to the Weather web services. - </LI> - <LI>sample.weather.client<BR/> - A sample client which does a local call to the SCA Weather service. - </LI> - </UL> - <P>Additionally, there is the sample.weather.app.composite file. This - describes the configuration of the SCA Weather composite deployed to the SCA - runtime. - </P> - - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#linuxbld">Building the PythonWeatherForecast sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxrun">Running the PythonWeatherForecast sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbld">Building the PythonWeatherForecast sample on Windows</A></LI> - <LI><A HREF="#winrun">Running the PythonWeatherForecast sample on Windows</A></LI> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="linuxbld"><H2>Building the PythonWeatherForecast sample on Linux and Mac OS X</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>As the PythonWeatherForecast sample is based on Python scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the Python samples only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples</LI> - <LI>./configure --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/PythonWeatherForecast</LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="linuxrun"><H2>Running the PythonWeatherForecast sample on Linux and Mac OS X</H2></A> - <OL> - <LI>The PythonWeatherForecast sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Service Reference Extension</A></LI> - <LI><A HREF="../../doc/PythonExtension.html">Python 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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - <LI>PYTHON_LIB=<path to the Python library><BR/> - Note: If you are using a default installation of Python 2.5 this is usually /usr/lib</LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples/PythonWeatherForecast/deploy/sample.weather.client</LI> - <LI>./runclient.sh</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winbld"><H2>Building the PythonWeatherForecast sample on Windows</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>As this sample is based on Python scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\PythonWeatherForecast</LI> - <LI>deploy.bat</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winrun"><H2>Running the PythonWeatherForecast sample on Windows</H2></A> - <OL> - <LI>The PythonWeatherForecast sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Service Reference Extension</A></LI> - <LI><A HREF="../../doc/PythonExtension.html">Python 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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\PythonWeatherForecast\deploy\sample.weather.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 <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/PythonWeatherForecast/sample.weather.app.composite b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.app.composite deleted file mode 100644 index 522a2fc0c8..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.app.composite +++ /dev/null @@ -1,28 +0,0 @@ -<?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.weather.app"> - - <component name="sample.weather.WeatherForecastComponent"> - <implementation.composite name="sample.weather" /> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/Makefile.am b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/Makefile.am deleted file mode 100644 index 8c4781759e..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/PythonWeatherForecast/deploy -clientdir=$(deploydir)/sample.weather.client - -client_DATA = *.py -client_SCRIPTS = runclient.sh -EXTRA_DIST = runclient.sh *.py diff --git a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/runclient.bat b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/runclient.bat deleted file mode 100644 index 93c044ed82..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/runclient.bat +++ /dev/null @@ -1,50 +0,0 @@ -@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 "%AXIS2C_HOME%" == "" ( -echo "AXIS2C_HOME not set" -goto end -) -echo using Axis2C installed at %AXIS2C_HOME% - -set PATH=%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\python\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH% -set PYTHONPATH=%TUSCANY_SCACPP%\extensions\python\bin - -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ -set TUSCANY_SCACPP_COMPONENT=sample.weather.WeatherForecastComponent - -cd %TUSCANY_SCACPP_ROOT%\sample.weather.client -python weather_forecast_client.py - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/runclient.sh b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/runclient.sh deleted file mode 100755 index e6ec73b209..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/runclient.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/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" - -if [ x$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi -echo "Using Axis2C installed at $AXIS2C_HOME" - -if [ x$PYTHON_LIB != x ]; then -echo "Using Python library installed at $PYTHON_LIB" -export LD_LIBRARY_PATH=$PYTHON_LIB:$LD_LIBRARY_PATH -export PATH=$PYTHON_LIB/../bin:$PATH -fi - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/lib:$TUSCANY_SCACPP/extensions/python/lib:$TUSCANY_SDOCPP/lib:$AXIS2C_HOME/lib:$LD_LIBRARY_PATH -export PYTHONPATH=$TUSCANY_SCACPP/extensions/python/lib:$PYTHONPATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=sample.weather.WeatherForecastComponent - -cd $TUSCANY_SCACPP_ROOT/sample.weather.client -python weather_forecast_client.py - diff --git a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/weather_forecast_client.py b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/weather_forecast_client.py deleted file mode 100644 index 5de99fcf8e..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather.client/weather_forecast_client.py +++ /dev/null @@ -1,49 +0,0 @@ -# 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. -# -# -# -# -# This Python code is a simple sample that provides a Python -# client for the WeatherForecast sample - - -import sys -import sca -import xml.etree.ElementTree - - - -# The main script: - -# Locate the Weather service -weatherService = sca.locateservice("WeatherComponent") - -place = "San Jose" -print "\nFinding Weather Forecast for", place -weatherText = weatherService.getForecastByPlaceName(place) -print weatherText - -zip = 90210 -print "\nFinding Weather Forecast for zip code", zip -weatherText = weatherService.getForecastByZipCode(zip) -print weatherText - - - - - diff --git a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/Makefile.am b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/Makefile.am deleted file mode 100644 index d0450ef707..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/PythonWeatherForecast/deploy -compositedir=$(deploydir)/sample.weather - -composite_DATA = *.composite *.wsdl *.py -EXTRA_DIST = *.composite *.wsdl *.py - diff --git a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/WeatherForecast.wsdl b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/WeatherForecast.wsdl deleted file mode 100644 index ec39e2287a..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/WeatherForecast.wsdl +++ /dev/null @@ -1,133 +0,0 @@ -<?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. ---> -<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://www.webservicex.net" - targetNamespace="http://www.webservicex.net" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> - <wsdl:types> - <xsd:schema elementFormDefault="qualified" targetNamespace="http://www.webservicex.net"> - <xsd:element name="GetWeatherByZipCode"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="ZipCode" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="GetWeatherByZipCodeResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="1" maxOccurs="1" name="GetWeatherByZipCodeResult" type="tns:WeatherForecasts" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:complexType name="WeatherForecasts"> - <xsd:sequence> - <xsd:element minOccurs="1" maxOccurs="1" name="Latitude" type="xsd:float" /> - <xsd:element minOccurs="1" maxOccurs="1" name="Longitude" type="xsd:float" /> - <xsd:element minOccurs="1" maxOccurs="1" name="AllocationFactor" type="xsd:float" /> - <xsd:element minOccurs="0" maxOccurs="1" name="FipsCode" type="xsd:string" /> - <xsd:element minOccurs="0" maxOccurs="1" name="PlaceName" type="xsd:string" /> - <xsd:element minOccurs="0" maxOccurs="1" name="StateCode" type="xsd:string" /> - <xsd:element minOccurs="0" maxOccurs="1" name="Status" type="xsd:string" /> - <xsd:element minOccurs="0" maxOccurs="1" name="Details" type="tns:ArrayOfWeatherData" /> - </xsd:sequence> - </xsd:complexType> - <xsd:complexType name="ArrayOfWeatherData"> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="unbounded" name="WeatherData" type="tns:WeatherData" /> - </xsd:sequence> - </xsd:complexType> - <xsd:complexType name="WeatherData"> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="Day" type="xsd:string" /> - <xsd:element minOccurs="0" maxOccurs="1" name="WeatherImage" type="xsd:string" /> - <xsd:element minOccurs="0" maxOccurs="1" name="MaxTemperatureF" type="xsd:string" /> - <xsd:element minOccurs="0" maxOccurs="1" name="MinTemperatureF" type="xsd:string" /> - <xsd:element minOccurs="0" maxOccurs="1" name="MaxTemperatureC" type="xsd:string" /> - <xsd:element minOccurs="0" maxOccurs="1" name="MinTemperatureC" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - <xsd:element name="GetWeatherByPlaceName"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="0" maxOccurs="1" name="PlaceName" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="GetWeatherByPlaceNameResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element minOccurs="1" maxOccurs="1" name="GetWeatherByPlaceNameResult" type="tns:WeatherForecasts" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - <xsd:element name="WeatherForecasts" type="tns:WeatherForecasts" /> - </xsd:schema> - </wsdl:types> - <wsdl:message name="GetWeatherByZipCodeRequest"> - <wsdl:part name="parameters" element="tns:GetWeatherByZipCode" /> - </wsdl:message> - <wsdl:message name="GetWeatherByZipCodeResponse"> - <wsdl:part name="parameters" element="tns:GetWeatherByZipCodeResponse" /> - </wsdl:message> - <wsdl:message name="GetWeatherByPlaceNameRequest"> - <wsdl:part name="parameters" element="tns:GetWeatherByPlaceName" /> - </wsdl:message> - <wsdl:message name="GetWeatherByPlaceNameResponse"> - <wsdl:part name="parameters" element="tns:GetWeatherByPlaceNameResponse" /> - </wsdl:message> - <wsdl:portType name="WeatherForecastPortType"> - <wsdl:operation name="GetWeatherByZipCode"> - <wsdl:input message="tns:GetWeatherByZipCodeRequest" /> - <wsdl:output message="tns:GetWeatherByZipCodeResponse" /> - </wsdl:operation> - <wsdl:operation name="GetWeatherByPlaceName"> - <wsdl:input message="tns:GetWeatherByPlaceNameRequest" /> - <wsdl:output message="tns:GetWeatherByPlaceNameResponse" /> - </wsdl:operation> - </wsdl:portType> - <wsdl:binding name="WeatherForecastSoapBinding" type="tns:WeatherForecastPortType"> - <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> - <wsdl:operation name="GetWeatherByZipCode"> - <soap:operation soapAction="http://www.webservicex.net/GetWeatherByZipCode" style="document" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - <wsdl:operation name="GetWeatherByPlaceName"> - <soap:operation soapAction="http://www.webservicex.net/GetWeatherByPlaceName" style="document" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - <wsdl:service name="WeatherForecast"> - <wsdl:port name="WeatherForecastPort" binding="tns:WeatherForecastSoapBinding"> - <soap:address location="http://www.webservicex.net/WeatherForecast.asmx" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/WeatherForecastImpl.py b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/WeatherForecastImpl.py deleted file mode 100644 index 6e3775de0b..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/WeatherForecastImpl.py +++ /dev/null @@ -1,65 +0,0 @@ -# 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. -# -# -# -# -# This Python code is a simple sample that calls a service that returns an -# SDO which has been converted into an ElementTree Element object. The Element -# object is then converted into formatted text - -import xml.etree.ElementTree - -def getForecastByPlaceName(placeName): - - print "Python - WeatherForecastImpl.getForecastByPlaceName:", placeName - - xmlResult = weatherWebService.GetWeatherByPlaceName(placeName) - - print "Python - Formatting result from weatherService:", xmlResult - - return formatWeather(xmlResult, placeName) - - -def getForecastByZipCode(zipCode): - - print "Python - WeatherForecastImpl.getForecastByZipCode:", zipCode - - xmlResult = weatherWebService.GetWeatherByZipCode(zipCode) - - print "Python - Formatting result from weatherService:", xmlResult - - return formatWeather(xmlResult, zipCode) - - -def formatWeather(weather, name): - - result = "Could not retrieve Weather Forecast for " + str(name) - - pathAndNS = "./{http://www.webservicex.net}" - - if weather.findtext(pathAndNS+"PlaceName"): - - result = "\n\nWeather Forecast for "+ weather.findtext(pathAndNS+"PlaceName")+ ", "+ weather.findtext(pathAndNS+"StateCode")+"\n" - result += "Latitude: "+ weather.findtext(pathAndNS+"Latitude")+ " Longitude: "+ weather.findtext(pathAndNS+"Longitude")+"\n\n" - - for node in weather.findall(".//{http://www.webservicex.net}WeatherData"): - if node.findtext(pathAndNS+"Day"): result += node.findtext(pathAndNS+"Day") - if node.findtext(pathAndNS+"MaxTemperatureC"): result += ":\tMax "+ node.findtext(pathAndNS+"MaxTemperatureC") - if node.findtext(pathAndNS+"MinTemperatureC"): result += "C. Min "+ node.findtext(pathAndNS+"MinTemperatureC")+ "C.\n" - - return result diff --git a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/sample.weather.composite b/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/sample.weather.composite deleted file mode 100644 index 70e9674d23..0000000000 --- a/sca-cpp/trunk/contrib/samples/PythonWeatherForecast/sample.weather/sample.weather.composite +++ /dev/null @@ -1,36 +0,0 @@ -<?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.weather"> - - <component name="WeatherComponent"> - <implementation.python module="WeatherForecastImpl"/> - <!--implementation.ruby script="WeatherForecastImpl.rb" class="WeatherForecastImpl"/--> - <reference name="weatherWebService">WeatherService</reference> - </component> - - <reference name="WeatherService"> - <interface.wsdl interface="http://www.webservicex.net#wsdl.interface(WeatherForecastPortType)"/> - <binding.ws endpoint="http://www.webservicex.net#wsdl.endpoint(WeatherForecast/WeatherForecastPort)"/> - <!--binding.ws uri="http://www.webservicex.net/WeatherForecast.asmx"/--> - </reference> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/README b/sca-cpp/trunk/contrib/samples/README deleted file mode 100644 index 3d7155367d..0000000000 --- a/sca-cpp/trunk/contrib/samples/README +++ /dev/null @@ -1,2 +0,0 @@ -Please read the GettingStarted.html document for information on -building, installing and running Tuscany SCA for C++ Samples
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/Makefile.am b/sca-cpp/trunk/contrib/samples/RestCalculator/Makefile.am deleted file mode 100644 index e3b215ad90..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/RestCalculator/deploy -SUBDIRS = sample.calculator sample.calculator.restclient httpserver - -EXTRA_DIST = *.composite README.html -deploy_DATA = *.composite - diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/README b/sca-cpp/trunk/contrib/samples/RestCalculator/README deleted file mode 100644 index 03c6b6a325..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/README +++ /dev/null @@ -1,23 +0,0 @@ -Tuscany SCA for C++ Samples - REST Calculator Sample -=============================================== - -This is a very simple sample to show how to use the SCA REST binding to -expose a Calculator service as a REST service and invoke that service. - -There are three sub projects in this workspace: - - sample.calculator - This contains the source code and SCDL artifacts for the SCA Calculator. - composite implementing the sample Calculator. - - - sample.calculator.restclient - A sample REST client which calls the Calculator service. - - - httpserver - This contains a minimal configuration for the Apache HTTP server used - to host the REST service as well as scripts to start and stop the server. - -Additionally, there is the sample.calculator.app.composite file. This -describes the configuration of the SCA Calculator 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/RestCalculator/README.html b/sca-cpp/trunk/contrib/samples/RestCalculator/README.html deleted file mode 100644 index 80f7462c8a..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/README.html +++ /dev/null @@ -1,231 +0,0 @@ - -<!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 Calculator Sample</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native Samples - REST Calculator Sample</H1> - - <P>This is a very simple sample to show how an SCA composite can wire - together two Ruby components to implement a Calculator service and expose - that service as a REST Service running under Apache HTTPD. - </P> - <P>The REST Calculator sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RestExtension.html">REST Service & Reference Extensions</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 three sub projects in this workspace:</P> - <UL> - <LI>sample.calculator<BR/> - This contains the Ruby scripts and SCDL artifacts for the SCA Calculator - composite implementing the sample Calculator. - </LI> - <LI>sample.calculator.restclient<BR/> - A sample client which does a local call to the Calculator service. - </LI> - <LI>httpserver<BR/> - A minimal configuration for the Apache HTTP server used to host the - REST service as well as scripts to start and stop the server. - </LI> - </UL> - <P>Additionally, there is the sample.calculator.app.composite file. This - describes the configuration of the SCA Calculator composite deployed to the SCA - runtime. - </P> - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#linuxbld">Building the REST Calculator sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxrun">Running the REST Calculator sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbld">Building the REST Calculator sample on Windows</A></LI> - <LI><A HREF="#winrun">Running the REST Calculator sample on Windows</A></LI> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="linuxbld"><H2>Building the REST Calculator sample on Linux and Mac OS X</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>As the REST Calculator sample is based on Ruby scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the Ruby samples only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples</LI> - <LI>./configure --enable-ruby --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/RestCalculator</LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="linuxrun"><H2>Running the REST Calculator sample on Linux and Mac OS X</H2></A> - <OL> - <LI>The REST Calculator sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RestExtension.html">REST Service & Reference Extensions</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>Start the HTTPD server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>/samples/RestCalculator/deploy/httpserver</LI> - <LI>./startserver.sh<BR/> - NOTE: Depending on your installation of Apache HTTPD you may need to log in as root before following - these steps. If so, you may also need to uncomment the User and Group directives in the - <tuscany_sca_install_dir>/samples/RestCalculator/deploy/httpserver/conf/httpd.conf file - and set these to the appropriate username and group that the server should run as</LI> - </OL> - </LI> - <LI>Run the client: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>/samples/RestCalculator/deploy/sample.calculator.restclient</LI> - <LI>./runrestclient.sh</LI> - </OL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winbld"><H2>Building the REST Calculator sample on Windows</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>As this sample is based on Ruby scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\RestCalculator</LI> - <LI>deploy.bat</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winrun"><H2>Running the REST Calculator sample on Windows</H2></A> - <OL> - <LI>The REST Calculator sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RestExtension.html">REST Service & Reference Extensions</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>Start the HTTPD server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>HTTPD_HOME=<path to installed Apache HTTPD server></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>\samples\RestCalculator\deploy\httpserver</LI> - <LI>startserver.bat</LI> - </OL> - </LI> - <LI>Run the client: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>LIBCURL_HOME=<path to installed libcurl libraries></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>\samples\RestCalculator\deploy\sample.calculator.restclient</LI> - <LI>runrestclient.bat</LI> - </OL> - </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 <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/RestCalculator/httpserver/Makefile.am b/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/Makefile.am deleted file mode 100644 index f9412183dc..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -deploydir=$(prefix)/RestCalculator/deploy -serverdir=$(deploydir)/httpserver - -server_SCRIPTS = startserver.sh stopserver.sh -EXTRA_DIST = startserver.sh stopserver.sh conf htdocs -nobase_server_DATA = conf/httpd.conf conf/mime.types htdocs/index.html diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/conf/httpd.conf b/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/conf/httpd.conf deleted file mode 100644 index 0303f787e9..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/conf/httpd.conf +++ /dev/null @@ -1,34 +0,0 @@ -# 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.
-
-# This is the main Apache HTTP server configuration file. It contains the
-# configuration directives that give the server its instructions.
-# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
-
-Listen 9090
-
-# Generated by the startserver script
-Include conf/base.conf
-Include conf/tuscany_sca_mod_rest.conf
-
-# User and Group directives may be required if the server must be
-# started from the root account. Uncomment the following lines and
-# set the correct username and group
-#
-# User myusername
-# Group mygroupname
-
diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/conf/mime.types b/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/conf/mime.types deleted file mode 100644 index 4279f51bca..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/conf/mime.types +++ /dev/null @@ -1,607 +0,0 @@ -# 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. - -# This file controls what Internet media types are sent to the client for -# given file extension(s). Sending the correct media type to the client -# is important so they know how to handle the content of the file. -# Extra types can either be added here or by using an AddType directive -# in your config files. For more information about Internet media types, -# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type -# registry is at <http://www.iana.org/assignments/media-types/>. - -# MIME type Extensions -application/activemessage -application/andrew-inset ez -application/applefile -application/atom+xml atom -application/atomicmail -application/batch-smtp -application/beep+xml -application/cals-1840 -application/cnrp+xml -application/commonground -application/cpl+xml -application/cybercash -application/dca-rft -application/dec-dx -application/dvcs -application/edi-consent -application/edifact -application/edi-x12 -application/eshop -application/font-tdpfr -application/http -application/hyperstudio -application/iges -application/index -application/index.cmd -application/index.obj -application/index.response -application/index.vnd -application/iotp -application/ipp -application/isup -application/mac-binhex40 hqx -application/mac-compactpro cpt -application/macwriteii -application/marc -application/mathematica -application/mathml+xml mathml -application/msword doc -application/news-message-id -application/news-transmission -application/ocsp-request -application/ocsp-response -application/octet-stream bin dms lha lzh exe class so dll dmg -application/oda oda -application/ogg ogg -application/parityfec -application/pdf pdf -application/pgp-encrypted -application/pgp-keys -application/pgp-signature -application/pkcs10 -application/pkcs7-mime -application/pkcs7-signature -application/pkix-cert -application/pkix-crl -application/pkixcmp -application/postscript ai eps ps -application/prs.alvestrand.titrax-sheet -application/prs.cww -application/prs.nprend -application/prs.plucker -application/qsig -application/rdf+xml rdf -application/reginfo+xml -application/remote-printing -application/riscos -application/rtf -application/sdp -application/set-payment -application/set-payment-initiation -application/set-registration -application/set-registration-initiation -application/sgml -application/sgml-open-catalog -application/sieve -application/slate -application/smil smi smil -application/srgs gram -application/srgs+xml grxml -application/timestamp-query -application/timestamp-reply -application/tve-trigger -application/vemmi -application/vnd.3gpp.pic-bw-large -application/vnd.3gpp.pic-bw-small -application/vnd.3gpp.pic-bw-var -application/vnd.3gpp.sms -application/vnd.3m.post-it-notes -application/vnd.accpac.simply.aso -application/vnd.accpac.simply.imp -application/vnd.acucobol -application/vnd.acucorp -application/vnd.adobe.xfdf -application/vnd.aether.imp -application/vnd.amiga.ami -application/vnd.anser-web-certificate-issue-initiation -application/vnd.anser-web-funds-transfer-initiation -application/vnd.audiograph -application/vnd.blueice.multipass -application/vnd.bmi -application/vnd.businessobjects -application/vnd.canon-cpdl -application/vnd.canon-lips -application/vnd.cinderella -application/vnd.claymore -application/vnd.commerce-battelle -application/vnd.commonspace -application/vnd.contact.cmsg -application/vnd.cosmocaller -application/vnd.criticaltools.wbs+xml -application/vnd.ctc-posml -application/vnd.cups-postscript -application/vnd.cups-raster -application/vnd.cups-raw -application/vnd.curl -application/vnd.cybank -application/vnd.data-vision.rdz -application/vnd.dna -application/vnd.dpgraph -application/vnd.dreamfactory -application/vnd.dxr -application/vnd.ecdis-update -application/vnd.ecowin.chart -application/vnd.ecowin.filerequest -application/vnd.ecowin.fileupdate -application/vnd.ecowin.series -application/vnd.ecowin.seriesrequest -application/vnd.ecowin.seriesupdate -application/vnd.enliven -application/vnd.epson.esf -application/vnd.epson.msf -application/vnd.epson.quickanime -application/vnd.epson.salt -application/vnd.epson.ssf -application/vnd.ericsson.quickcall -application/vnd.eudora.data -application/vnd.fdf -application/vnd.ffsns -application/vnd.fints -application/vnd.flographit -application/vnd.framemaker -application/vnd.fsc.weblaunch -application/vnd.fujitsu.oasys -application/vnd.fujitsu.oasys2 -application/vnd.fujitsu.oasys3 -application/vnd.fujitsu.oasysgp -application/vnd.fujitsu.oasysprs -application/vnd.fujixerox.ddd -application/vnd.fujixerox.docuworks -application/vnd.fujixerox.docuworks.binder -application/vnd.fut-misnet -application/vnd.grafeq -application/vnd.groove-account -application/vnd.groove-help -application/vnd.groove-identity-message -application/vnd.groove-injector -application/vnd.groove-tool-message -application/vnd.groove-tool-template -application/vnd.groove-vcard -application/vnd.hbci -application/vnd.hhe.lesson-player -application/vnd.hp-hpgl -application/vnd.hp-hpid -application/vnd.hp-hps -application/vnd.hp-pcl -application/vnd.hp-pclxl -application/vnd.httphone -application/vnd.hzn-3d-crossword -application/vnd.ibm.afplinedata -application/vnd.ibm.electronic-media -application/vnd.ibm.minipay -application/vnd.ibm.modcap -application/vnd.ibm.rights-management -application/vnd.ibm.secure-container -application/vnd.informix-visionary -application/vnd.intercon.formnet -application/vnd.intertrust.digibox -application/vnd.intertrust.nncp -application/vnd.intu.qbo -application/vnd.intu.qfx -application/vnd.irepository.package+xml -application/vnd.is-xpr -application/vnd.japannet-directory-service -application/vnd.japannet-jpnstore-wakeup -application/vnd.japannet-payment-wakeup -application/vnd.japannet-registration -application/vnd.japannet-registration-wakeup -application/vnd.japannet-setstore-wakeup -application/vnd.japannet-verification -application/vnd.japannet-verification-wakeup -application/vnd.jisp -application/vnd.kde.karbon -application/vnd.kde.kchart -application/vnd.kde.kformula -application/vnd.kde.kivio -application/vnd.kde.kontour -application/vnd.kde.kpresenter -application/vnd.kde.kspread -application/vnd.kde.kword -application/vnd.kenameaapp -application/vnd.koan -application/vnd.liberty-request+xml -application/vnd.llamagraphics.life-balance.desktop -application/vnd.llamagraphics.life-balance.exchange+xml -application/vnd.lotus-1-2-3 -application/vnd.lotus-approach -application/vnd.lotus-freelance -application/vnd.lotus-notes -application/vnd.lotus-organizer -application/vnd.lotus-screencam -application/vnd.lotus-wordpro -application/vnd.mcd -application/vnd.mediastation.cdkey -application/vnd.meridian-slingshot -application/vnd.micrografx.flo -application/vnd.micrografx.igx -application/vnd.mif mif -application/vnd.minisoft-hp3000-save -application/vnd.mitsubishi.misty-guard.trustweb -application/vnd.mobius.daf -application/vnd.mobius.dis -application/vnd.mobius.mbk -application/vnd.mobius.mqy -application/vnd.mobius.msl -application/vnd.mobius.plc -application/vnd.mobius.txf -application/vnd.mophun.application -application/vnd.mophun.certificate -application/vnd.motorola.flexsuite -application/vnd.motorola.flexsuite.adsi -application/vnd.motorola.flexsuite.fis -application/vnd.motorola.flexsuite.gotap -application/vnd.motorola.flexsuite.kmr -application/vnd.motorola.flexsuite.ttc -application/vnd.motorola.flexsuite.wem -application/vnd.mozilla.xul+xml xul -application/vnd.ms-artgalry -application/vnd.ms-asf -application/vnd.ms-excel xls -application/vnd.ms-lrm -application/vnd.ms-powerpoint ppt -application/vnd.ms-project -application/vnd.ms-tnef -application/vnd.ms-works -application/vnd.ms-wpl -application/vnd.mseq -application/vnd.msign -application/vnd.music-niff -application/vnd.musician -application/vnd.netfpx -application/vnd.noblenet-directory -application/vnd.noblenet-sealer -application/vnd.noblenet-web -application/vnd.novadigm.edm -application/vnd.novadigm.edx -application/vnd.novadigm.ext -application/vnd.obn -application/vnd.osa.netdeploy -application/vnd.palm -application/vnd.pg.format -application/vnd.pg.osasli -application/vnd.powerbuilder6 -application/vnd.powerbuilder6-s -application/vnd.powerbuilder7 -application/vnd.powerbuilder7-s -application/vnd.powerbuilder75 -application/vnd.powerbuilder75-s -application/vnd.previewsystems.box -application/vnd.publishare-delta-tree -application/vnd.pvi.ptid1 -application/vnd.pwg-multiplexed -application/vnd.pwg-xhtml-print+xml -application/vnd.quark.quarkxpress -application/vnd.rapid -application/vnd.s3sms -application/vnd.sealed.net -application/vnd.seemail -application/vnd.shana.informed.formdata -application/vnd.shana.informed.formtemplate -application/vnd.shana.informed.interchange -application/vnd.shana.informed.package -application/vnd.smaf -application/vnd.sss-cod -application/vnd.sss-dtf -application/vnd.sss-ntf -application/vnd.street-stream -application/vnd.svd -application/vnd.swiftview-ics -application/vnd.triscape.mxs -application/vnd.trueapp -application/vnd.truedoc -application/vnd.ufdl -application/vnd.uplanet.alert -application/vnd.uplanet.alert-wbxml -application/vnd.uplanet.bearer-choice -application/vnd.uplanet.bearer-choice-wbxml -application/vnd.uplanet.cacheop -application/vnd.uplanet.cacheop-wbxml -application/vnd.uplanet.channel -application/vnd.uplanet.channel-wbxml -application/vnd.uplanet.list -application/vnd.uplanet.list-wbxml -application/vnd.uplanet.listcmd -application/vnd.uplanet.listcmd-wbxml -application/vnd.uplanet.signal -application/vnd.vcx -application/vnd.vectorworks -application/vnd.vidsoft.vidconference -application/vnd.visio -application/vnd.visionary -application/vnd.vividence.scriptfile -application/vnd.vsf -application/vnd.wap.sic -application/vnd.wap.slc -application/vnd.wap.wbxml wbxml -application/vnd.wap.wmlc wmlc -application/vnd.wap.wmlscriptc wmlsc -application/vnd.webturbo -application/vnd.wrq-hp3000-labelled -application/vnd.wt.stf -application/vnd.wv.csp+wbxml -application/vnd.xara -application/vnd.xfdl -application/vnd.yamaha.hv-dic -application/vnd.yamaha.hv-script -application/vnd.yamaha.hv-voice -application/vnd.yellowriver-custom-menu -application/voicexml+xml vxml -application/watcherinfo+xml -application/whoispp-query -application/whoispp-response -application/wita -application/wordperfect5.1 -application/x-bcpio bcpio -application/x-cdlink vcd -application/x-chess-pgn pgn -application/x-compress -application/x-cpio cpio -application/x-csh csh -application/x-director dcr dir dxr -application/x-dvi dvi -application/x-futuresplash spl -application/x-gtar gtar -application/x-gzip -application/x-hdf hdf -application/x-javascript js -application/x-koan skp skd skt skm -application/x-latex latex -application/x-netcdf nc cdf -application/x-sh sh -application/x-shar shar -application/x-shockwave-flash swf -application/x-stuffit sit -application/x-sv4cpio sv4cpio -application/x-sv4crc sv4crc -application/x-tar tar -application/x-tcl tcl -application/x-tex tex -application/x-texinfo texinfo texi -application/x-troff t tr roff -application/x-troff-man man -application/x-troff-me me -application/x-troff-ms ms -application/x-ustar ustar -application/x-wais-source src -application/x400-bp -application/xhtml+xml xhtml xht -application/xslt+xml xslt -application/xml xml xsl -application/xml-dtd dtd -application/xml-external-parsed-entity -application/zip zip -audio/32kadpcm -audio/amr -audio/amr-wb -audio/basic au snd -audio/cn -audio/dat12 -audio/dsr-es201108 -audio/dvi4 -audio/evrc -audio/evrc0 -audio/g722 -audio/g.722.1 -audio/g723 -audio/g726-16 -audio/g726-24 -audio/g726-32 -audio/g726-40 -audio/g728 -audio/g729 -audio/g729D -audio/g729E -audio/gsm -audio/gsm-efr -audio/l8 -audio/l16 -audio/l20 -audio/l24 -audio/lpc -audio/midi mid midi kar -audio/mpa -audio/mpa-robust -audio/mp4a-latm -audio/mpeg mpga mp2 mp3 -audio/parityfec -audio/pcma -audio/pcmu -audio/prs.sid -audio/qcelp -audio/red -audio/smv -audio/smv0 -audio/telephone-event -audio/tone -audio/vdvi -audio/vnd.3gpp.iufp -audio/vnd.cisco.nse -audio/vnd.cns.anp1 -audio/vnd.cns.inf1 -audio/vnd.digital-winds -audio/vnd.everad.plj -audio/vnd.lucent.voice -audio/vnd.nortel.vbk -audio/vnd.nuera.ecelp4800 -audio/vnd.nuera.ecelp7470 -audio/vnd.nuera.ecelp9600 -audio/vnd.octel.sbc -audio/vnd.qcelp -audio/vnd.rhetorex.32kadpcm -audio/vnd.vmx.cvsd -audio/x-aiff aif aiff aifc -audio/x-alaw-basic -audio/x-mpegurl m3u -audio/x-pn-realaudio ram ra -audio/x-pn-realaudio-plugin -application/vnd.rn-realmedia rm -audio/x-wav wav -chemical/x-pdb pdb -chemical/x-xyz xyz -image/bmp bmp -image/cgm cgm -image/g3fax -image/gif gif -image/ief ief -image/jpeg jpeg jpg jpe -image/naplps -image/png png -image/prs.btif -image/prs.pti -image/svg+xml svg -image/t38 -image/tiff tiff tif -image/tiff-fx -image/vnd.cns.inf2 -image/vnd.djvu djvu djv -image/vnd.dwg -image/vnd.dxf -image/vnd.fastbidsheet -image/vnd.fpx -image/vnd.fst -image/vnd.fujixerox.edmics-mmr -image/vnd.fujixerox.edmics-rlc -image/vnd.globalgraphics.pgb -image/vnd.mix -image/vnd.ms-modi -image/vnd.net-fpx -image/vnd.svf -image/vnd.wap.wbmp wbmp -image/vnd.xiff -image/x-cmu-raster ras -image/x-icon ico -image/x-portable-anymap pnm -image/x-portable-bitmap pbm -image/x-portable-graymap pgm -image/x-portable-pixmap ppm -image/x-rgb rgb -image/x-xbitmap xbm -image/x-xpixmap xpm -image/x-xwindowdump xwd -message/delivery-status -message/disposition-notification -message/external-body -message/http -message/news -message/partial -message/rfc822 -message/s-http -message/sip -message/sipfrag -model/iges igs iges -model/mesh msh mesh silo -model/vnd.dwf -model/vnd.flatland.3dml -model/vnd.gdl -model/vnd.gs-gdl -model/vnd.gtw -model/vnd.mts -model/vnd.parasolid.transmit.binary -model/vnd.parasolid.transmit.text -model/vnd.vtu -model/vrml wrl vrml -multipart/alternative -multipart/appledouble -multipart/byteranges -multipart/digest -multipart/encrypted -multipart/form-data -multipart/header-set -multipart/mixed -multipart/parallel -multipart/related -multipart/report -multipart/signed -multipart/voice-message -text/calendar ics ifb -text/css css -text/directory -text/enriched -text/html html htm -text/parityfec -text/plain asc txt -text/prs.lines.tag -text/rfc822-headers -text/richtext rtx -text/rtf rtf -text/sgml sgml sgm -text/t140 -text/tab-separated-values tsv -text/uri-list -text/vnd.abc -text/vnd.curl -text/vnd.dmclientscript -text/vnd.fly -text/vnd.fmi.flexstor -text/vnd.in3d.3dml -text/vnd.in3d.spot -text/vnd.iptc.nitf -text/vnd.iptc.newsml -text/vnd.latex-z -text/vnd.motorola.reflex -text/vnd.ms-mediapackage -text/vnd.net2phone.commcenter.command -text/vnd.sun.j2me.app-descriptor -text/vnd.wap.si -text/vnd.wap.sl -text/vnd.wap.wml wml -text/vnd.wap.wmlscript wmls -text/x-setext etx -text/xml -text/xml-external-parsed-entity -video/bmpeg -video/bt656 -video/celb -video/dv -video/h261 -video/h263 -video/h263-1998 -video/h263-2000 -video/jpeg -video/mp1s -video/mp2p -video/mp2t -video/mp4v-es -video/mpv -video/mpeg mpeg mpg mpe -video/nv -video/parityfec -video/pointer -video/quicktime qt mov -video/smpte292m -video/vnd.fvt -video/vnd.motorola.video -video/vnd.motorola.videop -video/vnd.mpegurl mxu m4u -video/vnd.nokia.interleaved-multimedia -video/vnd.objectvideo -video/vnd.vivo -video/x-msvideo avi -video/x-sgi-movie movie -x-conference/x-cooltalk ice diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/htdocs/index.html b/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/htdocs/index.html deleted file mode 100644 index 1bfb3e30c2..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/htdocs/index.html +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - 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><body><h1>It works!</h1></body></html> - diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/startserver.bat b/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/startserver.bat deleted file mode 100644 index 2fc567a7e6..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/startserver.bat +++ /dev/null @@ -1,72 +0,0 @@ -@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 - -set APFULLDIR=%~d0%~p0 -echo Running from %APFULLDIR% - -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 "%HTTPD_HOME%" == "" ( -echo "HTTPD_HOME not set" -goto end -) -echo Using HTTPD installed at %HTTPD_HOME% - -set PATH=%TUSCANY_SCACPP%\extensions\ruby\bin;%TUSCANY_SCACPP%\extensions\rest\interface\bin;%TUSCANY_SCACPP%\extensions\rest\service\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%HTTPD_HOME%\bin;%PATH% - -set TUSCANY_SCACPP_ROOT=%APFULLDIR%\..\ -set TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -@REM Generate the tuscany_sca_mod_rest configuration -if not exist %APFULLDIR%\conf\tuscany_sca_mod_rest.conf ( - echo LoadModule sca_rest_module %TUSCANY_SCACPP%/extensions/rest\service/bin/tuscany_sca_mod_rest.dll > %APFULLDIR%\conf\tuscany_sca_mod_rest.conf - echo TuscanyHome %TUSCANY_SCACPP% >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf - echo ^<Location /rest^> >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf - echo SetHandler sca_rest_module >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf - echo TuscanyRoot %TUSCANY_SCACPP_ROOT% >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf - echo ^</Location^> >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf -) - -@REM Generate the base HTTPD configuration -if not exist %APFULLDIR%\conf\base.conf ( - echo LoadModule mime_module %HTTPD_HOME%\modules\mod_mime.so > %APFULLDIR%\conf\base.conf - echo LoadModule dir_module %HTTPD_HOME%\modules\mod_dir.so >> %APFULLDIR%\conf\base.conf - echo DocumentRoot %APFULLDIR%\htdocs >> %APFULLDIR%\conf\base.conf -) - -@REM Create logs directory -if not exist %APFULLDIR%\logs mkdir %APFULLDIR%\logs -set TUSCANY_SCACPP_LOG=%APFULLDIR%\logs\tuscany-server.log -set TUSCANY_SCACPP_LOGGING=9 - -@REM Start the HTTP server -echo Starting Apache httpd -httpd -d %APFULLDIR% diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/startserver.sh b/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/startserver.sh deleted file mode 100755 index e5d3d8f1ce..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/startserver.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/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:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -libsuffix=.so -UNAME=`uname -s` -if [ "x$UNAME" = "xDarwin" ]; then - libsuffix=.dylib -fi -# Generate the mod_rest configuration -if [ ! -f conf/tuscany_sca_mod_rest.conf ]; then - echo "LoadModule sca_rest_module $TUSCANY_SCACPP/extensions/rest/service/lib/libtuscany_sca_mod_rest$libsuffix" >conf/tuscany_sca_mod_rest.conf - echo "TuscanyHome $TUSCANY_SCACPP" >>conf/tuscany_sca_mod_rest.conf - echo "<Location /rest>" >>conf/tuscany_sca_mod_rest.conf - echo " SetHandler sca_rest_module" >>conf/tuscany_sca_mod_rest.conf - echo " TuscanyRoot $TUSCANY_SCACPP_ROOT" >>conf/tuscany_sca_mod_rest.conf - echo "</Location>" >>conf/tuscany_sca_mod_rest.conf -fi - -if [ ! -f conf/base.conf ]; then - echo "DocumentRoot $APFULLDIR/htdocs" >conf/base.conf -fi - -# Create logs directory -if [ ! -d logs ]; then - mkdir logs -fi - -# Start the HTTP server -echo "Starting Apache httpd" -apachectl -k start -d $APFULLDIR - diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/stopserver.sh b/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/stopserver.sh deleted file mode 100755 index c17f632a3e..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/httpserver/stopserver.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/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` - -# Stop the HTTP server -echo "Stopping Apache httpd" -apachectl -k stop -d $APFULLDIR - diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.app.composite b/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.app.composite deleted file mode 100644 index b7c42f4731..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.app.composite +++ /dev/null @@ -1,33 +0,0 @@ -<?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.calculator.app"> - - <component name="sample.calculator.CalculatorComponent"> - <implementation.composite name="sample.calculator" /> - </component> - - <component name="sample.calculator.CalculatorRestClientComponent"> - <implementation.composite name="sample.calculator.restclient" /> - <reference name="CalculatorService">sample.calculator.CalculatorComponent/CalculatorService</reference> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/CalculatorRestClient.rb b/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/CalculatorRestClient.rb deleted file mode 100644 index 4305c3e185..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/CalculatorRestClient.rb +++ /dev/null @@ -1,25 +0,0 @@ -# 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") - -calculator = SCA::locateService("CalculatorService") - -x = calculator.div(5, 2) -print "Retrieved result from RestCalculator service: ", x, "\n" diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/Makefile.am b/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/Makefile.am deleted file mode 100644 index 5eee4677b8..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/RestCalculator/deploy -restclientdir=$(deploydir)/sample.calculator.restclient - -restclient_DATA = *.rb *.composite -restclient_SCRIPTS = runrestclient.sh -EXTRA_DIST = runrestclient.sh *.rb *.composite diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/runrestclient.bat b/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/runrestclient.bat deleted file mode 100644 index fb97ed8b74..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/runrestclient.bat +++ /dev/null @@ -1,50 +0,0 @@ -@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=%HTTPD_HOME%\bin;%LIBCURL_HOME%\lib;%TUSCANY_SCACPP%\extensions\ruby\bin;%TUSCANY_SCACPP%\extensions\rest\interface\bin;%TUSCANY_SCACPP%\extensions\rest\reference\bin;%TUSCANY_SCACPP%\extensions\rest\service\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%PATH% - -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ -set TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorRestClientComponent -set TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd %TUSCANY_SCACPP_ROOT%\sample.calculator.restclient -ruby -I%TUSCANY_SCACPP%\extensions\ruby\bin CalculatorRestClient.rb - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/runrestclient.sh b/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/runrestclient.sh deleted file mode 100755 index 0c6c6c182c..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/runrestclient.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/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:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorRestClientComponent -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd $TUSCANY_SCACPP_ROOT/sample.calculator.restclient -ruby -I$TUSCANY_SCACPP/extensions/ruby/lib CalculatorRestClient.rb diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/sample.calculator.restclient.composite b/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/sample.calculator.restclient.composite deleted file mode 100644 index fee8c6e14f..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator.restclient/sample.calculator.restclient.composite +++ /dev/null @@ -1,28 +0,0 @@ -<?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.calculator.restclient"> - - <reference name="CalculatorService"> - <binding.rest/> - </reference> - -</composite>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/CalculatorImpl.rb b/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/CalculatorImpl.rb deleted file mode 100644 index 36ed15ff9b..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/CalculatorImpl.rb +++ /dev/null @@ -1,48 +0,0 @@ -# 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. -# -# - -class CalculatorImpl - - attr_writer :divideService - - def initialize() - print "Ruby - CalculatorImpl.initialize\n" - end - - def div(arg1, arg2) - print "Ruby - CalculatorImpl.div\n" - @divideService.divide(arg1.to_f, arg2.to_f) - end - - def add(arg1, arg2) - print "Ruby - CalculatorImpl.add\n" - arg1.to_f + arg2.to_f - end - - def sub(arg1, arg2) - print "Ruby - CalculatorImpl.sub\n" - arg1.to_f - arg2.to_f - end - - def mul(arg1, arg2) - print "Ruby - CalculatorImpl.mul\n" - arg1.to_f * arg2.to_f - end - -end
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/DivideImpl.rb b/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/DivideImpl.rb deleted file mode 100644 index c6615bfcfa..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/DivideImpl.rb +++ /dev/null @@ -1,39 +0,0 @@ -# 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. -# -# - -class DivideImpl - - attr_writer :round - - def initialize() - print "Ruby - DivideImpl.initialize\n" - end - - def divide(arg1, arg2) - print "Ruby - DivideImpl.divide ", arg1, " / ", arg2, "\n" - res = arg1.to_f / arg2.to_f - if @round then - res = res.round - print "DivideImpl.divide rounding\n" - end - print "DivideImpl.divide ", res, "\n" - res - end - -end
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/Makefile.am b/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/Makefile.am deleted file mode 100644 index b715fe2424..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# 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)/RestCalculator/deploy -compositedir=$(deploydir)/sample.calculator - -composite_DATA = *.composite *.rb -EXTRA_DIST = *.composite *.rb diff --git a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/sample.calculator.composite b/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/sample.calculator.composite deleted file mode 100644 index 49fbf17f54..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCalculator/sample.calculator/sample.calculator.composite +++ /dev/null @@ -1,39 +0,0 @@ -<?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.calculator"> - - <service name="CalculatorService"> - <binding.rest/> - <reference>CalculatorComponent</reference> - </service> - - <component name="CalculatorComponent"> - <implementation.ruby script="CalculatorImpl.rb" class="CalculatorImpl"/> - <reference name="divideService">DivideComponent</reference> - </component> - - <component name="DivideComponent"> - <implementation.ruby script="DivideImpl.rb" class="DivideImpl"/> - <property name="round">true</property> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/Makefile.am b/sca-cpp/trunk/contrib/samples/RestCustomer/Makefile.am deleted file mode 100644 index bf259580ce..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# 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)/RestCustomer/deploy -SUBDIRS = sample.customer sample.customer.restclient httpserver - -EXTRA_DIST = *.composite README.html -deploy_DATA = *.composite diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/README b/sca-cpp/trunk/contrib/samples/RestCustomer/README deleted file mode 100644 index bf2a1c3eb6..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/README +++ /dev/null @@ -1,25 +0,0 @@ -Tuscany SCA for C++ Samples - REST Customer Sample -================================================== - -This is a very simple sample to show how to use the SCA REST binding to -implement a resource management service and make resources available -through HTTP. - -There are three sub projects in this workspace: - - sample.customer - This contains the source code and SCDL artifacts for the SCA component - implementing the Customer resource management service. - - - sample.customer.restclient - A sample REST client which shows how to create, update, retrieve, and - delete Customer resources. - - - httpserver - This contains a minimal configuration for the Apache HTTP server used - to host the REST service as well as scripts to start and stop the server. - -Additionally, there is the sample.customer.app.composite file. This -describes the configuration of the SCA Calculator 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/RestCustomer/README.html b/sca-cpp/trunk/contrib/samples/RestCustomer/README.html deleted file mode 100644 index 7d43177b9a..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/README.html +++ /dev/null @@ -1,236 +0,0 @@ - -<!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 Customer Sample</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native Samples - REST Customer Sample</H1> - - <P>This is a very simple sample to show how to use the SCA REST binding to - implement a resource management service and make resources available - through HTTP. - </P> - <P>The REST Customer sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RESTExtension.html">REST Service and Reference Extensions</A></LI> - <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </P> - <P>There are three sub-projects in this workspace:</P> - <UL> - <LI>sample.customer<BR/> - This contains the source code and SCDL artifacts for the SCA component - implementing the Customer resource management service. - </LI> - <LI>sample.customer.restclient<BR/> - A sample REST client which shows how to create, update, retrieve, and - delete Customer resources. - </LI> - <LI>httpserver<BR/> - This contains a minimal configuration for the Apache HTTP server used - to host the REST service as well as scripts to start and stop the server. - </LI> - </UL> - <P>Additionally, there is the sample.customer.app.composite file. This - describes the configuration of the SCA Customer composite deployed to the SCA - runtime. - </P> - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#linuxbld">Building the REST Customer sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxrun">Running the REST Customer sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbld">Building the REST Customer sample on Windows</A></LI> - <LI><A HREF="#winrun">Running the REST Customer sample on Windows</A></LI> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="linuxbld"><H2>Building the REST Customer sample on Linux and Mac OS X</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>As the REST Customer sample is based on Python scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the Python samples only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples</LI> - <LI>./configure --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/RestCustomer</LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="linuxrun"><H2>Running the REST Customer sample on Linux and Mac OS X</H2></A> - <OL> - <LI>The REST Customer sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RESTExtension.html">REST Service and Reference Extensions</A></LI> - <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </LI> - <LI>Start the Apache HTTPD server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>PYTHON_LIB=<path to the Python library><BR/> - Note: If you are using a default installation of Python 2.5 this is usually /usr/lib</LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>/samples/RestCustomer/deploy/httpserver</LI> - <LI>./startserver.sh<BR/> - NOTE: Depending on your installation of Apache HTTPD you may need to log in as root before following - these steps. If so, you may also need to uncomment the User and Group directives in the - <tuscany_sca_install_dir>/samples/RestCustomer/deploy/httpserver/conf/httpd.conf file - and set these to the appropriate username and group that the server should run as</LI> - </OL> - </LI> - <LI>Run the client: - <OL> - <LI>The following environment variable is required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>PYTHON_LIB=<path to the Python library><BR/> - Note: If you are using a default installation of Python 2.5 this is usually /usr/lib</LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>/samples/RestCustomer/deploy/sample.customer.restclient</LI> - <LI>./runrestclient.sh</LI> - </OL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winbld"><H2>Building the REST Customer sample on Windows</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>As this sample is based on Ruby scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\RestCustomer</LI> - <LI>deploy.bat</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winrun"><H2>Running the REST Customer sample on Windows</H2></A> - <LI>The REST Customer sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RESTExtension.html">REST Service and Reference Extensions</A></LI> - <LI><A HREF="../../doc/PythonExtension.html">Python Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </LI> - <LI>Start the Apache HTTPD server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>HTTPD_HOME=<path to installed Apache HTTPD server></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>\samples\RestCustomer\deploy\httpserver</LI> - <LI>startserver.bat</LI> - </OL> - </LI> - <LI>Run the client: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>LIBCURL_HOME=<path to installed libcurl libraries></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>\samples\RestCustomer\deploy\sample.customer.restclient</LI> - <LI>runrestclient.bat</LI> - </OL> - </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 <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/RestCustomer/httpserver/Makefile.am b/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/Makefile.am deleted file mode 100644 index af8c0bb550..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -deploydir=$(prefix)/RestCustomer/deploy -serverdir=$(deploydir)/httpserver - -server_SCRIPTS = startserver.sh stopserver.sh -EXTRA_DIST = startserver.sh stopserver.sh conf htdocs -nobase_server_DATA = conf/httpd.conf conf/mime.types htdocs/index.html diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/conf/httpd.conf b/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/conf/httpd.conf deleted file mode 100644 index 0303f787e9..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/conf/httpd.conf +++ /dev/null @@ -1,34 +0,0 @@ -# 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.
-
-# This is the main Apache HTTP server configuration file. It contains the
-# configuration directives that give the server its instructions.
-# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
-
-Listen 9090
-
-# Generated by the startserver script
-Include conf/base.conf
-Include conf/tuscany_sca_mod_rest.conf
-
-# User and Group directives may be required if the server must be
-# started from the root account. Uncomment the following lines and
-# set the correct username and group
-#
-# User myusername
-# Group mygroupname
-
diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/conf/mime.types b/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/conf/mime.types deleted file mode 100644 index 4279f51bca..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/conf/mime.types +++ /dev/null @@ -1,607 +0,0 @@ -# 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. - -# This file controls what Internet media types are sent to the client for -# given file extension(s). Sending the correct media type to the client -# is important so they know how to handle the content of the file. -# Extra types can either be added here or by using an AddType directive -# in your config files. For more information about Internet media types, -# please read RFC 2045, 2046, 2047, 2048, and 2077. The Internet media type -# registry is at <http://www.iana.org/assignments/media-types/>. - -# MIME type Extensions -application/activemessage -application/andrew-inset ez -application/applefile -application/atom+xml atom -application/atomicmail -application/batch-smtp -application/beep+xml -application/cals-1840 -application/cnrp+xml -application/commonground -application/cpl+xml -application/cybercash -application/dca-rft -application/dec-dx -application/dvcs -application/edi-consent -application/edifact -application/edi-x12 -application/eshop -application/font-tdpfr -application/http -application/hyperstudio -application/iges -application/index -application/index.cmd -application/index.obj -application/index.response -application/index.vnd -application/iotp -application/ipp -application/isup -application/mac-binhex40 hqx -application/mac-compactpro cpt -application/macwriteii -application/marc -application/mathematica -application/mathml+xml mathml -application/msword doc -application/news-message-id -application/news-transmission -application/ocsp-request -application/ocsp-response -application/octet-stream bin dms lha lzh exe class so dll dmg -application/oda oda -application/ogg ogg -application/parityfec -application/pdf pdf -application/pgp-encrypted -application/pgp-keys -application/pgp-signature -application/pkcs10 -application/pkcs7-mime -application/pkcs7-signature -application/pkix-cert -application/pkix-crl -application/pkixcmp -application/postscript ai eps ps -application/prs.alvestrand.titrax-sheet -application/prs.cww -application/prs.nprend -application/prs.plucker -application/qsig -application/rdf+xml rdf -application/reginfo+xml -application/remote-printing -application/riscos -application/rtf -application/sdp -application/set-payment -application/set-payment-initiation -application/set-registration -application/set-registration-initiation -application/sgml -application/sgml-open-catalog -application/sieve -application/slate -application/smil smi smil -application/srgs gram -application/srgs+xml grxml -application/timestamp-query -application/timestamp-reply -application/tve-trigger -application/vemmi -application/vnd.3gpp.pic-bw-large -application/vnd.3gpp.pic-bw-small -application/vnd.3gpp.pic-bw-var -application/vnd.3gpp.sms -application/vnd.3m.post-it-notes -application/vnd.accpac.simply.aso -application/vnd.accpac.simply.imp -application/vnd.acucobol -application/vnd.acucorp -application/vnd.adobe.xfdf -application/vnd.aether.imp -application/vnd.amiga.ami -application/vnd.anser-web-certificate-issue-initiation -application/vnd.anser-web-funds-transfer-initiation -application/vnd.audiograph -application/vnd.blueice.multipass -application/vnd.bmi -application/vnd.businessobjects -application/vnd.canon-cpdl -application/vnd.canon-lips -application/vnd.cinderella -application/vnd.claymore -application/vnd.commerce-battelle -application/vnd.commonspace -application/vnd.contact.cmsg -application/vnd.cosmocaller -application/vnd.criticaltools.wbs+xml -application/vnd.ctc-posml -application/vnd.cups-postscript -application/vnd.cups-raster -application/vnd.cups-raw -application/vnd.curl -application/vnd.cybank -application/vnd.data-vision.rdz -application/vnd.dna -application/vnd.dpgraph -application/vnd.dreamfactory -application/vnd.dxr -application/vnd.ecdis-update -application/vnd.ecowin.chart -application/vnd.ecowin.filerequest -application/vnd.ecowin.fileupdate -application/vnd.ecowin.series -application/vnd.ecowin.seriesrequest -application/vnd.ecowin.seriesupdate -application/vnd.enliven -application/vnd.epson.esf -application/vnd.epson.msf -application/vnd.epson.quickanime -application/vnd.epson.salt -application/vnd.epson.ssf -application/vnd.ericsson.quickcall -application/vnd.eudora.data -application/vnd.fdf -application/vnd.ffsns -application/vnd.fints -application/vnd.flographit -application/vnd.framemaker -application/vnd.fsc.weblaunch -application/vnd.fujitsu.oasys -application/vnd.fujitsu.oasys2 -application/vnd.fujitsu.oasys3 -application/vnd.fujitsu.oasysgp -application/vnd.fujitsu.oasysprs -application/vnd.fujixerox.ddd -application/vnd.fujixerox.docuworks -application/vnd.fujixerox.docuworks.binder -application/vnd.fut-misnet -application/vnd.grafeq -application/vnd.groove-account -application/vnd.groove-help -application/vnd.groove-identity-message -application/vnd.groove-injector -application/vnd.groove-tool-message -application/vnd.groove-tool-template -application/vnd.groove-vcard -application/vnd.hbci -application/vnd.hhe.lesson-player -application/vnd.hp-hpgl -application/vnd.hp-hpid -application/vnd.hp-hps -application/vnd.hp-pcl -application/vnd.hp-pclxl -application/vnd.httphone -application/vnd.hzn-3d-crossword -application/vnd.ibm.afplinedata -application/vnd.ibm.electronic-media -application/vnd.ibm.minipay -application/vnd.ibm.modcap -application/vnd.ibm.rights-management -application/vnd.ibm.secure-container -application/vnd.informix-visionary -application/vnd.intercon.formnet -application/vnd.intertrust.digibox -application/vnd.intertrust.nncp -application/vnd.intu.qbo -application/vnd.intu.qfx -application/vnd.irepository.package+xml -application/vnd.is-xpr -application/vnd.japannet-directory-service -application/vnd.japannet-jpnstore-wakeup -application/vnd.japannet-payment-wakeup -application/vnd.japannet-registration -application/vnd.japannet-registration-wakeup -application/vnd.japannet-setstore-wakeup -application/vnd.japannet-verification -application/vnd.japannet-verification-wakeup -application/vnd.jisp -application/vnd.kde.karbon -application/vnd.kde.kchart -application/vnd.kde.kformula -application/vnd.kde.kivio -application/vnd.kde.kontour -application/vnd.kde.kpresenter -application/vnd.kde.kspread -application/vnd.kde.kword -application/vnd.kenameaapp -application/vnd.koan -application/vnd.liberty-request+xml -application/vnd.llamagraphics.life-balance.desktop -application/vnd.llamagraphics.life-balance.exchange+xml -application/vnd.lotus-1-2-3 -application/vnd.lotus-approach -application/vnd.lotus-freelance -application/vnd.lotus-notes -application/vnd.lotus-organizer -application/vnd.lotus-screencam -application/vnd.lotus-wordpro -application/vnd.mcd -application/vnd.mediastation.cdkey -application/vnd.meridian-slingshot -application/vnd.micrografx.flo -application/vnd.micrografx.igx -application/vnd.mif mif -application/vnd.minisoft-hp3000-save -application/vnd.mitsubishi.misty-guard.trustweb -application/vnd.mobius.daf -application/vnd.mobius.dis -application/vnd.mobius.mbk -application/vnd.mobius.mqy -application/vnd.mobius.msl -application/vnd.mobius.plc -application/vnd.mobius.txf -application/vnd.mophun.application -application/vnd.mophun.certificate -application/vnd.motorola.flexsuite -application/vnd.motorola.flexsuite.adsi -application/vnd.motorola.flexsuite.fis -application/vnd.motorola.flexsuite.gotap -application/vnd.motorola.flexsuite.kmr -application/vnd.motorola.flexsuite.ttc -application/vnd.motorola.flexsuite.wem -application/vnd.mozilla.xul+xml xul -application/vnd.ms-artgalry -application/vnd.ms-asf -application/vnd.ms-excel xls -application/vnd.ms-lrm -application/vnd.ms-powerpoint ppt -application/vnd.ms-project -application/vnd.ms-tnef -application/vnd.ms-works -application/vnd.ms-wpl -application/vnd.mseq -application/vnd.msign -application/vnd.music-niff -application/vnd.musician -application/vnd.netfpx -application/vnd.noblenet-directory -application/vnd.noblenet-sealer -application/vnd.noblenet-web -application/vnd.novadigm.edm -application/vnd.novadigm.edx -application/vnd.novadigm.ext -application/vnd.obn -application/vnd.osa.netdeploy -application/vnd.palm -application/vnd.pg.format -application/vnd.pg.osasli -application/vnd.powerbuilder6 -application/vnd.powerbuilder6-s -application/vnd.powerbuilder7 -application/vnd.powerbuilder7-s -application/vnd.powerbuilder75 -application/vnd.powerbuilder75-s -application/vnd.previewsystems.box -application/vnd.publishare-delta-tree -application/vnd.pvi.ptid1 -application/vnd.pwg-multiplexed -application/vnd.pwg-xhtml-print+xml -application/vnd.quark.quarkxpress -application/vnd.rapid -application/vnd.s3sms -application/vnd.sealed.net -application/vnd.seemail -application/vnd.shana.informed.formdata -application/vnd.shana.informed.formtemplate -application/vnd.shana.informed.interchange -application/vnd.shana.informed.package -application/vnd.smaf -application/vnd.sss-cod -application/vnd.sss-dtf -application/vnd.sss-ntf -application/vnd.street-stream -application/vnd.svd -application/vnd.swiftview-ics -application/vnd.triscape.mxs -application/vnd.trueapp -application/vnd.truedoc -application/vnd.ufdl -application/vnd.uplanet.alert -application/vnd.uplanet.alert-wbxml -application/vnd.uplanet.bearer-choice -application/vnd.uplanet.bearer-choice-wbxml -application/vnd.uplanet.cacheop -application/vnd.uplanet.cacheop-wbxml -application/vnd.uplanet.channel -application/vnd.uplanet.channel-wbxml -application/vnd.uplanet.list -application/vnd.uplanet.list-wbxml -application/vnd.uplanet.listcmd -application/vnd.uplanet.listcmd-wbxml -application/vnd.uplanet.signal -application/vnd.vcx -application/vnd.vectorworks -application/vnd.vidsoft.vidconference -application/vnd.visio -application/vnd.visionary -application/vnd.vividence.scriptfile -application/vnd.vsf -application/vnd.wap.sic -application/vnd.wap.slc -application/vnd.wap.wbxml wbxml -application/vnd.wap.wmlc wmlc -application/vnd.wap.wmlscriptc wmlsc -application/vnd.webturbo -application/vnd.wrq-hp3000-labelled -application/vnd.wt.stf -application/vnd.wv.csp+wbxml -application/vnd.xara -application/vnd.xfdl -application/vnd.yamaha.hv-dic -application/vnd.yamaha.hv-script -application/vnd.yamaha.hv-voice -application/vnd.yellowriver-custom-menu -application/voicexml+xml vxml -application/watcherinfo+xml -application/whoispp-query -application/whoispp-response -application/wita -application/wordperfect5.1 -application/x-bcpio bcpio -application/x-cdlink vcd -application/x-chess-pgn pgn -application/x-compress -application/x-cpio cpio -application/x-csh csh -application/x-director dcr dir dxr -application/x-dvi dvi -application/x-futuresplash spl -application/x-gtar gtar -application/x-gzip -application/x-hdf hdf -application/x-javascript js -application/x-koan skp skd skt skm -application/x-latex latex -application/x-netcdf nc cdf -application/x-sh sh -application/x-shar shar -application/x-shockwave-flash swf -application/x-stuffit sit -application/x-sv4cpio sv4cpio -application/x-sv4crc sv4crc -application/x-tar tar -application/x-tcl tcl -application/x-tex tex -application/x-texinfo texinfo texi -application/x-troff t tr roff -application/x-troff-man man -application/x-troff-me me -application/x-troff-ms ms -application/x-ustar ustar -application/x-wais-source src -application/x400-bp -application/xhtml+xml xhtml xht -application/xslt+xml xslt -application/xml xml xsl -application/xml-dtd dtd -application/xml-external-parsed-entity -application/zip zip -audio/32kadpcm -audio/amr -audio/amr-wb -audio/basic au snd -audio/cn -audio/dat12 -audio/dsr-es201108 -audio/dvi4 -audio/evrc -audio/evrc0 -audio/g722 -audio/g.722.1 -audio/g723 -audio/g726-16 -audio/g726-24 -audio/g726-32 -audio/g726-40 -audio/g728 -audio/g729 -audio/g729D -audio/g729E -audio/gsm -audio/gsm-efr -audio/l8 -audio/l16 -audio/l20 -audio/l24 -audio/lpc -audio/midi mid midi kar -audio/mpa -audio/mpa-robust -audio/mp4a-latm -audio/mpeg mpga mp2 mp3 -audio/parityfec -audio/pcma -audio/pcmu -audio/prs.sid -audio/qcelp -audio/red -audio/smv -audio/smv0 -audio/telephone-event -audio/tone -audio/vdvi -audio/vnd.3gpp.iufp -audio/vnd.cisco.nse -audio/vnd.cns.anp1 -audio/vnd.cns.inf1 -audio/vnd.digital-winds -audio/vnd.everad.plj -audio/vnd.lucent.voice -audio/vnd.nortel.vbk -audio/vnd.nuera.ecelp4800 -audio/vnd.nuera.ecelp7470 -audio/vnd.nuera.ecelp9600 -audio/vnd.octel.sbc -audio/vnd.qcelp -audio/vnd.rhetorex.32kadpcm -audio/vnd.vmx.cvsd -audio/x-aiff aif aiff aifc -audio/x-alaw-basic -audio/x-mpegurl m3u -audio/x-pn-realaudio ram ra -audio/x-pn-realaudio-plugin -application/vnd.rn-realmedia rm -audio/x-wav wav -chemical/x-pdb pdb -chemical/x-xyz xyz -image/bmp bmp -image/cgm cgm -image/g3fax -image/gif gif -image/ief ief -image/jpeg jpeg jpg jpe -image/naplps -image/png png -image/prs.btif -image/prs.pti -image/svg+xml svg -image/t38 -image/tiff tiff tif -image/tiff-fx -image/vnd.cns.inf2 -image/vnd.djvu djvu djv -image/vnd.dwg -image/vnd.dxf -image/vnd.fastbidsheet -image/vnd.fpx -image/vnd.fst -image/vnd.fujixerox.edmics-mmr -image/vnd.fujixerox.edmics-rlc -image/vnd.globalgraphics.pgb -image/vnd.mix -image/vnd.ms-modi -image/vnd.net-fpx -image/vnd.svf -image/vnd.wap.wbmp wbmp -image/vnd.xiff -image/x-cmu-raster ras -image/x-icon ico -image/x-portable-anymap pnm -image/x-portable-bitmap pbm -image/x-portable-graymap pgm -image/x-portable-pixmap ppm -image/x-rgb rgb -image/x-xbitmap xbm -image/x-xpixmap xpm -image/x-xwindowdump xwd -message/delivery-status -message/disposition-notification -message/external-body -message/http -message/news -message/partial -message/rfc822 -message/s-http -message/sip -message/sipfrag -model/iges igs iges -model/mesh msh mesh silo -model/vnd.dwf -model/vnd.flatland.3dml -model/vnd.gdl -model/vnd.gs-gdl -model/vnd.gtw -model/vnd.mts -model/vnd.parasolid.transmit.binary -model/vnd.parasolid.transmit.text -model/vnd.vtu -model/vrml wrl vrml -multipart/alternative -multipart/appledouble -multipart/byteranges -multipart/digest -multipart/encrypted -multipart/form-data -multipart/header-set -multipart/mixed -multipart/parallel -multipart/related -multipart/report -multipart/signed -multipart/voice-message -text/calendar ics ifb -text/css css -text/directory -text/enriched -text/html html htm -text/parityfec -text/plain asc txt -text/prs.lines.tag -text/rfc822-headers -text/richtext rtx -text/rtf rtf -text/sgml sgml sgm -text/t140 -text/tab-separated-values tsv -text/uri-list -text/vnd.abc -text/vnd.curl -text/vnd.dmclientscript -text/vnd.fly -text/vnd.fmi.flexstor -text/vnd.in3d.3dml -text/vnd.in3d.spot -text/vnd.iptc.nitf -text/vnd.iptc.newsml -text/vnd.latex-z -text/vnd.motorola.reflex -text/vnd.ms-mediapackage -text/vnd.net2phone.commcenter.command -text/vnd.sun.j2me.app-descriptor -text/vnd.wap.si -text/vnd.wap.sl -text/vnd.wap.wml wml -text/vnd.wap.wmlscript wmls -text/x-setext etx -text/xml -text/xml-external-parsed-entity -video/bmpeg -video/bt656 -video/celb -video/dv -video/h261 -video/h263 -video/h263-1998 -video/h263-2000 -video/jpeg -video/mp1s -video/mp2p -video/mp2t -video/mp4v-es -video/mpv -video/mpeg mpeg mpg mpe -video/nv -video/parityfec -video/pointer -video/quicktime qt mov -video/smpte292m -video/vnd.fvt -video/vnd.motorola.video -video/vnd.motorola.videop -video/vnd.mpegurl mxu m4u -video/vnd.nokia.interleaved-multimedia -video/vnd.objectvideo -video/vnd.vivo -video/x-msvideo avi -video/x-sgi-movie movie -x-conference/x-cooltalk ice diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/htdocs/index.html b/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/htdocs/index.html deleted file mode 100644 index 1bfb3e30c2..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/htdocs/index.html +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - 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><body><h1>It works!</h1></body></html> - diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/startserver.bat b/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/startserver.bat deleted file mode 100644 index a62f4bd510..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/startserver.bat +++ /dev/null @@ -1,75 +0,0 @@ -@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
-
-set APFULLDIR=%~d0%~p0
-echo Running from %APFULLDIR%
-
-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 "%HTTPD_HOME%" == "" (
-echo "HTTPD_HOME not set"
-goto end
-)
-echo Using HTTPD installed at %HTTPD_HOME%
-
-set PATH=%TUSCANY_SCACPP%\extensions\python\bin;%TUSCANY_SCACPP%\extensions\rest\interface\bin;%TUSCANY_SCACPP%\extensions\rest\service\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%HTTPD_HOME%\bin;%PATH%
-set PYTHONPATH=%TUSCANY_SCACPP%\extensions\python\bin
-
-set TUSCANY_SCACPP_ROOT=%APFULLDIR%\..\
-set TUSCANY_SCACPP_BASE_URI=http://localhost:9090
-
-set CUSTOMER_DIR=%TUSCANY_SCACPP_ROOT%\sample.customer
-
-@REM Generate the tuscany_sca_mod_rest configuration
-if not exist %APFULLDIR%\conf\tuscany_sca_mod_rest.conf (
- echo LoadModule sca_rest_module %TUSCANY_SCACPP%/extensions/rest\service/bin/tuscany_sca_mod_rest.dll > %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
- echo TuscanyHome %TUSCANY_SCACPP% >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
- echo ^<Location /rest^> >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
- echo SetHandler sca_rest_module >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
- echo TuscanyRoot %TUSCANY_SCACPP_ROOT% >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
- echo ^</Location^> >> %APFULLDIR%\conf\tuscany_sca_mod_rest.conf
-)
-
-@REM Generate the base HTTPD configuration
-if not exist %APFULLDIR%\conf\base.conf (
- echo LoadModule mime_module %HTTPD_HOME%\modules\mod_mime.so > %APFULLDIR%\conf\base.conf
- echo LoadModule dir_module %HTTPD_HOME%\modules\mod_dir.so >> %APFULLDIR%\conf\base.conf
- echo DocumentRoot %APFULLDIR%\htdocs >> %APFULLDIR%\conf\base.conf
-)
-
-@REM Create logs directory
-if not exist %APFULLDIR%\logs mkdir %APFULLDIR%\logs
-set TUSCANY_SCACPP_LOG=%APFULLDIR%\logs\tuscany-server.log
-set TUSCANY_SCACPP_LOGGING=9
-
-@REM Start the HTTP server
-echo Starting Apache httpd
-httpd -d %APFULLDIR%
diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/startserver.sh b/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/startserver.sh deleted file mode 100755 index 0d4561e3d3..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/startserver.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/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" - -if [ x$PYTHON_LIB != x ]; then -echo "Using Python library installed at $PYTHON_LIB" -export LD_LIBRARY_PATH=$PYTHON_LIB:$LD_LIBRARY_PATH -export PATH=$PYTHON_LIB/../bin:$PATH -fi - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/lib:$TUSCANY_SCACPP/extensions/python/lib:$TUSCANY_SDOCPP/lib:$LD_LIBRARY_PATH -export PYTHONPATH=$TUSCANY_SCACPP/extensions/python/lib:$PYTHONPATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -export CUSTOMER_DIR=$TUSCANY_SCACPP_ROOT/sample.customer - -libsuffix=.so -UNAME=`uname -s` -if [ "x$UNAME" = "xDarwin" ]; then - libsuffix=.dylib -fi - -# Generate the mod_rest configuration -if [ ! -f conf/tuscany_sca_mod_rest.conf ]; then - echo "LoadModule sca_rest_module $TUSCANY_SCACPP/extensions/rest/service/lib/libtuscany_sca_mod_rest$libsuffix" >conf/tuscany_sca_mod_rest.conf - echo "TuscanyHome $TUSCANY_SCACPP" >>conf/tuscany_sca_mod_rest.conf - echo "<Location /rest>" >>conf/tuscany_sca_mod_rest.conf - echo " SetHandler sca_rest_module" >>conf/tuscany_sca_mod_rest.conf - echo " TuscanyRoot $TUSCANY_SCACPP_ROOT" >>conf/tuscany_sca_mod_rest.conf - echo "</Location>" >>conf/tuscany_sca_mod_rest.conf -fi - -if [ ! -f conf/base.conf ]; then - echo "DocumentRoot $APFULLDIR/htdocs" >conf/base.conf -fi - -# Create logs directory -if [ ! -d logs ]; then - mkdir logs -fi - -# Start the HTTP server -echo "Starting Apache httpd" - -# 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 - -apachectl -k start -d $APFULLDIR - diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/stopserver.sh b/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/stopserver.sh deleted file mode 100755 index c17f632a3e..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/httpserver/stopserver.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/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` - -# Stop the HTTP server -echo "Stopping Apache httpd" -apachectl -k stop -d $APFULLDIR - diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.app.composite b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.app.composite deleted file mode 100644 index 65565f1e3c..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.app.composite +++ /dev/null @@ -1,34 +0,0 @@ -<?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.customer.app"> - - <component name="sample.customer.CustomerComponent"> - <implementation.composite name="sample.customer" /> - </component> - - <component name="sample.customer.CustomerRestClientComponent"> - <implementation.composite name="sample.customer.restclient" /> - <reference name="CustomerResource">sample.customer.CustomerComponent/CustomerResource</reference> - <reference name="CustomerCommand">sample.customer.CustomerComponent/CustomerCommand</reference> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/Customer.xsd b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/Customer.xsd deleted file mode 100644 index 1cec1b0ae6..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/Customer.xsd +++ /dev/null @@ -1,33 +0,0 @@ -<?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 targetNamespace="http://sample.customer" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - - <xsd:element name="customer"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="id" type="xsd:int" /> - <xsd:element name="firstName" type="xsd:string" /> - <xsd:element name="lastName" type="xsd:string" /> - <xsd:element name="address" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - -</xsd:schema> diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/CustomerRestClient.py b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/CustomerRestClient.py deleted file mode 100644 index 340da8700d..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/CustomerRestClient.py +++ /dev/null @@ -1,85 +0,0 @@ -# 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. -# -# - -# -# This Python code is a simple sample that provides a Python -# client for the REST Customer sample - - -from xml.etree import ElementTree as et -import sca - -# Locate the customer resource service -customerResource = sca.locateservice("CustomerResource") - -# Show how to invoke CRUD operations on the customer resource -# The CRUD operations translate to HTTP POST, GET, PUT and DELETE -# according to the REST pattern - -customer = customerResource.retrieve("2345") -print "Rest - Retrieved customer " + et.tostring(customer) - -customer = et.fromstring("""<customer xmlns="http://sample.customer"><id>1234</id><firstName>Jane</firstName><lastName>Doe</lastName></customer>""") -url = customerResource.create(customer) -print "Rest - Created customer " + url - -customer = customerResource.retrieve("1234") -print "Rest - Retrieved customer " + et.tostring(customer) - -customer = customerResource.retrieve(url) -print "Rest - Retrieved by url " + et.tostring(customer) - -customer.find("{http://sample.customer}lastName").text="Smith" -customerResource.update("1234", customer) -print "Rest - Updated customer 1234" - -customer = customerResource.retrieve("1234") -print "Rest - Retrieved customer " + et.tostring(customer) - -customerResource.delete("1234") -print "Rest - Deleted customer 1234" - -# Also show how to use REST binding to invoke remote commands -# using HTTP GET and XML over HTTP POST, the REST binding -# uses that command pattern when you don't declare a REST interface -# on your SCA reference - -# Locate the customer command service -customerCommand = sca.locateservice("CustomerCommand") - -# Invoke operations on the customer command service -customer = customerCommand.retrieve("2345") -print "Command - Retrieved customer " + et.tostring(customer) - -customer = et.fromstring("""<customer xmlns="http://sample.customer"><id>1234</id><firstName>Jane</firstName><lastName>Doe</lastName></customer>""") -url = customerCommand.create(customer) -print "Command - Created customer " + url - -customer = customerCommand.retrieve("1234") -print "Command - Retrieved customer " + et.tostring(customer) - -customer.find("{http://sample.customer}lastName").text="Smith" -customerCommand.update("1234", customer) -print "Command - Updated customer 1234" - -customer = customerCommand.retrieve("1234") -print "Command - Retrieved customer " + et.tostring(customer) - -customerCommand.delete("1234") -print "Command - Deleted customer 1234" diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/Makefile.am b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/Makefile.am deleted file mode 100644 index 13c14d07e9..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/RestCustomer/deploy -restclientdir=$(deploydir)/sample.customer.restclient - -restclient_DATA = *.py *.composite *.xsd -restclient_SCRIPTS = runrestclient.sh -EXTRA_DIST = runrestclient.sh *.py *.composite *.xsd diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/runrestclient.bat b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/runrestclient.bat deleted file mode 100644 index 982b9b5e83..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/runrestclient.bat +++ /dev/null @@ -1,53 +0,0 @@ -@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=%HTTPD_HOME%\bin;%LIBCURL_HOME%\lib;%TUSCANY_SCACPP%\extensions\rest\interface\bin;%TUSCANY_SCACPP%\extensions\rest\reference\bin;%TUSCANY_SCACPP%\extensions\python\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.customer.CustomerRestClientComponent
-set TUSCANY_SCACPP_BASE_URI=http://localhost:9090
-
-set CUSTOMER_DIR=%TUSCANY_SCACPP_ROOT%\sample.customer
-
-cd %TUSCANY_SCACPP_ROOT%\sample.customer.restclient
-python CustomerRestClient.py
-
-:end
-endlocal
diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/runrestclient.sh b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/runrestclient.sh deleted file mode 100755 index 54c068f4e2..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/runrestclient.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/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" - -if [ x$PYTHON_LIB != x ]; then -echo "Using Python library installed at $PYTHON_LIB" -export LD_LIBRARY_PATH=$PYTHON_LIB:$LD_LIBRARY_PATH -export PATH=$PYTHON_LIB/../bin:$PATH -fi - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/lib:$TUSCANY_SCACPP/extensions/python/lib:$TUSCANY_SDOCPP/lib:$LD_LIBRARY_PATH -export PYTHONPATH=$TUSCANY_SCACPP/extensions/python/lib:$PYTHONPATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=sample.customer.CustomerRestClientComponent -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -export CUSTOMER_DIR=$TUSCANY_SCACPP_ROOT/sample.customer - -cd $TUSCANY_SCACPP_ROOT/sample.customer.restclient -python CustomerRestClient.py diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/sample.customer.restclient.composite b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/sample.customer.restclient.composite deleted file mode 100644 index 15072f28f8..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer.restclient/sample.customer.restclient.composite +++ /dev/null @@ -1,33 +0,0 @@ -<?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.customer.restclient"> - - <reference name="CustomerResource"> - <interface.rest/> - <binding.rest/> - </reference> - - <reference name="CustomerCommand"> - <binding.rest/> - </reference> - -</composite>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/2345.xml b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/2345.xml deleted file mode 100644 index 48083380ea..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/2345.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?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. ---> -<ns0:customer xmlns:ns0="http://sample.customer"><ns0:id>2345</ns0:id><ns0:firstName>John</ns0:firstName><ns0:lastName>Smith</ns0:lastName></ns0:customer>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/Customer.xsd b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/Customer.xsd deleted file mode 100644 index 1cec1b0ae6..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/Customer.xsd +++ /dev/null @@ -1,33 +0,0 @@ -<?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 targetNamespace="http://sample.customer" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - - <xsd:element name="customer"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="id" type="xsd:int" /> - <xsd:element name="firstName" type="xsd:string" /> - <xsd:element name="lastName" type="xsd:string" /> - <xsd:element name="address" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - -</xsd:schema> diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/CustomerResourceImpl.py b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/CustomerResourceImpl.py deleted file mode 100644 index 1d6796959e..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/CustomerResourceImpl.py +++ /dev/null @@ -1,59 +0,0 @@ -# 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. -# -# - -# -# This Python code implements a simple SCA component that -# manages Customer resources. -# - -import os -import shutil -from xml.etree import ElementTree as et - -qname = "{http://sample.customer}id" -dir = os.environ["CUSTOMER_DIR"] - -class CustomerResourceImpl: - "A class that manages Customer resources" - - def create(self, customer): - id = customer.findtext(qname) - print "Python - CustomerResourceImpl.create " + id - f = open(dir + "/" + id + ".xml", "w") - f.write(et.tostring(customer)) - f.close() - return id - - def retrieve(self, id): - print "Python - CustomerResourceImpl.retrieve " + id - f = open(dir + "/" + id + ".xml", "r") - customer = et.fromstring(f.read()) - f.close() - return customer - - def update(self, id, customer): - print "Python - CustomerResourceImpl.update " + id - f = open(dir + "/" + id + ".xml", "w") - f.write(et.tostring(customer)) - f.close() - - def delete(self, id): - print "Python - CustomerResourceImpl.delete " + id - shutil.copyfile(dir + "/" + id + ".xml", dir + "/" + id + "-bak.xml") - os.remove(dir + "/" + id + ".xml") diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/Makefile.am b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/Makefile.am deleted file mode 100644 index e48bb502c8..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# 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)/RestCustomer/deploy -compositedir=$(deploydir)/sample.customer - -composite_DATA = *.composite *.py *.xsd *.xml -EXTRA_DIST = *.composite *.py *.xsd *.xml diff --git a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/sample.customer.composite b/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/sample.customer.composite deleted file mode 100644 index 1ee3b2d6a2..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestCustomer/sample.customer/sample.customer.composite +++ /dev/null @@ -1,39 +0,0 @@ -<?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.customer"> - - <service name="CustomerResource"> - <interface.rest/> - <binding.rest/> - <reference>CustomerComponent</reference> - </service> - - <service name="CustomerCommand"> - <binding.rest/> - <reference>CustomerComponent</reference> - </service> - - <component name="CustomerComponent"> - <implementation.python module="CustomerResourceImpl" class="CustomerResourceImpl"/> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/RestYahoo/Makefile.am b/sca-cpp/trunk/contrib/samples/RestYahoo/Makefile.am deleted file mode 100644 index de28cf2d53..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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 deleted file mode 100644 index 79ee6c7813..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/README +++ /dev/null @@ -1,19 +0,0 @@ -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 deleted file mode 100644 index 967f2c84b1..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/README.html +++ /dev/null @@ -1,202 +0,0 @@ - -<!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 - <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </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 <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>/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 - <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </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 <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>LIBCURL_HOME=<path to libcurl></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\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 <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 deleted file mode 100644 index eb19962fe3..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.app.composite +++ /dev/null @@ -1,28 +0,0 @@ -<?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 deleted file mode 100644 index 4fcbf00e16..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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 deleted file mode 100644 index 0a87ccd815..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/YahooWebSearchClient.rb +++ /dev/null @@ -1,25 +0,0 @@ -# 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 deleted file mode 100644 index bf95f27738..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/runclient.bat +++ /dev/null @@ -1,50 +0,0 @@ -@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 deleted file mode 100755 index 7dbae64748..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo.client/runclient.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/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 deleted file mode 100644 index 7e330ca7b1..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# 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 deleted file mode 100644 index 7ba6ab80ef..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchImpl.py +++ /dev/null @@ -1,60 +0,0 @@ -# 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 deleted file mode 100644 index 210aabcf42..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/YahooWebSearchResponse.xsd +++ /dev/null @@ -1,47 +0,0 @@ -<?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 deleted file mode 100644 index a37a9be7c4..0000000000 --- a/sca-cpp/trunk/contrib/samples/RestYahoo/sample.yahoo/sample.yahoo.composite +++ /dev/null @@ -1,33 +0,0 @@ -<?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> diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/Makefile.am b/sca-cpp/trunk/contrib/samples/RubyBigBank/Makefile.am deleted file mode 100644 index ae0b4958f1..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# 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)/RubyBigBank/deploy -SUBDIRS = bigbank.account bigbank.client bigbank.wsclient -EXTRA_DIST = *.composite README.html -deploy_DATA = *.composite diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/README b/sca-cpp/trunk/contrib/samples/RubyBigBank/README deleted file mode 100644 index 6b2dba4206..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/README +++ /dev/null @@ -1,21 +0,0 @@ -Tuscany SCA for C++ Samples - Ruby BigBank Sample -=============================================== - -This sample implements the "Simplified BigBank" scenario. A whitepaper -describing the scenario based on the SCA 0.9 Assembly specification can be -found here. This sample uses multiple Ruby components, calls out to an -external Web Service via a reference, exposes the service as a Web Service -and also provides a PHP based client. - -There are two sub projects in this workspace: - - bigbank.account - This contains the source code and SCDL artifacts for the SCA BigBank - composite implementing the account services. - - - bigbank.client - A sample client which does a local call to the BigBank service. - -Additionally, there is the bigbank.app.composite file. This describes the -configuration of the SCA BigBank 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/RubyBigBank/README.html b/sca-cpp/trunk/contrib/samples/RubyBigBank/README.html deleted file mode 100644 index 6eeb377d6f..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/README.html +++ /dev/null @@ -1,312 +0,0 @@ - -<!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 - Ruby BigBank Sample</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native Samples - Ruby BigBank Sample</H1> - - <P>This sample implements the "Simplified BigBank" scenario. A whitepaper describing - the scenario based on the SCA 0.9 Assembly specification can be found - <A HREF="http://www.osoa.org/display/Main/SCA+-+Previously+Published+Specifications">here</A>. - This sample uses multiple Ruby components, calls out to an external Web Service via a reference - and exposes the service as a Web Service. - </P> - <P>The Ruby BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </P> - <P>There are three sub projects in this workspace:</P> - <UL> - <LI>bigbank.account<BR/> - This contains the source code and SCDL artifacts for the SCA Ruby BigBank - composite implementing the account services. - </LI> - <LI>bigbank.client<BR/> - A sample client which does a local call to the BigBank service. - </LI> - <LI>bigbank.wsclient<BR/> - A sample client which uses an SCA Web Service reference to make a remote - call to the BigBank service. - </LI> - </UL> - <P>Additionally, there is the bigbank.app.composite file. This - describes the configuration of the SCA BigBank composite deployed to the SCA - runtime. - </P> - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#linuxbld">Building the Ruby BigBank sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxrun">Running the Ruby BigBank sample on Linux and Mac OS X:</A></LI> - <UL> - <LI><A HREF="#linuxbasic">Running the basic client</A></LI> - <LI><A HREF="#linuxws">Running with Web Service clients</A></LI> - </UL> - <LI><A HREF="#winbld">Building the Ruby BigBank sample on Windows</A></LI> - <LI><A HREF="#winrun">Running the Ruby BigBank sample on Windows:</A></LI> - <UL> - <LI><A HREF="#winbasic">Running the basic client</A></LI> - <LI><A HREF="#winws">Running with Web Service clients</A></LI> - </UL> - <LI><A HREF="#help">Getting help</A></LI> - </OL> - </DIV> - - - <DIV CLASS="section"> - <A NAME="linuxbld"><H2>Building the Ruby BigBank sample on Linux and Mac OS X</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>As the Ruby BigBank sample is based on Ruby scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the Ruby samples only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples</LI> - <LI>./configure --enable-ruby --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/RubyBigBank - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="linuxrun"><H2>Running the Ruby BigBank sample on Linux and Mac OS X</H2></A> - <A NAME="linuxbasic"><H3>BigBank with basic client</H3></A> - <OL> - <LI>The Ruby BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services 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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples/RubyBigBank/deploy/bigbank.client</LI> - <LI>./runclient.sh</LI> - </UL> - </LI> - </OL> - <A NAME="linuxws"><H3>BigBank with Web Service clients</H3></A> - <OL> - <LI>The Ruby BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </LI> - <LI>Ensure you have enabled Axis2/C to run Tuscany SCA services. Follow the instructions - found <A HREF="../../doc/Axis2CWSExtension.html#deploy">here</A>. - </LI> - <LI>Start the Axis2/C simple http server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>/samples/RubyBigBank/deploy/bigbank.account</LI> - <LI>./runwsserver.sh</LI> - </OL> - </LI> - <LI>Now run the Web Service client: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples/RubyBigBank/deploy/bigbank.wsclient</LI> - <LI>./runwsclient.sh</LI> - </UL> - </LI> - </OL> - </LI> - <LI>The PHP web client detailed in the - <A HREF="../CppBigBank/README.html">CppBigBank</A> sample can also be used - with the Ruby BigBank service that is served by the Axis2/C http server started above. - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winbld"><H2>Building the Ruby BigBank sample on Windows</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO> - </UL></LI> - </LI> - <LI>As this sample is based on Ruby scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\RubyBigBank</LI> - <LI>deploy.bat</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winrun"><H2>Running the Ruby BigBank sample on Windows</H2></A> - <A NAME="winbasic"><H3>BigBank with basic client</H3></A> - <OL> - <LI>The Ruby BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services 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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\RubyBigBank\deploy\bigbank.client</LI> - <LI>runclient.bat</LI> - </UL> - </LI> - </OL> - <A NAME="winws"><H3>BigBank with Web Service clients</H3></A> - <OL> - <LI>The Ruby BigBank sample requires the following extensions: - <UL> - <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI> - <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI> - </UL> - Please follow the documentation to ensure you have these extensions built and installed - on your system - </LI> - <LI>Ensure you have enabled Axis2/C to run Tuscany SCA services. Follow the instructions - found <A HREF="../../doc/Axis2CWSExtension.html#deploy">here</A>. - </LI> - <LI>Start the Axis2/C simple http server: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - </UL> - </LI> - <LI>cd <tuscany_sca_install_dir>\samples\RubyBigBank\deploy\bigbank.account - </LI> - <LI>runwsserver.bat</LI> - </OL> - </LI> - <LI>Now run the Web Service client: - <OL> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - <LI>AXIS2C_HOME=<path to Axis2/C version 0.96></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples/RubyBigBank/deploy/bigbank.wsclient</LI> - <LI>./runwsclient.bat</LI> - </UL> - </LI> - </OL> - </LI> - <LI>The PHP web client detailed in the - <A HREF="../CppBigBank/README.html">CppBigBank</A> sample can also be used - with the Ruby BigBank service that is served by the Axis2/C http server started above. - </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 <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/RubyBigBank/bigbank.account/AccountDataServiceImpl.rb b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/AccountDataServiceImpl.rb deleted file mode 100644 index 8ae0e23bab..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/AccountDataServiceImpl.rb +++ /dev/null @@ -1,72 +0,0 @@ -# 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 "rexml/document" -include REXML - -class AccountDataServiceImpl - - def initialize() - print "Ruby - AccountDataServiceImpl.initialize\n" - end - - def getCheckingAccount(id) - print "Ruby - AccountDataServiceImpl.getCheckingAccount ", id, "\n" - - result = Document.new <<-eof - <CheckingAccount xmlns="http://www.bigbank.com/AccountService" - xsi:type="CheckingAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <accountNumber>#{ id.to_s + "_CHA12345"}</accountNumber> - <balance>1500.0</balance> - </CheckingAccount> - eof - - return result - end - - def getSavingsAccount(id) - print "Ruby - AccountDataServiceImpl.getSavingsAccount ", id, "\n" - - result = Document.new <<-eof - <SavingsAccount xmlns="http://www.bigbank.com/AccountService" - xsi:type="SavingsAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <accountNumber>#{ id.to_s + "_SAA12345"}</accountNumber> - <balance>1500.0</balance> - </SavingsAccount> - eof - - return result - end - - def getStockAccount(id) - print "Ruby - AccountDataServiceImpl.getStockAccount ", id, "\n" - - result = Document.new <<-eof - <StockAccount xmlns="http://www.bigbank.com/AccountService" - xsi:type="StockAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <accountNumber>#{ id.to_s + "_STA12345"}</accountNumber> - <symbol>IBM</symbol> - <quantity>100</quantity> - <balance></balance> - </StockAccount> - eof - - return result - end - -end diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/AccountService.wsdl b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/AccountService.wsdl deleted file mode 100644 index b83c453462..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/AccountService.wsdl +++ /dev/null @@ -1,126 +0,0 @@ -<?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. ---> - -<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.bigbank.com/AccountService" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.bigbank.com/AccountService" - name="AccountService"> - - <wsdl:types> - <xsd:schema - targetNamespace="http://www.bigbank.com/AccountService" - xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - - <xsd:element name="getAccountReport"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerID" - type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:element name="getAccountReportResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="result" - type="tns:AccountReport" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="AccountReport"> - <xsd:sequence> - <xsd:element name="checking" - type="tns:CheckingAccount" maxOccurs="unbounded" /> - <xsd:element name="savings" - type="tns:SavingsAccount" maxOccurs="unbounded" /> - <xsd:element name="stocks" type="tns:StockAccount" - maxOccurs="unbounded" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="StockAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="symbol" type="xsd:string" /> - <xsd:element name="quantity" type="xsd:integer" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="CheckingAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="SavingsAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - </xsd:schema> - </wsdl:types> - - <wsdl:message name="getAccountReportRequest"> - <wsdl:part element="tns:getAccountReport" - name="getAccountReportRequest" /> - </wsdl:message> - - <wsdl:message name="getAccountReportResponse"> - <wsdl:part element="tns:getAccountReportResponse" - name="getAccountReportResponse" /> - </wsdl:message> - - <wsdl:portType name="AccountService"> - <wsdl:operation name="getAccountReport"> - <wsdl:input message="tns:getAccountReportRequest" /> - <wsdl:output message="tns:getAccountReportResponse" /> - </wsdl:operation> - </wsdl:portType> - - <wsdl:binding name="AccountServiceSOAP" type="tns:AccountService"> - <soap:binding style="document" - transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="getAccountReport"> - <soap:operation - soapAction="http://www.bigbank.com/AccountService/getAccountReport" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - - <wsdl:service name="AccountService"> - <wsdl:port binding="tns:AccountServiceSOAP" - name="AccountServiceSOAP"> - <soap:address - location="http://localhost:9090/axis2/services/bigbank.AccountManagementComponent/AccountService" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions> diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/AccountServiceImpl.rb b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/AccountServiceImpl.rb deleted file mode 100644 index aab789ca13..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/AccountServiceImpl.rb +++ /dev/null @@ -1,82 +0,0 @@ -# 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 "rexml/document" -include REXML - -class AccountServiceImpl - - attr_writer :accountDataService - attr_writer :stockQuoteService - attr_writer :currency - - def initialize() - print "Ruby - AccountServiceImpl.initialize\n" - end - - def getAccountReport(customerID) - - # Get the checking account info - checking = @accountDataService.getCheckingAccount(customerID) - - # Get the savings account info - savings = @accountDataService.getSavingsAccount(customerID) - - # Get the stocks account info - stock = @accountDataService.getStockAccount(customerID); - symbol = stock.root.elements["symbol"].text - quantity = stock.root.elements["quantity"].text - - # Get the stock price - price = @stockQuoteService.getQuote(symbol); - - # Convert to the configured currency - price = price.to_f * 0.80 if @currency == "EUR" - - # Calculate the balance - balance = price.to_f * quantity.to_f - - # Form the AccountReport document - report = Document.new <<-eof - <AccountReport xmlns="http://www.bigbank.com/AccountService" - xsi:type="AccountReport" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - - <checking> - <accountNumber>#{ checking.root.elements["accountNumber"].text }</accountNumber> - <balance>#{ checking.root.elements["balance"].text }</balance> - </checking> - - <savings> - <accountNumber>#{ savings.root.elements["accountNumber"].text }</accountNumber> - <balance>#{ savings.root.elements["balance"].text }</balance> - </savings> - - <stocks> - <accountNumber>#{ stock.root.elements["accountNumber"].text }</accountNumber> - <symbol>#{ symbol }</symbol> - <quantity>#{ quantity }</quantity> - <balance>#{ balance }</balance> - </stocks> - - </AccountReport> - eof - - return report - end - -end diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/Makefile.am b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/Makefile.am deleted file mode 100644 index 6e5ec38414..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -# 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)/RubyBigBank/deploy -compositedir=$(deploydir)/bigbank.account - -composite_SCRIPTS = runwsserver.sh - -composite_DATA = *.composite *.wsdl *.xsd *.rb -EXTRA_DIST = *.composite *.wsdl *.xsd runwsserver.sh *.rb diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/StockQuoteServiceImpl.rb b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/StockQuoteServiceImpl.rb deleted file mode 100644 index 7f8634072c..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/StockQuoteServiceImpl.rb +++ /dev/null @@ -1,52 +0,0 @@ -# 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 "rexml/document" -include REXML - -class StockQuoteServiceImpl - - attr_writer :webService - - def initialize() - print "Ruby - StockQuoteServiceImpl.initialize\n" - end - - def getQuote(symbol) - print "Ruby - StockQuoteServiceImpl.getQuote ", symbol, "\n" - - price = 0 - catch (:RuntimeError) do - begin - - result = @webService.GetQuote(symbol) - doc = Document.new(result) - price = doc.root.elements["Stock"].elements["Last"].text; - - rescue - # offline or StockQuote web service is down - price = 95.0 - end - end - - print "Ruby - stock price = ", price, "\n" - - return price.to_f - end - -end
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/StockQuoteTypes.xsd b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/StockQuoteTypes.xsd deleted file mode 100644 index 2f7012b5fb..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/StockQuoteTypes.xsd +++ /dev/null @@ -1,40 +0,0 @@ -<?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. ---> - -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <xs:element name="StockQuotes" type="tStockQuotes"/> - <xs:complexType name="tStockQuotes"> - <xs:sequence> - <xs:element name="Stock" type="tStock" minOccurs="0" maxOccurs="unbounded"/> - <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:anyAttribute namespace="##any" processContents="lax"/> - </xs:complexType> - - <xs:complexType name="tStock"> - <xs:sequence> - <xs:element minOccurs="0" maxOccurs="1" name="Symbol" type="xs:string"/> - <xs:element minOccurs="0" maxOccurs="1" name="Last" type="xs:float"/> - <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:anyAttribute namespace="##any" processContents="lax"/> - </xs:complexType> -</xs:schema>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/StockQuoteWebService.wsdl b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/StockQuoteWebService.wsdl deleted file mode 100644 index c14f97c87b..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/StockQuoteWebService.wsdl +++ /dev/null @@ -1,165 +0,0 @@ -<?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. ---> - -<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:s="http://www.w3.org/2001/XMLSchema" - xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" - xmlns:tns="http://www.webserviceX.NET/" - xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" - xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" - targetNamespace="http://www.webserviceX.NET/" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> - <wsdl:types> - <s:schema elementFormDefault="qualified" - targetNamespace="http://www.webserviceX.NET/"> - <s:element name="GetQuote"> - <s:complexType> - <s:sequence> - <s:element minOccurs="0" maxOccurs="1" - name="symbol" type="s:string" /> - </s:sequence> - </s:complexType> - - </s:element> - <s:element name="GetQuoteResponse"> - <s:complexType> - <s:sequence> - <s:element minOccurs="0" maxOccurs="1" - name="GetQuoteResult" type="s:string" /> - </s:sequence> - </s:complexType> - </s:element> - <s:element name="string" nillable="true" type="s:string" /> - - </s:schema> - </wsdl:types> - <wsdl:message name="GetQuoteSoapIn"> - <wsdl:part name="parameters" element="tns:GetQuote" /> - </wsdl:message> - <wsdl:message name="GetQuoteSoapOut"> - <wsdl:part name="parameters" element="tns:GetQuoteResponse" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpGetIn"> - - <wsdl:part name="symbol" type="s:string" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpGetOut"> - <wsdl:part name="Body" element="tns:string" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpPostIn"> - <wsdl:part name="symbol" type="s:string" /> - </wsdl:message> - <wsdl:message name="GetQuoteHttpPostOut"> - - <wsdl:part name="Body" element="tns:string" /> - </wsdl:message> - <wsdl:portType name="StockQuoteSoap"> - <wsdl:operation name="GetQuote"> - <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"> - Get Stock quote for a company Symbol - </documentation> - <wsdl:input message="tns:GetQuoteSoapIn" /> - <wsdl:output message="tns:GetQuoteSoapOut" /> - </wsdl:operation> - - </wsdl:portType> - <wsdl:portType name="StockQuoteHttpGet"> - <wsdl:operation name="GetQuote"> - <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"> - Get Stock quote for a company Symbol - </documentation> - <wsdl:input message="tns:GetQuoteHttpGetIn" /> - <wsdl:output message="tns:GetQuoteHttpGetOut" /> - </wsdl:operation> - </wsdl:portType> - - <wsdl:portType name="StockQuoteHttpPost"> - <wsdl:operation name="GetQuote"> - <documentation xmlns="http://schemas.xmlsoap.org/wsdl/"> - Get Stock quote for a company Symbol - </documentation> - <wsdl:input message="tns:GetQuoteHttpPostIn" /> - <wsdl:output message="tns:GetQuoteHttpPostOut" /> - </wsdl:operation> - </wsdl:portType> - <wsdl:binding name="StockQuoteSoap" type="tns:StockQuoteSoap"> - - <soap:binding transport="http://schemas.xmlsoap.org/soap/http" - style="document" /> - <wsdl:operation name="GetQuote"> - <soap:operation - soapAction="http://www.webserviceX.NET/GetQuote" style="document" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - - </wsdl:operation> - </wsdl:binding> - <wsdl:binding name="StockQuoteHttpGet" - type="tns:StockQuoteHttpGet"> - <http:binding verb="GET" /> - <wsdl:operation name="GetQuote"> - <http:operation location="/GetQuote" /> - <wsdl:input> - <http:urlEncoded /> - </wsdl:input> - - <wsdl:output> - <mime:mimeXml part="Body" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - <wsdl:binding name="StockQuoteHttpPost" - type="tns:StockQuoteHttpPost"> - <http:binding verb="POST" /> - <wsdl:operation name="GetQuote"> - <http:operation location="/GetQuote" /> - - <wsdl:input> - <mime:content type="application/x-www-form-urlencoded" /> - </wsdl:input> - <wsdl:output> - <mime:mimeXml part="Body" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - <wsdl:service name="StockQuote"> - - <wsdl:port name="StockQuoteSoap" binding="tns:StockQuoteSoap"> - <soap:address - location="http://www.webservicex.net/stockquote.asmx" /> - </wsdl:port> - <wsdl:port name="StockQuoteHttpGet" - binding="tns:StockQuoteHttpGet"> - <http:address - location="http://www.webservicex.net/stockquote.asmx" /> - </wsdl:port> - <wsdl:port name="StockQuoteHttpPost" - binding="tns:StockQuoteHttpPost"> - <http:address - location="http://www.webservicex.net/stockquote.asmx" /> - </wsdl:port> - - </wsdl:service> -</wsdl:definitions>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/bigbank.account.composite b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/bigbank.account.composite deleted file mode 100644 index 8fff8425a1..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/bigbank.account.composite +++ /dev/null @@ -1,53 +0,0 @@ -<?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="bigbank.account"> - - <service name="AccountService"> - <interface.wsdl interface="http://www.bigbank.com/AccountService#wsdl.interface(AccountService)"/> - <!-- The endpoint is optional --> - <!-- <binding.ws endpoint="http://www.bigbank.com/AccountService#wsdl.endpoint(AccountService/AccountServiceSOAP)"/> --> - <binding.ws/> - <reference>AccountServiceComponent</reference> - </service> - - <component name="AccountServiceComponent"> - <implementation.ruby script="AccountServiceImpl.rb" class="AccountServiceImpl"/> - <reference name="accountDataService">AccountDataServiceComponent</reference> - <reference name="stockQuoteService">StockQuoteServiceComponent</reference> - <property name="currency">USD</property> - </component> - - <component name="AccountDataServiceComponent"> - <implementation.ruby script="AccountDataServiceImpl.rb" class="AccountDataServiceImpl"/> - </component> - - <component name="StockQuoteServiceComponent"> - <implementation.ruby script="StockQuoteServiceImpl.rb" class="StockQuoteServiceImpl"/> - <reference name="webService">StockQuoteWebService</reference> - </component> - - <reference name="StockQuoteWebService"> - <interface.wsdl interface="http://www.webserviceX.NET/#wsdl.interface(StockQuoteSoap)"/> - <binding.ws endpoint="http://www.webserviceX.NET/#wsdl.endpoint(StockQuote/StockQuoteSoap)"/> - </reference> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/runwsserver.bat b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/runwsserver.bat deleted file mode 100644 index 3ab4275436..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/runwsserver.bat +++ /dev/null @@ -1,51 +0,0 @@ -@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 "%AXIS2C_HOME%" == "" ( -echo "AXIS2C_HOME not set" -goto end -) -echo Using Axis2C installed at %AXIS2C_HOME% - -set APFULLDIR=%~d0%~p0 -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ -set TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -rem Run the server -set PATH=%TUSCANY_SCACPP%\bin;%TUSCANY_SCACPP%\extensions\cpp\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH% - -cd %AXIS2C_HOME%\bin -.\axis2_http_server.exe - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/runwsserver.sh b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/runwsserver.sh deleted file mode 100755 index e3bbca46c6..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.account/runwsserver.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/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" - -if [ x$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi -echo "Using Axis2C installed at $AXIS2C_HOME" - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/extensions/cpp/lib:$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$AXIS2C_HOME/lib:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd $AXIS2C_HOME/bin -./axis2_http_server diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.app.composite b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.app.composite deleted file mode 100644 index dd94e61e5b..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.app.composite +++ /dev/null @@ -1,33 +0,0 @@ -<?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="bigbank.app"> - - <component name="bigbank.AccountManagementComponent"> - <implementation.composite name="bigbank.account"/> - </component> - - <component name="bigbank.AccountWSClientComponent"> - <implementation.composite name="bigbank.wsclient"/> - <reference name="AccountService">bigbank.AccountManagementComponent/AccountService</reference> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/AccountClient.rb b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/AccountClient.rb deleted file mode 100644 index 31c0acc909..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/AccountClient.rb +++ /dev/null @@ -1,40 +0,0 @@ -# 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") - -accountService = SCA::locateService("AccountServiceComponent") - -report = accountService.getAccountReport(1234) - -checking = report.root.elements["checking"] -savings = report.root.elements["savings"] -stocks = report.root.elements["stocks"] - -print "\n" -print "Checking account: ", checking.elements["accountNumber"].text.strip, "\n" -print "Balance: ", checking.elements["balance"].text.strip, "\n" - -print "Savings account: ", savings.elements["accountNumber"].text.strip, "\n" -print "Balance: ", savings.elements["balance"].text.strip, "\n" - -print "Stocks account:", stocks.elements["accountNumber"].text.strip, "\n" -print "Symbol: ", stocks.elements["symbol"].text.strip, "\n" -print "Quantity: ", stocks.elements["quantity"].text.strip, "\n" -print "Balance: ", stocks.elements["balance"].text.strip, "\n" diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/Makefile.am b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/Makefile.am deleted file mode 100644 index 4e4936746a..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/RubyBigBank/deploy -clientdir=$(deploydir)/bigbank.client - -client_DATA = *.rb -client_SCRIPTS = runclient.sh -EXTRA_DIST = runclient.sh *.rb diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/runclient.bat b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/runclient.bat deleted file mode 100644 index 0495237f7f..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/runclient.bat +++ /dev/null @@ -1,51 +0,0 @@ -@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 "%AXIS2C_HOME%" == "" ( -echo "AXIS2C_HOME not set" -goto end -) -echo Using Axis2C installed at %AXIS2C_HOME% - -rem Run the client -set PATH=%TUSCANY_SCACPP%\extensions\ruby\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH% - -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ -set TUSCANY_SCACPP_COMPONENT=bigbank.AccountManagementComponent -set TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd %TUSCANY_SCACPP_ROOT%\bigbank.client -ruby -I%TUSCANY_SCACPP%\extensions\ruby\bin AccountClient.rb - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/runclient.sh b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/runclient.sh deleted file mode 100755 index 94d5cd6ff8..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.client/runclient.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/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" - -if [ x$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi -echo "Using Axis2C installed at $AXIS2C_HOME" - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/extensions/ruby/lib:$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$AXIS2C_HOME/lib:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=bigbank.AccountManagementComponent -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd $TUSCANY_SCACPP_ROOT/bigbank.client -ruby -I$TUSCANY_SCACPP/extensions/ruby/lib AccountClient.rb diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/AccountService.wsdl b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/AccountService.wsdl deleted file mode 100644 index b83c453462..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/AccountService.wsdl +++ /dev/null @@ -1,126 +0,0 @@ -<?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. ---> - -<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:tns="http://www.bigbank.com/AccountService" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - xmlns:xsd="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.bigbank.com/AccountService" - name="AccountService"> - - <wsdl:types> - <xsd:schema - targetNamespace="http://www.bigbank.com/AccountService" - xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - - <xsd:element name="getAccountReport"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="customerID" - type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:element name="getAccountReportResponse"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="result" - type="tns:AccountReport" /> - </xsd:sequence> - </xsd:complexType> - </xsd:element> - - <xsd:complexType name="AccountReport"> - <xsd:sequence> - <xsd:element name="checking" - type="tns:CheckingAccount" maxOccurs="unbounded" /> - <xsd:element name="savings" - type="tns:SavingsAccount" maxOccurs="unbounded" /> - <xsd:element name="stocks" type="tns:StockAccount" - maxOccurs="unbounded" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="StockAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="symbol" type="xsd:string" /> - <xsd:element name="quantity" type="xsd:integer" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="CheckingAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="SavingsAccount"> - <xsd:sequence> - <xsd:element name="accountNumber" type="xsd:string" /> - <xsd:element name="balance" type="xsd:float" /> - </xsd:sequence> - </xsd:complexType> - </xsd:schema> - </wsdl:types> - - <wsdl:message name="getAccountReportRequest"> - <wsdl:part element="tns:getAccountReport" - name="getAccountReportRequest" /> - </wsdl:message> - - <wsdl:message name="getAccountReportResponse"> - <wsdl:part element="tns:getAccountReportResponse" - name="getAccountReportResponse" /> - </wsdl:message> - - <wsdl:portType name="AccountService"> - <wsdl:operation name="getAccountReport"> - <wsdl:input message="tns:getAccountReportRequest" /> - <wsdl:output message="tns:getAccountReportResponse" /> - </wsdl:operation> - </wsdl:portType> - - <wsdl:binding name="AccountServiceSOAP" type="tns:AccountService"> - <soap:binding style="document" - transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="getAccountReport"> - <soap:operation - soapAction="http://www.bigbank.com/AccountService/getAccountReport" /> - <wsdl:input> - <soap:body use="literal" /> - </wsdl:input> - <wsdl:output> - <soap:body use="literal" /> - </wsdl:output> - </wsdl:operation> - </wsdl:binding> - - <wsdl:service name="AccountService"> - <wsdl:port binding="tns:AccountServiceSOAP" - name="AccountServiceSOAP"> - <soap:address - location="http://localhost:9090/axis2/services/bigbank.AccountManagementComponent/AccountService" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions> diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/AccountWSClient.rb b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/AccountWSClient.rb deleted file mode 100644 index 6775b80f7a..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/AccountWSClient.rb +++ /dev/null @@ -1,40 +0,0 @@ -# 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") - -accountService = SCA::locateService("AccountService") - -report = accountService.getAccountReport(1234) - -checking = report.root.elements["checking"] -savings = report.root.elements["savings"] -stocks = report.root.elements["stocks"] - -print "\n\n" -print "Checking account #: ", checking.elements["accountNumber"].text.strip, "\n" -print "Balance: ", checking.elements["balance"].text.strip, "\n" - -print "Savings account #: ", savings.elements["accountNumber"].text.strip, "\n" -print "Balance: ", savings.elements["balance"].text.strip, "\n" - -print "Stocks account #:", stocks.elements["accountNumber"].text.strip, "\n" -print "Symbol: ", stocks.elements["symbol"].text.strip, "\n" -print "Quantity: ", stocks.elements["quantity"].text.strip, "\n" -print "Balance: ", stocks.elements["balance"].text.strip, "\n" diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/Makefile.am b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/Makefile.am deleted file mode 100644 index 23f8b55959..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/RubyBigBank/deploy -clientdir=$(deploydir)/bigbank.wsclient - -client_DATA = *.rb *.composite *.wsdl -client_SCRIPTS = runwsclient.sh -EXTRA_DIST = runwsclient.sh *.rb *.composite *.wsdl diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/bigbank.wsclient.composite b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/bigbank.wsclient.composite deleted file mode 100644 index f484a2fc7c..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/bigbank.wsclient.composite +++ /dev/null @@ -1,29 +0,0 @@ -<?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="bigbank.wsclient"> - - <reference name="AccountService"> - <interface.wsdl interface="http://www.bigbank.com/AccountService#wsdl.interface(AccountService)"/> - <binding.ws/> - </reference> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.bat b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.bat deleted file mode 100644 index 6e1bb27b4a..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.bat +++ /dev/null @@ -1,51 +0,0 @@ -@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 "%AXIS2C_HOME%" == "" ( -echo "AXIS2C_HOME not set" -goto end -) -echo Using Axis2C installed at %AXIS2C_HOME% - -rem Run the client -set PATH=%TUSCANY_SCACPP%\extensions\ruby\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%AXIS2C_HOME%\lib;%PATH% - -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ -set TUSCANY_SCACPP_COMPONENT=bigbank.AccountWSClientComponent -set TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd %TUSCANY_SCACPP_ROOT%\bigbank.wsclient -ruby -I%TUSCANY_SCACPP%\extensions\ruby\bin AccountWSClient.rb - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.sh b/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.sh deleted file mode 100755 index d50e6a4b0a..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/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" - -if [ x$AXIS2C_HOME = x ]; then -echo "AXIS2C_HOME not set" -exit; -fi -echo "Using Axis2C installed at $AXIS2C_HOME" - -export LD_LIBRARY_PATH=$TUSCANY_SCACPP/extensions/ruby/lib:$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$AXIS2C_HOME/lib:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=bigbank.AccountWSClientComponent -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd $TUSCANY_SCACPP_ROOT/bigbank.wsclient -ruby -I$TUSCANY_SCACPP/extensions/ruby/lib AccountWSClient.rb diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/Makefile.am b/sca-cpp/trunk/contrib/samples/RubyCalculator/Makefile.am deleted file mode 100644 index 246ea1852f..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -# 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)/RubyCalculator/deploy -SUBDIRS = sample.calculator sample.calculator.client -EXTRA_DIST = *.composite README.html -deploy_DATA = *.composite diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/README b/sca-cpp/trunk/contrib/samples/RubyCalculator/README deleted file mode 100644 index 670f561dc1..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/README +++ /dev/null @@ -1,20 +0,0 @@ -Tuscany SCA for C++ Samples - Calculator Sample -=============================================== - -This is a very simple sample to show how an SCA composite can wire together -two components to implement a Calculator service and expose that service as -a Web Service. - -There are two sub projects in this workspace: - - sample.calculator - This contains the source code and SCDL artifacts for the SCA Calculator. - composite implementing the sample Calculator. - - - sample.calculator.client - A sample client which does a local call to the Calculator service. - -Additionally, there is the sample.calculator.app.composite file. This -describes the configuration of the SCA Calculator 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/RubyCalculator/README.html b/sca-cpp/trunk/contrib/samples/RubyCalculator/README.html deleted file mode 100644 index bb6fe7e0ea..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/README.html +++ /dev/null @@ -1,187 +0,0 @@ - -<!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 - Ruby Calculator Sample</TITLE> -</HEAD> - -<BODY> -<DIV ID="bodyColumn"> - <DIV ID="contentBox"> - <DIV CLASS="section"> - <H1>Tuscany SCA Native Samples - Ruby Calculator Sample</H1> - - <P>This is a very simple sample to show how an SCA composite can wire - together two Ruby components to implement a Calculator service and invoke - the service via a local client. - </P> - <P>There are two sub projects in this workspace:</P> - <UL> - <LI>sample.calculator<BR/> - This contains the Ruby scripts and SCDL artifacts for the SCA Calculator - composite implementing the sample Calculator. - </LI> - <LI>sample.calculator.client<BR/> - A sample client which does a local call to the Calculator service. - </LI> - </UL> - <P>Additionally, there is the sample.calculator.app.composite file. This - describes the configuration of the SCA Calculator composite deployed to the SCA - runtime. - </P> - </DIV> - - <DIV CLASS="section"> - <H2>Contents</H2> - <OL> - <LI><A HREF="#linuxbld">Building the Ruby samples on Linux and Mac OS X</A></LI> - <LI><A HREF="#linuxrun">Running the Ruby Calculator sample on Linux and Mac OS X</A></LI> - <LI><A HREF="#winbld">Building the Ruby Calculator sample on Windows</A></LI> - <LI><A HREF="#winrun">Running the Ruby Calculator 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 samples on Linux and Mac OS X</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>/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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL></LI> - </LI> - <LI>As the Ruby Calculator sample is based on Ruby scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the Ruby samples only with the following command sequence: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples</LI> - <LI>./configure --enable-ruby --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/RubyCalculator</LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="linuxrun"><H2>Running the Ruby Calculator sample on Linux and Mac OS X</H2></A> - <OL> - <LI>The Ruby Calculator sample requires the following extension: - <UL> - <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI> - </UL> - Please follow the documentation to ensure you have this extension built and installed - on your system - </LI> - - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>/samples/RubyCalculator/deploy/sample.calculator.client</LI> - <LI>./runclient.sh</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winbld"><H2>Building the Ruby Calculator sample on Windows</H2></A> - <P>If using the binary distribution the samples are built and installed in - <tuscany_sca_install_dir>\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=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>As this sample is based on Ruby scripts, a specific compilation step is not necessary - - only deployment is required. Deploy the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\RubyCalculator</LI> - <LI>deploy.bat</LI> - </UL> - </LI> - </OL> - </DIV> - - <DIV CLASS="section"> - <A NAME="winrun"><H2>Running the Ruby Calculator sample on Windows</H2></A> - <OL> - <LI>The Ruby Calculator sample requires the following extension: - <UL> - <LI><A HREF="../../doc/RubyExtension.html">Ruby Extension</A></LI> - </UL> - Please follow the documentation to ensure you have this extension built and installed - on your system - </LI> - <LI>The following environment variables are required: - <UL> - <LI>TUSCANY_SCACPP=<path to installed Tuscany SCA></LI> - <LI>TUSCANY_SDOCPP=<path to installed Tuscany SDO></LI> - </UL> - </LI> - <LI>Run the sample with the following commands: - <UL> - <LI>cd <tuscany_sca_install_dir>\samples\RubyCalculator\deploy\sample.calculator.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 <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/RubyCalculator/sample.calculator.app.composite b/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.app.composite deleted file mode 100644 index ada4d89a1c..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.app.composite +++ /dev/null @@ -1,28 +0,0 @@ -<?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.calculator.app"> - - <component name="sample.calculator.CalculatorComponent"> - <implementation.composite name="sample.calculator" /> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/CalculatorClient.rb b/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/CalculatorClient.rb deleted file mode 100644 index 253928df0c..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/CalculatorClient.rb +++ /dev/null @@ -1,25 +0,0 @@ -# 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") - -calculator = SCA::locateService("CalculatorComponent") - -x = calculator.div(5, 2) -print x, "\n" diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/Makefile.am b/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/Makefile.am deleted file mode 100644 index 38f61539d3..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# 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)/RubyCalculator/deploy -clientdir=$(deploydir)/sample.calculator.client - -client_DATA = *.rb -client_SCRIPTS = runclient.sh -EXTRA_DIST = runclient.sh *.rb diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/runclient.bat b/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/runclient.bat deleted file mode 100644 index 4a1079986a..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/runclient.bat +++ /dev/null @@ -1,44 +0,0 @@ -@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% - -set PATH=%TUSCANY_SCACPP%\extensions\ruby\bin;%TUSCANY_SCACPP%\bin;%TUSCANY_SDOCPP%\bin;%PATH% - -set TUSCANY_SCACPP_ROOT=%~d0%~p0\..\ -set TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorComponent -set TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd %TUSCANY_SCACPP_ROOT%\sample.calculator.client -ruby -I%TUSCANY_SCACPP%\extensions\ruby\bin CalculatorClient.rb - -:end -endlocal diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/runclient.sh b/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/runclient.sh deleted file mode 100755 index bc2d6c0904..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator.client/runclient.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/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:$LD_LIBRARY_PATH - -export TUSCANY_SCACPP_ROOT=$APFULLDIR/../ -export TUSCANY_SCACPP_COMPONENT=sample.calculator.CalculatorComponent -export TUSCANY_SCACPP_BASE_URI=http://localhost:9090 - -cd $TUSCANY_SCACPP_ROOT/sample.calculator.client -ruby -I$TUSCANY_SCACPP/extensions/ruby/lib CalculatorClient.rb diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/Calculator.wsdl b/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/Calculator.wsdl deleted file mode 100644 index 331b996ba2..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/Calculator.wsdl +++ /dev/null @@ -1,161 +0,0 @@ -<?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. ---> - -<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://sample/calculator" - targetNamespace="http://sample/calculator"> - <types> - <xs:schema targetNamespace="http://sample/calculator" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - xmlns:tns="http://sample/calculator" elementFormDefault="qualified"> - - <xs:element name="add"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="sub"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="mul"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="div"> - <xs:complexType> - <xs:sequence> - <xs:element name="param1" type="xs:float"/> - <xs:element name="param2" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - <xs:element name="result"> - <xs:complexType> - <xs:sequence> - <xs:element name="data" type="xs:float"/> - </xs:sequence> - </xs:complexType> - </xs:element> - - </xs:schema> - </types> - - <message name="addRequestMsg"> - <part name="body" element="tns:add" /> - </message> - <message name="subRequestMsg"> - <part name="body" element="tns:sub" /> - </message> - <message name="mulRequestMsg"> - <part name="body" element="tns:mul" /> - </message> - <message name="divRequestMsg"> - <part name="body" element="tns:div" /> - </message> - - <message name="calculatorResponseMsg"> - <part name="body" element="tns:result" /> - </message> - - <portType name="Calculator"> - <operation name="add"> - <input message="tns:addRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="sub"> - <input message="tns:subRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="mul"> - <input message="tns:mulRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - <operation name="div"> - <input message="tns:divRequestMsg" /> - <output message="tns:calculatorResponseMsg" /> - </operation> - </portType> - - <binding name="CalculatorBinding" - type="tns:Calculator"> - <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> - <operation name="add"> - <soap:operation soapAction="CalculatorService#add" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="sub"> - <soap:operation soapAction="CalculatorService#sub" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="mul"> - <soap:operation soapAction="CalculatorService#mul" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - <operation name="div"> - <soap:operation soapAction="CalculatorService#div" /> - <input> - <soap:body use="literal" /> - </input> - <output> - <soap:body use="literal" /> - </output> - </operation> - </binding> - - <service name="CalculatorService"> - <port name="CalculatorPort" - binding="tns:CalculatorBinding"> - <soap:address location="http://localhost:9090/axis2/services/sample.calculator.CalculatorComponent/CalculatorService" /> - </port> - </service> -</definitions> diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/CalculatorImpl.rb b/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/CalculatorImpl.rb deleted file mode 100644 index 36ed15ff9b..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/CalculatorImpl.rb +++ /dev/null @@ -1,48 +0,0 @@ -# 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. -# -# - -class CalculatorImpl - - attr_writer :divideService - - def initialize() - print "Ruby - CalculatorImpl.initialize\n" - end - - def div(arg1, arg2) - print "Ruby - CalculatorImpl.div\n" - @divideService.divide(arg1.to_f, arg2.to_f) - end - - def add(arg1, arg2) - print "Ruby - CalculatorImpl.add\n" - arg1.to_f + arg2.to_f - end - - def sub(arg1, arg2) - print "Ruby - CalculatorImpl.sub\n" - arg1.to_f - arg2.to_f - end - - def mul(arg1, arg2) - print "Ruby - CalculatorImpl.mul\n" - arg1.to_f * arg2.to_f - end - -end
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/DivideImpl.rb b/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/DivideImpl.rb deleted file mode 100644 index c6615bfcfa..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/DivideImpl.rb +++ /dev/null @@ -1,39 +0,0 @@ -# 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. -# -# - -class DivideImpl - - attr_writer :round - - def initialize() - print "Ruby - DivideImpl.initialize\n" - end - - def divide(arg1, arg2) - print "Ruby - DivideImpl.divide ", arg1, " / ", arg2, "\n" - res = arg1.to_f / arg2.to_f - if @round then - res = res.round - print "DivideImpl.divide rounding\n" - end - print "DivideImpl.divide ", res, "\n" - res - end - -end
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/Makefile.am b/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/Makefile.am deleted file mode 100644 index 7de5b9fdd3..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -# 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)/RubyCalculator/deploy -compositedir=$(deploydir)/sample.calculator - -composite_DATA = *.composite *.wsdl *.rb -EXTRA_DIST = *.composite *.wsdl *.rb diff --git a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/sample.calculator.composite b/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/sample.calculator.composite deleted file mode 100644 index d77ba538fe..0000000000 --- a/sca-cpp/trunk/contrib/samples/RubyCalculator/sample.calculator/sample.calculator.composite +++ /dev/null @@ -1,34 +0,0 @@ -<?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.calculator"> - - <component name="CalculatorComponent"> - <implementation.ruby script="CalculatorImpl.rb" class="CalculatorImpl"/> - <reference name="divideService">DivideComponent</reference> - </component> - - <component name="DivideComponent"> - <implementation.ruby script="DivideImpl.rb" class="DivideImpl"/> - <property name="round">true</property> - </component> - -</composite>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.demo.app.composite b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.demo.app.composite deleted file mode 100644 index 3b8738a843..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.demo.app.composite +++ /dev/null @@ -1,34 +0,0 @@ -<?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="supplychain.demo.app"> - - <component name="supplychain.DemoClient"> - <implementation.composite name="supplychain.demo"/> - <reference name="retailer">supplychain.Retailer/RetailerService</reference> - <reference name="logging">supplychain.Logging/LoggingService</reference> - </component> - - <component name="supplychain.Logging"> - <implementation.composite name="supplychain.logging"/> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.demo/DemoClientImpl.componentType b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.demo/DemoClientImpl.componentType deleted file mode 100644 index a63e4c37d3..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.demo/DemoClientImpl.componentType +++ /dev/null @@ -1,33 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <reference name="retailer"> - <interface.cpp header="Retailer.h"/> - </reference> - - <reference name="logging"> - <interface.cpp header="Logging.h"/> - </reference> - -</componentType> -
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.demo/supplychain.demo.composite b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.demo/supplychain.demo.composite deleted file mode 100644 index 20b0e49ec1..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.demo/supplychain.demo.composite +++ /dev/null @@ -1,41 +0,0 @@ -<?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="supplychain.demo"> - - <component name="DemoClient"> - <implementation.cpp library="demo" header="DemoClientImpl.h"/> - <reference name="retailer">retailer</reference> - <reference name="logging">logging</reference> - </component> - - <reference name="retailer"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl#wsdl.interface(RetailerPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl#wsdl.endpoint(RetailerService/RetailerPort)" - uri="http://localhost:9090/axis2/services/supplychain.retailer.solution/RetailerService"/> - </reference> - - <reference name="logging"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl#wsdl.interface(LoggingFacilityLogPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl#wsdl.endpoint(LoggingFacilityService/LoggingFacilityPort)"/> - </reference> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.logging/LoggerImpl.componentType b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.logging/LoggerImpl.componentType deleted file mode 100644 index e78e602635..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.logging/LoggerImpl.componentType +++ /dev/null @@ -1,28 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <service name="LoggingService"> - <interface.cpp header="Logging.h"/> - </service> - -</componentType>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.logging/LoggingFacility.wsdl b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.logging/LoggingFacility.wsdl deleted file mode 100644 index c78357b1a8..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.logging/LoggingFacility.wsdl +++ /dev/null @@ -1,37 +0,0 @@ -<?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. ---> -<wsdl:definitions name="LoggingFacility" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl" - xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> - - <wsdl:import - namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl" - location="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl" /> - - <wsdl:service name="LoggingFacilityService"> - <wsdl:port name="LoggingFacilityPort" - binding="tns:LoggingFacilitySoapBinding"> - <soap:address - location="http://localhost:9090/axis2/services/LoggingFacility" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions> diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.logging/supplychain.logging.composite b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.logging/supplychain.logging.composite deleted file mode 100644 index 2b28c8f9e2..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.logging/supplychain.logging.composite +++ /dev/null @@ -1,34 +0,0 @@ -<?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="supplychain.logging"> - - <service name="LoggingService"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl#wsdl.interface(LoggingFacilityLogPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl#wsdl.endpoint(LoggingFacilityService/LoggingFacilityPort)"/> - <reference>Logger/Logging</reference> - </service> - - <component name="Logger"> - <implementation.cpp library="logging" header="LoggerImpl.h"/> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/Manufacturer.wsdl b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/Manufacturer.wsdl deleted file mode 100644 index fb0c8a5676..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/Manufacturer.wsdl +++ /dev/null @@ -1,39 +0,0 @@ -<?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. ---> - -<wsdl:definitions name="Manufacturer" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl" - xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl"> - - <wsdl:import - namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl" - location="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl" /> - - <wsdl:service name="ManufacturerService"> - <wsdl:port name="ManufacturerPort" - binding="tns:ManufacturerSoapBinding"> - <soap:address - location="http://localhost:9090/axis2/services/Manufacturer" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/ManufacturerImpl.componentType b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/ManufacturerImpl.componentType deleted file mode 100644 index 63530bc0ee..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/ManufacturerImpl.componentType +++ /dev/null @@ -1,39 +0,0 @@ -<?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. ---> - - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <service name="ManufacturerService"> - <interface.cpp header="Manufacturer.h"/> - </service> - - <reference name="callback"> - <interface.cpp header="WarehouseCallback.h"/> - </reference> - - <reference name="logging"> - <interface.cpp header="Logging.h"/> - </reference> - - <property name="manufacturerID" type="xs:string"/> - -</componentType>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/WarehouseCallback.wsdl b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/WarehouseCallback.wsdl deleted file mode 100644 index 256671f64f..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/WarehouseCallback.wsdl +++ /dev/null @@ -1,38 +0,0 @@ -<?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. ---> - -<wsdl:definitions name="WarehouseCallback" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl" - xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl"> - - <wsdl:import - namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl" - location="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl" /> - - <wsdl:service name="WarehouseCallbackService"> - <wsdl:port name="WarehouseCallbackPort" - binding="tns:WarehouseCallbackSoapBinding"> - <soap:address - location="http://localhost:9090/axis2/services/WarehouseCallback" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/supplychain.manufacturer.composite b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/supplychain.manufacturer.composite deleted file mode 100644 index c61657c0a7..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturer/supplychain.manufacturer.composite +++ /dev/null @@ -1,50 +0,0 @@ -<?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" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - name="supplychain.manufacturer"> - - <service name="ManufacturerService"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl#wsdl.interface(ManufacturerPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl#wsdl.endpoint(ManufacturerService/ManufacturerPort)"/> - <reference>ManufacturerProcess/ManufacturerService</reference> - </service> - - <property name="manufacturerID" type="xs:string"/> - - <component name="ManufacturerProcess"> - <implementation.cpp library="manufacturer" header="ManufacturerImpl.h"/> - <reference name="callback">callback</reference> - <reference name="logging">logging</reference> - <property name="manufacturerID" source="$manufacturerID"/> - </component> - - <reference name="logging"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl#wsdl.interface(LoggingFacilityLogPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl#wsdl.endpoint(LoggingFacilityService/LoggingFacilityPort)"/> - </reference> - - <reference name="callback"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl#wsdl.interface(WarehouseCallbackPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl#wsdl.endpoint(WarehouseCallbackService/WarehouseCallbackPort)"/> - </reference> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturerA.app.composite b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturerA.app.composite deleted file mode 100644 index 1963304b83..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturerA.app.composite +++ /dev/null @@ -1,30 +0,0 @@ -<?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="supplychain.manufacturerA.app"> - - <component name="supplychain.manufacturerA"> - <implementation.composite name="supplychain.manufacturer"/> - <reference name="logging">supplychain.Logging/LoggingService</reference> - <property name="manufacturerID">manufacturerA</property> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturerB.app.composite b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturerB.app.composite deleted file mode 100644 index a2f9141f00..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturerB.app.composite +++ /dev/null @@ -1,30 +0,0 @@ -<?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="supplychain.manufacturerB.app"> - - <component name="supplychain.manufacturerB"> - <implementation.composite name="supplychain.manufacturer"/> - <reference name="logging">supplychain.Logging/LoggingService</reference> - <property name="manufacturerID">manufacturerB</property> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturerC.app.composite b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturerC.app.composite deleted file mode 100644 index a48258b6ca..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.manufacturerC.app.composite +++ /dev/null @@ -1,30 +0,0 @@ -<?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="supplychain.manufacturerC.app"> - - <component name="supplychain.manufacturerC"> - <implementation.composite name="supplychain.manufacturer"/> - <reference name="logging">supplychain.Logging/LoggingService</reference> - <property name="manufacturerID">manufacturerC</property> - </component> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer.app.composite b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer.app.composite deleted file mode 100644 index 734849de05..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer.app.composite +++ /dev/null @@ -1,66 +0,0 @@ -<?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="supplychain.retailer.app"> - - <component name="supplychain.Retailer"> - <implementation.composite name="supplychain.retailer"/> - <reference name="warehouse">supplychain.WarehouseA/WarehouseService</reference> - <reference name="warehouse">supplychain.WarehouseB/WarehouseService</reference> - <reference name="warehouse">supplychain.WarehouseC/WarehouseService</reference> - <reference name="logging">supplychain.Logging/LoggingService</reference> - </component> - - <component name="supplychain.WarehouseA"> - <implementation.composite name="supplychain.warehouse"/> - <reference name="manufacturer">supplychain.manufacturerA/ManufacturerService</reference> - <reference name="logging">supplychain.Logging/LoggingService</reference> - <property name="warehouseID">warehouseA</property> - </component> - - <component name="supplychain.WarehouseB"> - <implementation.composite name="supplychain.warehouse"/> - <reference name="manufacturer">supplychain.manufacturerB/ManufacturerService</reference> - <reference name="logging">supplychain.Logging/LoggingService</reference> - <property name="warehouseID">warehouseB</property> - </component> - - <component name="supplychain.WarehouseC"> - <implementation.composite name="supplychain.warehouse"/> - <reference name="manufacturer">supplychain.manufacturerA/ManufacturerService</reference> - <reference name="logging">supplychain.Logging/LoggingService</reference> - <property name="warehouseID">warehouseC</property> - </component> - - <wire> - <source>supplychain.manufacturerA/callback</source> - <target>supplychain.WarehouseA/WarehouseCallbackService</target> - </wire> - <wire> - <source>supplychain.manufacturerB/callback</source> - <target>supplychain.WarehouseB/WarehouseCallbackService</target> - </wire> - <wire> - <source>supplychain.manufacturerC/callback</source> - <target>supplychain.WarehouseC/WarehouseCallbackService</target> - </wire> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer/Retailer.wsdl b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer/Retailer.wsdl deleted file mode 100644 index 39bd1963f2..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer/Retailer.wsdl +++ /dev/null @@ -1,39 +0,0 @@ -<?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. ---> - -<wsdl:definitions name="Retailer" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl" - xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" - xmlns="http://schemas.xmlsoap.org/wsdl/"> - - <wsdl:import - namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl" - location="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl" /> - - <wsdl:service name="RetailerService"> - <wsdl:port name="RetailerPort" - binding="tns:RetailerSoapBinding"> - <soap:address - location="http://localhost:9090/axis2/services/Retailer" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer/RetailerImpl.componentType b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer/RetailerImpl.componentType deleted file mode 100644 index fb381ec9a6..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer/RetailerImpl.componentType +++ /dev/null @@ -1,37 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <service name="RetailerService"> - <interface.cpp header="Retailer.h"/> - </service> - - <reference name="warehouses" multiplicity="0..n"> - <interface.cpp header="Warehouse.h"/> - </reference> - - <reference name="logging"> - <interface.cpp header="Logging.h"/> - </reference> - -</componentType> -
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer/supplychain.retailer.composite b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer/supplychain.retailer.composite deleted file mode 100644 index 51a2b96b1b..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.retailer/supplychain.retailer.composite +++ /dev/null @@ -1,46 +0,0 @@ -<?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="supplychain.retailer"> - - <service name="RetailerService"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl#wsdl.interface(RetailerPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Retailer.wsdl#wsdl.endpoint(RetailerService/RetailerPort)"/> - <reference>RetailerProcess/RetailerService</reference> - </service> - - <component name="RetailerProcess"> - <implementation.cpp library="retailer" header="RetailerImpl.h"/> - <reference name="warehouses">warehouses</reference> - <reference name="logging">logging</reference> - </component> - - <reference name="warehouses" multiplicity="0..n"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl#wsdl.interface(WarehouseShipmentsPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl#wsdl.endpoint(WarehouseShipmentsService/WarehouseShipmentsPort)"/> - </reference> - - <reference name="logging"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl#wsdl.interface(LoggingFacilityLogPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl#wsdl.endpoint(LoggingFacilityService/LoggingFacilityPort)"/> - </reference> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/Warehouse.wsdl b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/Warehouse.wsdl deleted file mode 100644 index a007f9957b..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/Warehouse.wsdl +++ /dev/null @@ -1,38 +0,0 @@ -<?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. ---> - -<wsdl:definitions name="Warehouse" - xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" - targetNamespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl" - xmlns:tns="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl" - xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> - - <wsdl:import - namespace="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl" - location="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl" /> - - <wsdl:service name="WarehouseService"> - <wsdl:port name="WarehousePort" - binding="tns:WarehouseSoapBinding"> - <soap:address - location="http://localhost:9090/axis2/services/Warehouse" /> - </wsdl:port> - </wsdl:service> -</wsdl:definitions>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/WarehouseCallbackImpl.componentType b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/WarehouseCallbackImpl.componentType deleted file mode 100644 index fbc1edb462..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/WarehouseCallbackImpl.componentType +++ /dev/null @@ -1,34 +0,0 @@ -<?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. ---> - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <service name="WarehouseCallbackService"> - <interface.cpp header="WarehouseCallback.h"/> - </service> - - <reference name="logging"> - <interface.cpp header="Logging.h"/> - </reference> - - <property name="warehouseID" type="xs:string"/> - -</componentType>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/WarehouseImpl.componentType b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/WarehouseImpl.componentType deleted file mode 100644 index 7f63d3b571..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/WarehouseImpl.componentType +++ /dev/null @@ -1,39 +0,0 @@ -<?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. ---> - - -<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - - <service name="WarehouseService"> - <interface.cpp header="Warehouse.h"/> - </service> - - <reference name="manufacturer"> - <interface.cpp header="Manufacturer.h"/> - </reference> - - <reference name="logging"> - <interface.cpp header="Logging.h"/> - </reference> - - <property name="warehouseID" type="xs:string"/> - -</componentType>
\ No newline at end of file diff --git a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/supplychain.warehouse.composite b/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/supplychain.warehouse.composite deleted file mode 100644 index e44b964eb4..0000000000 --- a/sca-cpp/trunk/contrib/samples/SupplyChain/supplychain.warehouse/supplychain.warehouse.composite +++ /dev/null @@ -1,62 +0,0 @@ -<?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" - xmlns:xs="http://www.w3.org/2001/XMLSchema" - name="supplychain.warehouse"> - - <service name="WarehouseService"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl#wsdl.interface(WarehouseShipmentsPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/Warehouse.wsdl#wsdl.endpoint(WarehouseService/WarehousePort)"/> - <reference>WarehouseProcess/WarehouseService</reference> - </service> - - <service name="WarehouseCallbackService"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl#wsdl.interface(WarehouseCallbackPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl#wsdl.endpoint(WarehouseCallbackService/WarehouseCallbackPort)"/> - <reference>WarehouseCallbackProcess/WarehouseCallbackService</reference> - </service> - - <property name="warehouseID" type="xs:string"/> - - <component name="WarehouseProcess"> - <implementation.cpp library="warehouse" header="WarehouseImpl.h"/> - <reference name="manufacturer">manufacturer</reference> - <reference name="logging">logging</reference> - <property name="warehouseID" source="$warehouseID"/> - </component> - - <component name="WarehouseCallbackProcess"> - <implementation.cpp library="warehouse" header="WarehouseCallbackImpl.h"/> - <reference name="logging">logging</reference> - <property name="warehouseID" source="$warehouseID"/> - </component> - - <reference name="manufacturer"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl#wsdl.interface(ManufacturerPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-10/Manufacturer.wsdl#wsdl.endpoint(ManufacturerService/ManufacturerPort)"/> - </reference> - - <reference name="logging"> - <interface.wsdl interface="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl#wsdl.interface(LoggingFacilityLogPortType)"/> - <binding.ws endpoint="http://www.ws-i.org/SampleApplications/SupplyChainManagement/2002-08/LoggingFacility.wsdl#wsdl.endpoint(LoggingFacilityService/LoggingFacilityPort)"/> - </reference> - -</composite> diff --git a/sca-cpp/trunk/contrib/samples/autogen.sh b/sca-cpp/trunk/contrib/samples/autogen.sh deleted file mode 100755 index 18277601c8..0000000000 --- a/sca-cpp/trunk/contrib/samples/autogen.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash - -# 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. - -for i in "libtoolize --force" aclocal autoconf autoheader -do - echo -n "Running $i..." - $i || exit 1 - echo 'done.' -done - -echo -n 'Running automake...' -automake --add-missing -echo 'done.' -exit 0 - diff --git a/sca-cpp/trunk/contrib/samples/build.sh b/sca-cpp/trunk/contrib/samples/build.sh deleted file mode 100755 index c306d2a20d..0000000000 --- a/sca-cpp/trunk/contrib/samples/build.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/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. - -./configure.sh -make install - diff --git a/sca-cpp/trunk/contrib/samples/configure.ac b/sca-cpp/trunk/contrib/samples/configure.ac deleted file mode 100644 index 41cd6f4dbe..0000000000 --- a/sca-cpp/trunk/contrib/samples/configure.ac +++ /dev/null @@ -1,206 +0,0 @@ -# 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. - -dnl run autogen.sh to generate the configure script. - -AC_PREREQ(2.59) -AC_INIT(tuscany-sca-samples, 1.0-M3) -AC_CANONICAL_SYSTEM -AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) -AC_PREFIX_DEFAULT(/usr/local/tuscany/sca/samples) - -# Checks for programs. -AC_PROG_CXX -AC_PROG_CC -AC_PROG_CPP -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PROG_MAKE_SET -AC_PROG_LIBTOOL - -# Check for running on Darwin -AC_MSG_CHECKING([Checking if running on Darwin]) -UNAME=`uname -s` -if test "x$UNAME" = "xDarwin"; then - AC_DEFINE([IS_DARWIN], [1], [Set to 1 when running on Darwin - Mac OSX]) - AC_MSG_RESULT(yes) - AC_SUBST([libsuffix],[".dylib"]) - is_darwin=true -else - AC_MSG_RESULT(no) - AC_SUBST([libsuffix],[".so"]) - is_darwin=false -fi -AM_CONDITIONAL([DARWIN], [test x$is_darmin = xtrue]) - -# Checks for libraries. - -# Checks for header files. -AC_HEADER_DIRENT -AC_HEADER_STDC -AC_CHECK_HEADERS([inttypes.h stdlib.h string.h sys/time.h unistd.h]) - -# Checks for typedefs, structures, and compiler characteristics. -AC_HEADER_STDBOOL -AC_C_CONST -AC_C_INLINE - -# Checks for library functions. -AC_FUNC_CLOSEDIR_VOID -AC_FUNC_STAT -AC_FUNC_VPRINTF -AC_CHECK_FUNCS([getcwd putenv strdup]) - -# Configure TUSCANY_SCACPP and TUSCANY_SDOCPP -TUSCANY_SCACPP=`echo "$TUSCANY_SCACPP"` -if test "x$TUSCANY_SCACPP" = "x"; then - SCAPWD=`pwd` - AC_SUBST([TUSCANY_SCACPP], ["$SCAPWD/.."]) -fi - -TUSCANY_SDOCPP=`echo "$TUSCANY_SDOCPP"` -if test "x$TUSCANY_SDOCPP" = "x"; then - SCAPWD=`pwd` - AC_SUBST([TUSCANY_SDOCPP], ["$SCAPWD/../../sdo/deploy"]) -fi - -# Configure LIBXML2_INCLUDE and LIBXML2_LIB -LIBXML2_INCLUDE=`echo "$LIBXML2_INCLUDE"` -if test "x$LIBXML2_INCLUDE" = "x"; then - AC_SUBST([LIBXML2_INCLUDE], ["/usr/include/libxml2"]) -fi - -LIBXML2_LIB=`echo "$LIBXML2_LIB"` -if test "x$LIBXML2_LIB" = "x"; then - AC_SUBST([LIBXML2_LIB], ["/usr/lib"]) -fi - -# Configure GCC C++ compile options -AC_SUBST([CXXFLAGS], ["$(CXXFLAGS) -D_DEBUG -O0 -g3 -Wall -std=c++0x -fmessage-length=0"]) - -AC_MSG_CHECKING(whether to build all samples) -AC_ARG_ENABLE(all-samples, [AS_HELP_STRING([--enable-all-samples],[build all samples [default=no]])], -[ case "${enableval}" in - no) - AC_MSG_RESULT(no) - want_all_samples=false - ;; - *) - AC_MSG_RESULT(yes) - want_all_samples=true - ;; - esac ], -[ AC_MSG_RESULT(no) - want_all_samples=false ] -) -AM_CONDITIONAL([WANT_ALL_SAMPLES], [test x$want_all_samples = xtrue]) - -AC_MSG_CHECKING(whether to build C++ samples) -AC_ARG_ENABLE(cpp, [AS_HELP_STRING([--enable-cpp],[build C++ samples [default=yes]])], -[ case "${enableval}" in - no) - AC_MSG_RESULT(no) - want_cpp_samples=false - ;; - *) - AC_MSG_RESULT(yes) - want_cpp_samples=true - ;; - esac ], -[ AC_MSG_RESULT(yes) - want_cpp_samples=true ] -) -AM_CONDITIONAL([WANT_CPP_SAMPLES], [test x$want_cpp_samples = xtrue]) - -AC_MSG_CHECKING(whether to build Python samples) -AC_ARG_ENABLE(python, [AS_HELP_STRING([--enable-python],[build Python samples [default=no]])], -[ case "${enableval}" in - no) - AC_MSG_RESULT(no) - want_python_samples=false - ;; - *) - AC_MSG_RESULT(yes) - want_python_samples=true - ;; - esac ], -[ AC_MSG_RESULT(no) - want_python_samples=false ] -) -AM_CONDITIONAL([WANT_PYTHON_SAMPLES], [test x$want_python_samples = xtrue]) - -AC_MSG_CHECKING(whether to build Ruby samples) -AC_ARG_ENABLE(ruby, [AS_HELP_STRING([--enable-ruby],[build Ruby samples [default=no]])], -[ case "${enableval}" in - no) - AC_MSG_RESULT(no) - want_ruby_samples=false - ;; - *) - AC_MSG_RESULT(yes) - want_ruby_samples=true - ;; - esac ], -[ AC_MSG_RESULT(no) - want_ruby_samples=false ] -) -AM_CONDITIONAL([WANT_RUBY_SAMPLES], [test x$want_ruby_samples = xtrue]) - -AC_CONFIG_FILES([Makefile - AlertAggregator/Makefile - AlertAggregator/sample.alerter/Makefile - AlertAggregator/sample.display/Makefile - AlertAggregator/httpserver/Makefile - CppCalculator/Makefile - CppCalculator/sample.calculator/Makefile - CppCalculator/sample.calculator.client/Makefile - RubyCalculator/Makefile - RubyCalculator/sample.calculator/Makefile - RubyCalculator/sample.calculator.client/Makefile - PythonCalculator/Makefile - PythonCalculator/sample.calculator/Makefile - PythonCalculator/sample.calculator.client/Makefile - PythonWeatherForecast/Makefile - PythonWeatherForecast/sample.weather/Makefile - PythonWeatherForecast/sample.weather.client/Makefile - RestCalculator/Makefile - RestCalculator/sample.calculator/Makefile - RestCalculator/sample.calculator.restclient/Makefile - RestCalculator/httpserver/Makefile - RestCustomer/Makefile - RestCustomer/sample.customer/Makefile - RestCustomer/sample.customer.restclient/Makefile - RestCustomer/httpserver/Makefile - RestYahoo/Makefile - RestYahoo/sample.yahoo/Makefile - RestYahoo/sample.yahoo.client/Makefile - CppBigBank/Makefile - CppBigBank/bigbank.account/Makefile - CppBigBank/bigbank.client/Makefile - CppBigBank/bigbank.phpwsclient/Makefile - RubyBigBank/Makefile - RubyBigBank/bigbank.account/Makefile - RubyBigBank/bigbank.client/Makefile - RubyBigBank/bigbank.wsclient/Makefile - HttpdBigBank/Makefile - HttpdBigBank/bigbank.account/Makefile - HttpdBigBank/bigbank.accountdata/Makefile - HttpdBigBank/bigbank.wsclient/Makefile - HttpdBigBank/httpserver/Makefile - ]) -AC_OUTPUT diff --git a/sca-cpp/trunk/contrib/samples/runtest.sh b/sca-cpp/trunk/contrib/samples/runtest.sh deleted file mode 100755 index 1c016a5287..0000000000 --- a/sca-cpp/trunk/contrib/samples/runtest.sh +++ /dev/null @@ -1,159 +0,0 @@ -#!/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. - - -echo "Running CppCalculator client" -cd $TUSCANY_SCACPP/samples/CppCalculator/deploy/sample.calculator.client -r=`./runclient.sh | grep "div(5,2) = 2.5"` -if [ "x$r" == "x" ] -then - echo "CppCalculator client failed" -fi - -echo "Running CppCalculator wsclient" -cd $TUSCANY_SCACPP/samples/CppCalculator/deploy/sample.calculator -(./runwsserver.sh >/dev/null)& -cd $TUSCANY_SCACPP/samples/CppCalculator/deploy/sample.calculator.wsclient -r=`./runwsclient.sh | grep "Result = 2.500e+00"` -killall -q axis2_http_server >/dev/null -if [ "x$r" == "x" ] -then - echo "CppCalculator wsclient failed" -fi - -echo "Running CppBigBank client" -cd $TUSCANY_SCACPP/samples/CppBigBank/deploy/bigbank.client -r=`./runclient.sh | grep "Balance"` -if [ "x$r" == "x" ] -then - echo "CppBigBank client failed" -fi - -echo "Running CppBigBank wsclient" -cd $TUSCANY_SCACPP/samples/CppBigBank/deploy/bigbank.account -(./runwsserver.sh >/dev/null)& -cd $TUSCANY_SCACPP/samples/CppBigBank/deploy/bigbank.wsclient -r=`./runwsclient.sh | grep "</balance>"` -killall -q axis2_http_server >/dev/null -if [ "x$r" == "x" ] -then - echo "CppBigBank wsclient failed" -fi - -echo "Running RubyCalculator client" -cd $TUSCANY_SCACPP/samples/RubyCalculator/deploy/sample.calculator.client -r=`./runclient.sh | grep "^3"` -if [ "x$r" == "x" ] -then - echo "RubyCalculator client failed" -fi - -echo "Running RubyCalculator wsclient" -cd $TUSCANY_SCACPP/samples/RubyCalculator/deploy/sample.calculator -(./runwsserver.sh >/dev/null)& -cd $TUSCANY_SCACPP/samples/RubyCalculator/deploy/sample.calculator.wsclient -r=`./runwsclient.sh | grep "^3.0"` -killall -q axis2_http_server >/dev/null -if [ "x$r" == "x" ] -then - echo "RubyCalculator wsclient failed" -fi - -echo "Running RubyBigBank client" -cd $TUSCANY_SCACPP/samples/RubyBigBank/deploy/bigbank.client -r=`./runclient.sh | grep "Balance:"` -if [ "x$r" == "x" ] -then - echo "RubyBigBank client failed" -fi - -echo "Running RubyBigBank wsclient" -cd $TUSCANY_SCACPP/samples/RubyBigBank/deploy/bigbank.account -(./runwsserver.sh >/dev/null)& -cd $TUSCANY_SCACPP/samples/RubyBigBank/deploy/bigbank.wsclient -r=`./runwsclient.sh | grep "Balance:"` -killall -q axis2_http_server >/dev/null -if [ "x$r" == "x" ] -then - echo "RubyBigBank wsclient failed" -fi - -echo "Running PythonCalculator client" -cd $TUSCANY_SCACPP/samples/PythonCalculator/deploy/sample.calculator.client -r=`./runclient.sh | grep "div ( 5 , 2 ) = 3.0"` -if [ "x$r" == "x" ] -then - echo "PythonCalculator client failed" -fi - -echo "Running PythonCalculator wsclient" -cd $TUSCANY_SCACPP/samples/PythonCalculator/deploy/sample.calculator -(./runwsserver.sh >/dev/null)& -cd $TUSCANY_SCACPP/samples/PythonCalculator/deploy/sample.calculator.wsclient -r=`./runwsclient.sh | grep "div ( 5 , 2 ) = 3.0"` -killall -q axis2_http_server >/dev/null -if [ "x$r" == "x" ] -then - echo "PythonCalculator wsclient failed" -fi - -echo "Running PythonWeatherForecast client" -cd $TUSCANY_SCACPP/samples/PythonWeatherForecast/deploy/sample.weather.client -r=`./runclient.sh | grep "Latitude: 34.090107"` -if [ "x$r" == "x" ] -then - echo "PythonWeatherForecast client failed" -fi - -echo "Running HttpdBigBank wsclient" -cd $TUSCANY_SCACPP/samples/HttpdBigBank/deploy/httpserver -./startserver.sh >/dev/null -cd $TUSCANY_SCACPP/samples/HttpdBigBank/deploy/bigbank.wsclient -r=`./runwsclient.sh | grep "Balance:"` -cd $TUSCANY_SCACPP/samples/HttpdBigBank/deploy/httpserver -./stopserver.sh >/dev/null -if [ "x$r" == "x" ] -then - echo "HttpdBigBank wsclient failed" -fi - -echo "Running RestCalculator restclient" -cd $TUSCANY_SCACPP/samples/RestCalculator/deploy/httpserver -./startserver.sh >/dev/null -cd $TUSCANY_SCACPP/samples/RestCalculator/deploy/sample.calculator.restclient -r=`./runrestclient.sh | grep "^3"` -cd $TUSCANY_SCACPP/samples/RestCalculator/deploy/httpserver -./stopserver.sh >/dev/null -if [ "x$r" == "x" ] -then - echo "RestCalculator restclient failed" -fi - -echo "Running RestCustomer restclient" -cd $TUSCANY_SCACPP/samples/RestCustomer/deploy/httpserver -./startserver.sh >/dev/null -cd $TUSCANY_SCACPP/samples/RestCustomer/deploy/sample.customer.restclient -r=`./runrestclient.sh | grep "Command - Deleted customer 1234"` -cd $TUSCANY_SCACPP/samples/RestCustomer/deploy/httpserver -./stopserver.sh >/dev/null -if [ "x$r" == "x" ] -then - echo "RestCustomer restclient failed" -fi - diff --git a/sca-cpp/trunk/contrib/samples/scagen.bat b/sca-cpp/trunk/contrib/samples/scagen.bat deleted file mode 100644 index 169855a0a9..0000000000 --- a/sca-cpp/trunk/contrib/samples/scagen.bat +++ /dev/null @@ -1,37 +0,0 @@ -@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. - -rem Will copy the correct files from the source tree for packaging and -rem deployment of the SCA Calculator sample. - -setlocal - -if . == .%1 ( -echo source path not specified -goto usage -) -set srcdir=%1 - -%TUSCANY_SCACPP%\extensions\cpp\bin\scagen.bat -dir %srcdir% -output %srcdir% -verbose - -goto end -:usage -echo Usage: scagen <sample-src> -:end - -endlocal diff --git a/sca-cpp/trunk/contrib/tools/Makefile.am b/sca-cpp/trunk/contrib/tools/Makefile.am deleted file mode 100644 index de5c2d1b1e..0000000000 --- a/sca-cpp/trunk/contrib/tools/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -# 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. - diff --git a/sca-cpp/trunk/contrib/tools/TuscanyDriver/TuscanyServiceLoader.cpp b/sca-cpp/trunk/contrib/tools/TuscanyDriver/TuscanyServiceLoader.cpp deleted file mode 100644 index 2abdc16c28..0000000000 --- a/sca-cpp/trunk/contrib/tools/TuscanyDriver/TuscanyServiceLoader.cpp +++ /dev/null @@ -1,478 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <iostream> -#include <string> -#include <sstream> -#include <list> - -#include <tuscany/sca/core/SCARuntime.h> -#include <tuscany/sca/core/Exceptions.h> - -#include <tuscany/sca/model/Composite.h> -#include <tuscany/sca/model/CompositeReference.h> -#include <tuscany/sca/model/CompositeService.h> -#include <tuscany/sca/model/Component.h> -#include <tuscany/sca/model/Binding.h> -#include <tuscany/sca/model/Service.h> -#include <tuscany/sca/model/ServiceType.h> -#include <tuscany/sca/model/WSDLDefinition.h> -#include <tuscany/sca/model/WSDLOperation.h> -#include <tuscany/sca/model/WSDLMessagePart.h> - -#include <commonj/sdo/SDORuntimeException.h> - -#include "TuscanyServiceLoader.h" - -namespace tuscany -{ - namespace sca - { - namespace toys - { - - TuscanyServiceLoader::TuscanyServiceLoader( const std::string &installRoot, - const std::string &systemRoot, - const std::string &systemPath, - const std::string &baseURI, - const std::string &defaultComponent, - bool showModel, // defaults false - bool showWsdl ) : // defaults false - tuscanyRuntime_(0), - tuscanyInstallRoot_(installRoot), - tuscanySystemRoot_(systemRoot), - tuscanySystemPath_(systemPath), - tuscanyBaseURI_(baseURI), - tuscanyDefaultComponent_(defaultComponent), - showModel_(showModel), - showWsdl_(showWsdl) - { - } - - TuscanyServiceLoader::~TuscanyServiceLoader() - { - } - - void TuscanyServiceLoader::load( ) - { - try - { - tuscanyRuntime_ = - tuscany::sca::SCARuntime::initializeSharedRuntime( - tuscanyInstallRoot_, - tuscanySystemRoot_, - tuscanySystemPath_, - tuscanyBaseURI_, - tuscanyDefaultComponent_ ); - - tuscany::sca::model::Composite* systemComposite = tuscanyRuntime_->getSystem(); - - // The system composite shouldnt ever have WSDL namespaces defined on it, - // Its basically a container of included composites - - // - // Iterate through the System included composites - // - std::list<std::string> compositeNameList = systemComposite->getIncludedComposites(); - - if( compositeNameList.empty() ) - { - log( "The SCARuntime system composite has no included composites.", DATA_BOTH ); - } - - std::stringstream logMsg; - - std::list<std::string>::const_iterator cNameIter = compositeNameList.begin(); - std::list<std::string>::const_iterator cNameIterEnd = compositeNameList.end(); - - // Iterate through the Composites included in the System Composite - for( ; cNameIter != cNameIterEnd; ++cNameIter ) - { - tuscany::sca::model::Composite *includedComposite = - systemComposite->findIncludedComposite( *cNameIter ); - - if( 0 == includedComposite ) - { - logMsg << "Skipping NULL System Included composite: " << *cNameIter; - log( logMsg, DATA_BOTH ); - - continue; - } - - logMsg << "System Included composite: " << includedComposite->getName(); - log( logMsg, DATA_BOTH ); - - if( showWsdl_ ) - { - log( "WSDL Data:", DATA_WSDL ); - getOperationsFromComposite( includedComposite ); - } - - if( showModel_ ) - { - log( "MODEL Data:", DATA_WSDL ); - getComponentsFromComposite( includedComposite ); - } - - log( "\nServices loaded correctly.\n", DATA_BOTH ); - } - } - catch (const tuscany::sca::TuscanyRuntimeException &tuscanyE) - { - std::cerr << "Tuscany Runtime Exception: " << tuscanyE.getMessageText() << std::endl; - } - catch (const commonj::sdo::SDORuntimeException &sdoE) - { - std::cerr << "SDO Runtime Exception: " << sdoE.getMessageText() << std::endl; - } - catch (const std::exception &stdE) - { - std::cerr << "Standard Exception: " << stdE.what() << std::endl; - } - } - - // private - void TuscanyServiceLoader::getOperationsFromComposite( tuscany::sca::model::Composite *composite ) - { - std::stringstream logMsg; - - std::list<std::string> namespaceList = composite->getWSDLNamespaces(); - if( namespaceList.empty() ) - { - logMsg << "Composite has no WSDLs to process: " << composite->getName(); - log( logMsg, DATA_WSDL ); - - return; - } - - std::list<std::string>::const_iterator nsIter = namespaceList.begin(); - std::list<std::string>::const_iterator nsIterEnd = namespaceList.end(); - - // Iterate through the composite namespaces - for( ; nsIter != nsIterEnd; ++nsIter ) - { - tuscany::sca::model::WSDLDefinition *wsdlDef = composite->findWSDLDefinition( *nsIter ); - if( 0 == wsdlDef ) - { - logMsg << "Skipping NULL WSDLDefinition for WSDL namespace: " << *nsIter; - log( logMsg, DATA_WSDL ); - - continue; - } - - logMsg << "\t WSDL namespace: " << *nsIter; - log( logMsg, DATA_WSDL ); - - std::list<std::string> ptNameList = wsdlDef->getPortTypes(); - if( ptNameList.empty() ) - { - log( "Skipping WSDLDefinition with no PortTypes defined", DATA_WSDL ); - - continue; - } - - std::list<std::string>::const_iterator ptIter = ptNameList.begin(); - std::list<std::string>::const_iterator ptIterEnd = ptNameList.end(); - - // Iterate through the PortTypes in the WSDLDefinition - for( ; ptIter != ptIterEnd; ++ptIter ) - { - logMsg << "\t\t PortType: " << *ptIter; - log( logMsg, DATA_WSDL ); - - std::list<std::string> operNameList = wsdlDef->getOperations( *ptIter ); - if( operNameList.empty() ) - { - log( "Skipping WSDL PortType with no operations defined", DATA_WSDL ); - - continue; - } - - std::list<std::string>::const_iterator operNameIter = operNameList.begin(); - std::list<std::string>::const_iterator operNameIterEnd = operNameList.end(); - - // Iterate through the Operations in the PortType - for( ; operNameIter != operNameIterEnd; ++operNameIter ) - { - const tuscany::sca::model::WSDLOperation &wsdlOper = - wsdlDef->findOperation( *ptIter, *operNameIter ); - - logMsg - << "\t\t\t Operation Info: " - << "\n\t\t\t\t OperationName: " << wsdlOper.getOperationName() - << "\n\t\t\t\t SOAP Action: " << wsdlOper.getSoapAction() - << "\n\t\t\t\t Endpoint: " << wsdlOper.getEndpoint() - << "\n\t\t\t\t SOAP version: " << wsdlOper.getSoapVersion() - << "\n\t\t\t\t Document Style: " << wsdlOper.isDocumentStyle() - << "\n\t\t\t\t Wrapped Style: " << wsdlOper.isWrappedStyle() - << "\n\t\t\t\t In Encoded Style: " << wsdlOper.isInputEncoded() - << "\n\t\t\t\t Out Encoded Style: " << wsdlOper.isOutputEncoded() - << "\n\t\t\t\t InputMsgURI: " << wsdlOper.getInputMessageUri() - << "\n\t\t\t\t InputMsgName: " << wsdlOper.getInputMessageName() - << "\n\t\t\t\t OutputMsgURI: " << wsdlOper.getOutputMessageUri() - << "\n\t\t\t\t OutputMsgName: " << wsdlOper.getOutputMessageName(); - log( logMsg, DATA_WSDL ); - - std::list<std::string> partList = wsdlOper.getInputMessagePartNames(); - std::list<std::string>::const_iterator partListIter = partList.begin(); - std::list<std::string>::const_iterator partListIterEnd = partList.end(); - for( ; partListIter != partListIterEnd; ++partListIter ) - { - tuscany::sca::model::WSDLMessagePart part = - wsdlOper.getInputMessagePart( *partListIter ); - logMsg - << "\t\t\t\t Input Message Part: " - << "\n\t\t\t\t\t Name: " << part.getPartName() - << "\n\t\t\t\t\t Type: " << part.getPartType() - << "\n\t\t\t\t\t URI: " << part.getPartUri(); - log( logMsg, DATA_WSDL ); - } - - partList = wsdlOper.getOutputMessagePartNames(); - partListIter = partList.begin(); - partListIterEnd = partList.end(); - for( ; partListIter != partListIterEnd; ++partListIter ) - { - tuscany::sca::model::WSDLMessagePart part = - wsdlOper.getOutputMessagePart( *partListIter ); - logMsg - << "\t\t\t\t Output Message Part: " - << "\n\t\t\t\t\t Name: " << part.getPartName() - << "\n\t\t\t\t\t Type: " << part.getPartType() - << "\n\t\t\t\t\t URI: " << part.getPartUri(); - log( logMsg, DATA_WSDL ); - } - } - } - } - } - - // private - void TuscanyServiceLoader::getComponentsFromComposite( tuscany::sca::model::Composite *composite ) - { - std::stringstream logMsg; - - std::list<std::string> topLevelComponentList = composite->getComponents(); - if( topLevelComponentList.empty() ) - { - logMsg << "Top level Composite has no Components to process: " << composite->getName(); - log( logMsg, DATA_MODEL ); - - return; - } - - std::list<std::string>::const_iterator tlclIter = topLevelComponentList.begin(); - std::list<std::string>::const_iterator tlclIterEnd = topLevelComponentList.end(); - - // Iterate through the top level composite components - for( ; tlclIter != tlclIterEnd; ++tlclIter ) - { - tuscany::sca::model::Component *topLevelComponent = composite->findComponent( *tlclIter ); - if( 0 == topLevelComponent ) - { - logMsg << "Skipping NULL Component: " << *tlclIter; - log( logMsg, DATA_MODEL ); - - continue; - } - - logMsg << "\t Top Level Component: " << topLevelComponent->getName(); - log( logMsg, DATA_MODEL ); - - // Top level composites will just include lower composites - // Get the actual implementation composite - tuscany::sca::model::Composite *impComposite = - (tuscany::sca::model::Composite*)topLevelComponent->getType(); - if( 0 == impComposite ) - { - logMsg << "Couldn't get implemetation composite for top level component: " << *tlclIter; - log( logMsg, DATA_MODEL ); - - continue; - } - - logMsg << "\t\t Implemetation Composite: " << topLevelComponent->getName(); - log( logMsg, DATA_MODEL ); - - std::list<std::string> componentList = impComposite->getComponents(); - if( componentList.empty() ) - { - log( "\t\t Implemetation Composite has no components", DATA_MODEL ); - - continue; - } - - std::list<std::string>::const_iterator clIter = componentList.begin(); - std::list<std::string>::const_iterator clIterEnd = componentList.end(); - - // Iterate through the components - for( ; clIter != clIterEnd; ++clIter ) - { - - tuscany::sca::model::Component *component = impComposite->findComponent( *clIter ); - if( 0 == component ) - { - logMsg << "Skipping NULL Component: " << *clIter; - log( logMsg, DATA_MODEL ); - - continue; - } - - std::string bindingType; - std::string bindingURI; - std::string componentType = "\t\t\t Component: "; - - tuscany::sca::model::CompositeService *compositeService = - dynamic_cast<tuscany::sca::model::CompositeService*>(component); - if (compositeService) - { - componentType = "\t\t\t Service: "; - tuscany::sca::model::Reference *reference = compositeService->getReference(); - bindingType = reference->getBinding()->getType(); - bindingURI = reference->getBinding()->getURI(); - } - else - { - tuscany::sca::model::CompositeReference *compositeReference = - dynamic_cast<tuscany::sca::model::CompositeReference*>(component); - if (compositeReference) - { - componentType = "\t\t\t Reference: "; - tuscany::sca::model::Service *service = compositeReference->getService(); - bindingType = service->getBinding()->getType(); - bindingURI = service->getBinding()->getURI(); - - } - } - - logMsg << componentType << component->getName(); - log( logMsg, DATA_MODEL ); - logMsg << "\t\t\t\t Component Type: " << component->getType()->getName(); - log( logMsg, DATA_MODEL ); - - if (!bindingType.empty()) - { - logMsg << "\t\t\t\t Binding Type: " << bindingType; - log( logMsg, DATA_MODEL ); - } - if (!bindingURI.empty()) - { - logMsg << "\t\t\t\t Binding URI: " << bindingURI; - log( logMsg, DATA_MODEL ); - } - - const tuscany::sca::model::Component::SERVICE_MAP &serviceMap = component->getServices(); - if( serviceMap.empty() ) - { - - continue; - } - - tuscany::sca::model::Component::SERVICE_MAP::const_iterator smIter = serviceMap.begin(); - tuscany::sca::model::Component::SERVICE_MAP::const_iterator smIterEnd = serviceMap.end(); - - for( ; smIter != smIterEnd; ++smIter ) - { - const tuscany::sca::model::Service *service = smIter->second; - - if( 0 == service ) - { - logMsg << "Skipping NULL Service: " << smIter->second; - log( logMsg, DATA_MODEL ); - - continue; - } - - // A ServiceType defines the characteristics of the Service - tuscany::sca::model::ServiceType *serviceType = service->getType(); - logMsg << "\t\t\t\t Service: " << serviceType->getName(); - log( logMsg, DATA_MODEL ); - } - - const tuscany::sca::model::Component::REFERENCE_MAP &referenceMap = component->getReferences(); - if( referenceMap.empty() ) - { - continue; - } - - tuscany::sca::model::Component::REFERENCE_MAP::const_iterator rmIter = referenceMap.begin(); - tuscany::sca::model::Component::REFERENCE_MAP::const_iterator rmIterEnd = referenceMap.end(); - - for( ; rmIter != rmIterEnd; ++rmIter ) - { - const tuscany::sca::model::Reference *reference = rmIter->second; - - if( 0 == reference ) - { - logMsg << "Skipping NULL Reference: " << rmIter->second; - log( logMsg, DATA_MODEL ); - - continue; - } - - // A ReferenceType defines the characteristics of the Service - logMsg << "\t\t\t\t Reference: " << reference->getType()->getName(); - log( logMsg, DATA_MODEL ); - - } - } - } - } - - // private - void TuscanyServiceLoader::log( std::stringstream &msg, TuscanyServiceLoader::DataType type ) - { - log( msg.str(), type ); - msg.str( "" ); // clear it to be able to use the same one again - } - - // private - void TuscanyServiceLoader::log( const std::string &msg, TuscanyServiceLoader::DataType type ) - { - bool doLog = false; - - if( type == DATA_BOTH ) - { - doLog = true; - } - else if( type == DATA_BOTH && (showModel_ || showWsdl_) ) - { - doLog = true; - } - else if( type == DATA_WSDL && showWsdl_ ) - { - doLog = true; - } - else if( type == DATA_MODEL && showModel_ ) - { - doLog = true; - } - - if( doLog ) - { - std::cout << msg << std::endl; - } - - } - - } // namespace toys - } // namespace sca -} // namespace tuscany diff --git a/sca-cpp/trunk/contrib/tools/TuscanyDriver/TuscanyServiceLoader.h b/sca-cpp/trunk/contrib/tools/TuscanyDriver/TuscanyServiceLoader.h deleted file mode 100644 index de35c38119..0000000000 --- a/sca-cpp/trunk/contrib/tools/TuscanyDriver/TuscanyServiceLoader.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#ifndef tuscany_sca_toys_service_loader_h -#define tuscany_sca_toys_service_loader_h - -#include <string> -#include <sstream> - -#include <tuscany/sca/core/SCARuntime.h> -#include <tuscany/sca/model/Composite.h> - - -namespace tuscany -{ - namespace sca - { - namespace toys - { - class TuscanyServiceLoader - { - public: - TuscanyServiceLoader( const std::string &installRoot, - const std::string &systemRoot, - const std::string &systemPath, - const std::string &baseURI, - const std::string &defaultComponentName, - bool showModel = false, - bool showWsdl = false ); - - ~TuscanyServiceLoader(); - - void load(); - - private: - enum DataType - { - DATA_WSDL = 0, - DATA_MODEL, - DATA_BOTH - }; - - TuscanyServiceLoader(); - - void log( std::stringstream &msg, TuscanyServiceLoader::DataType type ); - void log( const std::string &msg, TuscanyServiceLoader::DataType type ); - void getOperationsFromComposite( tuscany::sca::model::Composite *composite ); - void getComponentsFromComposite( tuscany::sca::model::Composite *composite ); - - tuscany::sca::SCARuntime *tuscanyRuntime_; - - bool showModel_; - bool showWsdl_; - std::string tuscanyInstallRoot_; - std::string tuscanySystemRoot_; - std::string tuscanySystemPath_; - std::string tuscanyBaseURI_; - std::string tuscanyDefaultComponent_; - }; - - } // namespace toys - - } // namespace sca - -} // namespace tuscany - -#endif // tuscany_sca_toys_service_loader_h - diff --git a/sca-cpp/trunk/contrib/tools/TuscanyDriver/main.cpp b/sca-cpp/trunk/contrib/tools/TuscanyDriver/main.cpp deleted file mode 100644 index 7fdde27177..0000000000 --- a/sca-cpp/trunk/contrib/tools/TuscanyDriver/main.cpp +++ /dev/null @@ -1,181 +0,0 @@ -/* - * 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. - */ - -/* $Rev$ $Date$ */ - -#include <iostream> -#include <string> - -#include <tuscany/sca/core/Exceptions.h> -#include <commonj/sdo/SDORuntimeException.h> - -#include "TuscanyServiceLoader.h" - -struct InputArgs -{ - std::string installRoot_; - std::string systemRoot_; - std::string systemPath_; - std::string baseURI_; - std::string defaultComponentName_; - bool showWsdl_; - bool showModel_; - - InputArgs() : - showWsdl_(false), - showModel_(false) - {} -}; - -const std::string ARG_INSTALL_ROOT = "-ir"; -const std::string ARG_SYSTEM_ROOT = "-sr"; -const std::string ARG_SYSTEM_PATH = "-sp"; -const std::string ARG_BASE_URI = "-uri"; -const std::string ARG_DEFAULT_COMPONENT = "-dc"; -const std::string ARG_VERBOSE = "-v"; -const std::string ARG_SHOW_MODEL = "-model"; -const std::string ARG_SHOW_WSDL = "-wsdl"; -const std::string ARG_HELP_H = "-h"; -const std::string ARG_HELP_HELP = "-help"; -const std::string ARG_HELP_QMARK = "-?"; - - -void -printUsage() -{ - std::cout - << "\nUsage\ntuscanyDriver\n\t" - << ARG_INSTALL_ROOT << " Mandatory: Installation root where extensions are located: ${TUSCANY_SCACPP}\n\t" - << ARG_SYSTEM_ROOT << " Mandatory: System root where projects are located: ${TUSCANY_SCACPP}/samples\n\t" - << ARG_SYSTEM_PATH << " Optional: System path\n\t" - << ARG_BASE_URI << " Optional: Base URI\n\t" - << ARG_DEFAULT_COMPONENT << " Optional: Default Component name\n\t" - << ARG_SHOW_MODEL << " Optional: Display SCA Model Hierarchy\n\t" - << ARG_SHOW_WSDL << " Optional: Display WSDL information\n\t" - << ARG_VERBOSE << " Optional: Same as specifying both: " - << ARG_SHOW_MODEL << " and " << ARG_SHOW_WSDL - << std::endl; -} - -bool -parseArgs( int argc, char *argv[], InputArgs &input ) -{ - if( argc < 5 ) - { - std::cerr << "\nInvalid number of input arguments: " << argc << std::endl; - printUsage(); - return false; - } - - for( int i = 1; i < argc; i++ ) - { - if( argv[i] == ARG_INSTALL_ROOT ) - { - input.installRoot_ = argv[++i]; - } - else if( argv[i] == ARG_SYSTEM_ROOT ) - { - input.systemRoot_ = argv[++i]; - } - else if( argv[i] == ARG_SYSTEM_PATH ) - { - input.systemPath_ = argv[++i]; - } - else if( argv[i] == ARG_BASE_URI ) - { - input.baseURI_ = argv[++i]; - } - else if( argv[i] == ARG_DEFAULT_COMPONENT ) - { - input.defaultComponentName_ = argv[++i]; - } - else if( argv[i] == ARG_VERBOSE ) - { - input.showWsdl_ = true; - input.showModel_ = true; - } - else if( argv[i] == ARG_SHOW_MODEL ) - { - input.showModel_ = true; - } - else if( argv[i] == ARG_SHOW_WSDL ) - { - input.showWsdl_ = true; - } - else if( argv[i] == ARG_HELP_H || - argv[i] == ARG_HELP_QMARK || - argv[i] == ARG_HELP_HELP ) - { - printUsage(); - return false; - } - else - { - std::cerr << "\nUnrecognized argument: " << argv[i]; - printUsage(); - return false; - } - } - - if( input.installRoot_.empty() ) - { - std::cerr << "\nMissing mandatory argument: Install root " << ARG_INSTALL_ROOT << std::endl; - return false; - } - - if( input.systemRoot_.empty() ) - { - std::cerr << "\nMissing mandatory argument: System root " << ARG_SYSTEM_ROOT << std::endl; - return false; - } - - return true; -} - -int -main(int argc, char* argv[]) -{ - try - { - InputArgs input; - if( ! parseArgs( argc, argv, input ) ) - { - return 1; - } - - tuscany::sca::toys::TuscanyServiceLoader - tuscany( input.installRoot_, - input.systemRoot_, - input.systemPath_, - input.baseURI_, - input.defaultComponentName_, - input.showModel_, - input.showWsdl_ ); - - tuscany.load( ); - } - catch (...) - { - std::cerr << "Caught unknown exception." << std::endl; - return 1; - } - - return 0; -} - |