You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2011/08/31 17:54:29 UTC
svn commit: r1163674 - in
/incubator/airavata/trunk/samples/workflow-tracking: ./
simple-service-tracking/ simple-service-tracking/bin/
simple-service-tracking/conf/ simple-service-tracking/src/
simple-service-tracking/src/workflowtracking/ simple-serv...
Author: lahiru
Date: Wed Aug 31 15:54:28 2011
New Revision: 1163674
URL: http://svn.apache.org/viewvc?rev=1163674&view=rev
Log:
adding sample for new workflow-tracking schema.
Added:
incubator/airavata/trunk/samples/workflow-tracking/
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/README.txt
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/bin/
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/build.properties
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/build.xml
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/conf/
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/conf/configuration.properties
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/NotificationSender.java
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/SimpleWorkflowTracker.java
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/ConfigKeys.java
incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/Listener.java
Added: incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/README.txt
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/README.txt?rev=1163674&view=auto
==============================================================================
--- incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/README.txt (added)
+++ incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/README.txt Wed Aug 31 15:54:28 2011
@@ -0,0 +1,26 @@
+Workflow-tracking Quick Start Guide- Sample 1
+=================================
+
+This sample demostrate how to track a simple service invocation.
+
+
+Pre-Requisites
+==============
+
+Apache Ant 1.7.1 or later
+Apache Axis2 1.5 or later
+
+
+
+Steps:
+======
+
+1) configure and run wsmg-msgbox. please refer wsmg-msgbox user guide to know how to run the wsmg-msgbox.
+
+2) configure 'build.properties' located in the sample directory.
+
+3) set configurations in './conf/configuration.properties' file.
+
+4) run following command:
+ ant run
+
Added: incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/build.properties
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/build.properties?rev=1163674&view=auto
==============================================================================
--- incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/build.properties (added)
+++ incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/build.properties Wed Aug 31 15:54:28 2011
@@ -0,0 +1,25 @@
+#
+#
+# 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.
+#
+#
+
+
+
+#axis2.home=../../../../standalone-server/
+axis2.home=../../../modules/ws-messenger/distribution/target/airavta-ws-messenger-0.0.1-SNAPSHOT-1/standalone-server
Added: incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/build.xml
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/build.xml?rev=1163674&view=auto
==============================================================================
--- incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/build.xml (added)
+++ incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/build.xml Wed Aug 31 15:54:28 2011
@@ -0,0 +1,78 @@
+<?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.
+
+-->
+
+<project name="workflowtracking" default="run" basedir=".">
+
+ <property file="build.properties" />
+ <property name="lib.path" value="../../lib" />
+ <property name="dest.dir" value="bin" />
+ <property name="src.dir" value="src" />
+ <property name="conf.dir" location="conf" />
+
+
+
+ <path id="workflowtracking.class.path">
+ <fileset dir="${lib.path}">
+ <include name="*.jar" />
+ </fileset>
+
+ <fileset dir="${axis2.home}/lib">
+ <include name="*.jar" />
+ </fileset>
+
+ <path location="${conf.dir}" />
+
+ <pathelement location="${dest.dir}" />
+
+ </path>
+
+
+ <target name="clean">
+ <delete dir="${dest.dir}" />
+ </target>
+
+ <target name="build" depends="makeDest">
+ <antcall target="compile" />
+ </target>
+
+ <target name="makeDest">
+ <mkdir dir="${dest.dir}" />
+ </target>
+
+
+ <target name="compile" depends="makeDest">
+ <javac debug="true" srcdir="${src.dir}" destdir="${dest.dir}">
+ <classpath refid="workflowtracking.class.path" />
+ </javac>
+ </target>
+
+
+ <target name="run" depends="build">
+
+ <java classname="workflowtracking.samples.invoke.SimpleWorkflowTracker" fork="true">
+ <classpath refid="workflowtracking.class.path" />
+ </java>
+
+ </target>
+
+
+</project>
Added: incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/conf/configuration.properties
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/conf/configuration.properties?rev=1163674&view=auto
==============================================================================
--- incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/conf/configuration.properties (added)
+++ incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/conf/configuration.properties Wed Aug 31 15:54:28 2011
@@ -0,0 +1,24 @@
+#
+#
+# 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.
+#
+#
+axis2.repository=../../../standalone-server/
+msgbox.service.url=http://localhost:8080/axis2/services/MsgBoxService
+msgbroker.service.url=http://localhost:8080/axis2/services/EventingService
+msgbox.id=67889-28837892-33457700-33-4889uu9688--4770333068
Added: incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/NotificationSender.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/NotificationSender.java?rev=1163674&view=auto
==============================================================================
--- incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/NotificationSender.java (added)
+++ incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/NotificationSender.java Wed Aug 31 15:54:28 2011
@@ -0,0 +1,210 @@
+/*
+ *
+ * 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 workflowtracking.samples.invoke;
+
+import org.apache.airavata.workflow.tracking.NotifierFactory;
+import org.apache.airavata.workflow.tracking.WorkflowNotifier;
+import org.apache.airavata.workflow.tracking.common.InvocationContext;
+import org.apache.airavata.workflow.tracking.common.InvocationEntity;
+import org.apache.airavata.workflow.tracking.common.WorkflowTrackingContext;
+import org.apache.axis2.addressing.EndpointReference;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.net.URI;
+import java.util.Properties;
+
+public class NotificationSender {
+
+ protected WorkflowNotifier notifier;
+
+ protected String brokerURL;
+
+ protected String topic;
+
+ protected URI workflowID;
+
+ protected InvocationEntity initiator;
+
+ protected InvocationEntity receiver;
+
+ protected InvocationContext invocationContext;
+
+ protected EndpointReference eventSink;
+
+ protected WorkflowTrackingContext context;
+
+ /**
+ * Constructs a NotificationSender.
+ *
+ * @param brokerURL
+ * @param topic
+ */
+ public NotificationSender(URI brokerURL, String topic) {
+ this(brokerURL.toString(), topic);
+ }
+
+ /**
+ * Creates a NotificationSender.
+ *
+ * @param brokerURL The location of notification brokerUrl.
+ * @param topic The notification topic.
+ */
+ public NotificationSender(String brokerURL, String topic) {
+ this.topic = topic;
+ this.brokerURL = brokerURL;
+ this.workflowID = URI.create(this.convertToJavaIdentifier(this.topic));
+ this.eventSink = new EndpointReference(this.brokerURL);
+ Properties props = new Properties();
+
+ this.notifier = NotifierFactory.createNotifier();
+ URI initiatorWorkflowID = null;
+ URI initiatorServiceID = URI.create(this.convertToJavaIdentifier(topic));
+ String initiatorWorkflowNodeID = null;
+ Integer initiatorWorkflowTimeStep = null;
+ this.context = this.notifier.createTrackingContext(props, eventSink, initiatorWorkflowID,
+ initiatorServiceID, initiatorWorkflowNodeID, initiatorWorkflowTimeStep);
+ this.context.setTopic(topic);
+ this.initiator = this.notifier.createEntity(initiatorWorkflowID, initiatorServiceID, initiatorWorkflowNodeID,
+ initiatorWorkflowTimeStep);
+
+ URI receiverWorkflowID = this.workflowID;
+ URI receiverServiceID = this.workflowID;
+ String receiverWorkflowNodeID = null;
+ Integer receiverWorkflowTimeStep = null;
+ this.receiver = this.notifier.createEntity(receiverWorkflowID, receiverServiceID, receiverWorkflowNodeID,
+ receiverWorkflowTimeStep);
+ }
+
+ /**
+ * @return The event sink EPR.
+ */
+ public EndpointReference getEventSink() {
+ return this.eventSink;
+ }
+
+ /**
+ * @param args
+ * @param keywords
+ */
+
+ public void workflowStarted(String message) {
+ this.invocationContext = this.notifier.workflowInvoked(this.context, this.initiator, message);
+ }
+
+ /**
+ * @param args
+ * @param keywords
+ */
+ public void workflowFinished(String message) {
+ this.notifier.sendingResult(context, this.invocationContext, message);
+ this.notifier.workflowTerminated(context, this.workflowID, "Workflow finished successfully.");
+ }
+
+ public void sendingPartialResults(Object[] args, String[] keywords) {
+ String message = "";
+ for (int i = 0; i < args.length; i++) {
+ if (i != 0) {
+ message += ", ";
+ }
+ message += keywords[i] + "=" + args[i];
+ }
+ this.notifier.sendingResult(context, this.invocationContext, message);
+ }
+
+
+ public void workflowTerminated() {
+ this.notifier.workflowTerminated(context, this.workflowID, "Workflow finished successfully.");
+ }
+
+ /**
+ * Sends a START_INCOMPLETED notification message.
+ *
+ * @param message The message to send
+ */
+ public void workflowFailed(String message) {
+ workflowFailed(message, null);
+ }
+
+ /**
+ * Sends a START_INCOMPLETED notification message.
+ *
+ * @param e
+ */
+ public void workflowFailed(Throwable e) {
+ workflowFailed(null, e);
+ }
+
+ /**
+ * Sends a START_INCOMPLETED notification message.
+ *
+ * @param message The message to send
+ * @param e
+ */
+ public void workflowFailed(String message, Throwable e) {
+ this.notifier.sendingFault(context, this.invocationContext, message);
+ }
+
+ public void info(String message) {
+ this.notifier.info(context, message);
+ }
+
+ /**
+ * @param throwable
+ * @return The stackTrace in String
+ */
+ public static String getStackTraceInString(Throwable throwable) {
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ PrintStream printStream = new PrintStream(byteArrayOutputStream);
+ throwable.printStackTrace(printStream);
+ printStream.flush();
+ return byteArrayOutputStream.toString();
+ }
+
+ public static String convertToJavaIdentifier(String name) {
+
+ final char REPLACE_CHAR = '_';
+
+ if (name == null || name.length() == 0) {
+ return "" + REPLACE_CHAR;
+ }
+
+ StringBuilder buf = new StringBuilder();
+
+ char c = name.charAt(0);
+ if (!Character.isJavaIdentifierStart(c)) {
+ // Add _ at the beggining instead of replacing it to _. This is
+ // more readable if the name is like 3D_Model.
+ buf.append(REPLACE_CHAR);
+ }
+
+ for (int i = 0; i < name.length(); i++) {
+ c = name.charAt(i);
+ if (Character.isJavaIdentifierPart(c)) {
+ buf.append(c);
+ } else {
+ buf.append(REPLACE_CHAR);
+ }
+ }
+
+ return buf.toString();
+ }
+}
Added: incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/SimpleWorkflowTracker.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/SimpleWorkflowTracker.java?rev=1163674&view=auto
==============================================================================
--- incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/SimpleWorkflowTracker.java (added)
+++ incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/invoke/SimpleWorkflowTracker.java Wed Aug 31 15:54:28 2011
@@ -0,0 +1,94 @@
+/*
+ *
+ * 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 workflowtracking.samples.invoke;
+
+
+import org.apache.airavata.wsmg.client.WseMsgBrokerClient;
+
+import org.apache.airavata.wsmg.client.msgbox.MessagePuller;
+import org.apache.axis2.addressing.EndpointReference;
+import workflowtracking.samples.util.ConfigKeys;
+import workflowtracking.samples.util.Listener;
+
+import java.io.IOException;
+import java.util.Properties;
+
+import java.io.*;
+
+public class SimpleWorkflowTracker {
+
+ private static Properties getDefaults() {
+ Properties defaults = new Properties();
+ defaults.setProperty(ConfigKeys.MSGBOX_SERVICE_URL,
+ "http://localhost:8080/axis2/services/MsgBoxService");
+ defaults.setProperty(ConfigKeys.MSGBROKER_SERVICE_URL,
+ "http://localhost:8080/axis2/services/EventingService");
+ defaults.setProperty(ConfigKeys.TOPIC, "abc");
+ return defaults;
+ }
+
+ public static void main(String[] args) throws IOException {
+
+ Properties configurations = new Properties(getDefaults());
+ try {
+ InputStream ioStream = new FileInputStream("conf" + File.separator + ConfigKeys.CONFIG_FILE_NAME);
+ configurations.load(ioStream);
+ } catch (IOException ioe) {
+
+ System.out.println("unable to load configuration file, "
+ + "default settings will be used");
+ }
+
+ WseMsgBrokerClient brokerClient = new WseMsgBrokerClient();
+ String brokerLocation = configurations.getProperty(ConfigKeys.MSGBROKER_SERVICE_URL);
+ brokerClient.init(brokerLocation);
+ String topic = configurations.getProperty(ConfigKeys.TOPIC);
+ NotificationSender sender = new NotificationSender(brokerLocation, topic);
+ // Creating a messagebox
+ EndpointReference msgBoxEpr = brokerClient.createPullMsgBox(configurations.getProperty(ConfigKeys.MSGBOX_SERVICE_URL));
+
+ // subscribing to the above created messsage box with configured topic
+ String subscriptionID = brokerClient.subscribe(msgBoxEpr.getAddress(), topic, null);
+
+
+ //Start the messagePuller to pull messages from newly created messagebox
+ MessagePuller puller = brokerClient.startPullingEventsFromMsgBox(msgBoxEpr, new Listener(), 1000L, 2000L);
+
+ sender.workflowStarted("Workflow Started");
+ //Here we simply assume the workflow invocation is the invoke of the subscribe operation of EventingService and result
+ // Is considered as the subscriptionID got from subscribe operation
+ String workflowResult = subscriptionID;
+ sender.workflowFinished(workflowResult);
+
+ try {
+ Thread.sleep(10000L);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ brokerClient.unSubscribe(subscriptionID);
+ puller.stopPulling();
+ System.out.println("Delete message box response : "
+ + brokerClient.deleteMsgBox(msgBoxEpr, 500L));
+
+ }
+
+}
Added: incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/ConfigKeys.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/ConfigKeys.java?rev=1163674&view=auto
==============================================================================
--- incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/ConfigKeys.java (added)
+++ incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/ConfigKeys.java Wed Aug 31 15:54:28 2011
@@ -0,0 +1,34 @@
+/*
+ *
+ * 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 workflowtracking.samples.util;
+
+public class ConfigKeys {
+
+ public static final String AXIS2_REPO = "axis2.repository";
+ public static final String CONFIG_FILE_NAME = "configuration.properties";
+ public static final String MSGBOX_SERVICE_URL = "msgbox.service.url";
+ public static final String MSGBROKER_SERVICE_URL = "msgbroker.service.url";
+ public static final String MSGBOX_ID = "msgbox.id";
+ public static final String TOPIC = "abc";
+
+
+}
Added: incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/Listener.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/Listener.java?rev=1163674&view=auto
==============================================================================
--- incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/Listener.java (added)
+++ incubator/airavata/trunk/samples/workflow-tracking/simple-service-tracking/src/workflowtracking/samples/util/Listener.java Wed Aug 31 15:54:28 2011
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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 workflowtracking.samples.util;
+
+import org.apache.airavata.wsmg.client.ConsumerNotificationHandler;
+import org.apache.airavata.wsmg.client.NotificationHandler;
+import org.apache.axiom.soap.SOAPEnvelope;
+
+public class Listener implements NotificationHandler {
+
+ public void handleNotification(String message) {
+ System.out.println("MessageRecieved: " + message);
+ }
+
+}