summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/contrib/samples/implementation-notification/README
blob: 7adfa4e5dcb2da81851d126ad3ae202e200165a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Notification Implementation Sample
===============================

This sample illustrates the use of <implementation.notification/>

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, use following command:

java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-implementation-notification.jar notification.TrafficAdvisoryClient

on *nix, use following command:

java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-implementation-notification.jar notification.TrafficAdvisoryClient

OR you can also use Maven to test:

mvn test

Sample Overview
---------------

This sample consists of a single composite that contains a notification component,
a producer component and two consumer components. Take a look at the composite file 
or the .svg file which shows the composite file in pictorial form. The notification
component has an <implementation.notification/> that refers to the component type
that defines the TrafficAdvisory java interface. This interface indicates the
makeup of the messages being sent and received and is also implemented by the
consumer components.

Sample directory structure:

implementation-notification/
  src/
    main/
      java/
        notification/
          TestCaseProducer.java                    - interface for the producer component
          TrafficAdvisory.java                     - interface for the notification and consumer components
          TrafficAdvisoryConsumer.java             - implementation for the consumer components
          TrafficAdvisoryProducer.java             - implementation for the producer component
    test/
      java/
        notification/
          TrafficAdvisoryTestCase.java             - JUnit test case
      resources/
        TrafficAdvisoryNotification.componentType  - the component type referred to by
                                                     <implementation.notification/>
        TrafficAdvisoryNotification.composite      - the main composite including producer,
                                                     notification component, and consumers
  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-notification
ant compile
ant run

You should see the following output from the run target.

run:
     [java] Consumer [Consumer1] received report: Nothing to report today
     [java] Consumer [Consumer2] received report: Nothing to report today
     
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-notification
mvn

You should see the following output from the test phase.

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running notification.TrafficAdvisoryTestCase
Consumer [Consumer1] received report: Nothing to report today
Consumer [Consumer2] received report: Nothing to report today
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.742 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

This shows that the Junit test cases have run successfully.