From 905bb1e38a24e5ea6fec9cd8089720dd80c1684f Mon Sep 17 00:00:00 2001 From: kelvingoodson Date: Thu, 16 Sep 2010 15:39:24 +0000 Subject: TUSCANY-3677 more samples reorg git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@997793 13f79535-47bb-0310-9956-ffa450edef68 --- .../samples/calculator-osgi/META-INF/MANIFEST.MF | 19 ---- sca-java-2.x/trunk/samples/calculator-osgi/README | 99 ------------------ .../trunk/samples/calculator-osgi/build.xml | 78 -------------- sca-java-2.x/trunk/samples/calculator-osgi/pom.xml | 116 --------------------- .../src/main/java/calculator/AddService.java | 28 ----- .../src/main/java/calculator/AddServiceImpl.java | 35 ------- .../main/java/calculator/CalculatorActivator.java | 54 ---------- .../src/main/java/calculator/CalculatorClient.java | 52 --------- .../main/java/calculator/CalculatorService.java | 34 ------ .../java/calculator/CalculatorServiceImpl.java | 69 ------------ .../src/main/java/calculator/DivideService.java | 28 ----- .../main/java/calculator/DivideServiceImpl.java | 35 ------- .../src/main/java/calculator/MultiplyService.java | 28 ----- .../main/java/calculator/MultiplyServiceImpl.java | 35 ------- .../src/main/java/calculator/SubtractService.java | 28 ----- .../main/java/calculator/SubtractServiceImpl.java | 35 ------- .../src/main/resources/Calculator.composite | 54 ---------- .../test/java/calculator/CalculatorTestCase.java | 54 ---------- .../calculator-osgi/META-INF/MANIFEST.MF | 19 ++++ .../maven-osgi-junit/calculator-osgi/README | 99 ++++++++++++++++++ .../maven-osgi-junit/calculator-osgi/build.xml | 78 ++++++++++++++ .../maven-osgi-junit/calculator-osgi/pom.xml | 116 +++++++++++++++++++++ .../src/main/java/calculator/AddService.java | 28 +++++ .../src/main/java/calculator/AddServiceImpl.java | 35 +++++++ .../main/java/calculator/CalculatorActivator.java | 54 ++++++++++ .../src/main/java/calculator/CalculatorClient.java | 52 +++++++++ .../main/java/calculator/CalculatorService.java | 34 ++++++ .../java/calculator/CalculatorServiceImpl.java | 69 ++++++++++++ .../src/main/java/calculator/DivideService.java | 28 +++++ .../main/java/calculator/DivideServiceImpl.java | 35 +++++++ .../src/main/java/calculator/MultiplyService.java | 28 +++++ .../main/java/calculator/MultiplyServiceImpl.java | 35 +++++++ .../src/main/java/calculator/SubtractService.java | 28 +++++ .../main/java/calculator/SubtractServiceImpl.java | 35 +++++++ .../src/main/resources/Calculator.composite | 54 ++++++++++ .../test/java/calculator/CalculatorTestCase.java | 54 ++++++++++ 36 files changed, 881 insertions(+), 881 deletions(-) delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/META-INF/MANIFEST.MF delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/README delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/build.xml delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/pom.xml delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/AddService.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/AddServiceImpl.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorActivator.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorClient.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorService.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorServiceImpl.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/DivideService.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/DivideServiceImpl.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/MultiplyService.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/MultiplyServiceImpl.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/SubtractService.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/SubtractServiceImpl.java delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/main/resources/Calculator.composite delete mode 100644 sca-java-2.x/trunk/samples/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/META-INF/MANIFEST.MF create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/README create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/build.xml create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/pom.xml create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/AddService.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/AddServiceImpl.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorActivator.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorClient.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorService.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorServiceImpl.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/DivideService.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/DivideServiceImpl.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/MultiplyService.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/MultiplyServiceImpl.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/SubtractService.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/SubtractServiceImpl.java create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/resources/Calculator.composite create mode 100644 sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java (limited to 'sca-java-2.x/trunk') diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/META-INF/MANIFEST.MF b/sca-java-2.x/trunk/samples/calculator-osgi/META-INF/MANIFEST.MF deleted file mode 100644 index 1ebd35b30a..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/META-INF/MANIFEST.MF +++ /dev/null @@ -1,19 +0,0 @@ -Manifest-Version: 1.0 -Private-Package: calculator;version="2.0.0" -Tool: Bnd-0.0.255 -Bundle-Name: Apache Tuscany SCA Calculator OSGi Sample -Created-By: 1.6.0_07 (Sun Microsystems Inc.) -Bundle-Vendor: The Apache Software Foundation -Eclipse-LazyStart: false -Bundle-Version: 2.0.0 -Bnd-LastModified: 1223949424781 -Bundle-Activator: calculator.CalculatorActivator -Bundle-ManifestVersion: 2 -Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt -Bundle-Description: Apache Tuscany SCA Calculator OSGi Sample -Import-Package: org.apache.tuscany.sca.node;version="2.0.0", - org.oasisopen.sca.annotation;version="2.0.0", - org.osgi.framework;version="1.4" -Bundle-SymbolicName: sample-calculator-osgi -Bundle-DocURL: http://www.apache.org/ -Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/README b/sca-java-2.x/trunk/samples/calculator-osgi/README deleted file mode 100644 index c416ad96a0..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/README +++ /dev/null @@ -1,99 +0,0 @@ -Calculator Sample -================= -This sample implements a simple calculator using SCA components and run it in a OSGi environment. - -The README in the /samples directory provides -general instructions about building and running samples. (where -distribution-unpack-dir is the directory in which you unpacked the tuscany -binary distribution archive). Take a look there first (noting at you read it that this sample -is not a new style sample). - -If you just want to run it to see what happens open a command prompt, navigate -to this sample directory and do: - -ant run - -OR if you don't have ant, on Windows do - -java -jar ..\..\features\tuscany-sca-equinox-manifest.jar -composite Calculator.composite -config ..\..\features\configuration\ -ttl 0 target\sample-calculator-osgi.jar - -and on *nix do - -java -jar ../../features/tuscany-sca-equinox-manifest.jar -composite Calculator.composite -config ../../features/configuration/ -ttl 0 target/sample-calculator-osgi.jar - -Sample Overview ---------------- -The sample provides a single calculator service with a default SCA (java) -binding. The CalculatorClient exercises this interface by calling add, -subtract, multiply and divide operations. This results in messages passing to -the appropriate components in the composite across the local wires. - -calculator/ - src/ - main/ - java/ - calculator/ - CalculatorService.java - the first component, calls +-/* as - appropriate - CalculatorServiceImpl.java - AddService.java - adds two numbers - AddServiceImpl.java - SubtractService.java - subtracts one number from another - SubtractServiceImpl.java - MultiplyService.java - multiplies two numbers - MultiplyServiceImpl.java - DivideService.java - divides one number by another - DivideServiceImpl.java - CalculatorClient.java - starts the SCA Runtime and - deploys the Calculator.composite. - It then calls the deployed Calculator - Components services - resources/ - Calculator.composite - the SCA assembly for this sample - test/ - java/ - calculator/ - CalculatorTestCase.java - JUnit test case - calculator.png - a pictorial representation of the sample - .composite file - build.xml - the Ant build file - pom.xml - the Maven build file - -Building And Running The Sample Using Ant ------------------------------------------ -With the binary distribution the sample can be built and run using Ant as -follows - -cd calculator -ant compile -ant run - -You should see the following output from the run target. - -run: - [java] 3 + 2=5.0 - [java] 3 - 2=1.0 - [java] 3 * 2=6.0 - [java] 3 / 2=1.5 - -Building And Running The Sample Using Maven -------------------------------------------- -With either the binary or source distributions the sample can be built and run -using Maven as follows. - -cd calculator -mvn - -You should see the following output from the test phase. - -------------------------------------------------------- - T E S T S -------------------------------------------------------- -Running calculator.CalculatorTestCase -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.272 sec - -Results : - -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 - -This shows that the Junit test cases have run successfully. diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/build.xml b/sca-java-2.x/trunk/samples/calculator-osgi/build.xml deleted file mode 100644 index 46522211f9..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/build.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/pom.xml b/sca-java-2.x/trunk/samples/calculator-osgi/pom.xml deleted file mode 100644 index 6580790162..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/pom.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - 4.0.0 - - org.apache.tuscany.sca - tuscany-samples - 2.0-SNAPSHOT - ../pom.xml - - sample-calculator-osgi - Apache Tuscany SCA Sample Calculator OSGi - - - - org.apache.tuscany.sca - tuscany-feature-api - 2.0-SNAPSHOT - pom - - - - org.apache.tuscany.sca - tuscany-feature-core - 2.0-SNAPSHOT - pom - - - - junit - junit - 4.8.1 - test - - - - - ${artifactId} - - - maven-eclipse-plugin - 2.5.1 - - - org.eclipse.pde.ManifestBuilder - org.eclipse.jdt.core.javabuilder - - - org.eclipse.jdt.core.javanature - org.eclipse.pde.PluginNature - - - org.eclipse.jdt.launching.JRE_CONTAINER - - - - - - - maven-jar-plugin - - - ${basedir}/META-INF/MANIFEST.MF - - - - - - org.apache.tuscany.maven.plugins - maven-osgi-junit-plugin - 1.0 - - - org.apache.tuscany.sca - tuscany-node-launcher-equinox - ${pom.version} - - - - - osgi-test - test - - test - - - - - osgi.configuration.area - ${project.build.directory}/equinox - - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/AddService.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/AddService.java deleted file mode 100644 index 188451ebac..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/AddService.java +++ /dev/null @@ -1,28 +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; - -/** - * The Add service interface - */ -public interface AddService { - - double add(double n1, double n2); - -} diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/AddServiceImpl.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/AddServiceImpl.java deleted file mode 100644 index 7ca8fb04b5..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/AddServiceImpl.java +++ /dev/null @@ -1,35 +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 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/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorActivator.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorActivator.java deleted file mode 100644 index 4408568629..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorActivator.java +++ /dev/null @@ -1,54 +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.apache.tuscany.sca.node.Contribution; -import org.apache.tuscany.sca.node.ContributionLocationHelper; -import org.apache.tuscany.sca.node.Node; -import org.apache.tuscany.sca.node.NodeFactory; -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; - -/** - * Bundle Activator for Calculator - * - */ -public class CalculatorActivator implements BundleActivator { - private Node node; - - public void start(BundleContext context) throws Exception { - try { - NodeFactory factory = NodeFactory.newInstance(); - String url = ContributionLocationHelper.getContributionLocation(getClass()); - Contribution contrib = new Contribution("c1", url); - node = factory.createNode("Calculator.composite", contrib); - node.start(); - } catch (Throwable e) { - e.printStackTrace(); - } - } - - public void stop(BundleContext context) throws Exception { - if (node != null) { - node.stop(); - node = null; - } - } - -} diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorClient.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorClient.java deleted file mode 100644 index afd5ea48fc..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorClient.java +++ /dev/null @@ -1,52 +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() { - // Calculate - System.out.println("SCA API ClassLoader: " + 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)); - } - -} diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorService.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorService.java deleted file mode 100644 index c89043276e..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorService.java +++ /dev/null @@ -1,34 +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; - -/** - * 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/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorServiceImpl.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorServiceImpl.java deleted file mode 100644 index 39f55ca31f..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/CalculatorServiceImpl.java +++ /dev/null @@ -1,69 +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.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/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/DivideService.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/DivideService.java deleted file mode 100644 index 30d248208b..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/DivideService.java +++ /dev/null @@ -1,28 +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; - -/** - * The divide service interface - */ -public interface DivideService { - - double divide(double n1, double n2); - -} diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/DivideServiceImpl.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/DivideServiceImpl.java deleted file mode 100644 index 1323edf55a..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/DivideServiceImpl.java +++ /dev/null @@ -1,35 +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 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/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/MultiplyService.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/MultiplyService.java deleted file mode 100644 index 5290605938..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/MultiplyService.java +++ /dev/null @@ -1,28 +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; - -/** - * The interface for the multiply service - */ -public interface MultiplyService { - - double multiply(double n1, double n2); - -} diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/MultiplyServiceImpl.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/MultiplyServiceImpl.java deleted file mode 100644 index 91b803bc9e..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/MultiplyServiceImpl.java +++ /dev/null @@ -1,35 +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 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/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/SubtractService.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/SubtractService.java deleted file mode 100644 index bf0d1882b6..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/SubtractService.java +++ /dev/null @@ -1,28 +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; - -/** - * The interface for the multiply service - */ -public interface SubtractService { - - double subtract(double n1, double n2); - -} diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/SubtractServiceImpl.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/SubtractServiceImpl.java deleted file mode 100644 index 58cc4a3547..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/java/calculator/SubtractServiceImpl.java +++ /dev/null @@ -1,35 +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 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/sca-java-2.x/trunk/samples/calculator-osgi/src/main/resources/Calculator.composite b/sca-java-2.x/trunk/samples/calculator-osgi/src/main/resources/Calculator.composite deleted file mode 100644 index c5e636f769..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/main/resources/Calculator.composite +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sca-java-2.x/trunk/samples/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java b/sca-java-2.x/trunk/samples/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java deleted file mode 100644 index d6a3ccb24e..0000000000 --- a/sca-java-2.x/trunk/samples/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java +++ /dev/null @@ -1,54 +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.apache.tuscany.sca.node.Contribution; -import org.apache.tuscany.sca.node.ContributionLocationHelper; -import org.apache.tuscany.sca.node.Node; -import org.apache.tuscany.sca.node.NodeFactory; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * This shows how to test the Calculator composition. - */ -public class CalculatorTestCase { - - private static Node node; - - @BeforeClass - public static void setUpBeforeClass() throws Exception { - String location = ContributionLocationHelper.getContributionLocation(CalculatorClient.class); - node = NodeFactory.newInstance().createNode("Calculator.composite", new Contribution("test", location)); - System.out.println("SCA Node API ClassLoader: " + node.getClass().getClassLoader()); - node.start(); - } - - @AfterClass - public static void tearDownAfterClass() throws Exception { - if (node != null) { - node.stop(); - } - } - - @Test - public void testDummy() throws Exception { - } -} diff --git a/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/META-INF/MANIFEST.MF b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..1ebd35b30a --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Private-Package: calculator;version="2.0.0" +Tool: Bnd-0.0.255 +Bundle-Name: Apache Tuscany SCA Calculator OSGi Sample +Created-By: 1.6.0_07 (Sun Microsystems Inc.) +Bundle-Vendor: The Apache Software Foundation +Eclipse-LazyStart: false +Bundle-Version: 2.0.0 +Bnd-LastModified: 1223949424781 +Bundle-Activator: calculator.CalculatorActivator +Bundle-ManifestVersion: 2 +Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt +Bundle-Description: Apache Tuscany SCA Calculator OSGi Sample +Import-Package: org.apache.tuscany.sca.node;version="2.0.0", + org.oasisopen.sca.annotation;version="2.0.0", + org.osgi.framework;version="1.4" +Bundle-SymbolicName: sample-calculator-osgi +Bundle-DocURL: http://www.apache.org/ +Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 diff --git a/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/README b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/README new file mode 100644 index 0000000000..c416ad96a0 --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/README @@ -0,0 +1,99 @@ +Calculator Sample +================= +This sample implements a simple calculator using SCA components and run it in a OSGi environment. + +The README in the /samples directory provides +general instructions about building and running samples. (where +distribution-unpack-dir is the directory in which you unpacked the tuscany +binary distribution archive). Take a look there first (noting at you read it that this sample +is not a new style sample). + +If you just want to run it to see what happens open a command prompt, navigate +to this sample directory and do: + +ant run + +OR if you don't have ant, on Windows do + +java -jar ..\..\features\tuscany-sca-equinox-manifest.jar -composite Calculator.composite -config ..\..\features\configuration\ -ttl 0 target\sample-calculator-osgi.jar + +and on *nix do + +java -jar ../../features/tuscany-sca-equinox-manifest.jar -composite Calculator.composite -config ../../features/configuration/ -ttl 0 target/sample-calculator-osgi.jar + +Sample Overview +--------------- +The sample provides a single calculator service with a default SCA (java) +binding. The CalculatorClient exercises this interface by calling add, +subtract, multiply and divide operations. This results in messages passing to +the appropriate components in the composite across the local wires. + +calculator/ + src/ + main/ + java/ + calculator/ + CalculatorService.java - the first component, calls +-/* as + appropriate + CalculatorServiceImpl.java + AddService.java - adds two numbers + AddServiceImpl.java + SubtractService.java - subtracts one number from another + SubtractServiceImpl.java + MultiplyService.java - multiplies two numbers + MultiplyServiceImpl.java + DivideService.java - divides one number by another + DivideServiceImpl.java + CalculatorClient.java - starts the SCA Runtime and + deploys the Calculator.composite. + It then calls the deployed Calculator + Components services + resources/ + Calculator.composite - the SCA assembly for this sample + test/ + java/ + calculator/ + CalculatorTestCase.java - JUnit test case + calculator.png - a pictorial representation of the sample + .composite file + build.xml - the Ant build file + pom.xml - the Maven build file + +Building And Running The Sample Using Ant +----------------------------------------- +With the binary distribution the sample can be built and run using Ant as +follows + +cd calculator +ant compile +ant run + +You should see the following output from the run target. + +run: + [java] 3 + 2=5.0 + [java] 3 - 2=1.0 + [java] 3 * 2=6.0 + [java] 3 / 2=1.5 + +Building And Running The Sample Using Maven +------------------------------------------- +With either the binary or source distributions the sample can be built and run +using Maven as follows. + +cd calculator +mvn + +You should see the following output from the test phase. + +------------------------------------------------------- + T E S T S +------------------------------------------------------- +Running calculator.CalculatorTestCase +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.272 sec + +Results : + +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 + +This shows that the Junit test cases have run successfully. diff --git a/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/build.xml b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/build.xml new file mode 100644 index 0000000000..46522211f9 --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/build.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/pom.xml b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/pom.xml new file mode 100644 index 0000000000..6580790162 --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/pom.xml @@ -0,0 +1,116 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-samples + 2.0-SNAPSHOT + ../pom.xml + + sample-calculator-osgi + Apache Tuscany SCA Sample Calculator OSGi + + + + org.apache.tuscany.sca + tuscany-feature-api + 2.0-SNAPSHOT + pom + + + + org.apache.tuscany.sca + tuscany-feature-core + 2.0-SNAPSHOT + pom + + + + junit + junit + 4.8.1 + test + + + + + ${artifactId} + + + maven-eclipse-plugin + 2.5.1 + + + org.eclipse.pde.ManifestBuilder + org.eclipse.jdt.core.javabuilder + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + + org.eclipse.jdt.launching.JRE_CONTAINER + + + + + + + maven-jar-plugin + + + ${basedir}/META-INF/MANIFEST.MF + + + + + + org.apache.tuscany.maven.plugins + maven-osgi-junit-plugin + 1.0 + + + org.apache.tuscany.sca + tuscany-node-launcher-equinox + ${pom.version} + + + + + osgi-test + test + + test + + + + + osgi.configuration.area + ${project.build.directory}/equinox + + + + + + + + + diff --git a/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/AddService.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/AddService.java new file mode 100644 index 0000000000..188451ebac --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/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/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/AddServiceImpl.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/AddServiceImpl.java new file mode 100644 index 0000000000..7ca8fb04b5 --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/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/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorActivator.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorActivator.java new file mode 100644 index 0000000000..4408568629 --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorActivator.java @@ -0,0 +1,54 @@ +/* + * 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.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.ContributionLocationHelper; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +/** + * Bundle Activator for Calculator + * + */ +public class CalculatorActivator implements BundleActivator { + private Node node; + + public void start(BundleContext context) throws Exception { + try { + NodeFactory factory = NodeFactory.newInstance(); + String url = ContributionLocationHelper.getContributionLocation(getClass()); + Contribution contrib = new Contribution("c1", url); + node = factory.createNode("Calculator.composite", contrib); + node.start(); + } catch (Throwable e) { + e.printStackTrace(); + } + } + + public void stop(BundleContext context) throws Exception { + if (node != null) { + node.stop(); + node = null; + } + } + +} diff --git a/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorClient.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorClient.java new file mode 100644 index 0000000000..afd5ea48fc --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorClient.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 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() { + // Calculate + System.out.println("SCA API ClassLoader: " + 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)); + } + +} diff --git a/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorService.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorService.java new file mode 100644 index 0000000000..c89043276e --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorService.java @@ -0,0 +1,34 @@ +/* + * 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/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorServiceImpl.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorServiceImpl.java new file mode 100644 index 0000000000..39f55ca31f --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/CalculatorServiceImpl.java @@ -0,0 +1,69 @@ +/* + * 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.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/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/DivideService.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/DivideService.java new file mode 100644 index 0000000000..30d248208b --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/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/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/DivideServiceImpl.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/DivideServiceImpl.java new file mode 100644 index 0000000000..1323edf55a --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/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/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/MultiplyService.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/MultiplyService.java new file mode 100644 index 0000000000..5290605938 --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/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/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/MultiplyServiceImpl.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/MultiplyServiceImpl.java new file mode 100644 index 0000000000..91b803bc9e --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/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/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/SubtractService.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/SubtractService.java new file mode 100644 index 0000000000..bf0d1882b6 --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/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/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/SubtractServiceImpl.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/calculator/SubtractServiceImpl.java new file mode 100644 index 0000000000..58cc4a3547 --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/java/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/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/resources/Calculator.composite b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/resources/Calculator.composite new file mode 100644 index 0000000000..c5e636f769 --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/main/resources/Calculator.composite @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java new file mode 100644 index 0000000000..d6a3ccb24e --- /dev/null +++ b/sca-java-2.x/trunk/samples/tuscany-features/maven-osgi-junit/calculator-osgi/src/test/java/calculator/CalculatorTestCase.java @@ -0,0 +1,54 @@ +/* + * 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.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.ContributionLocationHelper; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * This shows how to test the Calculator composition. + */ +public class CalculatorTestCase { + + private static Node node; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + String location = ContributionLocationHelper.getContributionLocation(CalculatorClient.class); + node = NodeFactory.newInstance().createNode("Calculator.composite", new Contribution("test", location)); + System.out.println("SCA Node API ClassLoader: " + node.getClass().getClassLoader()); + node.start(); + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (node != null) { + node.stop(); + } + } + + @Test + public void testDummy() throws Exception { + } +} -- cgit v1.2.3