summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb')
-rw-r--r--sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/pom.xml51
-rw-r--r--sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/readme.htm130
-rw-r--r--sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponent.java26
-rw-r--r--sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentImpl.java34
-rw-r--r--sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/resources/sca.module25
-rw-r--r--sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/HelloWorldWeb.jsp79
-rw-r--r--sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/WEB-INF/web.xml27
-rw-r--r--sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/test/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentTestCase.java84
8 files changed, 456 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/pom.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/pom.xml
new file mode 100644
index 0000000000..7eb7c0ec0f
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/pom.xml
@@ -0,0 +1,51 @@
+<?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>helloworldWeb</artifactId>
+ <packaging>war</packaging>
+ <name>Tuscany sample HelloWorld WEB</name>
+ <description>Sample classic helloworld with JSP</description>
+ <version>SNAPSHOT</version>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-core</artifactId>
+ <version>${pom.version}</version>
+ <scope>provided</scope> <!-- use provided so tuscany infrastructue is not inc. in the war-->
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-container-java</artifactId>
+ <version>${pom.version}</version>
+ <scope>provided</scope> <!-- use provided so tuscany infrastructue is not inc. in the war-->
+ </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/helloworldweb/readme.htm b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/readme.htm
new file mode 100644
index 0000000000..158d379e16
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/readme.htm
@@ -0,0 +1,130 @@
+<!--
+ 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 Web Sample</title><!-- LINK rel="stylesheet" href="ait.css" type="text/css" --></head>
+
+<body>
+
+<h2>Tuscany Hello World Web Sample</h2>
+
+<h3>Overview</h3>
+
+<p>The Tuscany hello world web sample shows using the Tuscany SCA
+ runtime in a Tomcat environment being accessed from a JSP
+ page&nbsp;that
+ implements the classic introductory hello world example. </p>
+
+
+<h3>Setup</h3>Set up your server as described in the <a href="http://wiki.apache.org/ws/Tuscany/TomcatIntegration" target="_blank">Tomcat
+ Setup</a>. &nbsp;If you are not configuring with the acceptance test the server, you will need to add <span
+ style="font-weight: bold;">helloworldWeb-SNAPSHOT.war</span> to your tomcat's webapp directory.<br>
+
+<h3>Running</h3>
+
+Once you've started your web server, use your browse to view the
+following URL: <a href="http://localhost:8080/helloworldWeb-SNAPSHOT/" target="_blank">http://localhost:8080/helloworldWeb-SNAPSHOT/</a>
+<br>
+
+You should see a form you can supply your name and a submit button.
+&nbsp;Once you submit the form the JSP page calls a Java class that
+gets the CurrentModuleContext and locates the SCA component to execute
+the greeting service. &nbsp;Note, unlike the a J2SE in a Tomcat environment the Tuscany runtime is automatically
+initialized and running.
+<h3>Results</h3>
+
+<p>The page should be updated with the greeting displayed below
+ the form.<br>
+
+</p>
+
+<h3>Code Overview</h3>
+
+The source files are physically organized as shown below:<br>
+<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td>
+ <pre>+---main<br>&brvbar; +---java<br>&brvbar; &brvbar; sca.module<br>&brvbar; &brvbar;
+ <br>&brvbar; +---org<br>&brvbar; +---apache<br>&brvbar; +---tuscany
+ <br>&brvbar; +---samples<br>&brvbar; +---helloworldweb
+ <br>&brvbar; HelloWorldService.java<br>&brvbar;
+ HelloWorldServiceComponentImpl.java<br>&brvbar;<br>+---webapp<br> &brvbar; HelloWorldWeb.jsp
+ <br> &brvbar;<br> +---WEB-INF<br> web.xml<br></pre>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<br>
+<br>
+
+<p>&nbsp;</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 component. Defines for the
+ HelloWorldServiceComponent component and 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.java</td>
+
+ <td>Implements the SCA component. Uses the SCA service
+ annotation tag on the class to show what SCA interface is being
+ implemented.</td>
+
+ </tr>
+
+
+ <tr>
+ <td>HelloWorldWeb.jsp</td>
+ <td>Handles Web form input.. Obtains the module context which was defined by the
+ sca.module file. From the module context locates the
+ HelloWorldServiceComponent and then calls&nbsp; the getGreetings
+ method to invoke the component.&nbsp;and formats &nbsp;returned&nbsp;results.</td>
+ </tr>
+ <tr>
+ <td>web.xml</td>
+ <td>Standard J2EE web application's web.xml</td>
+ </tr>
+
+ </tbody>
+</table>
+
+<br>
+
+</body></html>
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponent.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponent.java
new file mode 100644
index 0000000000..4775291e27
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/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.helloworldweb;
+
+/**
+ * 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/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentImpl.java
new file mode 100644
index 0000000000..1441f9ff36
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentImpl.java
@@ -0,0 +1,34 @@
+/**
+ *
+ * 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.helloworldweb;
+
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements the HelloWorld service component.
+ */
+@Service(HelloWorldServiceComponent.class)
+public class HelloWorldServiceComponentImpl implements HelloWorldServiceComponent {
+
+ /*
+ * @see org.apache.tuscany.samples.helloworld.HelloWorldServiceComponent#getGreetings()
+ */
+ public String getGreetings(String name) {
+ return "Hello " + name;
+ }
+
+}
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/resources/sca.module b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/resources/sca.module
new file mode 100644
index 0000000000..aa045e4a80
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/resources/sca.module
@@ -0,0 +1,25 @@
+<?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.helloworldweb.HelloWorldServiceComponentImpl"/>
+ </component>
+
+</module>
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/HelloWorldWeb.jsp b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/HelloWorldWeb.jsp
new file mode 100644
index 0000000000..9a54d0cbf9
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/HelloWorldWeb.jsp
@@ -0,0 +1,79 @@
+<!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>
+ <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+ pageEncoding="ISO-8859-1" session="true" autoFlush="true"
+ isThreadSafe="true" isErrorPage="false"
+ import="org.apache.tuscany.samples.helloworldweb.HelloWorldServiceComponent"
+ import="java.io.PrintWriter"
+ import="java.io.StringWriter"
+ import="org.osoa.sca.CurrentModuleContext"
+ import="org.osoa.sca.ModuleContext"
+ %>
+ <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <META name="GENERATOR" content="IBM Software Development Platform">
+ <TITLE>Tuscany HelloWorld WEB Example</TITLE>
+ <%
+ String name = request.getParameter("name");
+ %>
+</HEAD>
+
+<BODY>
+<H2>Tuscany HelloWorld WEB Example</H2>
+
+<P>&nbsp;</P>
+
+<form action="HelloWorldWeb.jsp" method="get">Name
+ please:&nbsp;&nbsp;&nbsp; <INPUT type="text" id="i1" name="name"
+ size="40" maxlength="220"
+ value="<%= null == name ? "World" : name %>"> <BR>
+ <BR>
+ <INPUT type="submit" name="submit" value="Submit"></FORM>
+<BR>
+
+<%
+ try {
+ if (null != name) {
+ ModuleContext moduleContext = CurrentModuleContext.getContext();
+ HelloWorldServiceComponent helloworldService = (HelloWorldServiceComponent) moduleContext.locateService("HelloWorldServiceComponent");
+ String value = helloworldService.getGreetings(name);
+%>
+<HR>
+
+<P><%=value%>
+ <%}
+}catch(Exception e){
+ e.printStackTrace();
+ StringWriter sw= new StringWriter();
+ PrintWriter pw= new PrintWriter(sw);
+
+ e.printStackTrace(pw);
+ pw.flush();
+
+%>
+ Whoops!<BR clear="all">
+<PRE>
+ Exception &quot;<%=e.getClass().getName()%>&quot; Exception message: &quot;<%=e.getMessage()%>&quot;<BR clear="all">
+ <%=sw.toString() %>
+</PRE>
+<%
+
+ }%>
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/WEB-INF/web.xml b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000..9765b182dc
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ 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 web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
+Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+ <display-name>Tuscany sample HelloWorld WEB</display-name>
+
+ <welcome-file-list id="WelcomeFileList">
+ <welcome-file>HelloWorldWeb.jsp</welcome-file>
+ </welcome-file-list>
+
+</web-app>
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/test/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentTestCase.java b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/test/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentTestCase.java
new file mode 100644
index 0000000000..72c7cedb49
--- /dev/null
+++ b/sca-java-1.x/tags/java-stable-20060304/samples/helloworld/helloworldweb/src/test/java/org/apache/tuscany/samples/helloworldweb/HelloWorldServiceComponentTestCase.java
@@ -0,0 +1,84 @@
+/**
+ *
+ * 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.helloworldweb;
+
+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 = false;
+
+ public void testGeetings() throws Exception {
+ // todo should use SCA ;-)
+ final boolean viaSCA = false;
+ TuscanyRuntime tuscany;
+ ModuleContext moduleContext = null;
+ if (verbose)
+ System.out.println("starting test..");
+ System.out.flush();
+ HelloWorldServiceComponent helloworldService = null;
+
+ if (viaSCA) {
+ tuscany = new TuscanyRuntime("test", null);
+ tuscany.start();
+ moduleContext = CurrentModuleContext.getContext();
+
+ assertNotNull(moduleContext);
+ System.out.println("module context name '"
+ + moduleContext.getName() + "'");
+ System.out.println("module context uri '" + moduleContext.getURI()
+ + "'");
+ helloworldService = (HelloWorldServiceComponent) moduleContext
+ .locateService("HelloWorldServiceComponent");
+
+ assertNotNull(helloworldService);
+ } else
+ helloworldService = new HelloWorldServiceComponentImpl();
+
+ String value = helloworldService
+ .getGreetings("World");
+
+ if (verbose)
+ System.out.println("Value = '" + value + "'");
+ assertEquals("Hello World", value);
+ if (viaSCA)
+ 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;
+ }
+
+}