Callback JMS Sample | |
=================== | |
This sample demonstrates SCA callbacks over the JMS binding. It implements the example | |
described in the INFOQ article: | |
"Can I call you back about that?" Building Asynchronous Services using Service Component Architecture | |
See: http://www.infoq.com/articles/async-sca | |
It implements a service for placing an order for some widgets, where the service is asynchronous | |
and the client is informed of progress via a callback interface. | |
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 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-callbacks-jms.jar callbacks.CallbacksTestCase | |
and on *nix do | |
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-callbacks-jms.jar callbacks.CallbacksTestCase | |
Sample Overview | |
--------------- | |
The only changes over the sample code described in the INFOQ article are to add the @Remotable annotation | |
to the service and callback interfaces, add the @Oneway annotation to the placeOrder and placeOrderResponse | |
methods, and the composite XML is changed to use <binding.jms> instead of <binding.ws>. | |
Building And Running The Sample Using Ant | |
----------------------------------------- | |
With the binary distribution the sample can be built and run using Ant as | |
follows | |
cd callbacks-jms | |
ant compile | |
ant run | |
You should see the following output from the run target. | |
run: | |
[java] client placing order: callbacks.OrderRequest@c72243 | |
[java] service received order: callbacks.OrderRequest@1f94884 | |
[java] client callback received order response: callbacks.OrderResponse@14ab51b | |
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. | |
cd callbacks-jms | |
mvn | |
You should see the following output from the test phase. | |
------------------------------------------------------- | |
T E S T S | |
------------------------------------------------------- | |
Running callbacks.CallbacksTestCase | |
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.272 sec | |
Results : | |
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 | |
This shows that the Junit test cases have run successfully. |