summaryrefslogtreecommitdiffstats
path: root/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account
diff options
context:
space:
mode:
Diffstat (limited to 'sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account')
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataService.h63
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.componentType28
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.cpp137
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.h61
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountService.h51
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountService.wsdl126
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.componentType40
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.cpp132
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.h44
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/Makefile.am59
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteService.h36
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.componentType29
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.cpp73
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.h36
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteTypes.xsd37
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.h40
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.wsdl165
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/bigbank.account.composite49
-rw-r--r--sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/runwsserver.bat50
-rwxr-xr-xsca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/runwsserver.sh45
20 files changed, 1301 insertions, 0 deletions
diff --git a/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataService.h b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataService.h
new file mode 100644
index 0000000000..64d093ac6f
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataService.h
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.componentType b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.componentType
new file mode 100644
index 0000000000..b1cab9e1f9
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.componentType
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.cpp b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.cpp
new file mode 100644
index 0000000000..2deee17eb2
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.cpp
@@ -0,0 +1,137 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.h b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.h
new file mode 100644
index 0000000000..9312175540
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountDataServiceImpl.h
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountService.h b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountService.h
new file mode 100644
index 0000000000..85337d37a9
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountService.h
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountService.wsdl b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountService.wsdl
new file mode 100644
index 0000000000..b83c453462
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/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/CppBigBank/bigbank.account/AccountServiceImpl.componentType b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.componentType
new file mode 100644
index 0000000000..b65fa1dc18
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.componentType
@@ -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.
+-->
+
+
+<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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.cpp b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.cpp
new file mode 100644
index 0000000000..e9fcace81f
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.cpp
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.h b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.h
new file mode 100644
index 0000000000..0c172823fb
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/AccountServiceImpl.h
@@ -0,0 +1,44 @@
+/**
+ *
+ * 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/Makefile.am b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/Makefile.am
new file mode 100644
index 0000000000..e9af461312
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/Makefile.am
@@ -0,0 +1,59 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteService.h b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteService.h
new file mode 100644
index 0000000000..379af5b425
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteService.h
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.componentType b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.componentType
new file mode 100644
index 0000000000..6ac2b77255
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.componentType
@@ -0,0 +1,29 @@
+<?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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.cpp b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.cpp
new file mode 100644
index 0000000000..8332730d73
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.cpp
@@ -0,0 +1,73 @@
+/*
+ *
+ * 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.h b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.h
new file mode 100644
index 0000000000..9b0ac69b0c
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteServiceImpl.h
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteTypes.xsd b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteTypes.xsd
new file mode 100644
index 0000000000..5bce3a63dc
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteTypes.xsd
@@ -0,0 +1,37 @@
+<?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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.h b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.h
new file mode 100644
index 0000000000..5c32ff8eaa
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.h
@@ -0,0 +1,40 @@
+/*
+ *
+ * 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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.wsdl b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/StockQuoteWebService.wsdl
new file mode 100644
index 0000000000..c14f97c87b
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/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/CppBigBank/bigbank.account/bigbank.account.composite b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/bigbank.account.composite
new file mode 100644
index 0000000000..7173d584d2
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/bigbank.account.composite
@@ -0,0 +1,49 @@
+<?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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/runwsserver.bat b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/runwsserver.bat
new file mode 100644
index 0000000000..c08a8fc5d9
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/runwsserver.bat
@@ -0,0 +1,50 @@
+@echo off
+
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+
+setlocal
+
+if "%TUSCANY_SCACPP%" == "" (
+echo "TUSCANY_SCACPP not set"
+goto end
+)
+echo Using SCA installed at %TUSCANY_SCACPP%
+
+if "%TUSCANY_SDOCPP%" == "" (
+echo "TUSCANY_SDOCPP not set"
+goto end
+)
+echo Using SDO installed at %TUSCANY_SDOCPP%
+
+if "%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/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/runwsserver.sh b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/runwsserver.sh
new file mode 100755
index 0000000000..047e541360
--- /dev/null
+++ b/sca-cpp/branches/cpp-contrib/contrib/samples/CppBigBank/bigbank.account/runwsserver.sh
@@ -0,0 +1,45 @@
+#!/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