 d64d4281ec
			
		
	
	
	d64d4281ec
	
	
	
		
			
			git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1069273 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			112 lines
		
	
	
	
		
			5.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
	
		
			5.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| Notification Broker Binding Sample
 | |
| ==================================
 | |
| 
 | |
| This sample illustrates the use of <binding.notification/> with a
 | |
| broker.
 | |
| 
 | |
| The README in the samples directory (the directory above this) provides 
 | |
| general instructions about building and running samples. Take a look there 
 | |
| first. 
 | |
| 
 | |
| Sample Overview
 | |
| ---------------
 | |
| 
 | |
| This sample illustrates the use of a notification broker that is located in a
 | |
| separate (and remote) composite with respect to any producers or consumers. As
 | |
| such, this sample is run in conjunction with the binding-notification-producer
 | |
| sample, the binding-notification-consumer sample, or both. Take a look at the
 | |
| composite file or the .svg file which shows the composite file in pictorial form.
 | |
| The composite service and composite reference each have a <binding.notification/>
 | |
| that handles the remote communication. This binding includes an 'ntm' attribute
 | |
| that refers to the notification type manager, which manages the connectivity of
 | |
| producers, consumers and brokers, and which (for this sample) is assumed to be
 | |
| running on http://localhost:8083. The ntm is a system component that is included in
 | |
| and runs as part of the binding-notification module.
 | |
| This sample also illustrates the use of a wsdl interface in the notification
 | |
| component's <implementation.notification/>. This allows messages sent and received
 | |
| via <binding.notification/> to be transported as literal xml over http.
 | |
| 
 | |
| Building And Running The Sample Using Ant
 | |
| -----------------------------------------
 | |
| With the binary distribution the sample can be built and run using Ant as 
 | |
| follows
 | |
| 
 | |
| cd binding-notification-broker
 | |
| ant compile
 | |
| ant run
 | |
| 
 | |
| You should see the following output from the run target.
 | |
| 
 | |
| run:
 | |
|      [java] Sep 14, 2007 11:14:24 AM org.apache.tuscany.sca.http.jetty.JettyServer addServletMapping
 | |
|      [java] INFO: Added Servlet mapping: http://localhost:8083/ntm/trafficAdvisory
 | |
|      [java] Sep 14, 2007 11:14:24 AM org.apache.tuscany.sca.http.jetty.JettyServer addServletMapping
 | |
|      [java] INFO: Added Servlet mapping: http://localhost:8083/consumer/trafficAdvisory
 | |
|      [java] Sep 14, 2007 11:14:24 AM org.apache.tuscany.sca.http.jetty.JettyServer addServletMapping
 | |
|      [java] INFO: Added Servlet mapping: http://localhost:8083/producer/trafficAdvisory
 | |
|      
 | |
| 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 binding-notification-broker
 | |
| mvn
 | |
| 
 | |
| Sample Usage
 | |
| ------------
 | |
| 
 | |
| This sample is run using the tuscany binary distribution. To run it, navigate to this sample's directory and 
 | |
| 
 | |
| on Wondows, use following command:
 | |
| 
 | |
| java -Dnotification.httpPort=8080 -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-binding-notification-broker.jar  notification.broker.TrafficAdvisoryServer
 | |
| 
 | |
| on *nix, use following command:
 | |
| 
 | |
| java -Dnotification.httpPort=8080 -cp ../../lib/tuscany-sca-manifest.jar:target/sample-binding-notification-broker.jar notification.broker.TrafficAdvisoryServer
 | |
| 
 | |
| this should bring up the following prompt:
 | |
| 
 | |
| Send a report value, ^C or <end> to end
 | |
| 
 | |
| at this point you should be able to type a message to send, for instance:
 | |
| 
 | |
| Traffic congestion
 | |
| 
 | |
| Notice that before you try to receive any message, you should bring up the
 | |
| consumer sample or another broker sample. When you have finished using this
 | |
| sample, type 'end' or ^C to end.
 | |
| 
 | |
| Also notice that '-Dnotification.httpPort=8080' is used in the java command.
 | |
| This indicates the port the sample should use. This also says that this server
 | |
| is not going to play the role of ntm, given our previous assumption. It is important
 | |
| that the first one of the producer, consumer or broker sample that is run be the
 | |
| one that uses '-Dnotification.httpPort=8083', otherwise there is no ntm to talk
 | |
| to and an exception will be thrown.
 | |
| 
 | |
| Sample directory structure:
 | |
| ---------------------------
 | |
| 
 | |
| binding-notification-broker/
 | |
|   src/
 | |
|     main/
 | |
|       java/
 | |
|         notification.broker/
 | |
|           TestCaseProducer.java                    - interface for the producer component
 | |
|           TrafficAdvisory.java                     - remote interface referred to by the producer component
 | |
|                                                      and for the consumer component
 | |
|           TrafficAdvisoryConsumer.java             - implementation for the consumer components
 | |
|           TrafficAdvisoryProducer.java             - implementation for the producer component
 | |
|           TrafficAdvisoryServer.java               - server class including main entry point
 | |
|       resources/
 | |
|         wsdl/
 | |
|           TrafficAdvisory.wsdl                     - remote interface for the notification component
 | |
|         TrafficAdvisoryNotification.componentType  - the component type referred to by
 | |
|                                                      <implementation.notification/>
 | |
|         TrafficAdvisoryNotification.composite      - the main composite including producer, consumer and
 | |
|                                                      notification components, and composite service and reference
 | |
|   binding-notification-broker.png                  - a pictorial representation of the sample .composite file
 | |
|   build.xml                       		   - the Ant build file
 | |
|   pom.xml                                          - the Maven build file        
 |