summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/samples/PythonCalculator/sample.calculator
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-16 06:57:41 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-16 06:57:41 +0000
commitbd0fdbf902f8ca8e7e352582efe938e1d6743dd1 (patch)
tree4ffc871e04f7e22cad2a6ed1d921718e296dc5fe /sca-cpp/trunk/samples/PythonCalculator/sample.calculator
parent2cd577564c1e4a37b25f4064b84af15d112b0654 (diff)
Cleaning up SVN structure, moving sca trunk to sca-cpp/trunk.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@880633 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/samples/PythonCalculator/sample.calculator')
-rw-r--r--sca-cpp/trunk/samples/PythonCalculator/sample.calculator/Calculator.wsdl161
-rw-r--r--sca-cpp/trunk/samples/PythonCalculator/sample.calculator/CalculatorImpl.py56
-rw-r--r--sca-cpp/trunk/samples/PythonCalculator/sample.calculator/DivideImpl.py65
-rw-r--r--sca-cpp/trunk/samples/PythonCalculator/sample.calculator/Makefile.am23
-rw-r--r--sca-cpp/trunk/samples/PythonCalculator/sample.calculator/sample.calculator.composite34
5 files changed, 339 insertions, 0 deletions
diff --git a/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/Calculator.wsdl b/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/Calculator.wsdl
new file mode 100644
index 0000000000..331b996ba2
--- /dev/null
+++ b/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/Calculator.wsdl
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://sample/calculator"
+ targetNamespace="http://sample/calculator">
+ <types>
+ <xs:schema targetNamespace="http://sample/calculator"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://sample/calculator" elementFormDefault="qualified">
+
+ <xs:element name="add">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="param1" type="xs:float"/>
+ <xs:element name="param2" type="xs:float"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="sub">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="param1" type="xs:float"/>
+ <xs:element name="param2" type="xs:float"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="mul">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="param1" type="xs:float"/>
+ <xs:element name="param2" type="xs:float"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="div">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="param1" type="xs:float"/>
+ <xs:element name="param2" type="xs:float"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="result">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="data" type="xs:float"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ </xs:schema>
+ </types>
+
+ <message name="addRequestMsg">
+ <part name="body" element="tns:add" />
+ </message>
+ <message name="subRequestMsg">
+ <part name="body" element="tns:sub" />
+ </message>
+ <message name="mulRequestMsg">
+ <part name="body" element="tns:mul" />
+ </message>
+ <message name="divRequestMsg">
+ <part name="body" element="tns:div" />
+ </message>
+
+ <message name="calculatorResponseMsg">
+ <part name="body" element="tns:result" />
+ </message>
+
+ <portType name="Calculator">
+ <operation name="add">
+ <input message="tns:addRequestMsg" />
+ <output message="tns:calculatorResponseMsg" />
+ </operation>
+ <operation name="sub">
+ <input message="tns:subRequestMsg" />
+ <output message="tns:calculatorResponseMsg" />
+ </operation>
+ <operation name="mul">
+ <input message="tns:mulRequestMsg" />
+ <output message="tns:calculatorResponseMsg" />
+ </operation>
+ <operation name="div">
+ <input message="tns:divRequestMsg" />
+ <output message="tns:calculatorResponseMsg" />
+ </operation>
+ </portType>
+
+ <binding name="CalculatorBinding"
+ type="tns:Calculator">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="add">
+ <soap:operation soapAction="CalculatorService#add" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ <operation name="sub">
+ <soap:operation soapAction="CalculatorService#sub" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ <operation name="mul">
+ <soap:operation soapAction="CalculatorService#mul" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ <operation name="div">
+ <soap:operation soapAction="CalculatorService#div" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
+
+ <service name="CalculatorService">
+ <port name="CalculatorPort"
+ binding="tns:CalculatorBinding">
+ <soap:address location="http://localhost:9090/axis2/services/sample.calculator.CalculatorComponent/CalculatorService" />
+ </port>
+ </service>
+</definitions>
diff --git a/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/CalculatorImpl.py b/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/CalculatorImpl.py
new file mode 100644
index 0000000000..86dbef9e4d
--- /dev/null
+++ b/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/CalculatorImpl.py
@@ -0,0 +1,56 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+#
+#
+# This Python code is a simple sample that provides a Python implementation of
+# the Calculator sample
+#
+
+
+# The module-level add function
+def add(val1, val2):
+ result = float(val1) + float(val2)
+ print "Python - CalculatorImpl.add " + str(val1) + " + " + str(val2) + " = " + str(result)
+ return result
+
+# The module-level sub function
+def sub(val1, val2):
+ result = float(val1) - float(val2)
+ print "Python - CalculatorImpl.sub " + str(val1) + " - " + str(val2) + " = " + str(result)
+ return result
+
+# The module-level mul function
+def mul(val1, val2):
+ result = float(val1) * float(val2)
+ print "Python - CalculatorImpl.mul " + str(val1) + " * " + str(val2) + " = " + str(result)
+ return result
+
+# The module-level div function
+def div(val1, val2):
+
+
+ print "Python - CalculatorImpl.div calling divideService to determine " + str(val1) + " / " + str(val2)
+
+ # Use the divideService reference
+ result = divideService.divide(val1, val2)
+
+ print "Python - CalculatorImpl.div divideService returned " + str(result)
+
+ return result
+
diff --git a/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/DivideImpl.py b/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/DivideImpl.py
new file mode 100644
index 0000000000..3921731de6
--- /dev/null
+++ b/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/DivideImpl.py
@@ -0,0 +1,65 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+#
+#
+#
+# This Python code is a simple sample that provides a Python implementation of
+# the Divide Service used in the Calculator sample
+#
+# Either use the divide function in the DivideClass class (using classes allows
+# composite scoping to be used)
+# e.g. in CalculatorComposite.composite use the line:
+# <implementation.python module="DivideImpl" class="DivideClass"/>
+#
+# Or just use the module-level divide function
+# e.g. in CalculatorComposite.composite use the line:
+# <implementation.python module="DivideImpl" />
+#
+
+
+class DivideClass:
+ "A class to handle dividing"
+
+ def __init__(self):
+ print "Python - DivideImpl.DivideClass constructor"
+
+ # The class-level divide function
+ def divide(self, val1, val2):
+ result = float(val1) / float(val2)
+
+ print "Python - DivideImpl.DivideClass.divide " + str( val1 ) + " / " + str(val2) + " = " + str(result)
+
+ # Use the doRounding property
+ if doRounding:
+ result = round(result)
+ print "Python - DivideImpl.DivideClass.divide is rounding the result to " + str(result)
+
+ return result
+
+# The module-level divide function
+def divide(val1, val2):
+ result = float(val1) / float(val2)
+ print "Python - DivideImpl.divide " + str(val1) + " / " + str(val2) + " = " + str(result)
+
+ # Use the doRounding property
+ if doRounding:
+ result = round(result)
+ print "Python - DivideImpl.divide is rounding the result to " + str(result)
+
+ return result
+
diff --git a/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/Makefile.am b/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/Makefile.am
new file mode 100644
index 0000000000..ec7cf8a8ad
--- /dev/null
+++ b/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/Makefile.am
@@ -0,0 +1,23 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+deploydir=$(prefix)/PythonCalculator/deploy
+compositedir=$(deploydir)/sample.calculator
+
+composite_DATA = *.composite *.wsdl *.py
+
+EXTRA_DIST = *.composite *.wsdl *.py
diff --git a/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/sample.calculator.composite b/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/sample.calculator.composite
new file mode 100644
index 0000000000..7f2221b696
--- /dev/null
+++ b/sca-cpp/trunk/samples/PythonCalculator/sample.calculator/sample.calculator.composite
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ name="sample.calculator">
+
+ <component name="CalculatorComponent">
+ <implementation.python module="CalculatorImpl" scope="composite"/>
+ <reference name="divideService">DivideComponent</reference>
+ </component>
+
+ <component name="DivideComponent">
+ <implementation.python module="DivideImpl" scope="composite"/>
+ <property name="doRounding">true</property>
+ </component>
+
+</composite>