summaryrefslogtreecommitdiffstats
path: root/sandbox
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox')
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/README28
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/pom.xml100
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/Catalog.java27
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/CurrencyConverter.java29
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/CurrencyConverterImpl.java38
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/Item.java51
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/VegetablesCatalogImpl.java52
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/resources/catalog.composite43
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/META-INF/sca-contribution-generated.xml23
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/WEB-INF/geronimo-web.xml50
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/WEB-INF/web.xml36
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/index.html14
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/store.pngbin0 -> 15670 bytes
-rw-r--r--sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/store.svg304
14 files changed, 795 insertions, 0 deletions
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/README b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/README
new file mode 100644
index 0000000000..46e71bf51e
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/README
@@ -0,0 +1,28 @@
+Store Sample
+======================================
+
+This is a sample store scenario that is used as a getting started guide
+for Tuscany SCA. For detailed information, please see:
+
+http://tuscany.apache.org/getting-started-with-tuscany.html
+
+or
+
+http://tuscany.apache.org/getting-started-with-tuscany-using-tuscany-eclipse-plugin.html
+
+
+Building And Running The Sample Using Ant
+-----------------------------------------
+With the binary distribution the sample can be built using Ant as follows:
+
+cd store
+ant compile
+
+and then, to run:
+
+ant run
+
+Once the store application is running use your browser to visit the following
+URL:
+
+http://localhost:8080/store/
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/pom.xml b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/pom.xml
new file mode 100644
index 0000000000..7da92d1df5
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/pom.xml
@@ -0,0 +1,100 @@
+<?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.
+-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-sca</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>store-catalog-ibmcloud-2x-webapp</artifactId>
+ <packaging>war</packaging>
+ <name>Apache Tuscany SCA Store Catalog as WebApp</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-sca-api</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-webapp</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-java-runtime</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-jsonrpc-runtime</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!--
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-stax-api_1.0_spec</artifactId>
+ <version>1.0.1</version>
+ <scope>compile</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
+ <version>3.2.4</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>2.8.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ -->
+ </dependencies>
+
+
+ <build>
+ <finalName>${artifactId}</finalName>
+ </build>
+
+</project>
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/Catalog.java b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/Catalog.java
new file mode 100644
index 0000000000..b5e504fe11
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/Catalog.java
@@ -0,0 +1,27 @@
+/*
+ * 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 services;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface Catalog {
+ Item[] get();
+}
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/CurrencyConverter.java b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/CurrencyConverter.java
new file mode 100644
index 0000000000..a064f3dd69
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/CurrencyConverter.java
@@ -0,0 +1,29 @@
+/*
+ * 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 services;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface CurrencyConverter {
+ public double getConversion(String fromCurrenycCode, String toCurrencyCode, double amount);
+
+ public String getCurrencySymbol(String currencyCode);
+}
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/CurrencyConverterImpl.java b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/CurrencyConverterImpl.java
new file mode 100644
index 0000000000..c354aed447
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/CurrencyConverterImpl.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package services;
+
+public class CurrencyConverterImpl implements CurrencyConverter {
+ public double getConversion(String fromCurrencyCode, String toCurrencyCode, double amount) {
+ if (toCurrencyCode.equals("USD"))
+ return amount;
+ else if (toCurrencyCode.equals("EUR"))
+ return ((double)Math.round(amount * 0.7256 * 100)) /100;
+ return 0;
+ }
+
+ public String getCurrencySymbol(String currencyCode) {
+ if (currencyCode.equals("USD"))
+ return "$";
+ else if (currencyCode.equals("EUR"))
+ return "E"; //"€";
+ return "?";
+ }
+}
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/Item.java b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/Item.java
new file mode 100644
index 0000000000..27abd4f016
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/Item.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package services;
+
+
+public class Item {
+ private String name;
+ private String price;
+
+ public Item() {
+ }
+
+ public Item(String name, String price) {
+ this.name = name;
+ this.price = price;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPrice() {
+ return price;
+ }
+
+ public void setPrice(String price) {
+ this.price = price;
+ }
+
+}
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/VegetablesCatalogImpl.java b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/VegetablesCatalogImpl.java
new file mode 100644
index 0000000000..1f22166272
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/java/services/VegetablesCatalogImpl.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package services;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.oasisopen.sca.annotation.Init;
+import org.oasisopen.sca.annotation.Property;
+import org.oasisopen.sca.annotation.Reference;
+
+public class VegetablesCatalogImpl implements Catalog {
+
+ @Property
+ public String currencyCode = "USD";
+
+ @Reference
+ public CurrencyConverter currencyConverter;
+
+ private List<Item> catalog = new ArrayList<Item>();
+
+ @Init
+ public void init() {
+ String currencySymbol = currencyConverter.getCurrencySymbol(currencyCode);
+ catalog.add(new Item("Broccoli", currencySymbol + currencyConverter.getConversion("USD", currencyCode, 2.99)));
+ catalog.add(new Item("Aspargus", currencySymbol + currencyConverter.getConversion("USD", currencyCode, 3.55)));
+ catalog.add(new Item("Cauliflower", currencySymbol + currencyConverter.getConversion("USD", currencyCode, 1.55)));
+ }
+
+ public Item[] get() {
+ Item[] catalogArray = new Item[catalog.size()];
+ catalog.toArray(catalogArray);
+ return catalogArray;
+ }
+}
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/resources/catalog.composite b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/resources/catalog.composite
new file mode 100644
index 0000000000..b7cb37971f
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/resources/catalog.composite
@@ -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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ xmlns:store="http://store"
+ targetNamespace="http://store"
+ name="catalog">
+
+ <component name="Catalog">
+ <implementation.java class="services.VegetablesCatalogImpl"/>
+ <property name="currencyCode">USD</property>
+ <service name="Catalog">
+ <interface.java interface="services.Catalog"/>
+ <tuscany:binding.jsonrpc uri="http://localhost:8080/store-catalog-ibmcloud-2x-webapp/Catalog"/>
+ </service>
+ <reference name="currencyConverter" target="CurrencyConverter"/>
+ </component>
+
+ <component name="CurrencyConverter">
+ <implementation.java class="services.CurrencyConverterImpl"/>
+ <service name="CurrencyConverter">
+ <interface.java interface="services.CurrencyConverter"/>
+ </service>
+ </component>
+
+</composite>
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/META-INF/sca-contribution-generated.xml b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/META-INF/sca-contribution-generated.xml
new file mode 100644
index 0000000000..c50a04722a
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/META-INF/sca-contribution-generated.xml
@@ -0,0 +1,23 @@
+<?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.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903"
+ xmlns:store="http://store">
+ <deployable composite="store:catalog"/>
+</contribution> \ No newline at end of file
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/WEB-INF/geronimo-web.xml b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/WEB-INF/geronimo-web.xml
new file mode 100644
index 0000000000..25d42aac24
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/WEB-INF/geronimo-web.xml
@@ -0,0 +1,50 @@
+<?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.
+-->
+<web:web-app
+ xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0"
+ xmlns:client="http://geronimo.apache.org/xml/ns/j2ee/application-client-2.0"
+ xmlns:conn="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2"
+ xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2"
+ xmlns:lc="http://geronimo.apache.org/xml/ns/loginconfig-2.0"
+ xmlns:ejb="http://openejb.apache.org/xml/ns/openejb-jar-2.2"
+ xmlns:name="http://geronimo.apache.org/xml/ns/naming-1.2"
+ xmlns:pers="http://java.sun.com/xml/ns/persistence"
+ xmlns:pkgen="http://openejb.apache.org/xml/ns/pkgen-2.1"
+ xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0"
+ xmlns:web="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1">
+ <dep:environment>
+ <dep:moduleId>
+ <dep:groupId>org.apache.tuscany</dep:groupId>
+ <dep:artifactId>store-catalog-ibmcloud-2x-webapp</dep:artifactId>
+ <dep:version>1.0</dep:version>
+ <dep:type>car</dep:type>
+ </dep:moduleId>
+
+ <!-- TUSCANY-2622 -->
+ <dep:hidden-classes>
+ <dep:filter>org.apache.axiom</dep:filter>
+ <dep:filter>org.apache.axis2</dep:filter>
+ <dep:filter>org.apache.commons</dep:filter>
+ <dep:filter>org.jdom</dep:filter>
+ </dep:hidden-classes>
+
+ </dep:environment>
+ <web:context-root>/store-catalog-ibmcloud-2x-webapp</web:context-root>
+</web:web-app>
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/WEB-INF/web.xml b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000..266c70089a
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,36 @@
+<?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.
+-->
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
+ <display-name>store-catalog-ibmcloud-2x-webapp</display-name>
+
+ <filter>
+ <filter-name>tuscany</filter-name>
+ <filter-class>org.apache.tuscany.sca.host.webapp.TuscanyServletFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>tuscany</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <welcome-file-list id="WelcomeFileList">
+ <welcome-file>index.html</welcome-file>
+ </welcome-file-list>
+</web-app> \ No newline at end of file
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/index.html b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/index.html
new file mode 100644
index 0000000000..c431aca044
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/src/main/webapp/index.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Tuscany Store Scenario - IBM Cloud</title>
+</head>
+<body>
+
+<h2>Tuscany Store Catalog Service</h2>
+</br>
+</br>
+Catalog Service Definition available at : <a href="Catalog?smd">JSON-RPC SMD</a>
+</body>
+</html> \ No newline at end of file
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/store.png b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/store.png
new file mode 100644
index 0000000000..da413edeee
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/store.png
Binary files differ
diff --git a/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/store.svg b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/store.svg
new file mode 100644
index 0000000000..74f8ecd36d
--- /dev/null
+++ b/sandbox/sca-cloud-tutorial/store-catalog-ibmcloud-2x-webapp/store.svg
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ * 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.
+-->
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://web.resource.org/cc/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1052.3622"
+ height="744.09448"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.45.1"
+ sodipodi:docbase="C:\simon\tuscany\java-head\sca\samples\store"
+ sodipodi:docname="store.svg"
+ version="1.0"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="C:\simon\tuscany\java-head\sca\samples\store\store.png"
+ inkscape:export-xdpi="52.84"
+ inkscape:export-ydpi="52.84">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10000"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.4"
+ inkscape:cx="538.06165"
+ inkscape:cy="341.69129"
+ inkscape:document-units="px"
+ inkscape:current-layer="g2997"
+ inkscape:window-width="1466"
+ inkscape:window-height="831"
+ inkscape:window-x="117"
+ inkscape:window-y="80" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g2997">
+ <rect
+ rx="14.335117"
+ ry="17.743465"
+ y="197.1973"
+ x="447.35422"
+ height="419.39099"
+ width="464.23727"
+ id="rect2067"
+ style="opacity:1;fill:#90baf4;fill-opacity:1;stroke:#060000;stroke-width:2.28840661;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ <flowRoot
+ id="flowRoot2954"
+ xml:space="preserve"
+ transform="translate(189.90868,1.0101522)"><flowRegion
+ id="flowRegion2956"><rect
+ y="212.66591"
+ x="281.42856"
+ height="61.42857"
+ width="170"
+ id="rect2958" /></flowRegion><flowPara
+ id="flowPara2171">store</flowPara></flowRoot> <rect
+ style="fill:#317fed;fill-opacity:1;stroke:#060000;stroke-width:2.30182266;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2175"
+ width="118.21779"
+ height="111.27543"
+ x="491.60019"
+ y="247.75989"
+ rx="7.1507306"
+ ry="9.2311935" />
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot2177"
+ transform="translate(223.8585,41.670449)"><flowRegion
+ id="flowRegion2179"><rect
+ id="rect2181"
+ width="170"
+ height="61.42857"
+ x="281.42856"
+ y="212.66591" /></flowRegion><flowPara
+ id="flowPara2183">ufs</flowPara></flowRoot> <path
+ style="fill:#5b9d05;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 474.29877,279.45598 L 507.63381,279.45598 L 513.69472,292.58796 L 506.62366,304.7098 L 474.29877,304.7098 L 481.87492,292.58796 L 474.29877,279.45598 z "
+ id="path2187" />
+ <rect
+ style="fill:#317fed;fill-opacity:1;stroke:#060000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2191"
+ width="115.66247"
+ height="85.862968"
+ x="493.07068"
+ y="503.27759"
+ rx="6.9961648"
+ ry="7.1230249" />
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot2193"
+ transform="translate(225.47992,297.33908)"><flowRegion
+ id="flowRegion2195"><rect
+ id="rect2197"
+ width="170"
+ height="61.42857"
+ x="281.42856"
+ y="212.66591" /></flowRegion><flowPara
+ id="flowPara2199">ShoppingCart</flowPara></flowRoot> <path
+ style="fill:#5b9d05;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 475.92019,535.12461 L 509.25523,535.12461 L 515.31614,548.25659 L 508.24508,560.37843 L 475.92019,560.37843 L 483.49634,548.25659 L 475.92019,535.12461 z "
+ id="path2203" />
+ <rect
+ style="fill:#317fed;fill-opacity:1;stroke:#060000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2207"
+ width="115.66247"
+ height="85.862968"
+ x="761.44415"
+ y="391.31604"
+ rx="6.9961648"
+ ry="7.1230249" />
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot2209"
+ transform="translate(487.8534,185.37751)"><flowRegion
+ id="flowRegion2211"><rect
+ id="rect2213"
+ width="170"
+ height="61.42857"
+ x="281.42856"
+ y="212.66591" /></flowRegion><flowPara
+ id="flowPara2215">CurrencyConverter</flowPara></flowRoot> <path
+ style="fill:#5b9d05;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 744.29367,423.16304 L 777.62871,423.16304 L 783.68962,436.29502 L 776.61856,448.41686 L 744.29367,448.41686 L 751.86982,436.29502 L 744.29367,423.16304 z "
+ id="path2219" />
+ <rect
+ style="opacity:1;fill:#0064ff;fill-opacity:1;stroke:#000000;stroke-width:0.9612025;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2223"
+ width="104.08451"
+ height="113.17588"
+ x="138.37151"
+ y="350.1156"
+ rx="0"
+ ry="0.048917599" />
+ <path
+ style="fill:#1a73fe;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+ d="M 138.21429,462.66591 L 115.35714,479.80877 L 267.85714,479.80877 L 241.78571,463.02305 L 138.21429,462.66591 z "
+ id="path3197" />
+ <rect
+ style="opacity:1;fill:#f1f4f8;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3199"
+ width="92.5"
+ height="97.14286"
+ x="143.57143"
+ y="358.38019"
+ ry="3.6203461"
+ rx="3.9285715" />
+ <image
+ y="366.6889"
+ x="156.24066"
+ id="image3323"
+ height="78.571434"
+ width="58.57143"
+ sodipodi:absref="C:\simon\tuscany\evangelism\whitepapers\shoppingcart.png"
+ xlink:href="C:\simon\tuscany\evangelism\whitepapers\shoppingcart.png" />
+ <image
+ y="270.52304"
+ x="526.42859"
+ id="image3342"
+ height="78.571434"
+ width="58.57143"
+ sodipodi:absref="C:\simon\tuscany\evangelism\whitepapers\shoppingcart.png"
+ xlink:href="C:\simon\tuscany\evangelism\whitepapers\shoppingcart.png" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 242.85714,374.80877 C 245.71429,374.80877 345.71429,374.80877 345.71429,374.80877 L 345.71429,291.95162 L 481.42858,291.95162"
+ id="path3348"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 210.71429,406.95163 L 345,406.95163 L 345,437.66591 L 481.42857,437.66591"
+ id="path3350"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 210.71429,439.09448 L 325.71429,439.09448 L 325.71429,548.3802 L 482.85714,548.3802"
+ id="path3352"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 626.42857,436.23734 C 750,437.66591 752.14286,436.23734 752.14286,436.23734"
+ id="path3354"
+ sodipodi:nodetypes="cc" />
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3356"
+ transform="translate(-94.285714,25)"><flowRegion
+ id="flowRegion3358"><rect
+ id="rect3360"
+ width="142.14285"
+ height="21.428572"
+ x="655"
+ y="349.80878" /></flowRegion><flowPara
+ id="flowPara3362">CurrenyCode</flowPara></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot3364"
+ transform="translate(-250.76562,-76.210859)"><flowRegion
+ id="flowRegion3366"><rect
+ id="rect3368"
+ width="142.14285"
+ height="21.428572"
+ x="655"
+ y="349.80878" /></flowRegion><flowPara
+ id="flowPara3370">HTTP</flowPara></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot3372"
+ transform="translate(-273.62277,70.931998)"><flowRegion
+ id="flowRegion3374"><rect
+ id="rect3376"
+ width="142.14285"
+ height="21.428572"
+ x="655"
+ y="349.80878" /></flowRegion><flowPara
+ id="flowPara3378">JSONRPC</flowPara></flowRoot> <flowRoot
+ xml:space="preserve"
+ id="flowRoot3380"
+ transform="translate(-243.62277,183.07485)"><flowRegion
+ id="flowRegion3382"><rect
+ id="rect3384"
+ width="142.14285"
+ height="21.428572"
+ x="655"
+ y="349.80878" /></flowRegion><flowPara
+ id="flowPara3386">Atom</flowPara></flowRoot> </g>
+ <rect
+ style="fill:#317fed;fill-opacity:1;stroke:#060000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect2988"
+ width="115.66247"
+ height="85.862968"
+ x="491.56897"
+ y="392.70135"
+ rx="6.9961648"
+ ry="7.1230249" />
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot2966"
+ transform="translate(223.97819,186.76283)"><flowRegion
+ id="flowRegion2968"><rect
+ id="rect2970"
+ width="170"
+ height="61.42857"
+ x="281.42856"
+ y="212.66591" /></flowRegion><flowPara
+ id="flowPara2972">Catalog</flowPara></flowRoot> <rect
+ style="opacity:1;fill:#fff62c;fill-opacity:1;stroke:#060000;stroke-width:1;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+ id="rect3006"
+ width="21.718224"
+ height="20.708065"
+ x="537.53094"
+ y="377.04398"
+ rx="10.859112"
+ ry="0" />
+ <path
+ style="fill:#5b9d05;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 474.41846,424.54836 L 507.7535,424.54836 L 513.81441,437.68034 L 506.74335,449.80218 L 474.41846,449.80218 L 481.99461,437.68034 L 474.41846,424.54836 z "
+ id="path3017" />
+ <path
+ style="fill:#ae62bf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 587.6709,422.71008 L 621.00594,422.71008 L 627.06685,435.84206 L 619.99579,447.9639 L 587.6709,447.9639 L 595.24705,435.84206 L 587.6709,422.71008 z "
+ id="path3019" />
+ </g>
+</svg>