diff options
Diffstat (limited to 'sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank')
24 files changed, 1577 insertions, 0 deletions
diff --git a/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/Makefile.am b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/Makefile.am new file mode 100644 index 0000000000..ae0b4958f1 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/Makefile.am @@ -0,0 +1,21 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT 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/branches/cpp-contrib/contrib/samples/RubyBigBank/README b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/README new file mode 100644 index 0000000000..6b2dba4206 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/README @@ -0,0 +1,21 @@ +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/branches/cpp-contrib/contrib/samples/RubyBigBank/README.html b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/README.html new file mode 100644 index 0000000000..6eeb377d6f --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/README.html @@ -0,0 +1,312 @@ + +<!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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/AccountDataServiceImpl.rb b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/AccountDataServiceImpl.rb new file mode 100644 index 0000000000..8ae0e23bab --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/AccountDataServiceImpl.rb @@ -0,0 +1,72 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT 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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/AccountService.wsdl b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/AccountService.wsdl new file mode 100644 index 0000000000..b83c453462 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/AccountService.wsdl @@ -0,0 +1,126 @@ +<?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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/AccountServiceImpl.rb b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/AccountServiceImpl.rb new file mode 100644 index 0000000000..aab789ca13 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/AccountServiceImpl.rb @@ -0,0 +1,82 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT 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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/Makefile.am b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/Makefile.am new file mode 100644 index 0000000000..6e5ec38414 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/Makefile.am @@ -0,0 +1,24 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT 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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/StockQuoteServiceImpl.rb b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/StockQuoteServiceImpl.rb new file mode 100644 index 0000000000..7f8634072c --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/StockQuoteServiceImpl.rb @@ -0,0 +1,52 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT 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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/StockQuoteTypes.xsd b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/StockQuoteTypes.xsd new file mode 100644 index 0000000000..2f7012b5fb --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/StockQuoteTypes.xsd @@ -0,0 +1,40 @@ +<?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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/StockQuoteWebService.wsdl b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/StockQuoteWebService.wsdl new file mode 100644 index 0000000000..c14f97c87b --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/StockQuoteWebService.wsdl @@ -0,0 +1,165 @@ +<?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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/bigbank.account.composite b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/bigbank.account.composite new file mode 100644 index 0000000000..8fff8425a1 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/bigbank.account.composite @@ -0,0 +1,53 @@ +<?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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/runwsserver.bat b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/runwsserver.bat new file mode 100644 index 0000000000..3ab4275436 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/runwsserver.bat @@ -0,0 +1,51 @@ +@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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/runwsserver.sh b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/runwsserver.sh new file mode 100755 index 0000000000..e3bbca46c6 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.account/runwsserver.sh @@ -0,0 +1,46 @@ +#!/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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.app.composite b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.app.composite new file mode 100644 index 0000000000..dd94e61e5b --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.app.composite @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" + name="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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/AccountClient.rb b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/AccountClient.rb new file mode 100644 index 0000000000..31c0acc909 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/AccountClient.rb @@ -0,0 +1,40 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT 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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/Makefile.am b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/Makefile.am new file mode 100644 index 0000000000..4e4936746a --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/Makefile.am @@ -0,0 +1,23 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +deploydir=$(prefix)/RubyBigBank/deploy +clientdir=$(deploydir)/bigbank.client + +client_DATA = *.rb +client_SCRIPTS = runclient.sh +EXTRA_DIST = runclient.sh *.rb diff --git a/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/runclient.bat b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/runclient.bat new file mode 100644 index 0000000000..0495237f7f --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/runclient.bat @@ -0,0 +1,51 @@ +@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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/runclient.sh b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/runclient.sh new file mode 100755 index 0000000000..94d5cd6ff8 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.client/runclient.sh @@ -0,0 +1,48 @@ +#!/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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/AccountService.wsdl b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/AccountService.wsdl new file mode 100644 index 0000000000..b83c453462 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/AccountService.wsdl @@ -0,0 +1,126 @@ +<?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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/AccountWSClient.rb b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/AccountWSClient.rb new file mode 100644 index 0000000000..6775b80f7a --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/AccountWSClient.rb @@ -0,0 +1,40 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT 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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/Makefile.am b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/Makefile.am new file mode 100644 index 0000000000..23f8b55959 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/Makefile.am @@ -0,0 +1,23 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + +deploydir=$(prefix)/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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/bigbank.wsclient.composite b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/bigbank.wsclient.composite new file mode 100644 index 0000000000..f484a2fc7c --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/bigbank.wsclient.composite @@ -0,0 +1,29 @@ +<?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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.bat b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.bat new file mode 100644 index 0000000000..6e1bb27b4a --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.bat @@ -0,0 +1,51 @@ +@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/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.sh b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.sh new file mode 100755 index 0000000000..d50e6a4b0a --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/contrib/samples/RubyBigBank/bigbank.wsclient/runwsclient.sh @@ -0,0 +1,48 @@ +#!/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 |