summaryrefslogtreecommitdiffstats
path: root/java/sca-contrib/samples/binding-notification-consumer
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-02-05 07:55:03 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2009-02-05 07:55:03 +0000
commitebb89430400c2cb1d1c74ca18927375ff41601cc (patch)
tree64b8495da5bc316b6711834f604c2490f556901b /java/sca-contrib/samples/binding-notification-consumer
parent7e3c616f4404088bfdd5b2aefe30291c12486ddd (diff)
Move the contrib folder out of the sca trunk build as discussed on the ML
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@741038 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca-contrib/samples/binding-notification-consumer')
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/README109
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/binding-notification-consumer.pngbin0 -> 27279 bytes
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/build.xml75
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/pom.xml116
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisory.java30
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisoryConsumer.java41
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisoryServer.java48
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/src/main/resources/TrafficAdvisoryNotification.componentType34
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/src/main/resources/TrafficAdvisoryNotification.composite53
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/src/main/resources/wsdl/TrafficAdvisory.wsdl50
-rw-r--r--java/sca-contrib/samples/binding-notification-consumer/src/test/java/notification/consumer/TrafficAdvisoryTestCase.java61
11 files changed, 617 insertions, 0 deletions
diff --git a/java/sca-contrib/samples/binding-notification-consumer/README b/java/sca-contrib/samples/binding-notification-consumer/README
new file mode 100644
index 0000000000..b54b445670
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/README
@@ -0,0 +1,109 @@
+Notification Consumer Binding Sample
+===============================
+
+This sample illustrates the use of <binding.notification/> with a
+remote consumer.
+
+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 consumer that is located in a
+separate (and remote) composite with respect to any producers. As such, this sample
+is run in conjunction with the binding-notification-producer sample, the
+binding-notification-broker 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, wired to the notification component, has 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-consumer
+ant compile
+ant run
+
+You should see the following output from the run target.
+
+run:
+ [java] Sep 14, 2007 10:56:29 AM org.apache.tuscany.sca.http.jetty.JettyServer addServletMapping
+ [java] INFO: Added Servlet mapping: http://localhost:8083/ntm/trafficAdvisory
+ [java] Sep 14, 2007 10:56:29 AM org.apache.tuscany.sca.http.jetty.JettyServer addServletMapping
+ [java] INFO: Added Servlet mapping: http://localhost:8083/consumer/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-consumer
+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=8082 -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-binding-notification-consumer.jar notification.consumer.TrafficAdvisoryServer
+
+on *nix, use following command:
+
+java -Dnotification.httpPort=8082 -cp ../../lib/tuscany-sca-manifest.jar:target/sample-binding-notification-consumer.jar notification.consumer.TrafficAdvisoryServer
+
+this should bring up the following prompt:
+
+TrafficAdvisoryServer, hit return to end
+
+at this point you should be able to receive messages.
+
+Notice that before you try to receive any message, you should bring up the
+producer sample or the broker sample. When you have finished using this
+sample, hit return to end.
+
+Also notice that '-Dnotification.httpPort=8082' 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-consumer/
+ src/
+ main/
+ java/
+ notification.consumer/
+ TrafficAdvisory.java - remote interface referred to by the producer component
+ TrafficAdvisoryConsumer.java - implementation for the consumer components
+ 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 and
+ notification components, and composite reference
+ test/
+ java/
+ notification.producer/
+ TrafficAdvisoryTestCase.java - JUnit test case
+ resources/
+ binding-notification-consumer.png - a pictorial representation of the sample .composite file
+ build.xml - the Ant build file
+ pom.xml - the Maven build file
diff --git a/java/sca-contrib/samples/binding-notification-consumer/binding-notification-consumer.png b/java/sca-contrib/samples/binding-notification-consumer/binding-notification-consumer.png
new file mode 100644
index 0000000000..33e1966c3e
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/binding-notification-consumer.png
Binary files differ
diff --git a/java/sca-contrib/samples/binding-notification-consumer/build.xml b/java/sca-contrib/samples/binding-notification-consumer/build.xml
new file mode 100644
index 0000000000..f57fe1bb26
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/build.xml
@@ -0,0 +1,75 @@
+<!--
+ * 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="binding-notification-consumer" default="compile">
+ <property name="test.class" value="notification.consumer.TrafficAdvisoryServer" />
+ <property name="test.jar" value="sample-binding-notification-consumer.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>
+ <sysproperty key="notification.httpPort" value="8083"/>
+ <arg value="end"/>
+ </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>
+ <sysproperty key="notification.httpPort" value="8081"/>
+ </java>
+ </target>
+
+ <target name="clean">
+ <delete quiet="true" includeemptydirs="true">
+ <fileset dir="target"/>
+ </delete>
+ </target>
+</project>
diff --git a/java/sca-contrib/samples/binding-notification-consumer/pom.xml b/java/sca-contrib/samples/binding-notification-consumer/pom.xml
new file mode 100644
index 0000000000..c1452f7d02
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/pom.xml
@@ -0,0 +1,116 @@
+<?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>2.0-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+ <artifactId>sample-binding-notification-consumer</artifactId>
+ <name>Apache Tuscany SCA Notification Binding Consumer Sample</name>
+ <version>2.0-SNAPSHOT</version>
+ <description>A sample illustrating use of binding.notification</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-notification</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-notification</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-embedded</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-java-runtime</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-interface-java-xml</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-interface-wsdl-xml</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-jetty</artifactId>
+ <version>2.0-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.5</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>${artifactId}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemProperties>
+ <property>
+ <name>notification.httpPort</name>
+ <value>8083</value>
+ </property>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ </plugins>
+ <defaultGoal>install</defaultGoal>
+ </build>
+</project>
diff --git a/java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisory.java b/java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisory.java
new file mode 100644
index 0000000000..424728692f
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisory.java
@@ -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.
+ */
+package notification.consumer;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@Remotable
+public interface TrafficAdvisory {
+
+ void trafficNotification(String report);
+}
diff --git a/java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisoryConsumer.java b/java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisoryConsumer.java
new file mode 100644
index 0000000000..852ddaa919
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisoryConsumer.java
@@ -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 notification.consumer;
+
+import org.oasisopen.sca.annotation.AllowsPassByReference;
+import org.oasisopen.sca.annotation.Property;
+import org.oasisopen.sca.annotation.Scope;
+import org.oasisopen.sca.annotation.Service;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@Service(TrafficAdvisory.class)
+@Scope("COMPOSITE")
+@AllowsPassByReference
+public class TrafficAdvisoryConsumer implements TrafficAdvisory {
+
+ @Property
+ protected String name;
+
+ public void trafficNotification(String report) {
+
+ System.out.println("Consumer [" + name + "] received report: " + report);
+ }
+}
diff --git a/java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisoryServer.java b/java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisoryServer.java
new file mode 100644
index 0000000000..c53adb1944
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/src/main/java/notification/consumer/TrafficAdvisoryServer.java
@@ -0,0 +1,48 @@
+/*
+ * 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 notification.consumer;
+
+import java.io.IOException;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TrafficAdvisoryServer {
+
+ public static void main(String[] args) {
+ try {
+ SCADomain domain = SCADomain.newInstance("TrafficAdvisoryNotification.composite");
+
+ try {
+ if (args.length != 1 || !args[0].equals("end")) {
+ System.out.println("TrafficAdvisoryServer, hit return to end");
+ System.in.read();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ domain.close();
+ } catch(Throwable e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/java/sca-contrib/samples/binding-notification-consumer/src/main/resources/TrafficAdvisoryNotification.componentType b/java/sca-contrib/samples/binding-notification-consumer/src/main/resources/TrafficAdvisoryNotification.componentType
new file mode 100644
index 0000000000..2dc70f8ed1
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/src/main/resources/TrafficAdvisoryNotification.componentType
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
+
+<componentType xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance">
+ <service name="TrafficAdvisoryNotificationService">
+ <interface.wsdl interface="http://example.com/TrafficAdvisory.wsdl#wsdl.interface(TrafficAdvisoryPortType)"
+ wsdli:wsdlLocation="http://example.com/TrafficAdvisory.wsdl wsdl/TrafficAdvisory.wsdl">
+ </interface.wsdl>
+ </service>
+
+ <reference name="TrafficAdvisoryNotificationReference"
+ multiplicity="0..n">
+ <interface.wsdl interface="http://example.com/TrafficAdvisory.wsdl#wsdl.interface(TrafficAdvisoryPortType)"
+ wsdli:wsdlLocation="http://example.com/TrafficAdvisory.wsdl wsdl/TrafficAdvisory.wsdl">
+ </interface.wsdl>
+ </reference>
+</componentType>
diff --git a/java/sca-contrib/samples/binding-notification-consumer/src/main/resources/TrafficAdvisoryNotification.composite b/java/sca-contrib/samples/binding-notification-consumer/src/main/resources/TrafficAdvisoryNotification.composite
new file mode 100644
index 0000000000..8f9bcc4438
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/src/main/resources/TrafficAdvisoryNotification.composite
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
+ targetNamespace="http://tuscany.apache.org/xmlns/notification/1.0/samples"
+ xmlns:wsdli="http://www.w3.org/2006/01/wsdl-instance"
+ name="TrafficAdvisoryNotificationRemoteConsumerComposite">
+
+ <service name="TrafficAdvisoryNotificationCompositeService"
+ promote="TrafficAdvisoryNotificationComponent/TrafficAdvisoryNotificationService">
+ <interface.wsdl interface="http://example.com/TrafficAdvisory.wsdl#wsdl.interface(TrafficAdvisoryPortType)"
+ wsdli:wsdlLocation="http://example.com/TrafficAdvisory.wsdl wsdl/TrafficAdvisory.wsdl">
+ </interface.wsdl>
+ <tuscany:binding.notification ntm="http://localhost:8083/ntm" notificationType="http://example.com/trafficAdvisory"/>
+ </service>
+
+ <component name="TrafficAdvisoryNotificationComponent">
+ <tuscany:implementation.notification name="TrafficAdvisoryNotification"/>
+ <!-- Never use > 1 reference elements here !! -->
+ <reference name="TrafficAdvisoryNotificationReference"
+ multiplicity="0..n"
+ target="TrafficAdvisoryConsumer1 TrafficAdvisoryConsumer2"/>
+ </component>
+
+ <component name="TrafficAdvisoryConsumer1">
+ <implementation.java class="notification.consumer.TrafficAdvisoryConsumer"/>
+ <property name="name">Consumer1</property>
+ </component>
+
+ <component name="TrafficAdvisoryConsumer2">
+ <implementation.java class="notification.consumer.TrafficAdvisoryConsumer"/>
+ <property name="name">Consumer2</property>
+ </component>
+
+</composite>
diff --git a/java/sca-contrib/samples/binding-notification-consumer/src/main/resources/wsdl/TrafficAdvisory.wsdl b/java/sca-contrib/samples/binding-notification-consumer/src/main/resources/wsdl/TrafficAdvisory.wsdl
new file mode 100644
index 0000000000..b823bbebcc
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/src/main/resources/wsdl/TrafficAdvisory.wsdl
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!--
+ * 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.
+-->
+<definitions name="TrafficAdvisory"
+ targetNamespace="http://example.com/TrafficAdvisory.wsdl"
+ xmlns:tns="http://example.com/TrafficAdvisory.wsdl"
+ xmlns:xsd1="http://example.com/TrafficAdvisory.xsd"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema targetNamespace="http://example.com/TrafficAdvisory.xsd"
+ xmlns:tns="http://example.com/TrafficAdvisory.xsd"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+ <element name="trafficNotification">
+ <complexType>
+ <sequence>
+ <element name="report" type="string" />
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </types>
+
+ <message name="TrafficNotificationInput">
+ <part name="body" element="xsd1:trafficNotification" />
+ </message>
+
+ <portType name="TrafficAdvisoryPortType">
+ <operation name="trafficNotification">
+ <input message="tns:TrafficNotificationInput" />
+ </operation>
+ </portType>
+
+</definitions>
diff --git a/java/sca-contrib/samples/binding-notification-consumer/src/test/java/notification/consumer/TrafficAdvisoryTestCase.java b/java/sca-contrib/samples/binding-notification-consumer/src/test/java/notification/consumer/TrafficAdvisoryTestCase.java
new file mode 100644
index 0000000000..c5318f405c
--- /dev/null
+++ b/java/sca-contrib/samples/binding-notification-consumer/src/test/java/notification/consumer/TrafficAdvisoryTestCase.java
@@ -0,0 +1,61 @@
+/*
+ * 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 notification.consumer;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+import junit.framework.TestCase;
+
+public class TrafficAdvisoryTestCase extends TestCase {
+
+ private SCADomain domain;
+
+ public void testTrafficAdvisoryNotification() throws Exception {
+ System.out.println("Only instantiating and closing domain ...");
+
+ /* Uncomment to test with producer
+ try {
+ System.out.println("TrafficAdvisoryServer, hit return to end");
+ System.in.read();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ */
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ try {
+ domain = SCADomain.newInstance("TrafficAdvisoryNotification.composite");
+ } catch(Throwable e) {
+ e.printStackTrace();
+ if (e instanceof Exception) {
+ throw (Exception)e;
+ }
+ else {
+ throw new Exception(e);
+ }
+ }
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ domain.close();
+ }
+}