diff options
Diffstat (limited to 'java/sca/samples/binding-ws-calculator')
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); } } |