![antelder](/assets/img/avatar_default.png)
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1069273 13f79535-47bb-0310-9956-ffa450edef68
116 lines
4.3 KiB
Text
116 lines
4.3 KiB
Text
Composite Implementation Sample
|
|
===============================
|
|
|
|
This sample shows how composites can be used to implement components.
|
|
|
|
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-implementation-composite.jar composite.CompositeClient
|
|
|
|
and on *nix do
|
|
|
|
java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-implementation-composite.jar composite.CompositeClient
|
|
|
|
|
|
Sample Overview
|
|
---------------
|
|
|
|
The sample is comprised of three composites. Take a look at the composite file
|
|
or the .svg/.png file which shows the composite file in pictorial form. The
|
|
OuterComposite defines three components two of which are implemented using
|
|
composites. The SourceComponent calls each TargetComponent in turn. There is a
|
|
callback which returns from each TargetComponent to the SourceComponent.
|
|
|
|
implementation-composite/
|
|
src/
|
|
main/
|
|
java/
|
|
composite/
|
|
Source.java - interface for the source component
|
|
SourceImpl.java - implementation for the source component
|
|
SourceCallback.java - source component callback interface
|
|
Target.java - interface for the target component
|
|
TargetImpl.java - implementation for the target component
|
|
CompositeClient.java - starts the SCA Runtime and
|
|
deploys the OuterComposite.composite.
|
|
This in turn pulls in the two inner
|
|
composites
|
|
resources/
|
|
META-INF/
|
|
sca-contribution.xml - specifies the composite to be deployed
|
|
OuterComposite.composite - the top level SCA assembly for this sample
|
|
InnerComposite.composite - included by OuterComposite.composite
|
|
InnerComposite2.composite - included by OuterComposite.composite
|
|
test/
|
|
java/
|
|
composite/
|
|
CompositeTestCase.java - JUnit test case
|
|
implementation-composite.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 as
|
|
follows
|
|
|
|
cd implementation-composite
|
|
ant compile
|
|
ant run
|
|
|
|
You should see the following output from the run target.
|
|
|
|
run:
|
|
[java] Main thread Thread[main,5,main]
|
|
[java] Source: Client.main -> Source.clientMethod
|
|
[java] Source: Client.main => Source.clientMethod2
|
|
[java] Sleeping ...
|
|
[java] Target: Client.main -> Source.clientMethod
|
|
[java] Work thread Thread[pool-1-thread-1,5,main]
|
|
[java] Result: Client.main -> Source.clientMethod -> Target.someMethod
|
|
[java] Target: Client.main => Source.clientMethod2
|
|
[java] Work thread Thread[pool-1-thread-2,5,main]
|
|
[java] Result: Client.main => Source.clientMethod2 -> Target.someMethod
|
|
|
|
|
|
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 implementation-composite
|
|
mvn
|
|
|
|
You should see the following output from the test phase.
|
|
|
|
-------------------------------------------------------
|
|
T E S T S
|
|
-------------------------------------------------------
|
|
Running composite.CompositeTestCase
|
|
Main thread Thread[main,5,main]
|
|
Source: Client.main -> Source.clientMethod
|
|
Source: Client.main => Source.clientMethod2
|
|
Sleeping ...
|
|
Target: Client.main => Source.clientMethod2
|
|
Work thread Thread[pool-1-thread-2,5,main]
|
|
Result: Client.main => Source.clientMethod2 -> Target.someMethod
|
|
Target: Client.main -> Source.clientMethod
|
|
Work thread Thread[pool-1-thread-1,5,main]
|
|
Result: Client.main -> Source.clientMethod -> Target.someMethod
|
|
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.973 sec
|
|
|
|
Results :
|
|
|
|
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
|
|
|
|
This shows that the Junit test cases have run successfully.
|