diff options
Diffstat (limited to 'sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs')
8 files changed, 387 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/pom.xml new file mode 100644 index 0000000000..724274c25d --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/pom.xml @@ -0,0 +1,58 @@ +<?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>helloworldjs</artifactId> + <packaging>jar</packaging> + <name>Tuscany sample HelloWorld - JavaScript</name> + <description>Sample classic helloworld</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-js</artifactId> + <version>${pom.version}</version> + <scope>compile</scope> + </dependency> + + <dependency> + <groupId>rhino</groupId> + <artifactId>js</artifactId> + <version>1.6R2</version> + <scope>test</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/helloworldjs/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/readme.htm new file mode 100644 index 0000000000..0480aea82c --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/readme.htm @@ -0,0 +1,117 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!-- + 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. + --> +<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 HelloWorld</title><!-- LINK rel="stylesheet" href="ait.css" type="text/css" --></head> + +<body> + +<h2>Tuscany Hello World Sample - JavaScript</h2> + +<h3>Overview</h3> + +<p>The Tuscany helloworld sample shows using the Tuscany SCA + runtime in a J2SE environment loading a JavaScript component that + implements the classic introductory hello world example. </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;">helloworldjs-SNAPSHOT.jar</span>. + + +<ol> +</ol> + +<h3>Running</h3> + +Using JDK 1.5 java command with the previous jars run the class org.apache.tuscany.samples.helloworldjs.HelloWorldClient +<br> + +<h3>Results</h3> + +<p>The sample when run should simply display to the standard + output:<br> + + <code>jsHello World</code></p> + + +<h3>Code Overview</h3> + +The source files are physically organized as shown below: +<pre>sca.module<br>org<br>+-apache<br> +-tuscany<br> +-samples<br> +-helloworldjs<br> HelloWorldClient.java<br> HelloWorldService.java<br> HelloWorldServiceComponentImpl.js<br> HelloWorldServiceComponentImpl.componentType<br><br><br></pre> + +<p> </p> + +<table style="text-align: left; width: 879px; height: 154px;" border="0" cellpadding="2" cellspacing="2"> + + <tbody> + + <tr> + + <td style="vertical-align: top;">sca.module</td> + + <td>Defines the SCA module and component. Defines for the + HelloWorldServiceComponent component the Java class that + implements that component</td> + + </tr> + + <tr> + + <td style="vertical-align: top;">HelloWorldService.java</td> + + <td>Defines the Java interface implemented by the component.</td> + + </tr> + + <tr> + + <td style="vertical-align: top;">HelloWorldServiceComponentImpl.js</td> + + <td>JavaScript implementation of the SCA component.</td> + + </tr> + + <tr> + + <td style="vertical-align: top;">HelloWorldServiceComponentImpl.componentType</td> + + <td>The SCA componentType side file defining the service interface implemented by the JavaScript component.</td> + + </tr> + + <tr> + + <td style="vertical-align: top;">HelloWorldClient.java</td> + + <td>Creates a Tuscany runtime and starts it. + Obtains the module context which was defined by the + sca.module file. From the module context locates the + HelloWorldServiceComponent and then calls the getGreetings + method to invoke the component.</td> + + </tr> + + </tbody> +</table> + +<br> + +</body></html> diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldClient.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldClient.java new file mode 100644 index 0000000000..b4ea3e6abb --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/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.helloworldjs; + +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 + HelloWorldServiceComponent helloworldService = (HelloWorldServiceComponent) moduleContext.locateService("HelloWorldServiceComponent"); + + String value = helloworldService.getGreetings("World"); + + System.out.println(value); + + // Stop the runtime + tuscany.stop(); + } +} diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponent.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponent.java new file mode 100644 index 0000000000..4de4948561 --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponent.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.helloworldjs; + +/** + * This is the business interface of the HelloWorld service component. + */ +public interface HelloWorldServiceComponent { + + public String getGreetings(String name); + +} diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.componentType b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.componentType new file mode 100644 index 0000000000..dab815733e --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.componentType @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="ASCII"?> + +<componentType xmlns="http://www.osoa.org/xmlns/sca/0.9" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <service name="HelloWorldService"> + <interface.java interface="org.apache.tuscany.samples.helloworldjs.HelloWorldServiceComponent"/> + </service> + +</componentType>
\ No newline at end of file diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.js b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.js new file mode 100644 index 0000000000..b3104f78a5 --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.js @@ -0,0 +1,20 @@ +/** + * + * 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. + */ + +function getGreetings(name) { + return "jsHello " + name; +} diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/sca.module new file mode 100644 index 0000000000..1ec0f7ed94 --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/main/resources/sca.module @@ -0,0 +1,26 @@ +<?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" + xmlns:js="http://org.apache.tuscany/xmlns/js/0.9" + name="sampleHelloworld"> + + <component name="HelloWorldServiceComponent"> + <js:implementation.js scriptFile="org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentImpl.js"/> + </component> + +</module> diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/test/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentTestCase.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/test/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentTestCase.java new file mode 100644 index 0000000000..6a61e7e13a --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldjs/src/test/java/org/apache/tuscany/samples/helloworldjs/HelloWorldServiceComponentTestCase.java @@ -0,0 +1,80 @@ +/** + * + * 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.helloworldjs; + +import junit.framework.TestCase; + +import org.apache.tuscany.core.client.TuscanyRuntime; +import org.osoa.sca.CurrentModuleContext; +import org.osoa.sca.ModuleContext; + +/** + * + */ +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() + + "'"); + HelloWorldServiceComponent helloworldService = (HelloWorldServiceComponent) moduleContext + .locateService("HelloWorldServiceComponent"); + + assertNotNull(helloworldService); + + + String value = helloworldService + .getGreetings("World"); + + if (verbose) + System.out.println("Value = '" + value + "'"); + + assertEquals("jsHello 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; + } + +} |