summaryrefslogtreecommitdiffstats
path: root/sandbox/mobile-android/calculator-android
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 /sandbox/mobile-android/calculator-android
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 'sandbox/mobile-android/calculator-android')
-rw-r--r--sandbox/mobile-android/calculator-android/.classpath119
-rw-r--r--sandbox/mobile-android/calculator-android/.project33
-rw-r--r--sandbox/mobile-android/calculator-android/AndroidManifest.xml12
-rw-r--r--sandbox/mobile-android/calculator-android/res/drawable/icon.pngbin0 -> 6094 bytes
-rw-r--r--sandbox/mobile-android/calculator-android/res/layout/main.xml12
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/calculator_composite49
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca.xsd22
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_all.xsd32
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_binding_ejb.xsd43
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_binding_jms.xsd135
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_binding_sca.xsd23
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_binding_webservice.xsd26
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_core.xsd350
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_definitions.xsd25
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_implementation_bpel.xsd43
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_implementation_composite_xsd23
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_implementation_cpp.xsd53
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_implementation_ejb.xsd25
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_implementation_java.xsd24
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_implementation_spring.xsd24
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_interface_cpp.xsd40
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_interface_java.xsd23
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_interface_wsdl.xsd23
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/sca_policy.xsd76
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca.xsd45
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_atom.xsd40
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_dwr.xsd40
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_http.xsd40
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_jsonrpc.xsd40
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_notification.xsd42
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_rmi.xsd43
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_rss.xsd40
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_node.xsd42
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_notification.xsd42
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_osgi.xsd43
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_resource.xsd42
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_script.xsd43
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_widget.xsd42
-rw-r--r--sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_xquery.xsd42
-rw-r--r--sandbox/mobile-android/calculator-android/res/values/strings.xml4
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/AddService.java28
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/AddServiceImpl.java35
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/CalculatorService.java35
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/CalculatorServiceImpl.java70
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/DivideService.java28
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/DivideServiceImpl.java35
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/MultiplyService.java28
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/MultiplyServiceImpl.java35
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/SubtractService.java28
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/SubtractServiceImpl.java35
-rw-r--r--sandbox/mobile-android/calculator-android/src/calculator/android/CalculatorClient.java36
51 files changed, 2258 insertions, 0 deletions
diff --git a/sandbox/mobile-android/calculator-android/.classpath b/sandbox/mobile-android/calculator-android/.classpath
new file mode 100644
index 0000000000..c1a67580ff
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/.classpath
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="lib" path="E:/Adriano/Libs/apache-tuscany-sca-1.1-incubating/tuscany-sca-1.1-incubating/lib/activation-1.1.jar"/>
+ <classpathentry kind="lib" path="E:/Adriano/Libs/apache-tuscany-sca-1.1-incubating/tuscany-sca-1.1-incubating/lib/axiom-api-1.2.5.jar"/>
+ <classpathentry kind="lib" path="E:/Adriano/Libs/apache-tuscany-sca-1.1-incubating/tuscany-sca-1.1-incubating/lib/cglib-nodep-2.1_3.jar"/>
+ <classpathentry kind="lib" path="E:/Adriano/Libs/apache-tuscany-sca-1.1-incubating/tuscany-sca-1.1-incubating/lib/geronimo-commonj_1.1_spec-1.0.jar"/>
+ <classpathentry kind="lib" path="E:/Adriano/Libs/stax-1.2.0.jar"/>
+ <classpathentry kind="lib" path="E:/Adriano/Libs/apache-tuscany-sca-1.1-incubating/tuscany-sca-1.1-incubating/lib/stax-api-1.0-2.jar"/>
+ <classpathentry kind="con" path="com.android.ide.eclipse.adt.project.AndroidClasspathContainerInitializer"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-assembly"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-assembly-java-dsl"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-assembly-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-assembly-xsd"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-atom"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-atom-abdera"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-dwr"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-ejb"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-feed"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-http"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-jms"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-jsonrpc"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-notification"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-rmi"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-rss"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-rss-rome"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-sca"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-sca-axis2"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-sca-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-ws"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-ws-axis2"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-binding-ws-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-contribution"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-contribution-groovy"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-contribution-java"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-contribution-namespace"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-contribution-osgi"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-contribution-resource"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-contribution-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-core"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-core-databinding"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-core-spi"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-core-spring"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-databinding"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-databinding-axiom"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-databinding-fastinfoset"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-databinding-jaxb"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-databinding-json"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-databinding-saxon"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-databinding-sdo"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-databinding-sdo-axiom"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-databinding-xmlbeans"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-databinding-xstream"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-data-engine-helper"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-definitions"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-definitions-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-domain"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-domain-api"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-domain-impl"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-extensibility"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-extension-helper"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-host-embedded"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-host-http"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-host-jetty"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-host-rmi"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-host-tomcat"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-host-webapp"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-host-webapp-junit"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-bpel"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-das"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-data-api"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-data-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-ejb"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-ejb-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-java"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-java-runtime"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-java-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-node"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-node-runtime"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-node-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-notification"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-osgi"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-resource"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-script"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-spring"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-widget"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-implementation-xquery"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-interface"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-interface-java"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-interface-java-jaxws"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-interface-java-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-interface-wsdl"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-interface-wsdl-java2wsdl"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-interface-wsdl-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-node"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-node2-api"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-node2-impl"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-node2-launcher"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-node2-launcher-webapp"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-node-api"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-node-impl"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-osgi-runtime"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-policy"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-policy-logging"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-policy-security"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-policy-transaction"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-policy-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-runtime"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-runtime-tomcat"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-runtime-war"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-sca-api"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-workspace"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-workspace-admin"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-workspace-impl"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-workspace-xml"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/tuscany-contribution-impl"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/android-jdk-classes"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/sandbox/mobile-android/calculator-android/.project b/sandbox/mobile-android/calculator-android/.project
new file mode 100644
index 0000000000..e77a01d623
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>calculator-android</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>com.android.ide.eclipse.adt.ApkBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/sandbox/mobile-android/calculator-android/AndroidManifest.xml b/sandbox/mobile-android/calculator-android/AndroidManifest.xml
new file mode 100644
index 0000000000..8f419508ce
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/AndroidManifest.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="calculator.android">
+ <application android:icon="@drawable/icon">
+ <activity android:name=".CalculatorClient" android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/drawable/icon.png b/sandbox/mobile-android/calculator-android/res/drawable/icon.png
new file mode 100644
index 0000000000..64e3601c23
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/drawable/icon.png
Binary files differ
diff --git a/sandbox/mobile-android/calculator-android/res/layout/main.xml b/sandbox/mobile-android/calculator-android/res/layout/main.xml
new file mode 100644
index 0000000000..469c950462
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/layout/main.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, CalculatorClient"
+ />
+</LinearLayout>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/calculator_composite b/sandbox/mobile-android/calculator-android/res/raw/calculator_composite
new file mode 100644
index 0000000000..90872041b0
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/calculator_composite
@@ -0,0 +1,49 @@
+<?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"
+ targetNamespace="http://sample"
+ xmlns:sample="http://sample"
+ name="Calculator">
+
+ <component name="CalculatorServiceComponent">
+ <implementation.java class="calculator.CalculatorServiceImpl"/>
+ <reference name="addService" target="AddServiceComponent" />
+ <reference name="subtractService" target="SubtractServiceComponent" />
+ <reference name="multiplyService" target="MultiplyServiceComponent" />
+ <reference name="divideService" target="DivideServiceComponent" />
+ </component>
+
+ <component name="AddServiceComponent">
+ <implementation.java class="calculator.AddServiceImpl"/>
+ </component>
+
+ <component name="SubtractServiceComponent">
+ <implementation.java class="calculator.SubtractServiceImpl"/>
+ </component>
+
+ <component name="MultiplyServiceComponent">
+ <implementation.java class="calculator.MultiplyServiceImpl"/>
+ </component>
+
+ <component name="DivideServiceComponent">
+ <implementation.java class="calculator.DivideServiceImpl"/>
+ </component>
+
+</composite>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca.xsd
new file mode 100644
index 0000000000..e108342693
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca.xsd
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006, 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <include schemaLocation="sca_interface_java.xsd"/>
+ <include schemaLocation="sca_interface_wsdl.xsd"/>
+
+ <include schemaLocation="sca_implementation_java.xsd"/>
+ <include schemaLocation="sca_implementation_composite.xsd"/>
+
+ <include schemaLocation="sca_binding_webservice.xsd"/>
+ <include schemaLocation="sca_binding_jms.xsd"/>
+ <include schemaLocation="sca_binding_sca.xsd"/>
+
+ <include schemaLocation="sca_definitions.xsd"/>
+ <include schemaLocation="sca_policy.xsd"/>
+
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_all.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_all.xsd
new file mode 100644
index 0000000000..6e3b848a53
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_all.xsd
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0">
+
+ <include schemaLocation="sca.xsd"/>
+
+ <include schemaLocation="sca_binding_ejb.xsd"/>
+
+ <include schemaLocation="sca_implementation_bpel.xsd"/>
+ <include schemaLocation="sca_implementation_spring.xsd"/>
+ <include schemaLocation="sca_implementation_ejb.xsd"/>
+
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_binding_ejb.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_binding_ejb.xsd
new file mode 100644
index 0000000000..0e7e40432c
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_binding_ejb.xsd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006, 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+ <include schemaLocation="sca_core.xsd"/>
+
+ <element name="binding.ejb" type="sca:EJBSessionBeanBinding"
+ substitutionGroup="sca:binding" />
+
+ <simpleType name="BeanType">
+ <restriction base="string">
+ <enumeration value="stateless"/>
+ <enumeration value="stateful"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="VersionValue">
+ <restriction base="string">
+ <enumeration value="EJB2"/>
+ <enumeration value="EJB3"/>
+ </restriction>
+ </simpleType>
+
+
+ <complexType name="EJBSessionBeanBinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <any namespace="##other" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="homeInterface" type="NCName" use="optional"/>
+ <attribute name="ejb-link-name" type="NCName" use="optional"/>
+ <attribute name="session-type" type="sca:BeanType" use="optional" default="stateless"/>
+ <attribute name="ejb-version" type="sca:VersionValue" use="optional" default="EJB2"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_binding_jms.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_binding_jms.xsd
new file mode 100644
index 0000000000..868a9d64e0
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_binding_jms.xsd
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006, 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <complexType name="JMSBinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <element name="destination" type="sca:Destination" minOccurs="0"/>
+ <element name="connectionFactory" type="sca:ConnectionFactory"
+ minOccurs="0"/>
+ <element name="activationSpec" type="sca:ActivationSpec"
+ minOccurs="0"/>
+ <element name="response" type="sca:Response" minOccurs="0"/>
+ <element name="headers" type="sca:Headers" minOccurs="0"/>
+ <element name="resourceAdapter" type="sca:ResourceAdapter"
+ minOccurs="0"/>
+ <element name="operationProperties" type="sca:OperationProperties"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <any namespace="##other" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="correlationScheme"
+ default="RequestMsgIDToCorrelID">
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="RequestMsgIDToCorrelID"/>
+ <enumeration value="RequestCorrelIDToCorrelID"/>
+ <enumeration value="None"/>
+ </restriction>
+ </simpleType>
+ </attribute>
+
+ <attribute name="initialContextFactory" type="anyURI"/>
+ <attribute name="jndiURL" type="anyURI"/>
+ <attribute name="requestConnection" type="QName"/>
+ <attribute name="responseConnection" type="QName"/>
+ <attribute name="operationProperties" type="QName"/>
+ <anyAttribute/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <simpleType name="CreateResource">
+ <restriction base="string">
+ <enumeration value="always"/>
+ <enumeration value="never"/>
+ <enumeration value="ifnotexist"/>
+ </restriction>
+ </simpleType>
+
+ <complexType name="Destination">
+ <sequence>
+ <element name="property" type="string"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="anyURI" use="required"/>
+ <attribute name="type" use="optional" default="queue">
+ <simpleType>
+ <restriction base="string">
+ <enumeration value="queue"/>
+ <enumeration value="topic"/>
+ </restriction>
+ </simpleType>
+ </attribute>
+ <attribute name="create" type="sca:CreateResource"
+ use="optional" default="ifnotexist"/>
+ </complexType>
+
+ <complexType name="ConnectionFactory">
+ <sequence> <element name="property" type="string"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="anyURI" use="required"/>
+ <attribute name="create" type="sca:CreateResource"
+ use="optional" default="ifnotexist"/>
+ </complexType>
+
+ <complexType name="ActivationSpec">
+ <sequence>
+ <element name="property" type="string"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="anyURI" use="required"/>
+ <attribute name="create" type="sca:CreateResource"
+ use="optional" default="ifnotexist"/>
+ </complexType>
+
+ <complexType name="Response">
+ <sequence>
+ <element name="destination" type="sca:Destination" minOccurs="0"/>
+ <element name="connectionFactory" type="sca:ConnectionFactory"
+ minOccurs="0"/>
+ <element name="activationSpec" type="sca:ActivationSpec" minOccurs="0"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="Headers">
+ <sequence>
+ <element name="property" type="string"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="JMSType" type="string"/>
+ <attribute name="JMSCorrelationID" type="string"/>
+ <attribute name="JMSDeliveryMode" type="string"/>
+ <attribute name="JMSTimeToLive" type="int"/>
+ <attribute name="JMSPriority" type="string"/>
+ </complexType>
+
+ <complexType name="ResourceAdapter">
+ <sequence>
+ <element name="property" type="string"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="string" use="required"/>
+ </complexType>
+
+ <complexType name="OperationProperties">
+ <sequence>
+ <element name="property" type="string"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <element name="headers" type="sca:Headers"/>
+ </sequence>
+ <attribute name="name" type="string" use="required"/>
+ <attribute name="nativeOperation" type="string"/>
+ </complexType>
+
+ <element name="binding.jms" type="sca:JMSBinding"
+ substitutionGroup="sca:binding"/>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_binding_sca.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_binding_sca.xsd
new file mode 100644
index 0000000000..8005cda8a6
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_binding_sca.xsd
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006, 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <element name="binding.sca" type="sca:SCABinding"
+ substitutionGroup="sca:binding"/>
+ <complexType name="SCABinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_binding_webservice.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_binding_webservice.xsd
new file mode 100644
index 0000000000..92446c0338
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_binding_webservice.xsd
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006, 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:wsdli="http://www.w3.org/2004/08/wsdl-instance"
+ xmlns:wsa="http://www.w3.org/2004/12/addressing"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca-core.xsd"/>
+
+ <element name="binding.ws" type="sca:WebServiceBinding"
+ substitutionGroup="sca:binding"/>
+ <complexType name="WebServiceBinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="wsdlElement" type="anyURI" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_core.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_core.xsd
new file mode 100644
index 0000000000..20e0a6901c
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_core.xsd
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006, 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <element name="componentType" type="sca:ComponentType"/>
+ <complexType name="ComponentType">
+ <sequence>
+ <choice minOccurs="0" maxOccurs="1">
+ <element ref="sca:implementation"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="service" type="sca:ComponentService" />
+ <element name="reference" type="sca:ComponentReference"/>
+ <element name="property" type="sca:Property"/>
+ </choice>
+ <!--
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ -->
+ </sequence>
+ <attribute name="constrainingType" type="QName" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <element name="composite" type="sca:Composite"/>
+ <complexType name="Composite">
+ <sequence>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="include" type="sca:Include"/>
+ <element name="service" type="sca:Service"/>
+ <element name="property" type="sca:Property"/>
+ <element name="component" type="sca:Component"/>
+ <element name="reference" type="sca:Reference"/>
+ <element name="wire" type="sca:Wire"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ <!--
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ -->
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="targetNamespace" type="anyURI" use="optional"/>
+ <attribute name="local" type="boolean" use="optional" default="false"/>
+ <attribute name="autowire" type="boolean" use="optional" default="false"/>
+ <attribute name="constrainingType" type="QName" use="optional"/>
+ <attribute name="requires" type="sca:listOfQNames" use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="Service">
+ <sequence>
+ <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
+ <element name="operation" type="sca:Operation" minOccurs="0"
+ maxOccurs="unbounded" />
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="sca:binding" />
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ <element ref="sca:callback" minOccurs="0" maxOccurs="1" />
+ <!--
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded" />
+ -->
+ </sequence>
+ <attribute name="name" type="NCName" use="required" />
+ <attribute name="promote" type="anyURI" use="required" />
+ <attribute name="requires" type="sca:listOfQNames" use="optional" />
+ <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax" />
+ </complexType>
+
+ <element name="interface" type="sca:Interface" abstract="true" />
+ <complexType name="Interface" abstract="true"/>
+
+ <complexType name="Reference">
+ <sequence>
+ <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
+ <element name="operation" type="sca:Operation" minOccurs="0"
+ maxOccurs="unbounded" />
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="sca:binding" />
+ <any namespace="##other" processContents="lax" />
+ </choice>
+ <element ref="sca:callback" minOccurs="0" maxOccurs="1" />
+ <!--
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded" />
+ -->
+ </sequence>
+ <attribute name="name" type="NCName" use="required" />
+ <attribute name="target" type="sca:listOfAnyURIs" use="optional"/>
+ <attribute name="wiredByImpl" type="boolean" use="optional" default="false"/>
+ <attribute name="multiplicity" type="sca:Multiplicity"
+ use="optional" default="1..1" />
+ <attribute name="promote" type="sca:listOfAnyURIs" use="required" />
+ <attribute name="requires" type="sca:listOfQNames" use="optional" />
+ <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax" />
+ </complexType>
+
+ <complexType name="SCAPropertyBase" mixed="true">
+ <!-- mixed="true" to handle simple type -->
+ <sequence>
+ <any namespace="##any" processContents="lax" minOccurs="0"
+ maxOccurs="1" />
+ <!-- NOT an extension point; This xsd:any exists to accept
+ the element-based or complex type property
+ i.e. no element-based extension point under "sca:property" -->
+ </sequence>
+ </complexType>
+
+ <!-- complex type for sca:property declaration -->
+ <complexType name="Property" mixed="true">
+ <complexContent>
+ <extension base="sca:SCAPropertyBase">
+ <!-- extension defines the place to hold default value -->
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="type" type="QName" use="optional"/>
+ <attribute name="element" type="QName" use="optional"/>
+ <attribute name="many" type="boolean" default="false"
+ use="optional"/>
+ <attribute name="noDefault" type="boolean" default="false"
+ use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ <!-- an extension point ; attribute-based only -->
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <complexType name="PropertyValue" mixed="true">
+ <complexContent>
+ <extension base="sca:SCAPropertyBase">
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="type" type="QName" use="optional"/>
+ <attribute name="element" type="QName" use="optional"/>
+ <attribute name="many" type="boolean" default="false"
+ use="optional"/>
+ <attribute name="source" type="string" use="optional"/>
+ <attribute name="file" type="anyURI" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ <!-- an extension point ; attribute-based only -->
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <element name="binding" type="sca:Binding" abstract="true"/>
+ <complexType name="Binding" abstract="true">
+ <sequence>
+ <element name="operation" type="sca:Operation" minOccurs="0"
+ maxOccurs="unbounded" />
+ </sequence>
+ <attribute name="uri" type="anyURI" use="optional"/>
+ <attribute name="name" type="QName" use="optional"/>
+ <attribute name="requires" type="sca:listOfQNames" use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
+ </complexType>
+
+ <element name="bindingType" type="sca:BindingType"/>
+ <complexType name="BindingType">
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <any namespace="##other" processContents="lax" />
+ </sequence>
+ <attribute name="type" type="QName" use="required"/>
+ <attribute name="alwaysProvides" type="sca:listOfQNames" use="optional"/>
+ <attribute name="mayProvide" type="sca:listOfQNames" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <element name="callback" type="sca:Callback"/>
+ <complexType name="Callback">
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="sca:binding"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ <attribute name="requires" type="sca:listOfQNames" use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="Component">
+ <sequence>
+ <choice minOccurs="0" maxOccurs="1">
+ <element ref="sca:implementation"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="service" type="sca:ComponentService"/>
+ <element name="reference" type="sca:ComponentReference"/>
+ <element name="property" type="sca:PropertyValue" />
+ </choice>
+ <!--
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ -->
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="autowire" type="boolean" use="optional" default="false"/>
+ <attribute name="constrainingType" type="QName" use="optional"/>
+ <attribute name="requires" type="sca:listOfQNames" use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="ComponentService">
+ <sequence>
+ <element ref="sca:interface" minOccurs="0" maxOccurs="1"/>
+ <element name="operation" type="sca:Operation" minOccurs="0"
+ maxOccurs="unbounded" />
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="sca:binding" />
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ <element ref="sca:callback" minOccurs="0" maxOccurs="1"/>
+ <!--
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ -->
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="requires" type="sca:listOfQNames"
+ use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames"
+ use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="ComponentReference">
+ <sequence>
+ <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
+ <element name="operation" type="sca:Operation" minOccurs="0"
+ maxOccurs="unbounded" />
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="sca:binding" />
+ <any namespace="##other" processContents="lax" />
+ </choice>
+ <element ref="sca:callback" minOccurs="0" maxOccurs="1" />
+ <!--
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded" />
+ -->
+ </sequence>
+ <attribute name="name" type="NCName" use="required" />
+ <attribute name="target" type="sca:listOfAnyURIs" use="optional"/>
+ <attribute name="multiplicity" type="sca:Multiplicity"
+ use="optional" default="1..1" />
+ <attribute name="requires" type="sca:listOfQNames" use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames"
+ use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax" />
+ </complexType>
+
+ <element name="implementation" type="sca:Implementation"
+ abstract="true" />
+ <complexType name="Implementation" abstract="true">
+ <attribute name="requires" type="sca:listOfQNames" use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
+ </complexType>
+
+ <element name="implementationType" type="sca:ImplementationType"/>
+ <complexType name="ImplementationType">
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <any namespace="##other" processContents="lax" />
+ </sequence>
+ <attribute name="type" type="QName" use="required"/>
+ <attribute name="alwaysProvides" type="sca:listOfQNames" use="optional"/>
+ <attribute name="mayProvide" type="sca:listOfQNames" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="Wire">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="source" type="anyURI" use="required"/>
+ <attribute name="target" type="anyURI" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <element name="include" type="sca:Include"/>
+ <complexType name="Include">
+ <attribute name="name" type="QName"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="Operation">
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="requires" type="sca:listOfQNames" use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <element name="constrainingType" type="sca:ConstrainingType"/>
+ <complexType name="ConstrainingType">
+ <sequence>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="service" type="sca:ComponentService"/>
+ <element name="reference" type="sca:ComponentReference"/>
+ <element name="property" type="sca:Property" />
+ </choice>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="targetNamespace" type="anyURI"/>
+ <attribute name="requires" type="sca:listOfQNames" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+
+ <simpleType name="Multiplicity">
+ <restriction base="string">
+ <enumeration value="0..1"/>
+ <enumeration value="1..1"/>
+ <enumeration value="0..n"/>
+ <enumeration value="1..n"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="OverrideOptions">
+ <restriction base="string">
+ <enumeration value="no"/>
+ <enumeration value="may"/>
+ <enumeration value="must"/>
+ </restriction>
+ </simpleType>
+
+ <!-- Global attribute definition for @requires to permit use of intents
+ within WSDL documents -->
+ <attribute name="requires" type="sca:listOfQNames"/>
+
+ <!-- Global attribute defintion for @endsConversation to mark operations
+ as ending a conversation -->
+ <attribute name="endsConversation" type="boolean" default="false"/>
+
+ <simpleType name="listOfQNames">
+ <list itemType="QName"/>
+ </simpleType>
+
+ <simpleType name="listOfAnyURIs">
+ <list itemType="anyURI"/>
+ </simpleType>
+
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_definitions.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_definitions.xsd
new file mode 100644
index 0000000000..4676d34eeb
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_definitions.xsd
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+ <include schemaLocation="sca_policy.xsd"/>
+
+ <element name="definitions">
+ <complexType>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="sca:intent"/>
+ <element ref="sca:policySet"/>
+ <element ref="sca:binding"/>
+ <element ref="sca:bindingType"/>
+ <element ref="sca:implementationType"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </choice>
+ <attribute name="targetNamespace" type="anyURI" use="optional"/>
+ </complexType>
+ </element>
+
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_bpel.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_bpel.xsd
new file mode 100644
index 0000000000..80141a57af
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_bpel.xsd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006 -->
+<xsd:schema xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified">
+
+ <xsd:include schemaLocation="sca_core.xsd" />
+
+ <xsd:element name="implementation.bpel" type="BpelImplementation"
+ substitutionGroup="implementation" />
+
+ <xsd:complexType name="BpelImplementation">
+ <xsd:complexContent>
+ <xsd:extension base="Implementation">
+ <xsd:sequence>
+ <xsd:any namespace="##other" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:attribute name="process" type="xsd:QName" use="required" />
+ <xsd:anyAttribute namespace="##any" processContents="lax" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="interface.partnerLinkType" type="BpelPartnerLinkType"
+ substitutionGroup="interface" />
+
+ <xsd:complexType name="BpelPartnerLinkType">
+ <xsd:complexContent>
+ <xsd:extension base="Interface">
+ <xsd:sequence>
+ <xsd:any namespace="##other" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ <xsd:attribute name="type" type="xsd:QName" use="required" />
+ <xsd:attribute name="serviceRole" type="xsd:NCName" use="optional" />
+ <xsd:anyAttribute namespace="##any" processContents="lax" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+</xsd:schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_composite_xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_composite_xsd
new file mode 100644
index 0000000000..2486653235
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_composite_xsd
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+ <element name="implementation.composite" type="sca:SCAImplementation"
+ substitutionGroup="sca:implementation"/>
+ <complexType name="SCAImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="QName" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_cpp.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_cpp.xsd
new file mode 100644
index 0000000000..1d157d9504
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_cpp.xsd
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sdo="commonj.sdo/XML"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.cpp" type="sca:CPPImplementation" substitutionGroup="sca:implementation" />
+ <complexType name="CPPImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <element name="method" type="sca:CPPImplementationMethod" minOccurs="0" maxOccurs="unbounded" />
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="library" type="NCName" use="required"/>
+ <attribute name="header" type="NCName" use="required"/>
+ <attribute name="path" type="NCName" use="optional"/>
+ <attribute name="class" type="Name" use="optional"/>
+ <attribute name="scope" type="sca:CPPImplementationScope" use="optional"/>
+ <attribute name="eagerInit" type="boolean" use="optional"/>
+ <attribute name="allowsPassByReference" type="boolean" use="optional"/>
+ <attribute name="conversationMaxAge" type="string" use="optional"/>
+ <attribute name="conversationMaxIdle" type="string" use="optional"/>
+ <attribute name="conversationSinglePrincipal" type="boolean" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <simpleType name="CPPImplementationScope">
+ <restriction base="string">
+ <enumeration value="stateless"/>
+ <enumeration value="composite"/>
+ <enumeration value="request"/>
+ <enumeration value="converstion"/>
+ </restriction>
+ </simpleType>
+
+ <complexType name="CPPImplementationMethod">
+ <complexContent>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="allowsPassByReference" type="boolean" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexContent>
+ </complexType>
+
+</schema>
+
+
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_ejb.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_ejb.xsd
new file mode 100644
index 0000000000..850b854fd5
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_ejb.xsd
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.ejb" type="sca:EJBImplementation"
+ substitutionGroup="sca:implementation"/>
+ <complexType name="EJBImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##other" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <!-- we might want to make this refer to the JEE ejb-link type -->
+ <attribute name="ejb-link" type="token" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_java.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_java.xsd
new file mode 100644
index 0000000000..792ad407b3
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_java.xsd
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.java" type="sca:JavaImplementation"
+ substitutionGroup="sca:implementation"/>
+ <complexType name="JavaImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##other" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="class" type="NCName" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_spring.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_spring.xsd
new file mode 100644
index 0000000000..a9ef307bed
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_implementation_spring.xsd
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.spring" type="sca:SpringImplementation"
+ substitutionGroup="sca:implementation"/>
+ <complexType name="SpringImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##other" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="location" type="anyURI" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_interface_cpp.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_interface_cpp.xsd
new file mode 100644
index 0000000000..9cae7e3685
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_interface_cpp.xsd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.commonj.org/xmlns/sca/1.0/"
+ xmlns:sca="http://www.commonj.org/xmlns/sca/1.0/"
+ xmlns:sdo="commonj.sdo/XML"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <element name="interface.cpp" type="sca:CPPInterface" substitutionGroup="sca:interface"/>
+
+ <complexType name="CPPInterface">
+ <complexContent>
+ <extension base="sca:Interface">
+ <sequence>
+ <element name="method" type="sca:CPPMethod" minOccurs="0" maxOccurs="unbounded" />
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="header" type="NCName" use="required"/>
+ <attribute name="class" type="Name" use="required"/>
+ <attribute name="callbackHeader" type="NCName" use="optional"/>
+ <attribute name="callbackClass" type="Name" use="optional"/>
+ <attribute name="remotable" type="boolean" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <complexType name="CPPMethod">
+ <complexContent>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="oneWay" type="boolean" use="optional"/>
+ <attribute name="endConversation" type="boolean" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexContent>
+ </complexType>
+
+</schema>
+
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_interface_java.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_interface_java.xsd
new file mode 100644
index 0000000000..3f9eb25440
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_interface_java.xsd
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006, 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <element name="interface.java" type="sca:JavaInterface" substitutionGroup="sca:interface"/>
+ <complexType name="JavaInterface">
+ <complexContent>
+ <extension base="sca:Interface">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="interface" type="NCName" use="required"/>
+ <attribute name="callbackInterface" type="NCName" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_interface_wsdl.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_interface_wsdl.xsd
new file mode 100644
index 0000000000..c161d98f88
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_interface_wsdl.xsd
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006, 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <element name="interface.wsdl" type="sca:WSDLPortType" substitutionGroup="sca:interface"/>
+ <complexType name="WSDLPortType">
+ <complexContent>
+ <extension base="sca:Interface">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="interface" type="anyURI" use="required"/>
+ <attribute name="callbackInterface" type="anyURI" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/sca_policy.xsd b/sandbox/mobile-android/calculator-android/res/raw/sca_policy.xsd
new file mode 100644
index 0000000000..1ae1c9dfdc
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/sca_policy.xsd
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- (c) Copyright SCA Collaboration 2006, 2007 -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ elementFormDefault="qualified">
+
+ <include schemaLocation="sca_core.xsd"/>
+
+ <element name="intent" type="sca:Intent"/>
+ <complexType name="Intent">
+ <sequence>
+ <element name="description" type="string" minOccurs="0" maxOccurs="1" />
+ <any namespace="##other" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="QName" use="required"/>
+ <attribute name="constrains" type="sca:listOfQNames" use="optional"/>
+ <attribute name="requires" type="sca:listOfQNames" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <element name="policySet" type="sca:PolicySet"/>
+ <complexType name="PolicySet">
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="policySetReference" type="sca:PolicySetReference"/>
+ <element name="intentMap" type="sca:IntentMap"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ <attribute name="name" type="QName" use="required"/>
+ <attribute name="provides" type="sca:listOfQNames" use="optional"/>
+ <attribute name="appliesTo" type="string" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="PolicySetReference">
+ <attribute name="name" type="QName" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="IntentMap">
+ <choice minOccurs="1" maxOccurs="unbounded">
+ <element name="qualifier" type="sca:Qualifier"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ <attribute name="provides" type="QName" use="required"/>
+ <attribute name="default" type="string" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <complexType name="Qualifier">
+ <choice minOccurs="1" maxOccurs="unbounded">
+ <element name="intentMap" type="sca:IntentMap"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ <attribute name="name" type="string" use="required"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <element name="allow" type="sca:Allow"/>
+ <complexType name="Allow">
+ <attribute name="roles" type="string" use="required"/>
+ </complexType>
+
+ <element name="permitAll" type="sca:PermitAll"/>
+ <complexType name="PermitAll"/>
+
+ <element name="denyAll" type="sca:DenyAll"/>
+ <complexType name="DenyAll"/>
+
+ <element name="runAs" type="sca:RunAs"/>
+ <complexType name="RunAs">
+ <attribute name="role" type="string" use="required"/>
+ </complexType>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca.xsd
new file mode 100644
index 0000000000..33b7c5099b
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca.xsd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_all.xsd"/>
+
+ <include schemaLocation="tuscany_sca_binding_atom.xsd"/>
+ <include schemaLocation="tuscany_sca_binding_dwr.xsd"/>
+ <include schemaLocation="tuscany_sca_binding_http.xsd"/>
+ <include schemaLocation="tuscany_sca_binding_jsonrpc.xsd"/>
+ <include schemaLocation="tuscany_sca_binding_notification.xsd"/>
+ <include schemaLocation="tuscany_sca_binding_rmi.xsd"/>
+ <include schemaLocation="tuscany_sca_binding_rss.xsd"/>
+
+ <!__
+ <include schemaLocation="tuscany_sca_implementation_das.xsd"/>
+ <include schemaLocation="tuscany_sca_implementation_data.xsd"/>
+ __>
+ <include schemaLocation="tuscany_sca_implementation_node.xsd"/>
+ <include schemaLocation="tuscany_sca_implementation_notification.xsd"/>
+ <include schemaLocation="tuscany_sca_implementation_osgi.xsd"/>
+ <include schemaLocation="tuscany_sca_implementation_resource.xsd"/>
+ <include schemaLocation="tuscany_sca_implementation_script.xsd"/>
+ <include schemaLocation="tuscany_sca_implementation_widget.xsd"/>
+ <include schemaLocation="tuscany_sca_implementation_xquery.xsd"/>
+
+</schema> \ No newline at end of file
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_atom.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_atom.xsd
new file mode 100644
index 0000000000..1423a7ee87
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_atom.xsd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="binding.atom" type="t:AtomBinding"/>
+
+ <complexType name="AtomBinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_dwr.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_dwr.xsd
new file mode 100644
index 0000000000..98b17bbb8b
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_dwr.xsd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="binding.dwr" type="t:DWRBinding"/>
+
+ <complexType name="DWRBinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_http.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_http.xsd
new file mode 100644
index 0000000000..4d709353d0
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_http.xsd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="binding.http" type="t:HTTPBinding"/>
+
+ <complexType name="HTTPBinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_jsonrpc.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_jsonrpc.xsd
new file mode 100644
index 0000000000..e03d6feb02
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_jsonrpc.xsd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="binding.jsonrpc" type="t:JSONRPCBinding"/>
+
+ <complexType name="JSONRPCBinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_notification.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_notification.xsd
new file mode 100644
index 0000000000..d1b23e8826
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_notification.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.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="binding.notification" type="t:NotificationBinding"/>
+
+ <complexType name="NotificationBinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="ntm" type="anyURI" use="optional"/>
+ <attribute name="notificationType" type="anyURI" use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_rmi.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_rmi.xsd
new file mode 100644
index 0000000000..7815e390e4
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_rmi.xsd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="binding.rmi" type="t:RMIBinding"/>
+
+ <complexType name="RMIBinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="host" type="anyURI" use="optional"/>
+ <attribute name="port" type="int" use="optional"/>
+ <attribute name="serviceName" type="anyURI" use="required"/>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_rss.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_rss.xsd
new file mode 100644
index 0000000000..8fd10cc781
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_binding_rss.xsd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="binding.rss" type="t:RSSBinding"/>
+
+ <complexType name="RSSBinding">
+ <complexContent>
+ <extension base="sca:Binding">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_node.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_node.xsd
new file mode 100644
index 0000000000..1943c98d70
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_node.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.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.node" type="t:NodeImplementation"/>
+
+ <complexType name="NodeImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="composite" type="QName" use="required"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_notification.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_notification.xsd
new file mode 100644
index 0000000000..1c4c6d7aeb
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_notification.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.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.notification" type="t:NotificationImplementation"/>
+
+ <complexType name="NotificationImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_osgi.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_osgi.xsd
new file mode 100644
index 0000000000..9fedc2bb84
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_osgi.xsd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.osgi" type="t:OSGiImplementation"/>
+
+ <!-- TODO Declare the proper attributes and elements -->
+ <complexType name="OSGiImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##any" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_resource.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_resource.xsd
new file mode 100644
index 0000000000..e37b2c47ee
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_resource.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.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.resource" type="t:ResourceImplementation"/>
+
+ <complexType name="ResourceImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="location" type="anyURI" use="required"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_script.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_script.xsd
new file mode 100644
index 0000000000..a13643d148
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_script.xsd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.script" type="t:ScriptImplementation"/>
+
+ <complexType name="ScriptImplementation">
+ <complexContent mixed="true">
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="script" type="anyURI" use="optional"/>
+ <attribute name="language" type="NCName" use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_widget.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_widget.xsd
new file mode 100644
index 0000000000..1afb30c106
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_widget.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.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.widget" type="t:WidgetImplementation"/>
+
+ <complexType name="WidgetImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="location" type="anyURI" use="required"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_xquery.xsd b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_xquery.xsd
new file mode 100644
index 0000000000..875f0da1dc
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/raw/tuscany_sca_implementation_xquery.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.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.osoa.org/xmlns/sca/1.0" schemaLocation="sca_core.xsd"/>
+
+ <element name="implementation.xquery" type="t:XQueryImplementation"/>
+
+ <complexType name="XQueryImplementation">
+ <complexContent>
+ <extension base="sca:Implementation">
+ <sequence>
+ <any namespace="##targetNamespace" processContents="lax"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="location" type="anyURI" use="required"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+</schema>
diff --git a/sandbox/mobile-android/calculator-android/res/values/strings.xml b/sandbox/mobile-android/calculator-android/res/values/strings.xml
new file mode 100644
index 0000000000..91b584c887
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Calculator</string>
+</resources>
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/AddService.java b/sandbox/mobile-android/calculator-android/src/calculator/AddService.java
new file mode 100644
index 0000000000..188451ebac
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/AddService.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package calculator;
+
+/**
+ * The Add service interface
+ */
+public interface AddService {
+
+ double add(double n1, double n2);
+
+}
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/AddServiceImpl.java b/sandbox/mobile-android/calculator-android/src/calculator/AddServiceImpl.java
new file mode 100644
index 0000000000..7ca8fb04b5
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/AddServiceImpl.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package calculator;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * An implementation of the Add service
+ */
+public class AddServiceImpl implements AddService {
+
+ public double add(double n1, double n2) {
+ Logger logger = Logger.getLogger("calculator");
+ logger.log(Level.FINEST, "Adding " + n1 + " and " + n2);
+ return n1 + n2;
+ }
+
+}
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/CalculatorService.java b/sandbox/mobile-android/calculator-android/src/calculator/CalculatorService.java
new file mode 100644
index 0000000000..031fa8b912
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/CalculatorService.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package calculator;
+
+
+/**
+ * The Calculator service interface.
+ */
+public interface CalculatorService {
+
+ double add(double n1, double n2);
+
+ double subtract(double n1, double n2);
+
+ double multiply(double n1, double n2);
+
+ double divide(double n1, double n2);
+
+}
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/CalculatorServiceImpl.java b/sandbox/mobile-android/calculator-android/src/calculator/CalculatorServiceImpl.java
new file mode 100644
index 0000000000..3d861f2018
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/CalculatorServiceImpl.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package calculator;
+
+import org.osoa.sca.annotations.Reference;
+
+
+/**
+ * An implementation of the Calculator service.
+ */
+public class CalculatorServiceImpl implements CalculatorService {
+
+ private AddService addService;
+ private SubtractService subtractService;
+ private MultiplyService multiplyService;
+ private DivideService divideService;
+
+ @Reference
+ public void setAddService(AddService addService) {
+ this.addService = addService;
+ }
+
+ @Reference
+ public void setSubtractService(SubtractService subtractService) {
+ this.subtractService = subtractService;
+ }
+
+ @Reference
+ public void setDivideService(DivideService divideService) {
+ this.divideService = divideService;
+ }
+
+ @Reference
+ public void setMultiplyService(MultiplyService multiplyService) {
+ this.multiplyService = multiplyService;
+ }
+
+ public double add(double n1, double n2) {
+ return addService.add(n1, n2);
+ }
+
+ public double subtract(double n1, double n2) {
+ return subtractService.subtract(n1, n2);
+ }
+
+ public double multiply(double n1, double n2) {
+ return multiplyService.multiply(n1, n2);
+ }
+
+ public double divide(double n1, double n2) {
+ return divideService.divide(n1, n2);
+ }
+
+}
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/DivideService.java b/sandbox/mobile-android/calculator-android/src/calculator/DivideService.java
new file mode 100644
index 0000000000..30d248208b
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/DivideService.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package calculator;
+
+/**
+ * The divide service interface
+ */
+public interface DivideService {
+
+ double divide(double n1, double n2);
+
+}
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/DivideServiceImpl.java b/sandbox/mobile-android/calculator-android/src/calculator/DivideServiceImpl.java
new file mode 100644
index 0000000000..1323edf55a
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/DivideServiceImpl.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package calculator;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * An implementation of the Divide service.
+ */
+public class DivideServiceImpl implements DivideService {
+
+ public double divide(double n1, double n2) {
+ Logger logger = Logger.getLogger("calculator");
+ logger.log(Level.FINEST, "Dividing " + n1 + " with " + n2);
+ return n1 / n2;
+ }
+
+}
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/MultiplyService.java b/sandbox/mobile-android/calculator-android/src/calculator/MultiplyService.java
new file mode 100644
index 0000000000..5290605938
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/MultiplyService.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package calculator;
+
+/**
+ * The interface for the multiply service
+ */
+public interface MultiplyService {
+
+ double multiply(double n1, double n2);
+
+}
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/MultiplyServiceImpl.java b/sandbox/mobile-android/calculator-android/src/calculator/MultiplyServiceImpl.java
new file mode 100644
index 0000000000..91b803bc9e
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/MultiplyServiceImpl.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package calculator;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * An implementation of the Multiply service.
+ */
+public class MultiplyServiceImpl implements MultiplyService {
+
+ public double multiply(double n1, double n2) {
+ Logger logger = Logger.getLogger("calculator");
+ logger.log(Level.FINEST, "Multiplying " + n1 + " with " + n2);
+ return n1 * n2;
+ }
+
+}
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/SubtractService.java b/sandbox/mobile-android/calculator-android/src/calculator/SubtractService.java
new file mode 100644
index 0000000000..bf0d1882b6
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/SubtractService.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package calculator;
+
+/**
+ * The interface for the multiply service
+ */
+public interface SubtractService {
+
+ double subtract(double n1, double n2);
+
+}
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/SubtractServiceImpl.java b/sandbox/mobile-android/calculator-android/src/calculator/SubtractServiceImpl.java
new file mode 100644
index 0000000000..58cc4a3547
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/SubtractServiceImpl.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package calculator;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * An implementation of the subtract service.
+ */
+public class SubtractServiceImpl implements SubtractService {
+
+ public double subtract(double n1, double n2) {
+ Logger logger = Logger.getLogger("calculator");
+ logger.log(Level.FINEST, "Subtracting " + n1 + " from " + n2);
+ return n1 - n2;
+ }
+
+}
diff --git a/sandbox/mobile-android/calculator-android/src/calculator/android/CalculatorClient.java b/sandbox/mobile-android/calculator-android/src/calculator/android/CalculatorClient.java
new file mode 100644
index 0000000000..7d6a6613ed
--- /dev/null
+++ b/sandbox/mobile-android/calculator-android/src/calculator/android/CalculatorClient.java
@@ -0,0 +1,36 @@
+package calculator.android;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+import calculator.CalculatorService;
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.TextView;
+
+public class CalculatorClient extends Activity {
+
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ StringBuffer sb = new StringBuffer();
+
+ SCADomain scaDomain = SCADomain.newInstance(this, "dex://calculator.android/raw/calculator.composite");
+
+ CalculatorService calculatorService =
+ scaDomain.getService(CalculatorService.class, "CalculatorServiceComponent");
+
+ // Calculate
+ sb.append("3 + 2=" + calculatorService.add(3, 2));
+ sb.append("3 - 2=" + calculatorService.subtract(3, 2));
+ sb.append("3 * 2=" + calculatorService.multiply(3, 2));
+ sb.append("3 / 2=" + calculatorService.divide(3, 2));
+
+ scaDomain.close();
+
+ TextView tv = new TextView(this);
+ tv.setText(sb.toString());
+ setContentView(tv);
+
+ }
+} \ No newline at end of file