Copy jms samples for event prototype

git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@705222 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
rsivaram 2008-10-16 12:15:33 +00:00
parent 3fd41ea820
commit c00b9c4bdf
14 changed files with 848 additions and 0 deletions

View file

@ -0,0 +1,114 @@
Hello World JMS References Sample
=================================
This sample demonstrates an SCA reference that uses a JMS binding
The README in the samples directory (the directory above this) provides
general instructions about building and running samples. Take a look there
first.
If you just want to run it to see what happens you need to run the server first
so open a command prompt, navigate to the helloworld-service-jms sample directory
and do
ant run
OR if you don't have ant, on Windows do
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-helloworld-service-jms.jar helloworld.HelloWorldServer
and on *nix do
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-service-jms.jar helloworld.HelloWorldServer
Once the server is running open a command prompt, navigate to this sample
directory and do:
ant run
OR if you don't have ant, on Windows do
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-helloworld-reference-jms.jar helloworld.HelloWorldJmsClient
and on *nix do
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-helloworld-reference-jms.jar helloworld.HelloWorldJmsClient
Sample Overview
---------------
The sample provides a component that has a reference with a JMS binding.
The binding refers to JMS queue and communicates with a service
exposed by the helloworld-service-jms sample.
helloworld-reference-jms/
src/
main/
java/
helloworld/
HelloWorldService.java - interface description for
HelloWorldServiceComponent
HelloWorldServiceComponent.java - component implementation
HelloWorldJmsClient.java - starts the SCA Runtime and
deploys the helloworldwsjmsclient
.composite. It then calls the
HelloWorldServiceComponent
resources/
helloworldjmsclient.composite - the SCA assembly for this sample
helloworldjms.composite - the SCA assembly for the server
that is used by the JUnit tests
logging.properties - log4j configuration file
test/
java/
helloworld/
HelloWorldJMSClientTestCase.java - JUnit test case
helloworld-reference.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. Before
you do this start up the service that the reference will talk to. To do this
run up the helloworld-service-jms test. Take a look at the README in that sample
and you will see you need the following commands
cd helloworld-service-jms
ant run
Once done you can now compile and run this sample using the following commands;
cd helloworld-reference-jms
ant compile
ant run
You should see the following output from the run target.
run:
[java] log4j:WARN No appenders could be found for logger (org.apache.axiom.
om.util.StAXUtils).
[java] log4j:WARN Please initialize the log4j system properly.
[java] Injected helloWorldService
[java] Called getGreetings
[java] Hello World
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. When using Maven you don't need to run the helloworld-
service-jms sample first as the JUnit test does this for you.
cd helloworld-reference-jms
mvn
You should see the following output from the test phase.
run:
[java] Injected helloWorldService
[java] Called getGreetings
[java] javax.naming.NameNotFoundException: RequestQueue
...
[java] Hello World
This shows that the Junit test cases have run successfully.

View file

@ -0,0 +1,72 @@
<!--
* 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.
-->
<project name="helloworld-ws-reference-jms" default="compile">
<property name="test.class" value="helloworld.HelloWorldJmsClient" />
<property name="test.jar" value="sample-helloworld-reference-jms.jar" />
<target name="init">
<mkdir dir="target/classes"/>
</target>
<target name="compile" depends="init">
<javac srcdir="src/main/java"
destdir="target/classes"
debug="on"
source="1.5"
target="1.5">
<classpath>
<pathelement location="../../lib/tuscany-sca-manifest.jar"/>
</classpath>
</javac>
<copy todir="target/classes">
<fileset dir="src/main/resources"/>
</copy>
<jar destfile="target/${test.jar}" basedir="target/classes">
<manifest>
<attribute name="Main-Class" value="${test.class}" />
</manifest>
</jar>
</target>
<target name="run-classes">
<java classname="${test.class}"
fork="true">
<classpath>
<pathelement path="target/classes"/>
<pathelement location="../../lib/tuscany-sca-manifest.jar"/>
</classpath>
</java>
</target>
<target name="run">
<java classname="${test.class}"
fork="true">
<classpath>
<pathelement path="target/${test.jar}"/>
<pathelement location="../../lib/tuscany-sca-manifest.jar"/>
</classpath>
</java>
</target>
<target name="clean">
<delete quiet="true" includeemptydirs="true">
<fileset dir="target"/>
</delete>
</target>
</project>

Binary file not shown.

After

(image error) Size: 13 KiB

View file

@ -0,0 +1,144 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
* 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.
-->
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://web.resource.org/cc/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1052.3622"
height="744.09448"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.45.1"
sodipodi:docbase="C:\simon\tuscany\java-sca-1.3\samples\helloworld-reference-jms"
sodipodi:docname="helloworld-reference.svg"
version="1.0"
inkscape:export-filename="C:\simon\tuscany\java-sca-1.3\samples\helloworld-reference-jms\helloworld-reference.png"
inkscape:export-xdpi="70.806541"
inkscape:export-ydpi="70.806541"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="519.38407"
inkscape:cy="414.63224"
inkscape:document-units="px"
inkscape:current-layer="g2997"
inkscape:window-width="1054"
inkscape:window-height="721"
inkscape:window-x="179"
inkscape:window-y="99" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g2997"
transform="matrix(0.991389,0,0,1,2.215655,0)">
<rect
rx="13.79423"
ry="12.692303"
y="192.00233"
x="258.3114"
height="299.99988"
width="446.72086"
id="rect2067"
style="opacity:1;fill:#90baf4;fill-opacity:1;stroke:#060000;stroke-width:2.00866628;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<flowRoot
id="flowRoot2954"
xml:space="preserve"><flowRegion
id="flowRegion2956"><rect
y="212.66591"
x="281.42856"
height="61.42857"
width="170"
id="rect2958" /></flowRegion><flowPara
id="flowPara2960">helloworldjmsreference</flowPara></flowRoot> </g>
<rect
style="fill:#317fed;fill-opacity:1;stroke:#060000;stroke-width:4.47792912;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2988"
width="231.75597"
height="214.81361"
x="364.72672"
y="246.978"
rx="14.018401"
ry="17.82052" />
<flowRoot
xml:space="preserve"
id="flowRoot2966"
transform="translate(167.4684,48.086243)"><flowRegion
id="flowRegion2968"><rect
id="rect2970"
width="170"
height="61.42857"
x="281.42856"
y="212.66591" /></flowRegion><flowPara
id="flowPara2972">HelloWorld</flowPara><flowPara
id="flowPara1883">Service</flowPara><flowPara
id="flowPara1885">Component</flowPara></flowRoot> <path
style="fill:#5b9d05;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 342.05152,338.30031 L 375.38656,338.30031 L 381.44747,351.43229 L 374.37641,363.55413 L 342.05152,363.55413 L 349.62767,351.43229 L 342.05152,338.30031 z "
id="path3017" />
<path
style="fill:#ae62bf;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.52129698px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 544.84854,320.29968 L 650.26997,320.29968 L 669.4375,362.50343 L 647.0754,401.46079 L 544.84854,401.46079 L 568.80798,362.50343 L 544.84854,320.29968 z "
id="path1887" />
<flowRoot
xml:space="preserve"
id="flowRoot1889"
transform="translate(288.9491,129.83236)"
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans"><flowRegion
id="flowRegion1891"><rect
id="rect1893"
width="179.28572"
height="60.714283"
x="281.42856"
y="212.66591"
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Sans" /></flowRegion><flowPara
id="flowPara1897">HelloWorldService </flowPara><flowPara
id="flowPara2184">Reference</flowPara><flowPara
id="flowPara2180">JMS</flowPara><flowPara
id="flowPara1899" /></flowRoot> </g>
</svg>

After

(image error) Size: 5.9 KiB

View file

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
* 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.
-->
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-sca</artifactId>
<version>1.4-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<artifactId>sample-helloworld-reference-jms</artifactId>
<name>Apache Tuscany SCA HelloWorld Reference JMS Sample</name>
<repositories>
<repository>
<id>apache.incubator</id>
<url>http://people.apache.org/repo/m2-incubating-repository</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-host-embedded</artifactId>
<version>1.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-implementation-java-runtime</artifactId>
<version>1.4-SNAPSHOT</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-binding-jms-runtime</artifactId>
<version>1.4-SNAPSHOT</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>sample-helloworld-service-jms</artifactId>
<version>1.4-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>apache-activemq</artifactId>
<version>4.1.1</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-web-demo</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<finalName>${artifactId}</finalName>
</build>
</project>

View file

@ -0,0 +1,33 @@
/*
* 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 HelloWorldImpl implements HelloWorldService {
public String getGreetings(String name) {
return "Hello " + name;
}
}

View file

@ -0,0 +1,41 @@
/*
* 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.apache.tuscany.sca.host.embedded.SCADomain;
/**
* This client program shows how to create an SCA runtime, start it,
* locate the HelloWorld service and invoke it.
*/
public class HelloWorldJmsClient {
public final static void main(String[] args) throws Exception {
//SCANode node = SCANodeFactory.createNodeWithComposite("helloworldjmsreference.composite");
//HelloWorldService helloWorldService = node.getDomain().getService(HelloWorldService.class, "HelloWorldServiceComponent");
SCADomain scaDomain = SCADomain.newInstance("helloworldjmsreference.composite");
HelloWorldService helloWorldService = scaDomain.getService(HelloWorldService.class, "HelloWorldServiceComponent");
String value = helloWorldService.getGreetings("World");
System.out.println(value);
scaDomain.close();
}
}

View file

@ -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 getGreetings(String name);
}

View file

@ -0,0 +1,42 @@
/*
* 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 service implementation
*/
public class HelloWorldServiceComponent implements HelloWorldService {
HelloWorldService helloWorldService;
public String getGreetings(String name) {
System.out.println("Called getGreetings");
return helloWorldService.getGreetings(name);
}
public HelloWorldService getHelloWorldService() {
System.out.println("Got Injected helloWorldService");
return helloWorldService;
}
public void setHelloWorldService(HelloWorldService helloWorldService) {
System.out.println("Injected helloWorldService");
this.helloWorldService = helloWorldService;
}
}

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
* 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.
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://helloworld"
xmlns:hw="http://helloworld"
name="helloworldjmsreference">
<!-- A component with a reference promoted as a composite reference -->
<component name="HelloWorldServiceComponent">
<implementation.java class="helloworld.HelloWorldServiceComponent"/>
<reference name="helloWorldService">
<interface.java interface="helloworld.HelloWorldService"/>
<binding.jms initialContextFactory="org.apache.activemq.jndi.ActiveMQInitialContextFactory"
jndiURL="tcp://localhost:61619">
<destination name="RequestQueue" create="always"/>
<response>
<destination name="ResponseQueue" create="always"/>
</response>
</binding.jms>
</reference>
</component>
</composite>

View file

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
* 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.
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://helloworld"
xmlns:hw="http://helloworld"
name="helloworld">
<component name="HelloWorldServiceComponent">
<implementation.java class="helloworld.HelloWorldImpl" />
<service name="HelloWorldService">
<interface.java interface="helloworld.HelloWorldService"/>
<binding.jms initialContextFactory="org.apache.activemq.jndi.ActiveMQInitialContextFactory"
jndiURL="tcp://localhost:61619">
<destination name="RequestQueue" create="always"/>
<response>
<destination name="ResponseQueue" create="always"/>
</response>
</binding.jms>
</service>
</component>
</composite>

View file

@ -0,0 +1,30 @@
# 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.
#
# $Rev: 582827 $ $Date: 2007-10-08 15:01:31 +0100 (Mon, 08 Oct 2007) $
#
# Custom logging configuration for Tuscany samples
# By default, only INFO level logging is enabled and ALL messages get sent to the console
# For more messages from the runtime, uncomment specific settings at the end of this file
handlers = java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
.level=INFO
# Uncomment the next setting to get all Tuscany messages (this will be a lot)
#org.apache.tuscany.level=FINEST

View file

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
* 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.
-->
<wsdl:definitions targetNamespace="http://helloworld" xmlns:tns="http://helloworld" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="helloworld">
<wsdl:types>
<schema elementFormDefault="qualified" targetNamespace="http://helloworld" xmlns="http://www.w3.org/2001/XMLSchema">
<element name="getGreetings">
<complexType>
<sequence>
<element name="name" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="getGreetingsResponse">
<complexType>
<sequence>
<element name="getGreetingsReturn" type="xsd:string"/>
</sequence>
</complexType>
</element>
</schema>
</wsdl:types>
<wsdl:message name="getGreetingsRequest">
<wsdl:part element="tns:getGreetings" name="parameters"/>
</wsdl:message>
<wsdl:message name="getGreetingsResponse">
<wsdl:part element="tns:getGreetingsResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="HelloWorld">
<wsdl:operation name="getGreetings">
<wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/>
<wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getGreetings">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getGreetingsRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getGreetingsResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="HelloWorldSoapJmsBinding" type="tns:HelloWorld">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/jms"/>
<wsdl:operation name="getGreetings">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="getGreetingsRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="getGreetingsResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="HelloWorldService">
<wsdl:port binding="tns:HelloWorldSoapJmsBinding" name="HelloWorldSoapJmsPort">
<wsdlsoap:address location="jms:/queue.sample?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&amp;java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&amp;java.naming.provider.url=tcp://localhost:61619"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

View file

@ -0,0 +1,80 @@
/*
* 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 junit.framework.Assert;
import org.apache.activemq.broker.BrokerService;
import org.apache.tuscany.sca.host.embedded.SCADomain;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* Test case for helloworld web service client
*/
public class HelloWorldJmsClientTestCase {
private HelloWorldService helloWorldService;
private HelloWorldService helloTuscanyService;
private SCADomain scaClientDomain;
private SCADomain scaServiceDomain;
private BrokerService jmsBroker;
@Before
public void startClient() throws Exception {
try {
startBroker();
scaServiceDomain = SCADomain.newInstance("helloworldjmsservice.composite");
scaClientDomain = SCADomain.newInstance("helloworldjmsreference.composite");
helloWorldService = scaClientDomain.getService(HelloWorldService.class, "HelloWorldServiceComponent");
} catch (Throwable e) {
e.printStackTrace();
}
}
@Test
public void testWSClient() throws Exception {
String msg = helloWorldService.getGreetings("Smith");
Assert.assertEquals("Hello Smith", msg);
Thread.sleep(2000);
}
@After
public void stopClient() throws Exception {
scaServiceDomain.close();
scaClientDomain.close();
if (jmsBroker != null) {
jmsBroker.stop();
}
}
protected void startBroker() throws Exception {
jmsBroker = new BrokerService();
jmsBroker.setPersistent(false);
jmsBroker.setUseJmx(false);
jmsBroker.addConnector("tcp://localhost:61619");
jmsBroker.start();
}
}