summaryrefslogtreecommitdiffstats
path: root/java/sca/samples/binding-ws-calculator
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca/samples/binding-ws-calculator')
-rw-r--r--java/sca/samples/binding-ws-calculator/build.xml55
-rw-r--r--java/sca/samples/binding-ws-calculator/pom.xml8
-rw-r--r--java/sca/samples/binding-ws-calculator/src/main/java/calculator/CalculatorClient.java73
-rw-r--r--java/sca/samples/binding-ws-calculator/src/main/resources/Calculator.composite10
-rw-r--r--java/sca/samples/binding-ws-calculator/src/test/java/calculator/CalculatorTestCase.java41
5 files changed, 61 insertions, 126 deletions
diff --git a/java/sca/samples/binding-ws-calculator/build.xml b/java/sca/samples/binding-ws-calculator/build.xml
index 67a7818fc1..be237938fd 100644
--- a/java/sca/samples/binding-ws-calculator/build.xml
+++ b/java/sca/samples/binding-ws-calculator/build.xml
@@ -17,17 +17,52 @@
* under the License.
-->
<project name="binding-ws-calculator" default="run">
- <import file="../build-common.xml"/>
- <property name="sample.name" value="${ant.project.name}"/>
- <property name="sample.root" value="."/>
- <property name="sample.jar" value="${sample.root}/target/sample-${sample.name}.jar" />
- <property name="sample.composite" value="Calculator.composite"/>
-
- <target name="compile" depends="common-jar-compile"/>
-
- <target name="run" depends="common-run-jse"/>
+ <property name="jar.name" value="sample-binding-ws-calculator.jar" />
+ <property name="main.class" value="sample.SampleClientImpl" />
+
+ <target name="init">
+ <delete quiet="true" includeemptydirs="true">
+ <fileset dir="target"/>
+ </delete>
+ <mkdir dir="target/classes"/>
+ </target>
- <target name="clean" depends="common-clean"/>
+ <target name="compile" depends="init">
+ <javac srcdir="src/main/java"
+ destdir="target/classes"
+ debug="on"
+ source="1.5"
+ target="1.5">
+ <classpath>
+ <pathelement location="../../modules/tuscany-sca-api-2.0-SNAPSHOT.jar"/>
+ <pathelement location="../../modules/tuscany-node-api-2.0-SNAPSHOT.jar"/>
+ <pathelement location="../../modules/sca-api/target/tuscany-sca-api-2.0-SNAPSHOT.jar"/>
+ <pathelement location="../../modules/node-api/target/tuscany-node-api-2.0-SNAPSHOT.jar"/>
+ </classpath>
+ </javac>
+ <copy todir="target/classes">
+ <fileset dir="src/main/resources"/>
+ </copy>
+ <jar destfile="target/${jar.name}" basedir="target/classes">
+ <manifest>
+ <attribute name="Main-Class" value="${main.class}" />
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="run" depends="compile">
+ <java classname="org.apache.tuscany.sca.launcher.LauncherMain"
+ fork="true"
+ inputstring="q">
+ <jvmarg value="-Djava.util.logging.config.file=${sample.root}/../../logging.properties"/>
+ <classpath>
+ <pathelement location="../../distribution/all/target/apache-tuscany-sca-all-2.0-SNAPSHOT-dir.dir/tuscany-sca-2.0-SNAPSHOT/bin/launcher.jar"/>
+ <pathelement location="../../bin/launcher.jar"/>
+ </classpath>
+ <arg value="unmanaged"/>
+ <arg value="target/${jar.name}"/>
+ </java>
+ </target>
</project>
diff --git a/java/sca/samples/binding-ws-calculator/pom.xml b/java/sca/samples/binding-ws-calculator/pom.xml
index 6f184b87c2..eec6d5da17 100644
--- a/java/sca/samples/binding-ws-calculator/pom.xml
+++ b/java/sca/samples/binding-ws-calculator/pom.xml
@@ -58,6 +58,13 @@
</dependency>
<dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-distribution-ejava</artifactId>
+ <type>pom</type>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
@@ -70,7 +77,6 @@
<finalName>${artifactId}</finalName>
<plugins>
- <!-- temporarily skip tests as binding.ws doesn't work yet -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
diff --git a/java/sca/samples/binding-ws-calculator/src/main/java/calculator/CalculatorClient.java b/java/sca/samples/binding-ws-calculator/src/main/java/calculator/CalculatorClient.java
deleted file mode 100644
index 0f275ea46e..0000000000
--- a/java/sca/samples/binding-ws-calculator/src/main/java/calculator/CalculatorClient.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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.oasisopen.sca.annotation.EagerInit;
-import org.oasisopen.sca.annotation.Init;
-import org.oasisopen.sca.annotation.Reference;
-import org.oasisopen.sca.annotation.Scope;
-
-/**
- * This client program shows how to create an SCA runtime, start it,
- * and locate and invoke a SCA component
- */
-@Scope("COMPOSITE") @EagerInit
-public class CalculatorClient {
-
- private CalculatorService calculatorService;
-
- @Reference
- public void setCalculatorService(CalculatorService calculatorService) {
- this.calculatorService = calculatorService;
- }
-
- @Init
- public void calculate() {
- // The calls cannot be done in the same thread as the services are starting
- // Fork a new thread
- Thread thread = new Thread() {
- public void run() {
- // Calculate
- try {
- Thread.sleep(3000);
- System.out.println("SCA API ClassLoader: " + print(Reference.class.getClassLoader()));
- System.out.println("3 + 2=" + calculatorService.add(3, 2));
- System.out.println("3 - 2=" + calculatorService.subtract(3, 2));
- System.out.println("3 * 2=" + calculatorService.multiply(3, 2));
- System.out.println("3 / 2=" + calculatorService.divide(3, 2));
- } catch (Throwable e) {
- e.printStackTrace();
- }
- }
- };
- thread.start();
- }
-
- private static String print(ClassLoader cl) {
- StringBuffer buf = new StringBuffer();
- for (; cl != null;) {
- buf.append(cl.toString());
- buf.append(' ');
- cl = cl.getParent();
- }
- return buf.toString();
- }
-
-}
diff --git a/java/sca/samples/binding-ws-calculator/src/main/resources/Calculator.composite b/java/sca/samples/binding-ws-calculator/src/main/resources/Calculator.composite
index d27d09cb8e..f4bcaf4352 100644
--- a/java/sca/samples/binding-ws-calculator/src/main/resources/Calculator.composite
+++ b/java/sca/samples/binding-ws-calculator/src/main/resources/Calculator.composite
@@ -22,6 +22,11 @@
xmlns:sample="http://sample"
name="Calculator">
+ <component name="SampleClient">
+ <implementation.java class="calculator.CalculatorClientImpl"/>
+ <reference name="calculatorService" target="CalculatorServiceComponent" />
+ </component>
+
<component name="CalculatorServiceComponent">
<implementation.java class="calculator.CalculatorServiceImpl"/>
<reference name="addService" >
@@ -51,9 +56,4 @@
<implementation.java class="calculator.DivideServiceImpl"/>
</component>
- <component name="CalculatorClient">
- <implementation.java class="calculator.CalculatorClient"/>
- <reference name="calculatorService" target="CalculatorServiceComponent" />
- </component>
-
</composite>
diff --git a/java/sca/samples/binding-ws-calculator/src/test/java/calculator/CalculatorTestCase.java b/java/sca/samples/binding-ws-calculator/src/test/java/calculator/CalculatorTestCase.java
index 2e710ee4ae..bc90f0e566 100644
--- a/java/sca/samples/binding-ws-calculator/src/test/java/calculator/CalculatorTestCase.java
+++ b/java/sca/samples/binding-ws-calculator/src/test/java/calculator/CalculatorTestCase.java
@@ -27,48 +27,15 @@ import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
+import sample.SampleClientImpl;
+
/**
- * This shows how to test the Calculator composition.
+ * Test the Calculator composition.
*/
public class CalculatorTestCase {
- private static NodeLauncher launcher;
- private static Node node;
- private static String status = "Sample Success";
-
- public static void main(String[] args) throws Exception {
- setUpBeforeClass();
- tearDownAfterClass();
- }
-
- @BeforeClass
- public static void setUpBeforeClass() throws Exception {
- launcher = NodeLauncher.newInstance();
- String location = ContributionLocationHelper.getContributionLocation(CalculatorClient.class);
- node = launcher.createNode("Calculator.composite", new Contribution("test", location));
-
- try {
- node.start();
- } catch (Exception ex) {
- status = ex.toString();
- System.out.println(status);
- }
- }
-
- @AfterClass
- public static void tearDownAfterClass() throws Exception {
- Thread.sleep(30000);
- if (node != null) {
- node.stop();
- node.destroy();
- }
- if (launcher != null) {
- launcher.destroy();
- }
- }
-
@Test
public void testSample() throws Exception {
- Assert.assertEquals("Sample Success", status);
+ SampleClientImpl.main(null);
}
}