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:
parent
3fd41ea820
commit
c00b9c4bdf
14 changed files with 848 additions and 0 deletions
sandbox/event/samples/helloworld-reference-jms
114
sandbox/event/samples/helloworld-reference-jms/README
Normal file
114
sandbox/event/samples/helloworld-reference-jms/README
Normal 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.
|
72
sandbox/event/samples/helloworld-reference-jms/build.xml
Normal file
72
sandbox/event/samples/helloworld-reference-jms/build.xml
Normal 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 |
|
@ -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 |
92
sandbox/event/samples/helloworld-reference-jms/pom.xml
Normal file
92
sandbox/event/samples/helloworld-reference-jms/pom.xml
Normal 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>
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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>
|
|
@ -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>
|
|
@ -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
|
|
@ -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&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=tcp://localhost:61619"/>
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
|
@ -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();
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue