summaryrefslogtreecommitdiffstats
path: root/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue
diff options
context:
space:
mode:
authordims <dims@13f79535-47bb-0310-9956-ffa450edef68>2008-06-17 00:23:01 +0000
committerdims <dims@13f79535-47bb-0310-9956-ffa450edef68>2008-06-17 00:23:01 +0000
commitbdd0a41aed7edf21ec2a65cfa17a86af2ef8c48a (patch)
tree38a92061c0793434c4be189f1d70c3458b6bc41d /tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue
Move Tuscany from Incubator to top level.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@668359 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue')
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Client/Makefile.am11
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Client/MyValueClient.cpp184
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Makefile.am22
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo.fragment39
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfo.h32
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.componentType33
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.cpp81
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.h38
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/Makefile.am15
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/Makefile.am10
-rw-r--r--tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/Makefile.am17
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValue.h34
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.componentType39
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.cpp147
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.h37
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueService.wsdl84
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueService.xsd42
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/StockQuoteService/StockQuoteService.h34
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/StockQuoteService/StockQuoteService.wsdl157
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/sca.composite55
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueSubsystem/sca.subsystem30
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/runMyValueClient.sh53
-rwxr-xr-xtags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/server.wsdd40
23 files changed, 1234 insertions, 0 deletions
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Client/Makefile.am b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Client/Makefile.am
new file mode 100644
index 0000000000..b1586cc752
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Client/Makefile.am
@@ -0,0 +1,11 @@
+prgbindir=$(prefix)/samples/bin
+prgbin_PROGRAMS = MyValueClient
+
+MyValueClient_SOURCES = MyValueClient.cpp
+
+MyValueClient_LDADD = -L$(top_builddir)/runtime/core/src -ltuscany_sca \
+ -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo -lxml2
+
+INCLUDES = -I.. \
+ -I$(top_builddir)/runtime/core/src \
+ -I${TUSCANY_SDOCPP}/include
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Client/MyValueClient.cpp b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Client/MyValueClient.cpp
new file mode 100755
index 0000000000..0919c539da
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Client/MyValueClient.cpp
@@ -0,0 +1,184 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+#pragma warning(disable: 4786)
+
+#include "commonj/sdo/Logger.h"
+#include "commonj/sdo/SDO.h"
+#include "commonj/sdo/HelperProvider.h"
+#include "osoa/sca/sca.h"
+#include "tuscany/sca/util/Logger.h"
+#include "tuscany/sca/util/Utils.h"
+#include <iostream>
+
+using namespace std;
+using namespace osoa::sca;
+using namespace tuscany::sca;
+using namespace commonj::sdo;
+using namespace tuscany::sca::ws;
+
+void usage();
+
+//
+// MyValueClient is a sample application that invokes operations on the
+// MyValueService Web Service.
+//
+int main(int argc, char* argv[])
+{
+
+ //
+ // Schema file for the types used by MyValueService
+ //
+ char *pszXSD;
+
+ //
+ // The WebService endpoint uri.
+ //
+ char *pszEndpoint;
+
+ //
+ // TargetNamespace
+ //
+ const char *pszTargetNamespace;
+
+ //
+ // SOAPAction
+ //
+ // Axis 1.5: SoapAction must be <serviceName>#<operationName>.
+ const char *pcszSoapAction = "MyValueService#getMyValue";
+
+ //
+ // Operation Name
+ //
+ const char *pcszOperationName = "getMyValue";
+
+ //
+ // Operation Response Name
+ //
+ const char *pcszOperationResponseName = "getMyValueResponse";
+
+
+ // Get the input parameters.
+ if (argc == 3)
+ {
+ // Schema file.
+ pszXSD = argv[1];
+ // Web Service endpoint.
+ pszEndpoint = argv[2];
+ }
+ else
+ {
+ usage();
+ }
+
+ // The current version of SDO does not support the embedded schema in the wsdl file,
+ // so we have to load an external schema.
+ XSDHelperPtr xsdHelper = HelperProvider::getXSDHelper();
+
+ try
+ {
+ cout << "define file: " << pszXSD <<endl;
+ pszTargetNamespace = xsdHelper->defineFile(pszXSD);
+ }
+ catch (SDORuntimeException ex)
+ {
+ cout << ex << endl;
+ exit(1);
+ }
+ cout << "define file done: " << pszTargetNamespace <<endl;
+
+
+ // Create an SDO for the request
+ DataFactoryPtr factory = xsdHelper->getDataFactory();
+ DataObjectPtr requestDO = 0;
+
+ try
+ {
+ // Create the root element for the operation and then add the parameters
+ // we need to invoke the operation.
+ requestDO = factory->create(pszTargetNamespace, pcszOperationName);
+ requestDO->setCString("customerID", "12345");
+ }
+ catch (SDORuntimeException e)
+ {
+ cout << "SDORuntimeException: " << e << endl;
+ exit(1);
+ }
+
+ //
+ // Create an SDOStub that will use the request SDO to invoke the operation.
+ //
+ SDOStub *stub = new SDOStub();
+ stub->setEndpoint(pszEndpoint);
+ stub->setOperationName(pcszOperationName);
+ stub->setTargetNamespace(pszTargetNamespace);
+ stub->setOperationResponseName(pcszOperationResponseName);
+ stub->setSoapAction(pcszSoapAction);
+ // DEBUG - Don't let the soap transport timeout while debugging.
+ stub->setTransportTimeout(0);
+ // DEBUG
+
+ try
+ {
+ // Invoke the operation.
+ DataObjectPtr responseDO = stub->invoke(requestDO, factory);
+ // Print the response.
+ if (responseDO != 0)
+ {
+ cout << "MyValueClient: response DataObject = " << endl;
+ Utils::printDO(responseDO);
+ cout << endl;
+ float fValue = responseDO->getFloat("myValue");
+ cout << "MyValueClient: myValue = " << fValue;
+ }
+ else
+ {
+ cout << "MyValueClient: MyValueService did not return a result" << endl;
+ }
+ }
+ catch (SDORuntimeException& e)
+ {
+ cout << "SDORuntimeException: " << e << endl;
+ }
+ catch (ServiceRuntimeException& e)
+ {
+ cout << "ServiceRuntimeException: " << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << "Exception: " << e.what() << endl;
+ }
+
+
+ return 0;
+}
+
+//
+// Print usage message.
+//
+void usage()
+{
+ cout << "MyValueClient.exe: Invoke operations on MyValueService Web Service" << endl;
+ cout << "Usage: MyValueClient XSD endpoint" << endl;
+ cout << "where XSD = path and name of XSD file that defines the MyValue types" << endl;
+ cout << " endpoint = web service endpoint" << endl;
+ exit(1);
+}
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Makefile.am b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Makefile.am
new file mode 100644
index 0000000000..ede24623cf
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/Makefile.am
@@ -0,0 +1,22 @@
+SUBDIRS = MyValueComposite Client
+
+deploy_dir = $(top_builddir)/samples/runtime
+deploy_composite = $(deploy_dir)/packages/MyValueComposite
+
+install-exec-local:
+ cp MyValueSubsystem/sca.subsystem $(deploy_dir)/configuration/MyValueSubsystem
+ cp MyValueComposite/sca.composite $(deploy_composite)
+ cp MyValueComposite/CustomerInfo.fragment $(deploy_composite)
+ cp MyValueComposite/CustomerInfo/CustomerInfoImpl.componentType $(deploy_composite)/CustomerInfo
+ cp MyValueComposite/CustomerInfo/.libs/libCustomerInfo$libsuffix) $(deploy_composite)/CustomerInfo
+ cp MyValueComposite/CustomerInfo/CustomerInfo.h $(deploy_composite)/CustomerInfo
+ cp MyValueComposite/CustomerInfo/CustomerInfoImpl.h $(deploy_composite)/CustomerInfo
+ cp MyValueComposite/MyValue/MyValueImpl.componentType $(deploy_composite)/MyValue
+ cp MyValueComposite/MyValue/MyValue.h $(deploy_composite)/MyValue
+ cp MyValueComposite/MyValue/MyValueImpl.h $(deploy_composite)/MyValue
+ cp MyValueComposite/MyValue/MyValueService.wsdl $(deploy_composite)/MyValue
+ cp MyValueComposite/MyValue/.libs/libMyValue$libsuffix) $(deploy_composite)/MyValue
+ cp MyValueComposite/StockQuoteService/StockQuoteService.h $(deploy_composite)/StockQuoteService
+ cp MyValueComposite/StockQuoteService/StockQuoteService.wsdl $(deploy_composite)/StockQuoteService
+
+
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo.fragment b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo.fragment
new file mode 100755
index 0000000000..2227f730dd
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo.fragment
@@ -0,0 +1,39 @@
+<?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.
+-->
+
+<compositeFragment xmlns="http://www.osoa.org/xmlns/sca/0.9"
+ xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
+ xmlns:mvs="http://www.myvalue.org/MyValueService/"
+ name="CustomerInfoComponent">
+
+
+ <component name="CustomerInfoComponent">
+ <implementation.cpp dll="CustomerInfo/libCustomerInfo.so" header="CustomerInfo/CustomerInfoImpl.h"></implementation.cpp>
+ <properties>
+ <v:Fred>x</v:Fred>
+ <v:Joe>23</v:Joe>
+ <Joe>42</Joe>
+ </properties>
+ <references>
+ </references>
+ </component>
+
+</compositeFragment>
+ \ No newline at end of file
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfo.h b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfo.h
new file mode 100755
index 0000000000..61d3e18133
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfo.h
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+#ifndef CustomerInfo_h
+#define CustomerInfo_h
+
+class CustomerInfo
+{
+public:
+ virtual const char* getCustomerInformation(const char* customerID) = 0;
+
+};
+
+#endif
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.componentType b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.componentType
new file mode 100755
index 0000000000..caed4c5327
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.componentType
@@ -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.
+-->
+
+<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <service name="CustomerInfoService">
+ <interface.cpp header="CustomerInfo/CustomerInfo.h">
+ </interface.cpp>
+ </service>
+
+ <property name="Fred" type="xs:string"/>
+ <property name="Joe" type="xs:integer" many="true"/>
+
+</componentType>
+ \ No newline at end of file
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.cpp b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.cpp
new file mode 100755
index 0000000000..1a50dd4426
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.cpp
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR 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 "CustomerInfoImpl.h"
+#include <ostream>
+#include <string.h>
+#include "osoa/sca/sca.h"
+#include "commonj/sdo/DataObjectInstance.h"
+using namespace osoa::sca;
+using namespace commonj::sdo;
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+CustomerInfoImpl::CustomerInfoImpl()
+{
+ cout << "Construct CustomerInfoImpl" << endl;
+
+}
+
+CustomerInfoImpl::~CustomerInfoImpl()
+{
+ cout << "Destroy CustomerInfoImpl" << endl;
+}
+
+//////////////////////////////////////////////////////////////////////
+// Other methods
+//////////////////////////////////////////////////////////////////////
+const char* CustomerInfoImpl::getCustomerInformation(const char* customerID)
+{
+ cout << "In getCustomerInformation with customerid: " << customerID << endl;
+
+
+
+ ComponentContext myContext = ComponentContext::getCurrent();
+
+ DataObjectInstance properties = myContext.getProperties();
+ DataObjectInstance props2 = properties;
+ if (properties)
+ {
+ const char* fredVal = properties->getCString("Fred");
+ cout << "Property Fred value: " << fredVal <<endl;
+
+
+ DataObjectList& joeList = properties->getList("Joe");
+ for (int i=0; i<joeList.size();i++)
+ {
+ cout << "Property Joe value " << i << ": " << joeList.getInteger(i) <<endl;
+ }
+ }
+
+ if (!strcmp("12345", customerID))
+ {
+ return "IBM";
+ }
+ else
+ {
+ throw "Wobbler";
+ }
+
+
+}
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.h b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.h
new file mode 100755
index 0000000000..e2721ea03d
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/CustomerInfoImpl.h
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+#ifndef CustomerInfoImpl_h
+#define CustomerInfoImpl_h
+
+#include "CustomerInfo.h"
+
+
+
+class CustomerInfoImpl : public CustomerInfo
+{
+public:
+ CustomerInfoImpl();
+ virtual ~CustomerInfoImpl();
+ virtual const char* getCustomerInformation(const char* customerID);
+
+};
+
+#endif
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/Makefile.am b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/Makefile.am
new file mode 100644
index 0000000000..78161c429c
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/CustomerInfo/Makefile.am
@@ -0,0 +1,15 @@
+lib_LTLIBRARIES = libCustomerInfo.la
+
+libCustomerInfo_la_SOURCES = \
+CustomerInfoImpl.cpp \
+CustomerInfoImpl_CustomerInfoService_Proxy.cpp \
+CustomerInfoImpl_CustomerInfoService_Wrapper.cpp
+
+libCustomerInfo_la_LIBADD = -L$(top_builddir)/runtime/core/src -ltuscany_sca \
+ -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo
+
+INCLUDES = -I.. \
+ -I$(top_builddir)/runtime/core/src \
+ -I${TUSCANY_SDOCPP}/include
+
+install: \ No newline at end of file
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/Makefile.am b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/Makefile.am
new file mode 100644
index 0000000000..1dc2c169b7
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/Makefile.am
@@ -0,0 +1,10 @@
+SUBDIRS = CustomerInfo MyValue
+
+BUILT_SOURCES = scagen
+
+scagen:
+ cd $(top_builddir)/bin && \
+ ./scagen.sh -dir $(prefix)/samples/MyValue/MyValueComposite -output $(prefix)/samples/MyValue/MyValueComposite
+ mv CustomerInfoImpl_* CustomerInfo
+ mv MyValueImpl_* MyValue
+
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/Makefile.am b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/Makefile.am
new file mode 100644
index 0000000000..85e1077998
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/Makefile.am
@@ -0,0 +1,17 @@
+lib_LTLIBRARIES = libMyValue.la
+
+libMyValue_la_SOURCES = \
+MyValueImpl.cpp \
+MyValueImpl_customerInfo_Proxy.cpp \
+MyValueImpl_MyValueService_Proxy.cpp \
+MyValueImpl_MyValueService_Wrapper.cpp \
+MyValueImpl_stockQuote_Proxy.cpp
+
+libMyValue_la_LIBADD = -L$(top_builddir)/runtime/core/src -ltuscany_sca \
+ -L${TUSCANY_SDOCPP}/lib -ltuscany_sdo
+
+INCLUDES = -I.. \
+ -I$(top_builddir)/runtime/core/src \
+ -I${TUSCANY_SDOCPP}/include
+
+install: \ No newline at end of file
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValue.h b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValue.h
new file mode 100755
index 0000000000..615f62bde5
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValue.h
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+#ifndef MyValue_h
+#define MyValue_h
+
+#include "commonj/sdo/SDO.h"
+using commonj::sdo::DataObjectPtr;
+
+class MyValue
+{
+public:
+ virtual DataObjectPtr getMyValue(DataObjectPtr inDataObject) = 0;
+};
+
+#endif
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.componentType b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.componentType
new file mode 100755
index 0000000000..b03760247b
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.componentType
@@ -0,0 +1,39 @@
+<?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/0.9">
+
+ <service name="MyValueService">
+ <interface.cpp header="MyValue/MyValue.h">
+ </interface.cpp>
+ </service>
+
+ <reference name="customerInfo">
+ <interface.cpp header="CustomerInfo/CustomerInfo.h">
+ </interface.cpp>
+ </reference>
+
+ <reference name="stockQuote">
+ <interface.cpp header="StockQuoteService/StockQuoteService.h">
+ </interface.cpp>
+ </reference>
+
+</componentType>
+ \ No newline at end of file
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.cpp b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.cpp
new file mode 100755
index 0000000000..5c0d5506d3
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.cpp
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+//
+// MyValueImpl.cpp: implementation of the MyValueImpl class.
+//
+
+#include "commonj/sdo/HelperProvider.h"
+#include "commonj/sdo/SDO.h"
+#include "osoa/sca/sca.h"
+#include "MyValueImpl.h"
+#include "CustomerInfo/CustomerInfo.h"
+#include "StockQuoteService/StockQuoteService.h"
+#include <iostream>
+
+using namespace std;
+using namespace osoa::sca;
+using namespace commonj::sdo;
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+MyValueImpl::MyValueImpl()
+{
+ cout << "Construct MyValueImpl" << endl;
+
+}
+
+MyValueImpl::~MyValueImpl()
+{
+ cout << "Destroy MyValueImpl" << endl;
+}
+
+//////////////////////////////////////////////////////////////////////
+// Other methods
+//////////////////////////////////////////////////////////////////////
+DataObjectPtr MyValueImpl::getMyValue(DataObjectPtr inDataObject)
+{
+ DataObjectPtr responseDO = 0;
+
+ string customerID = inDataObject->getCString("customerID");
+ cout << "In getMyValue with customerid: " << customerID << endl;
+
+ // Get the CustomerInfo service.
+ ComponentContext myContext = ComponentContext::getCurrent();
+ CustomerInfo* customerInfoService = (CustomerInfo*)myContext.getService("customerInfo");
+
+ if (customerInfoService == 0)
+ {
+ cout << "Unable to find customer info service" << endl;
+
+ return responseDO;
+ }
+
+ // Get the name of the stock for customer 'customerID' from the customerInfoService.
+ const char * stock;
+ try
+ {
+ stock = customerInfoService->getCustomerInformation(customerID.c_str());
+ }
+ catch(const char* x)
+ {
+ cout << "Exception caught: " << x <<endl;
+ throw;
+ }
+
+
+ // Check that we get the same stock back when iterating over the customerInfo services.
+ ServiceList serviceList = myContext.getServices("customerInfo");
+ for (int i=0; i<serviceList.size();i++)
+ {
+ CustomerInfo* service = (CustomerInfo*)(serviceList[i]);
+ stock = service->getCustomerInformation(customerID.c_str());
+ cout << "Stock from getServices " << i << " : " << stock <<endl;
+
+ }
+
+ // Use a second SCA reference to get the stock price for the customer's stock.
+ StockQuoteService* stockQuoteService = (StockQuoteService*)myContext.getService("stockQuote");
+
+ if (stockQuoteService == 0)
+ {
+ cout << "Unable to find stock quote service" << endl;
+
+ return responseDO;
+ }
+
+ // Create a data object representing the requests (use dynamic API until static is available)
+ DataObjectPtr stockQuoteRequestDO;
+ DataFactoryPtr factory;
+ try
+ {
+ // Create the request DO for the StockQuoteService.
+ factory = myContext.getDataFactory();
+ stockQuoteRequestDO = factory->create("http://swanandmokashi.com", "GetQuotes");
+ stockQuoteRequestDO->setCString("QuoteTicker", stock);
+
+ // Invoke the StockQuoteService
+ DataObjectPtr stockQuoteResponseDO = stockQuoteService->GetStockQuotes(stockQuoteRequestDO);
+
+ // DEBUG (Print the response from the StockQuoteService)
+ XMLHelperPtr xmlHelper = HelperProvider::getXMLHelper(factory);;
+ XMLDocumentPtr responseDoc =
+ xmlHelper->createDocument(stockQuoteResponseDO, "http://swanandmokashi.com", "GetQuotesResponse");
+ responseDoc->setXMLDeclaration(false);
+ char *responseXML = xmlHelper->save(responseDoc);
+ cout << "Response XML from StockQuoteService = " << endl;
+ cout << responseXML << endl;
+ cout << endl;
+ // DEBUG
+
+ // Create the MyValueService response DataObject using the results of the StockQuoteService.
+ responseDO = factory->create("http://www.myvalue.org/MyValueService/", "getMyValueResponse");
+ DataObjectPtr getQuotesResultDO = stockQuoteResponseDO->getDataObject("GetQuotesResult");
+ DataObjectList& quoteList = getQuotesResultDO->getList("Quote");
+ float fQuote = quoteList[0]->getFloat("StockQuote");
+
+ responseDO->setFloat("myValue", fQuote);
+ }
+ catch (SDORuntimeException sdoE)
+ {
+ cout << sdoE;
+ }
+
+ return responseDO;
+
+}
+
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.h b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.h
new file mode 100755
index 0000000000..6380dac5e0
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueImpl.h
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+
+#ifndef MyValueImpl_h
+#define MyValueImpl_h
+
+#include "MyValue.h"
+
+
+class MyValueImpl : public MyValue
+{
+public:
+ MyValueImpl();
+ virtual ~MyValueImpl();
+ virtual DataObjectPtr getMyValue(DataObjectPtr inDataObject);
+};
+
+#endif
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueService.wsdl b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueService.wsdl
new file mode 100755
index 0000000000..6ea196e311
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueService.wsdl
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://www.myvalue.org/MyValueService/"
+ targetNamespace="http://www.myvalue.org/MyValueService/">
+ <types>
+ <xs:schema targetNamespace="http://www.myvalue.org/MyValueService/"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://www.myvalue.org/MyValueService/"
+ elementFormDefault="qualified">
+
+ <xs:element name="getMyValue">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="customerID" type="xs:string" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="getMyValueResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="myValue" type="xs:float" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ </xs:schema>
+ </types>
+
+ <message name="getMyValueRequestMsg">
+ <part name="body" element="tns:getMyValue"/>
+ </message>
+
+ <message name="getMyValueResponseMsg">
+ <part name="body" element="tns:getMyValueResponse"/>
+ </message>
+
+ <portType name="MyValueServicePortType">
+ <operation name="getMyValue">
+ <input message="tns:getMyValueRequestMsg"/>
+ <output message="tns:getMyValueResponseMsg"/>
+ </operation>
+ </portType>
+
+ <binding name="MyValueServiceBinding" type="tns:MyValueServicePortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="getMyValue">
+ <soap:operation soapAction="MyValueService#getMyValue"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="MyValueService">
+ <port name="MyValueServicePort" binding="tns:MyValueServiceBinding">
+ <soap:address location="http://localhost/axis/MyValueService"/>
+ </port>
+ </service>
+</definitions>
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueService.xsd b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueService.xsd
new file mode 100755
index 0000000000..ab2f25a826
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/MyValue/MyValueService.xsd
@@ -0,0 +1,42 @@
+<?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 targetNamespace="http://www.myvalue.org/MyValueService/"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://www.myvalue.org/MyValueService/"
+ elementFormDefault="qualified">
+
+ <xs:element name="getMyValue">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="customerID" type="xs:string" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="getMyValueResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="myValue" type="xs:float" minOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/StockQuoteService/StockQuoteService.h b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/StockQuoteService/StockQuoteService.h
new file mode 100755
index 0000000000..fda8a80e89
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/StockQuoteService/StockQuoteService.h
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+#ifndef StockQuoteService_h
+#define StockQuoteService_h
+#include <string>
+#include "commonj/sdo/SDO.h"
+using std::string;
+class StockQuoteService
+{
+public:
+ virtual commonj::sdo::DataObjectPtr GetStockQuotes(commonj::sdo::DataObjectPtr request) = 0;
+
+};
+
+#endif // StockQuoteService_h
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/StockQuoteService/StockQuoteService.wsdl b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/StockQuoteService/StockQuoteService.wsdl
new file mode 100755
index 0000000000..159d15c2d8
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/StockQuoteService/StockQuoteService.wsdl
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<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:s0="http://swanandmokashi.com"
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
+ xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
+ targetNamespace="http://swanandmokashi.com"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <s:schema elementFormDefault="qualified"
+ targetNamespace="http://swanandmokashi.com"
+ xmlns:s="http://www.w3.org/2001/XMLSchema">
+ <s:element name="GetQuotes">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1"
+ name="QuoteTicker" type="s:string" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="GetQuotesResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1"
+ name="GetQuotesResult" type="s0:ArrayOfQuote" />
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:complexType name="ArrayOfQuote">
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="unbounded"
+ name="Quote" type="s0:Quote" />
+ </s:sequence>
+ </s:complexType>
+ <s:complexType name="Quote">
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1"
+ name="CompanyName" type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1"
+ name="StockTicker" type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1"
+ name="StockQuote" type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1"
+ name="LastUpdated" type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1" name="Change"
+ type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1"
+ name="OpenPrice" type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1"
+ name="DayHighPrice" type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1"
+ name="DayLowPrice" type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1" name="Volume"
+ type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1"
+ name="MarketCap" type="s:string" />
+ <s:element minOccurs="0" maxOccurs="1"
+ name="YearRange" type="s:string" />
+ </s:sequence>
+ </s:complexType>
+ <s:element name="ArrayOfQuote" nillable="true"
+ type="s0:ArrayOfQuote" />
+ </s:schema>
+ </types>
+ <message name="GetQuotesSoapIn">
+ <part name="parameters" element="s0:GetQuotes" />
+ </message>
+ <message name="GetQuotesSoapOut">
+ <part name="parameters" element="s0:GetQuotesResponse" />
+ </message>
+ <message name="GetQuotesHttpGetIn">
+ <part name="QuoteTicker" type="s:string" />
+ </message>
+ <message name="GetQuotesHttpGetOut">
+ <part name="Body" element="s0:ArrayOfQuote" />
+ </message>
+ <message name="GetQuotesHttpPostIn">
+ <part name="QuoteTicker" type="s:string" />
+ </message>
+ <message name="GetQuotesHttpPostOut">
+ <part name="Body" element="s0:ArrayOfQuote" />
+ </message>
+ <portType name="StockQuotesSoap">
+ <operation name="GetStockQuotes">
+ <input name="GetQuotes" message="s0:GetQuotesSoapIn" />
+ <output name="GetQuotes" message="s0:GetQuotesSoapOut" />
+ </operation>
+ </portType>
+ <portType name="StockQuotesHttpGet">
+ <operation name="GetStockQuotes">
+ <input name="GetQuotes" message="s0:GetQuotesHttpGetIn" />
+ <output name="GetQuotes" message="s0:GetQuotesHttpGetOut" />
+ </operation>
+ </portType>
+ <portType name="StockQuotesHttpPost">
+ <operation name="GetStockQuotes">
+ <input name="GetQuotes" message="s0:GetQuotesHttpPostIn" />
+ <output name="GetQuotes" message="s0:GetQuotesHttpPostOut" />
+ </operation>
+ </portType>
+ <binding name="StockQuotesSoap" type="s0:StockQuotesSoap">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
+ style="document" />
+ <operation name="GetStockQuotes">
+ <soap:operation
+ soapAction="http://swanandmokashi.com/GetQuotes" style="document" />
+ <input name="GetQuotes">
+ <soap:body use="literal" />
+ </input>
+ <output name="GetQuotes">
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
+ <binding name="StockQuotesHttpGet" type="s0:StockQuotesHttpGet">
+ <http:binding verb="GET" />
+ <operation name="GetStockQuotes">
+ <http:operation location="/GetQuotes" />
+ <input name="GetQuotes">
+ <http:urlEncoded />
+ </input>
+ <output name="GetQuotes">
+ <mime:mimeXml part="Body" />
+ </output>
+ </operation>
+ </binding>
+ <binding name="StockQuotesHttpPost" type="s0:StockQuotesHttpPost">
+ <http:binding verb="POST" />
+ <operation name="GetStockQuotes">
+ <http:operation location="/GetQuotes" />
+ <input name="GetQuotes">
+ <mime:content type="application/x-www-form-urlencoded" />
+ </input>
+ <output name="GetQuotes">
+ <mime:mimeXml part="Body" />
+ </output>
+ </operation>
+ </binding>
+ <service name="StockQuotes">
+ <port name="StockQuotesSoap" binding="s0:StockQuotesSoap">
+ <soap:address
+ location="http://www.swanandmokashi.com/HomePage/WebServices/StockQuotes.asmx" />
+ </port>
+ <port name="StockQuotesHttpGet"
+ binding="s0:StockQuotesHttpGet">
+ <http:address
+ location="http://www.swanandmokashi.com/HomePage/WebServices/StockQuotes.asmx" />
+ </port>
+ <port name="StockQuotesHttpPost"
+ binding="s0:StockQuotesHttpPost">
+ <http:address
+ location="http://www.swanandmokashi.com/HomePage/WebServices/StockQuotes.asmx" />
+ </port>
+ </service>
+</definitions>
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/sca.composite b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/sca.composite
new file mode 100755
index 0000000000..52461c7650
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueComposite/sca.composite
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+
+<composite xmlns="http://www.osoa.org/xmlns/sca/0.9"
+ xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
+ xmlns:mvs="http://www.myvalue.org/MyValueService/"
+ name="MyValueComposite">
+
+ <!-- Expose as a web service -->
+ <entryPoint name="MyValueService" multiplicity="1..1">
+ <interface.wsdl interface="MyValue/MyValueService.wsdl" callbackInterface=""></interface.wsdl>
+ <binding.ws endpoint="mvs:MyValueServiceBinding"></binding.ws>
+ <reference>MyValueServiceComponent</reference>
+ </entryPoint>
+
+ <component name="MyValueServiceComponent">
+ <implementation.cpp dll="MyValue/libMyValue.so" header="MyValue/MyValueImpl.h"></implementation.cpp>
+ <properties>
+ </properties>
+ <references>
+ <customerInfo>CustomerInfoComponent</customerInfo>
+ <stockQuote>StockQuoteService</stockQuote>
+ </references>
+ </component>
+
+ <externalService name="StockQuoteService">
+ <interface.cpp header="StockQuoteService/StockQuoteService.h"/>
+ <binding.ws endpoint="http://swanandmokashi.com#wsdl.endpoint(StockQuotes/StockQuotesSoap)"/>
+ </externalService>
+
+ <!--wire>
+ <source.uri>MyValueServiceComponent/customerInfo</source.uri>
+ <target.uri>CustomerInfoComponent</target.uri>
+ </wire-->
+
+</composite>
+ \ No newline at end of file
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueSubsystem/sca.subsystem b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueSubsystem/sca.subsystem
new file mode 100755
index 0000000000..7336b818b7
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/MyValueSubsystem/sca.subsystem
@@ -0,0 +1,30 @@
+<?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.
+-->
+
+<subsystem xmlns="http://www.osoa.org/xmlns/sca/0.9"
+
+ name="MyValueSubsystem">
+
+ <compositeComponent name="MyValue" composite="MyValueComposite">
+
+ </compositeComponent>
+
+</subsystem>
+ \ No newline at end of file
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/runMyValueClient.sh b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/runMyValueClient.sh
new file mode 100755
index 0000000000..6a8a60c490
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/runMyValueClient.sh
@@ -0,0 +1,53 @@
+#!/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`
+
+export SCA4CPP_HOME="$APFULLDIR"
+if [ x$SCA4CPP = x ]; then
+export TUSCANY_SCACPP="$SCA4CPP_HOME"
+fi
+echo "Using SCA installed at $SCA4CPP_HOME"
+
+if [ x$AXISCPP_DEPLOY = x ]; then
+echo "AXISCPP_DEPLOY not set"
+exit;
+fi
+echo "Using Axis C++ installed at $AXISCPP_DEPLOY"
+
+if [ x$XERCES_DEPLOY = x ]; then
+echo "XERCES_DEPLOY not set"
+exit;
+fi
+echo "Using Xerces C++ installed at $XERCES_DEPLOY"
+
+if [ x$TUSCANY_SDOCPP = x ]; then
+echo "TUSCANY_SDOCPP not set"exit;
+fi
+echo "Using SDO installed at $TUSCANY_SDOCPP"
+
+TEST_ROOT=$SCA4CPP_HOME/runtime/core/test
+
+export LD_LIBRARY_PATH=$TUSCANY_SCACPP/lib:$TUSCANY_SDOCPP/lib:$LD_LIBRARY_PATH:$AXISCPP_DEPLOY/lib:$XERCES_DEPLOY/lib
+
+export TUSCANY_SCACPP_SYSTEM_ROOT=$TEST_ROOT/testSCASystem
+export TUSCANY_SCACPP_DEFAULT_COMPOSITE=SubSystem1
+
+cd $TUSCANY_SCACPP/bin/test
+./tuscany_sca_test
diff --git a/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/server.wsdd b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/server.wsdd
new file mode 100755
index 0000000000..1a82ab85a7
--- /dev/null
+++ b/tags/cpp-1.0-incubating-M2-RC1/sca/samples/MyValue/server.wsdd
@@ -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.
+-->
+
+<!-- The Entity, wspath in the following internal subset allows setting a path for the webservices location -->
+<!--<!DOCTYPE vars [ <!ENTITY wspath "/Apache2.0.54/Apache2/Axis/webservices/"> ]>-->
+
+<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:C="http://xml.apache.org/axis/wsdd/providers/C" xmlns:CPP="http://xml.apache.org/axis/wsdd/providers/CPP">
+ <globalConfiguration>
+ </globalConfiguration>
+
+ <service name="MyValueService" provider="CPP:DOCUMENT" description="MyValueService">
+ <requestFlow>
+ <handler name="SCAWSHandler" type="C:\Apache2.0.54\Apache2\Axis\handlers\tuscany_sca_axis_handler.dll">
+ <parameter name="targetNamespace" value="http://www.myvalue.org/MyValueService/"/>
+ <parameter name="scaEntryPoint" value="MyValueSubsystem/MyValue/MyValueService"/>
+ </handler>
+ </requestFlow>
+
+ <parameter name="className" value="C:\Apache2.0.54\Apache2\Axis\webservices\tuscany_sca_axis_wrapper.dll"/>
+ <parameter name="allowedMethods" value="getMyValue "/>
+ </service>
+
+</deployment>