diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-21 07:55:20 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-21 07:55:20 +0000 |
commit | 36436b71b9977d6b5940cb6285d5335708ef9bfa (patch) | |
tree | b218a104f180c67690a6ae2ad097cd9306a8f203 /sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc | |
parent | d5be76c0b31df9b5d203295b146b13d2205243de (diff) |
Moving 1.x tags
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@882851 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc')
9 files changed, 509 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/pom.xml new file mode 100644 index 0000000000..99d58e9a8a --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/pom.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Copyright (c) 2005-2006 The Apache Software Foundation or its licensors, as applicable. + * + * Licensed 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> + <parent> + <groupId>org.apache.tuscany.samples.helloworld</groupId> + <artifactId>helloworld-samples</artifactId> + <version>SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>helloworldmc</artifactId> + <packaging>jar</packaging> + <name>Tuscany sample multi-component HelloWorld</name> + <description>Sample helloworld with multiple components</description> + <version>SNAPSHOT</version> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany</groupId> + <artifactId>tuscany-core</artifactId> + <version>${pom.version}</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.apache.tuscany</groupId> + <artifactId>tuscany-container-java</artifactId> + <version>${pom.version}</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.apache.tuscany</groupId> + <artifactId>tuscany-container-js</artifactId> + <version>${pom.version}</version> + <scope>compile</scope> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> +</project> diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/readme.htm new file mode 100644 index 0000000000..f37ae9dda8 --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/readme.htm @@ -0,0 +1,151 @@ +<!--
+ Copyright (c) 2005 The Apache Software Foundation or its licensors, as applicable.
+
+ Licensed 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.
+ -->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+
+ <meta http-equiv="Content-Style-Type" content="text/css">
+ <title>Tuscany Hello World Multi-Component Sample</title>
+ <!-- LINK rel="stylesheet" href="ait.css" type="text/css" --></head>
+
+<body>
+
+<h2>Tuscany Hello World Multi-Component Sample</h2>
+
+<h3>Overview</h3>
+
+<p>The Tuscany hello world multi-component sample shows using the Tuscany SCA
+ runtime in a J2SE environment loading a component that
+ implements the classic introductory hello world example. This sample
+ shows the wiring of multiple components in a single SCA module. </p>
+
+
+<h3>Setup</h3>The jars for a <a href="http://wiki.apache.org/ws/Tuscany/J2SESetup" target="_blank">J2SE setup</a> not requiring web
+services are required including the sample's own jar <span style="font-weight: bold;">helloworldmc-SNAPSHOT.jar</span>.
+
+<h3>Running</h3>
+Using JDK 1.5 java command with the previous jars run the class
+org.apache.tuscany.samples.helloworldmc.HelloWorldServiceComponentImpl<br>
+
+<h3>Results</h3>
+
+<p>The sample when run should simply display to the standard
+ output:<br>
+
+ <code>Hello SCA World</code></p>
+
+
+<h3>Code Overview</h3>
+
+The source files are physically organized as shown below:<br>
+
+<table style="text-align: left; width: 1206px; height: 238px;" border="1" cellpadding="2" cellspacing="2">
+
+ <tbody>
+
+ <tr>
+
+ <td>
+ <pre>main<br>+---java<br> ¦ sca.module<br> ¦<br> +---org<br> +---apache<br>
+ +---tuscany<br> +---samples<br> +---helloworldmc<br> GreetingPortionProvider.java<br>
+ GreetingPortionProviderImpl.java<br> HelloWorldService.java<br>
+ HelloWorldServiceComponentImpl.java<br><br></pre>
+
+ </td>
+
+ </tr>
+
+ </tbody>
+</table>
+
+<br>
+
+<p> </p>
+
+<table style="text-align: left; width: 100%; height: 154px;" border="0" cellpadding="2" cellspacing="2">
+
+ <tbody>
+
+ <tr>
+
+ <td style="vertical-align: top;">sca.module</td>
+
+ <td>Defines the SCA module and the
+ <span style="font-weight: bold;">HelloWorldServiceComponent</span>,
+ <span style="font-weight: bold;">GreetingPrefixComponent</span>
+ and <span style="font-weight: bold;">GreetingSuffixComponent
+ </span>components Wires the <span style="font-weight: bold;">HelloWorldServiceComponent</span>
+ to reference the <span style="font-weight: bold;">GreetingPrefixComponent</span>
+ and <span style="font-weight: bold;">GreetingSuffixComponent</span>.
+ Customizes the <span style="font-weight: bold;">GreetingPrefixComponent</span>
+ and <span style="font-weight: bold;">GreetingSuffixComponent</span>
+ components with the greetings. </td>
+
+ </tr>
+
+ <tr>
+
+ <td style="vertical-align: top;">GreetingPortionProvider.java</td>
+
+ <td>Defines the Java interface implemented by the
+ component. <span style="font-weight: bold;">GreetingPrefixComponent</span>
+ and <span style="font-weight: bold;">GreetingSuffixComponent</span></td>
+
+ </tr>
+
+ <tr>
+
+ <td style="vertical-align: top;">GreetingPortionProviderImpl.java</td>
+
+ <td>Implements the SCA components <span style="font-weight: bold;">GreetingPrefixComponent</span>
+ and <span style="font-weight: bold;">GreetingSuffixComponent</span>
+ . Uses the SCA service
+ annotation tag on the class to show what SCA interface is being
+ implemented. Uses the SCA defined <span style="font-weight: bold;">Property</span>
+ Java annotation on the <code>greetingPortion </code>Java
+ field to customize the component in the sca.module file.</td>
+
+ </tr>
+
+ <tr>
+
+ <td style="vertical-align: top;">HelloWorldService.java</td>
+
+ <td>Defines the Java interface implemented by the
+ component. <span style="font-weight: bold;">HelloWorldServiceComponent</span>. </td>
+
+ </tr>
+
+ <tr>
+
+ <td style="white-space: nowrap;">HelloWorldServiceComponentImpl.java <br>
+
+ </td>
+
+ <td>Implements the <span style="font-weight: bold;">HelloWorldServiceComponent</span>
+ component. Shows two Java fields being used to reference the
+ and <span style="font-weight: bold;">GreetingPrefixComponentGreetingSuffixComponent</span>
+ components.</td>
+
+ </tr>
+
+ </tbody>
+</table>
+
+<br>
+
+</body></html>
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProvider.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProvider.java new file mode 100644 index 0000000000..d023b3023b --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProvider.java @@ -0,0 +1,22 @@ +/** + * + * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. + * + * Licensed 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 org.apache.tuscany.samples.helloworldmc; + +public interface GreetingPortionProvider { + + public String getGreetingPortion(); +} diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProviderImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProviderImpl.java new file mode 100644 index 0000000000..a881a17dae --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/GreetingPortionProviderImpl.java @@ -0,0 +1,32 @@ +/** + * + * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. + * + * Licensed 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 org.apache.tuscany.samples.helloworldmc; + +import org.osoa.sca.annotations.Property; +import org.osoa.sca.annotations.Service; + +@Service(GreetingPortionProvider.class) +public class GreetingPortionProviderImpl implements GreetingPortionProvider { + + @Property + public String greetingPortion; + + public String getGreetingPortion() { + return greetingPortion; + } + +} diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldClient.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldClient.java new file mode 100644 index 0000000000..36d7e3eb03 --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldClient.java @@ -0,0 +1,51 @@ +/** + * + * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. + * + * Licensed 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 org.apache.tuscany.samples.helloworldmc; + +import org.osoa.sca.CurrentModuleContext; +import org.osoa.sca.ModuleContext; + +import org.apache.tuscany.core.client.TuscanyRuntime; + +/** + * This client program shows how to create an SCA runtime, start it, locate a simple HelloWorld service component + * and invoke it. + */ +public class HelloWorldClient { + + public static final void main(String[] args) throws Exception { + + // Obtain Tuscany runtime + TuscanyRuntime tuscany = new TuscanyRuntime("hello", null); + + // Start the runtime + tuscany.start(); + + // Obtain SCA module context. + ModuleContext moduleContext = CurrentModuleContext.getContext(); + + // Locate the HelloWorld service component and invoke it + HelloWorldService helloworldService = (HelloWorldService) moduleContext.locateService("HelloWorldServiceComponent"); + + String value = helloworldService.getGreetings(); + + System.out.println(value); + + // Stop the runtime + tuscany.stop(); + } +} diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldService.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldService.java new file mode 100644 index 0000000000..3d455aca68 --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldService.java @@ -0,0 +1,26 @@ +/** + * + * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. + * + * Licensed 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 org.apache.tuscany.samples.helloworldmc; + +/** + * This is the business interface of the HelloWorld service component. + */ +public interface HelloWorldService { + + public String getGreetings(); + +} diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentImpl.java new file mode 100644 index 0000000000..664c6343d3 --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentImpl.java @@ -0,0 +1,51 @@ +/** + * + * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. + * + * Licensed 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 org.apache.tuscany.samples.helloworldmc; + +import org.osoa.sca.annotations.Property; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +/** + * This class implements the HelloWorld service component. + */ +@Service(HelloWorldService.class) +public class HelloWorldServiceComponentImpl implements HelloWorldService { + + @Property + public String greetingMiddle; + + @Reference + public GreetingPortionProvider greetingPrefix; + + @Reference + public GreetingPortionProvider greetingSuffix; + + /** + * @return + */ + public String getGreetings() { + String middle; + if (greetingMiddle == null) + middle = ""; + else + middle = greetingMiddle; + + return greetingPrefix.getGreetingPortion() + " " + middle + " " + greetingSuffix.getGreetingPortion(); + } + +} diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/resources/sca.module new file mode 100644 index 0000000000..13892eff7b --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/main/resources/sca.module @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2005 BEA Sytems Inc.
+ Copyright (c) 2005 International Business Machines
+
+ Licensed 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.
+ -->
+<module xmlns="http://www.osoa.org/xmlns/sca/0.9" xmlns:v="http://www.osoa.org/xmlns/sca/values/0.9"
+ name="sampleHelloworld">
+
+ <component name="HelloWorldServiceComponent">
+ <implementation.java class="org.apache.tuscany.samples.helloworldmc.HelloWorldServiceComponentImpl"/>
+ <references>
+ <v:greetingPrefix>GreetingPrefixComponent</v:greetingPrefix>
+ <v:greetingSuffix>GreetingSuffixComponent</v:greetingSuffix>
+ </references>
+ <properties>
+ <v:greetingMiddle>SCA</v:greetingMiddle>
+ </properties>
+ </component>
+
+ <component name="GreetingPrefixComponent">
+ <implementation.java class="org.apache.tuscany.samples.helloworldmc.GreetingPortionProviderImpl"/>
+ <properties>
+ <v:greetingPortion>Hello</v:greetingPortion>
+ </properties>
+ </component>
+
+ <component name="GreetingSuffixComponent">
+ <implementation.java class="org.apache.tuscany.samples.helloworldmc.GreetingPortionProviderImpl"/>
+ <properties>
+ <v:greetingPortion>World</v:greetingPortion>
+ </properties>
+ </component>
+</module>
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/test/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentTestCase.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/test/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentTestCase.java new file mode 100644 index 0000000000..a53973b9ed --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldmc/src/test/java/org/apache/tuscany/samples/helloworldmc/HelloWorldServiceComponentTestCase.java @@ -0,0 +1,74 @@ +/** + * + * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. + * + * Licensed 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 org.apache.tuscany.samples.helloworldmc; + +import junit.framework.TestCase; +import org.osoa.sca.CurrentModuleContext; +import org.osoa.sca.ModuleContext; + +import org.apache.tuscany.core.client.TuscanyRuntime; + +public class HelloWorldServiceComponentTestCase extends TestCase { + public boolean verbose = true; + + public void testGeetings() throws Exception { + + if (verbose) + System.out.println("starting test.."); + System.out.flush(); + + TuscanyRuntime tuscany = new TuscanyRuntime("test", null); + tuscany.start(); + ModuleContext moduleContext = CurrentModuleContext.getContext(); + + assertNotNull(moduleContext); + System.out.println("module context name '" + + moduleContext.getName() + "'"); + System.out.println("module context uri '" + moduleContext.getURI() + + "'"); + HelloWorldService helloworldService = + (HelloWorldService) moduleContext.locateService + ("HelloWorldServiceComponent"); + + assertNotNull(helloworldService); + + String value = helloworldService.getGreetings(); + + if (verbose) + System.out.println("Value = '" + value + "'"); + + assertEquals("Hello SCA World", value); + + tuscany.stop(); + } + + public final static void main(String[] args) throws Exception { + HelloWorldServiceComponentTestCase hwc = + new HelloWorldServiceComponentTestCase(); + hwc.setVerbose(true); + hwc.testGeetings(); + } + + public boolean isVerbose() { + return verbose; + } + + public void setVerbose(boolean verbose) { + this.verbose = verbose; + } + +} |