From d232b6a46e4225ff35a0123a5f5597da7592fc38 Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Fri, 12 Sep 2008 21:54:50 +0000 Subject: Creating a branch for the equinox work. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@694816 13f79535-47bb-0310-9956-ffa450edef68 --- .../samples/helloworld-jms-webapp/README | 130 +++++++++++++++++++++ .../samples/helloworld-jms-webapp/pom.xml | 72 ++++++++++++ .../src/main/java/helloworld/HelloWorldClient.java | 37 ++++++ .../main/java/helloworld/HelloWorldService.java | 29 +++++ .../java/helloworld/HelloWorldServiceImpl.java | 34 ++++++ .../src/main/webapp/META-INF/context.xml | 29 +++++ .../META-INF/sca-deployables/HelloWorld.composite | 39 +++++++ .../src/main/webapp/WEB-INF/web.xml | 66 +++++++++++ .../src/main/webapp/hello.jsp | 44 +++++++ 9 files changed, 480 insertions(+) create mode 100644 branches/sca-equinox/samples/helloworld-jms-webapp/README create mode 100644 branches/sca-equinox/samples/helloworld-jms-webapp/pom.xml create mode 100644 branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldClient.java create mode 100644 branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldService.java create mode 100644 branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldServiceImpl.java create mode 100644 branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/META-INF/context.xml create mode 100644 branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/META-INF/sca-deployables/HelloWorld.composite create mode 100644 branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/WEB-INF/web.xml create mode 100644 branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/hello.jsp (limited to 'branches/sca-equinox/samples/helloworld-jms-webapp') diff --git a/branches/sca-equinox/samples/helloworld-jms-webapp/README b/branches/sca-equinox/samples/helloworld-jms-webapp/README new file mode 100644 index 0000000000..9be2e0b0f6 --- /dev/null +++ b/branches/sca-equinox/samples/helloworld-jms-webapp/README @@ -0,0 +1,130 @@ +JMS HelloWorld Sample +===================== +This sample demonstrates a simple webapp containing a hello world style client +and service using the JMS binding for request-response style messaging. + +The README in the samples directory (the directory above this) provides +general instructions about building and running samples. Take a look there +first. + +As this sample provides a web app there is a manual step where the WAR file +that contains the sample is copied to your web app container. If you just want +to give this sample a go deploy the WAR file (target/sample-helloworld-jms-webapp.war ) +to you web application server. + +Once the web app is deployed use your browser to visit the following URL; + +http://localhost:8080/sample-helloworld-jms-webapp/ + +The port and hostname will of course vary depending on your local installation. + +Configuring the JMS resources +----------------------------- + +The sample requires JMS resources be manually configured in the server environment, these are: + +- a JMS connection factory named "ConnectionFactory" +- a JMS queue named "HelloWorldService" + +See the following for how to define these resources depending on the application server being used: + +Tuscany with embedded ActiveMQ broker +------------------------------------- + + +Apache Tomcat +------------- + +No configuration is necessary for Tomcat as the sample WAR includes everything pre-configured to run +an ActiveMQ embedded JMS broker and to configure the JMS resources in JNDI. + +The JNDI resources are configured in the META-INF/comtext.xml file, for more information on running +ActiveMQ in Tomcat see: http://activemq.apache.org/tomcat.html + + +Apache Geronimo +--------------- + +For Apache Geronimo 2.0.1 (2.0.2 fails to define JMS resources for me) + +Logon to the Geronimo Server Console (http://localhost:8080/console, uid system, pswd manager) + +In the Console Navigation on the left under Services click JMS Resources + +At the bottom of the JMS Resources panel click under Create a new JMS Resource Group click For ActiveMQ + +In Resource Group Name enter "MyRGN" and click next + +At JMS Resource Group click Add Connection Factory + +For JMS Factory Type choose javax.jms.ConnectionFactory and click Next + +In Connection Factory Name enter "ConnectionFactory" and click Next + +Click Add destination + +For JMS Destination Type choose javax.jms.Queue and click Next + +Enter "HelloWorldService" for both Message Destination Name and PhysicalName and click Next + +Click Deploy Now + +Thats it, you're done. + + +WebSphere +--------- + +To define the JMS resources in a new WebSphere Application Server 6.1 installation: + +1) First define a Service integration bus: + +Logon to the WebSphere Integrated Solutions Console (http://localhost:9060/ibm/console) + +On the Left hand menu expand Service integration, and click on Buses. + +In the Buses panel click on New + +Enter a name for the bus, eg MyBus, and click Next, and then click Finish and Save the changes. + +In the Buses panel click on MyBus + +Find the Topology secion and click on Bus members + +Click on Add, leave the defaults and click Next, Next, Next, Finish, and Save the changes. + +Restart WebSphere and when back up logon back on to the Integrated Solutions Console + +2) Now define the JMS rescources + +On the Left hand menu expand Resources, and JMS and click on Connection Facotories. + +In the Connection factories panel click New. + +Leave the Default messaging provider and click OK + +Enter "ConnectionFactory" in the Name and JNDI name and in the Bus name in the Connection pane choose MyBus and click OK + +On the Left hand menu in JMS click on Queues + +In the Queues panel click New, accept the defaults and click OK + +Enter "HelloWorldService" for the Name and JNDI name and in the Bus name in the Connection pane choose MyBus, +and then in the Queue name drop down list choose "Create SIB destination" + +In the Set queue attributes panel enter "HelloWorldService" for the Identifier and click Next, Next, and Finish + +That should take you back to the Queues panel where you can click OK to create the new JMS queue. + +Save the changes + +Restart WebSphere and you're done. + + + +Others... +--------- + + + + \ No newline at end of file diff --git a/branches/sca-equinox/samples/helloworld-jms-webapp/pom.xml b/branches/sca-equinox/samples/helloworld-jms-webapp/pom.xml new file mode 100644 index 0000000000..48ff33be2d --- /dev/null +++ b/branches/sca-equinox/samples/helloworld-jms-webapp/pom.xml @@ -0,0 +1,72 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + tuscany-sca + 1.4-SNAPSHOT + ../../pom.xml + + sample-helloworld-jms-webapp + war + Apache Tuscany SCA JMS HelloWorld Sample in a WebApp + + + + apache.incubator + http://people.apache.org/repo/m2-incubating-repository + + + + + + + ${pom.groupId} + tuscany-host-webapp + ${pom.version} + + + + ${pom.groupId} + tuscany-binding-jms-runtime + ${pom.version} + + + + ${pom.groupId} + tuscany-implementation-java-runtime + ${pom.version} + + + + org.apache.activemq + activemq-core + 5.1.0 + runtime + + + + + + ${artifactId} + + + diff --git a/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldClient.java b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldClient.java new file mode 100644 index 0000000000..c24a741ee2 --- /dev/null +++ b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldClient.java @@ -0,0 +1,37 @@ +/* + * 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 helloworld; + +/** + * The HelloWorld client implementation + */ +public class HelloWorldClient implements HelloWorldService { + + HelloWorldService helloWorldRef; + + public String sayHello(String name) { + System.out.println("HelloWorldClient.sayHello " + name); + return helloWorldRef.sayHello(name); + } + + public void setHelloWorldRef(HelloWorldService helloWorldRef) { + System.out.println("HelloWorldClient .setHelloWorldService " + helloWorldRef); + this.helloWorldRef = helloWorldRef; + } +} \ No newline at end of file diff --git a/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldService.java b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldService.java new file mode 100644 index 0000000000..2af978b9ce --- /dev/null +++ b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldService.java @@ -0,0 +1,29 @@ +/* + * 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 helloworld; + +import org.osoa.sca.annotations.Remotable; + +/** + * The interface for the helloworld service + */ +@Remotable +public interface HelloWorldService { + public String sayHello(String name); +} diff --git a/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldServiceImpl.java b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldServiceImpl.java new file mode 100644 index 0000000000..280388f443 --- /dev/null +++ b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/java/helloworld/HelloWorldServiceImpl.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 helloworld; + +import org.osoa.sca.annotations.Service; + +/** + * This class implements the HelloWorld service. + */ +@Service(HelloWorldService.class) +public class HelloWorldServiceImpl implements HelloWorldService { + + public String sayHello(String name) { + System.out.println("HelloWorldServiceImpl .sayHello " + name); + return "Hello " + name; + } + +} diff --git a/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/META-INF/context.xml b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/META-INF/context.xml new file mode 100644 index 0000000000..2419887413 --- /dev/null +++ b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/META-INF/context.xml @@ -0,0 +1,29 @@ + + + + + + + + + + \ No newline at end of file diff --git a/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/META-INF/sca-deployables/HelloWorld.composite b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/META-INF/sca-deployables/HelloWorld.composite new file mode 100644 index 0000000000..f6328d156c --- /dev/null +++ b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/META-INF/sca-deployables/HelloWorld.composite @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + diff --git a/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/WEB-INF/web.xml b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..86710435ae --- /dev/null +++ b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,66 @@ + + + + + + + Apache Tuscany JMS Web Service Sample + + + tuscany + org.apache.tuscany.sca.host.webapp.TuscanyServletFilter + + + + tuscany + /* + + + + hello.jsp + + + + + + + diff --git a/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/hello.jsp b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/hello.jsp new file mode 100644 index 0000000000..bc6ef59a9b --- /dev/null +++ b/branches/sca-equinox/samples/helloworld-jms-webapp/src/main/webapp/hello.jsp @@ -0,0 +1,44 @@ +<%-- + * 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. +--%> + +<%@ page import="org.apache.tuscany.sca.host.embedded.SCADomain"%> +<%@ page import="helloworld.HelloWorldService" %> + +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<% + SCADomain scaDomain = (SCADomain) application.getAttribute("org.apache.tuscany.sca.SCADomain"); + HelloWorldService helloWorldService = (HelloWorldService)scaDomain.getService(HelloWorldService.class, "HelloWorldClient"); +%> + +HelloWorld JMS sample + + + +If this sample is working correctly you should see "Hello World" on the next line... +

+<%= helloWorldService.sayHello("world") %> +

+If you do not see "Hello World" on the line above then there has been a problem. +

+The sample requires JMS resources be manually configured in the server environment, these are: +a JMS connection factory named "ConnectionFactory", and a destination queues named "HelloWorldService". +See the sample README file for more information. + + + -- cgit v1.2.3