airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sma...@apache.org
Subject svn commit: r1142350 [18/18] - in /incubator/airavata/donations/ogce-donation/modules/ws-messaging: broker/ broker/customLibs/ broker/customLibs/activeMQ/ broker/src/ broker/src/main/ broker/src/main/java/ broker/src/main/java/wsmg/ broker/src/main/jav...
Date Sun, 03 Jul 2011 00:29:37 GMT
Added: incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/SimpleTest.java
URL: http://svn.apache.org/viewvc/incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/SimpleTest.java?rev=1142350&view=auto
==============================================================================
--- incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/SimpleTest.java
(added)
+++ incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/SimpleTest.java
Sun Jul  3 00:29:24 2011
@@ -0,0 +1,255 @@
+/* -*-             c-basic-offset: 4; indent-tabs-mode: nil; -*-  //- -----100-columns-wide------>*/
+/*
+ * Copyright (c) 2004 Extreme! Lab, Indiana University. All rights reserved.
+ *
+ * This software is open source. See the bottom of this file for the licence.
+ *
+ * $Id: SimpleTest.java,v 1.2 2007/02/17 19:52:43 ysimmhan Exp $
+ */
+
+package edu.indiana.extreme.lead.workflow_tracking.samples.workflow;
+
+//import static edu.indiana.extreme.lead.workflow_tracking.impl.CONSTS.*;
+
+/**
+ * Simple test that generates notifications from the perspective of an application
+ * (e.g. Jython script or web service) or a Workflow engine. The following 1 service workflow
is simulated:
+ *
+ * <pre>
+ * ................ ________
+ * ........001 --->|        |---> XXXX
+ * ................| FuBar1 |
+ * ........002 --->|________|---> YYYY
+ * </pre>
+ *
+ * @version $Revision: 1.2 $
+ * @author Yogesh L. Simmhan [mailto:ysimmhan_AT_cs_DOT_indiana_DOT_edu]
+ */
+public class SimpleTest {
+
+    //    public static long runWorkflowEngine(Notifier notifier, int count) throws Exception
{
+    //
+    //        Timer t = Timer.initAndStart("wfEngine");
+    //        for (int i=0; i < count; i++) {
+    //
+    //            // start running the workflow
+    //            notifier.workflowInvoked(
+    //                // optional input param names to workflow
+    //                new String[]{"dataFileID", "confFileURL"},
+    //                // optional input param values to workflow
+    //                new String[]{"leadId:dgk8634yas", "gridftp://tempuri.org/conf.txt"}
+    //            );
+    //
+    //            // start to invoke a service
+    //            ServiceObj svcObj =
+    //                notifier.invokeServiceStarted(
+    //                // optional input param names to service
+    //                new String[]{"dataFileID", "confFileURL"},
+    //                // optional input param values to service
+    //                new String[]{"leadId:dgk8634yas", "gridftp://tempuri.org/conf.txt"},
+    //                "Node1",  // node ID in workflow
+    //                "step1", // timestep in workflow execution
+    //                "{http://foobar.org}FuBar1" // Servce QName
+    //            );
+    //
+    //            // invocation returned successfully
+    //            notifier.serviceFinishedSuccess(svcObj);
+    //
+    //            // OR invocation failed
+    //            // notifier.serviceFinishedFailed(svcObj, "service failed");
+    //
+    //            // workflow completed successfully
+    //            notifier.workflowFinishedSuccess();
+    //
+    //            // OR workflow failed
+    //            // notifier.workflowFinishedFailed("i failed!");
+    //
+    //            // Done with workflow. call flush to ensure messages are sent...
+    //            notifier.flush();
+    //        }
+    //
+    //        return t.end("done: " + count);
+    //    }
+    //
+    //    public static long runService(Notifier notifier, int count) throws Exception {
+    //
+    //        String done = "done " + count;
+    //        Timer t = Timer.initAndStart("service"); // start timer
+    //        for (int i=0; i < count; i++) {
+    //
+    //            // APP STARTS
+    //            notifier.serviceInvoked("FuBarApp1"); // we can optionally pass the input
params & values too
+    //
+    //            // START TO RECEIVE A FILE
+    //            DataObj fileObj =
+    //                notifier.fileReceiveStarted("leadId-001", // leadID
+    //                                            "gridftp://remotehost.org/foo.dat",  //
remote file source
+    //                                            "/data/tmp/foo.dat"); // local file destination
+    //            /* APP DOES FILE TRANSFER ... */
+    //            // DONE RECEIVING FILE
+    //            notifier.fileReceiveFinished(fileObj);
+    //
+    //            // THE RECEIVED FILE WILL BE CONSUMED IN A COMPUTATION
+    //            //   ALONG WITH ANOTHER LOCAL FILE
+    //            notifier.dataConsumed(fileObj);
+    //            notifier.dataConsumed("leadId-002", "/etc/app/config/foo.cfg");
+    //
+    //            // send info message on some processing
+    //            int runs = 2;
+    //            notifier.info("i'm going to use input file for " + runs + " number of WRF
runs ...");
+    //
+    //            // START COMPUTATION RUNS
+    //            for (int j=0; j < runs; j++) {
+    //                // START COMPUTATION
+    //                DurationObj compObj = notifier.computationStarted("WRF Run");
+    //                /* APP DOES COMPUTATION ... */
+    //                // FINISHED COMPUTATION
+    //                notifier.computationFinished(compObj);
+    //            }
+    //
+    //            // NOTIFY THAT A FILE WAS PRODUCED
+    //            DataObj fileObj2 = notifier.fileProduced("/data/tmp/output/bar.dat");
+    //
+    //            // START SENDING OUTPUT FILE TO REMOTE LOCATION
+    //            notifier.fileSendStarted(fileObj2, "gridftp://remotehost.org/bar.dat");
+    //            /* APP DOES FILE TRANSFER ... */
+    //            // DONE SENDING FILE
+    //            notifier.fileSendFinished(fileObj2);
+    //
+    //            // PUBLISH THE OUTPUT FILE URL AS MESSAGE FOR VIZ
+    //            notifier.publishURL("Output visualization", "http://localhost/" + fileObj2.getLocalLocation());
+    //
+    //            // APPLICATION COMPLETES
+    //            notifier.sendingResult(null, null);
+    //
+    //            // DONE SENDING NOTIFICATIONS. CALL FLUSH TO ENSURE ALL MESSAGES HAVE BEEN
PUBLISHED...
+    //            notifier.flush();
+    //        }
+    //        return t.end(done);  // end timer
+    //
+    //    }
+    //
+    //    public static void main(String[] args) throws Exception {
+    //
+    //        System.out.println("USAGE: java SimpleTest [service | engine] <iterations>");
+    //
+    //        boolean runAsEngine = "engine".equalsIgnoreCase(args[0]); // run test as if
from workflow engine
+    //        boolean runAsService = "service".equalsIgnoreCase(args[0]); // run test as
if from application service
+    //        if (!runAsEngine && !runAsService) {
+    //            throw new Exception("pass either 'service' or 'engine' as param");
+    //        }
+    //
+    //
+    //        int count = 1;
+    //        try {
+    //            count = Integer.parseInt(args[1]);
+    //        } catch (NumberFormatException e) {
+    //            // ignore and use count = 1
+    //        }
+    //
+    //        System.out.println("Running as : " + (runAsEngine ? "ENGINE" : "SERVICE") +
+    //                           " for " + count + " iterations");
+    //
+    //        // create the properties constructor...see CONSTS.java for more options
+    //        // Passing System.getProperties() ensures that any system properties that are
set are
+    //        // carried over into the constructor
+    //        Props props =
+    //            //Props.newProps(System.getProperties()).
+    //            Props.newProps("properties.xml").
+    //            set(CONSTS.WORKFLOW_ID, "wf100201").
+    //            set(CONSTS.ENABLE_NAME_RESOLVER, "false").
+    //            // set(NAME_RESOLVER_URL, ""). // since name resolver is disabled, we do
not need URL
+    //            //set(IN_XML_MESSAGE, ""). // pass the incoming SOAP message if async response
to sender required
+    //            set(CONSTS.BROKER_URL, "rainier.extreme.indiana.edu:12346").
+    //            set(CONSTS.TOPIC, "somerandomtopic");
+    //
+    //        // when running from the service perspective, additional attributes are need
+    //        // ...not needed when running as workflow engine
+    //        if (runAsService) {
+    //            props.
+    //                /* either this service's QName should be passed as SERVICE_ID or */
+    //                /*  its WSDL should be passed as SERVICE_WSDL to extract its QName
*/
+    //                set(CONSTS.SERVICE_ID, "{http://foobar.org}FuBar1").
+    //                //set(CONSTS.SERVICE_WSDL, "<wsdl:definitions/>").
+    //                set(CONSTS.NODE_ID, "N1").
+    //                set(CONSTS.TIMESTEP, "1");
+    //        }
+    //
+    //        // creates the default notifier and passes above properties to it as parameters
+    //        Notifier notifier = NotifierFactory.createNotifier(props);
+    //
+    //        long time = -1;
+    //        if (runAsService) {
+    //            time = runService(notifier, count);
+    //
+    //        }
+    //
+    //        if (runAsEngine) {
+    //            time = runWorkflowEngine(notifier, count);
+    //        }
+    //
+    //        System.out.println("Done in " + time + " millis");
+    //    }
+}
+
+/*
+ * Indiana University Extreme! Lab Software License, Version 1.2
+ *
+ * Copyright (C) 2004 The Trustees of Indiana University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * 1) All redistributions of source code must retain the above
+ *    copyright notice, the list of authors in the original source
+ *    code, this list of conditions and the disclaimer listed in this
+ *    license;
+ *
+ * 2) All redistributions in binary form must reproduce the above
+ *    copyright notice, this list of conditions and the disclaimer
+ *    listed in this license in the documentation and/or other
+ *    materials provided with the distribution;
+ *
+ * 3) Any documentation included with all redistributions must include
+ *    the following acknowledgement:
+ *
+ *      "This product includes software developed by the Indiana
+ *      University Extreme! Lab.  For further information please visit
+ *      http://www.extreme.indiana.edu/"
+ *
+ *    Alternatively, this acknowledgment may appear in the software
+ *    itself, and wherever such third-party acknowledgments normally
+ *    appear.
+ *
+ * 4) The name "Indiana University" or "Indiana University
+ *    Extreme! Lab" shall not be used to endorse or promote
+ *    products derived from this software without prior written
+ *    permission from Indiana University.  For written permission,
+ *    please contact http://www.extreme.indiana.edu/.
+ *
+ * 5) Products derived from this software may not use "Indiana
+ *    University" name nor may "Indiana University" appear in their name,
+ *    without prior written permission of the Indiana University.
+ *
+ * Indiana University provides no reassurances that the source code
+ * provided does not infringe the patent or any other intellectual
+ * property rights of any other entity.  Indiana University disclaims any
+ * liability to any recipient for claims brought by any other entity
+ * based on infringement of intellectual property rights or otherwise.
+ *
+ * LICENSEE UNDERSTANDS THAT SOFTWARE IS PROVIDED "AS IS" FOR WHICH
+ * NO WARRANTIES AS TO CAPABILITIES OR ACCURACY ARE MADE. INDIANA
+ * UNIVERSITY GIVES NO WARRANTIES AND MAKES NO REPRESENTATION THAT
+ * SOFTWARE IS FREE OF INFRINGEMENT OF THIRD PARTY PATENT, COPYRIGHT, OR
+ * OTHER PROPRIETARY RIGHTS.  INDIANA UNIVERSITY MAKES NO WARRANTIES THAT
+ * SOFTWARE IS FREE FROM "BUGS", "VIRUSES", "TROJAN HORSES", "TRAP
+ * DOORS", "WORMS", OR OTHER HARMFUL CODE.  LICENSEE ASSUMES THE ENTIRE
+ * RISK AS TO THE PERFORMANCE OF SOFTWARE AND/OR ASSOCIATED MATERIALS,
+ * AND TO THE PERFORMANCE AND VALIDITY OF INFORMATION GENERATED USING
+ * SOFTWARE.
+ */
+
+
+

Added: incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/SimpleWorkflowExecution.java
URL: http://svn.apache.org/viewvc/incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/SimpleWorkflowExecution.java?rev=1142350&view=auto
==============================================================================
--- incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/SimpleWorkflowExecution.java
(added)
+++ incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/SimpleWorkflowExecution.java
Sun Jul  3 00:29:24 2011
@@ -0,0 +1,541 @@
+/* -*- mode: Java; c-basic-offset: 4; indent-tabs-mode: nil; -*-  //------100-columns-wide------>*/
+/*
+ * Copyright (c) 2005 Extreme! Lab, Indiana University. All rights reserved.
+ *
+ * This software is open source. See the bottom of this file for the licence.
+ *
+ * $Id: SimpleWorkflowExecution.java,v 1.5 2007/02/17 19:52:43 ysimmhan Exp $
+ */
+package edu.indiana.extreme.lead.workflow_tracking.samples.workflow;
+
+//import edu.indiana.extreme.lead.workflow_tracking.GenericNotifier;
+import java.io.ByteArrayOutputStream;
+import java.net.URI;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.Semaphore;
+
+import junit.framework.TestCase;
+
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.util.XMLPrettyPrinter;
+import org.apache.xmlbeans.XmlException;
+import org.apache.xmlbeans.XmlObject;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import wsmg.client.ConsumerNotificationHandler;
+import wsmg.client.WseMsgBrokerClient;
+import edu.indiana.extreme.lead.workflow_tracking.GenericNotifier;
+import edu.indiana.extreme.lead.workflow_tracking.Notifier;
+import edu.indiana.extreme.lead.workflow_tracking.NotifierFactory;
+import edu.indiana.extreme.lead.workflow_tracking.ProvenanceNotifier;
+import edu.indiana.extreme.lead.workflow_tracking.WorkflowNotifier;
+import edu.indiana.extreme.lead.workflow_tracking.calder.CalderNotifier;
+import edu.indiana.extreme.lead.workflow_tracking.client.Subscription;
+import edu.indiana.extreme.lead.workflow_tracking.common.AnnotationConsts;
+import edu.indiana.extreme.lead.workflow_tracking.common.AnnotationProps;
+import edu.indiana.extreme.lead.workflow_tracking.common.ConstructorConsts;
+import edu.indiana.extreme.lead.workflow_tracking.common.ConstructorProps;
+import edu.indiana.extreme.lead.workflow_tracking.common.InvocationContext;
+import edu.indiana.extreme.lead.workflow_tracking.common.InvocationEntity;
+import edu.indiana.extreme.lead.workflow_tracking.common.WorkflowTrackingContext;
+
+/**
+ * 
+ * @version $Revision: 1.5 $
+ * @author Yogesh L. Simmhan [mailto:ysimmhan_at_cs.indiana.edu]
+ */
+public class SimpleWorkflowExecution extends TestCase {
+
+	/**
+	 * This class is not instantiated. So have a private default constructor.
+	 * 
+	 */
+	Subscription subscription;
+	Properties configs = new Properties();
+	String BROKER_URL = "http://127.0.0.1:8081/axis2/services/EventingService/topic/Foo";
+
+	private EndpointReference epr = new EndpointReference(BROKER_URL);
+
+	@BeforeClass
+	public static void setUpBeforeClass() throws Exception {
+
+	}
+
+	@AfterClass
+	public static void tearDownAfterClass() throws Exception {
+	}
+
+	@Before
+	public void setUp() throws Exception {
+		// URL configURL = ClassLoader
+		// .getSystemResource(TestConfigKeys.CONFIG_FILE_NAME);
+		// configs.load(configURL.openStream());
+		// BROKER_URL = configs
+		// .getProperty(TestConfigKeys.BROKER_EVENTING_SERVICE_EPR);
+		// MESSAGEBOX_URL =
+		// configs.getProperty(TestConfigKeys.MSGBOX_SERVICE_EPR);
+		// consumerPort = Integer.parseInt(configs
+		// .getProperty(TestConfigKeys.CONSUMER_PORT));
+		// BROKER_EVENTING = configs
+		// .getProperty(TestConfigKeys.BROKER_EVENTING_SERVICE_EPR);
+
+		DATA_URI_1 = new URI("lead:djsdhgfsdf");
+		DATA_URI_2 = new URI("lead:skfdjhgkfg");
+		DATA_URI_3 = new URI("lead:hgkdfhkgfd");
+		DATA_URI_4 = new URI("lead:lshjkhdgdf");
+		DATA_URI_5 = new URI("lead:fghkfhgfdg");
+		DATA_URI_6 = new URI("lead:dshiuwekds");
+
+		DATA_URLS_1 = Arrays.asList(new URI[] { new URI(
+				"http://dataserver/foo/1") });
+		DATA_URLS_2 = Arrays.asList(new URI[] { new URI(
+				"http://dataserver/bar/2") });
+		DATA_URLS_3 = Arrays.asList(new URI[] {
+				new URI("http://dataserver/fubar/3"),
+				new URI("http://datarepos/foobar/3") });
+		DATA_URLS_4 = Arrays.asList(new URI[] { new URI(
+				"http://datarepos/fee/4") });
+		DATA_URLS_5 = Arrays.asList(new URI[] { new URI(
+				"http://datarepos/fie/5") });
+		DATA_URLS_6 = Arrays.asList(new URI[] { new URI(
+				"http://datarepos/foe/fum/6") });
+
+		long now = System.currentTimeMillis();
+		SERVICE_0 = new URI("http://tempuri.org/root_service/" + now);
+		WORKFLOW_1 = new URI("http://tempuri.org/workflow1/" + now);
+		SERVICE_1 = new URI("http://tempuri.org/service1/" + now);
+		SERVICE_2 = new URI("http://tempuri.org/service2/" + now);
+
+	}
+
+	@After
+	public void tearDown() throws Exception {
+	}
+
+	public URI WORKFLOW_1, SERVICE_1, SERVICE_2, SERVICE_0;
+
+	private URI DATA_URI_1, DATA_URI_2, DATA_URI_3, DATA_URI_4, DATA_URI_5,
+			DATA_URI_6;
+	private List<URI> DATA_URLS_1, DATA_URLS_2, DATA_URLS_3, DATA_URLS_4,
+			DATA_URLS_5, DATA_URLS_6;
+
+	static class Success {
+		XmlObject header;
+		XmlObject body;
+	}
+
+	static class Failure {
+		XmlObject header;
+		XmlObject body;
+	}
+
+	public Object runWorkflow1(InvocationEntity myInvoker, URI myWorkflowID,
+			URI myServiceID, String myNodeID, Integer myTimestep)
+			throws XmlException {
+
+		assert WORKFLOW_1.equals(myServiceID);
+
+		WorkflowNotifier notifier = NotifierFactory.createWorkflowNotifier();
+		WorkflowTrackingContext context = notifier.createTrackingContext(
+				new Properties(), epr, myWorkflowID, myServiceID, myNodeID,
+				myTimestep);
+
+		InvocationContext myInvocation = notifier.workflowInvoked(context,
+				myInvoker, XmlObject.Factory.parse("<soapHeader/>"),
+				XmlObject.Factory.parse("<soapBody>input1,input2</soapBody>"),
+				"This is the start of this workflow");
+
+		// BEGIN SERVICE1
+		{
+			// prepare to invoke service1
+			InvocationEntity service1 = notifier.createEntity(context,
+					myServiceID, SERVICE_1, "NODE1", 1);
+			InvocationContext service1Invocation = notifier.invokingService(
+					context, service1,
+					XmlObject.Factory.parse("<soapHeader/>"), XmlObject.Factory
+							.parse("<soapBody>input1</soapBody>"),
+					"This workflow is invoking a service");
+
+			Object result = null;
+			try {
+				// prepare to invoke service1
+				result = runService1(service1, service1.getWorkflowID(),
+						service1.getServiceID(), service1.getWorkflowNodeID(),
+						service1.getWorkflowTimestep());
+
+				// If this were an async invocation, we would have finished
+				// sending request.
+				// we acknowledge the successful request.
+				notifier.invokingServiceSucceeded(context, service1Invocation,
+						"Invoked service1 successfully");
+
+			} catch (Exception ex) {
+				// If there had been a problem sending the request on the wire,
+				// we acknowledge a failed request.
+				notifier.invokingServiceFailed(context, service1Invocation, ex,
+						"Failed to invoke service1");
+			}
+
+			// At this point, we would have waited for response from service1 if
+			// it were an async call.
+			// assume we received response at this point and continue.
+			if (result instanceof Success) {
+				notifier.receivedResult(context, service1Invocation,
+						((Success) result).header, ((Success) result).body,
+						"got success response from service1");
+			} else if (result instanceof Failure) {
+				notifier.receivedFault(context, service1Invocation,
+						((Failure) result).header, ((Failure) result).body,
+						"got fault response from service1");
+			}
+
+		}
+
+		// BEGIN SERVICE2
+		{
+			// prepare to invoke service1
+			InvocationEntity service2 = notifier.createEntity(context,
+					myServiceID, SERVICE_2, "NODE2", 2);
+			InvocationContext service1Invocation = notifier.invokingService(
+					context, service2,
+					XmlObject.Factory.parse("<soapHeader/>"), XmlObject.Factory
+							.parse("<soapBody>input2,input3</soapBody>"),
+					"This workflow is invoking another service");
+
+			Object result = null;
+			try {
+				// prepare to invoke service2
+				result = runService2(service2, service2.getWorkflowID(),
+						service2.getServiceID(), service2.getWorkflowNodeID(),
+						service2.getWorkflowTimestep());
+
+				// If this were an async invocation, we would have finished
+				// sending request.
+				// we acknowledge the successful request.
+				notifier.invokingServiceSucceeded(context, service1Invocation,
+						"Invoked service2 successfully");
+
+			} catch (Exception ex) {
+				// If there had been a problem sending the request on the wire,
+				// we acknowledge a failed request.
+				notifier.invokingServiceFailed(context, service1Invocation, ex,
+						"Failed to invoke service2");
+			}
+
+			// At this point, we would have waited for response from service1 if
+			// it were an async call.
+			// assume we received response at this point and continue.
+			if (result instanceof Success) {
+				notifier.receivedResult(context, service1Invocation,
+						((Success) result).header, ((Success) result).body,
+						"got success response from service2");
+			} else if (result instanceof Failure) {
+				notifier.receivedFault(context, service1Invocation,
+						((Failure) result).header, ((Failure) result).body,
+						"got fault response from service2");
+			}
+
+		}
+
+		Object result = null;
+		notifier.sendingResult(context, myInvocation,
+				"sending result back to the invoker of this workflow");
+		try {
+			result = new Success();
+			notifier.sendingResponseSucceeded(context, myInvocation,
+					"sent result to invoker");
+		} catch (Exception ex) {
+			notifier.sendingResponseFailed(context, myInvocation, ex);
+		}
+
+		return result;
+	}
+
+	public Object runService1(InvocationEntity myInvoker, URI myWorkflowID,
+			URI myServiceID, String myNodeID, int myTimestep)
+			throws XmlException {
+
+		// ensure the service ID as passed is what the service thinks it's
+		// service ID is
+		assert SERVICE_1.equals(myServiceID);
+
+		// if we were not publishing data products, a serviceNotifier would have
+		// sufficed
+		ProvenanceNotifier notifier = NotifierFactory
+				.createProvenanceNotifier();
+		WorkflowTrackingContext context = notifier.createTrackingContext(null,
+				epr, myWorkflowID, myServiceID, myNodeID, myTimestep);
+		InvocationContext invocationContext = notifier.serviceInvoked(context,
+				myInvoker, "I (service1) was invoked by my invoker",
+				AnnotationProps.newProps(AnnotationConsts.AbstractServiceID,
+						myServiceID.toString() + "-abstract").toString());
+
+		notifier.dataConsumed(context, DATA_URI_1, DATA_URLS_1,
+				"consuming a file");
+		notifier.dataConsumed(context, DATA_URI_2, DATA_URLS_2,
+				"consuming another file");
+
+		// do stuff!
+
+		notifier.dataProduced(context, DATA_URI_3, DATA_URLS_3,
+				"produced some file", "<someXml/>");
+
+		boolean successResult = true;
+
+		// produce response...either success or failure
+		Object result = null;
+		if (successResult) {
+			Success success = new Success();
+			success.header = XmlObject.Factory
+					.parse("<S:Header "
+							+ "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:wsa=\"http://www.w3.org/2005/08/addressing\" xmlns:wsp=\"http://schemas.xmlsoap.org/ws/2002/12/policy\"
xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+							+ "<wsa:To>http://129.79.246.253:3456</wsa:To><wsa:RelatesTo>uuid:ee4d14d0-2262-11db-86d8-cd518af91949</wsa:RelatesTo>"
+							+ "</S:Header>");
+			success.body = XmlObject.Factory
+					.parse("<S:Body "
+							+ "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:wsa=\"http://www.w3.org/2005/08/addressing\" xmlns:wsp=\"http://schemas.xmlsoap.org/ws/2002/12/policy\"
xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+							+ "<gfac:Run_OutputParams xmlns:gfac=\"http://www.extreme.indiana.edu/namespaces/2004/01/gFac\">"
+							+ "<gfac:WRF_Ininitialization_Files><value>gsiftp://grid-hg.ncsa.teragrid.org//scratch/hperera/Wed_Aug_02_15_10_23_EST_2006_ARPS2WRF/outputData/namelist.input</value><value>gsiftp://grid-hg.ncsa.teragrid.org//scratch/hperera/Wed_Aug_02_15_10_23_EST_2006_ARPS2WRF/outputData/wrfbdy_d01</value><value>gsiftp://grid-hg.ncsa.teragrid.org//scratch/hperera/Wed_Aug_02_15_10_23_EST_2006_ARPS2WRF/outputData/wrfinput_d01</value></gfac:WRF_Ininitialization_Files>"
+							+ "</gfac:Run_OutputParams>" + "</S:Body>");
+
+			// notify that invocation produced a result and send result to
+			// invoker
+			notifier.sendingResult(context, invocationContext, success.header,
+					success.body, "sending success");
+			try {
+				// since this is a sync call, we mimic an async response by
+				// seting the result object
+				result = success;
+				// acknowledge that the result was sent successfully
+				notifier.sendingResponseSucceeded(context, invocationContext);
+			} catch (Exception ex) {
+				// acknowledge that sending the result failed
+				notifier.sendingResponseFailed(context, invocationContext, ex,
+						"error sending response");
+			}
+
+		} else {
+
+			Failure failure = new Failure();
+			failure.header = XmlObject.Factory.parse("<faultHeader/>");
+			failure.body = XmlObject.Factory
+					.parse("<faultBody>fault1</faultBody>");
+
+			// notify that invocation produced a fault and send fault to invoker
+			notifier.sendingFault(context, invocationContext, failure.header,
+					failure.body, "sending fault");
+			try {
+				// since this is a sync call, we mimic an async response by
+				// seting the result object
+				result = failure;
+				// acknowledge that the fault was sent successfully
+				notifier.sendingResponseSucceeded(context, invocationContext);
+			} catch (Exception ex) {
+				// acknowledge that sending the fault failed
+				notifier.sendingResponseFailed(context, invocationContext, ex,
+						"error sending response");
+			}
+		}
+
+		// send result
+		return result;
+	}
+
+	public Object runService2(InvocationEntity myInvoker, URI myWorkflowID,
+			URI myServiceID, String myNodeID, int myTimestep)
+			throws XmlException {
+
+		// ensure the service ID as passed is what the service thinks it's
+		// service ID is
+		assert SERVICE_2.equals(myServiceID);
+
+		// if we were not publishing data products, a serviceNotifier would have
+		// sufficed
+		ProvenanceNotifier notifier = NotifierFactory
+				.createProvenanceNotifier();
+
+		// received request
+		WorkflowTrackingContext context = notifier.createTrackingContext(null,
+				epr, myWorkflowID, myServiceID, myNodeID, myTimestep);
+		InvocationContext invocationContext = notifier.serviceInvoked(context,
+				myInvoker, "I (service2) was invoked by my invoker");
+
+		notifier.dataConsumed(context, DATA_URI_2, DATA_URLS_2,
+				"consuming file used by service1");
+		notifier.dataConsumed(context, DATA_URI_3, DATA_URLS_3);
+		notifier.dataConsumed(context, DATA_URI_4, DATA_URLS_4, null,
+				"<dataXml>boo</dataXml>");
+
+		// do stuff!
+
+		notifier.dataProduced(context, DATA_URI_5, DATA_URLS_5);
+		notifier.dataProduced(context, DATA_URI_6, DATA_URLS_6);
+
+		CalderNotifier calderNotifier = NotifierFactory.createCalderNotifier();
+		calderNotifier.queryStarted(context, "KIND");
+		calderNotifier.queryFailedToStart(context, "KIND");
+		calderNotifier.queryExpired(context, "KIND");
+		calderNotifier.queryActive(context, "KIND");
+		calderNotifier.triggerFound(context, "KIND");
+
+		boolean successResult = true;
+
+		// produce response...either success or failure
+		Object result = null;
+		if (successResult) {
+			Success success = new Success();
+			success.header = XmlObject.Factory.parse("<resultHeader/>");
+			success.body = XmlObject.Factory
+					.parse("<resultBody>output2,output3</resultBody>");
+
+			// notify that invocation produced a result and send result to
+			// invoker
+			notifier.sendingResult(context, invocationContext, success.header,
+					success.body, "sending success");
+			try {
+				// since this is a sync call, we mimic an async response by
+				// seting the result object
+				result = success;
+				// acknowledge that the result was sent successfully
+				notifier.sendingResponseSucceeded(context, invocationContext);
+			} catch (Exception ex) {
+				// acknowledge that sending the result failed
+				notifier.sendingResponseFailed(context, invocationContext, ex,
+						"error sending response");
+			}
+
+		} else {
+
+			Failure failure = new Failure();
+			failure.header = XmlObject.Factory.parse("<faultHeader/>");
+			failure.body = XmlObject.Factory
+					.parse("<faultBody>fault2</faultBody>");
+
+			// notify that invocation produced a fault and send fault to invoker
+			notifier.sendingFault(context, invocationContext, failure.header,
+					failure.body, "sending fault");
+			try {
+				// since this is a sync call, we mimic an async response by
+				// seting the result object
+				result = failure;
+				// acknowledge that the fault was sent successfully
+				notifier.sendingResponseSucceeded(context, invocationContext);
+			} catch (Exception ex) {
+				// acknowledge that sending the fault failed
+				notifier.sendingResponseFailed(context, invocationContext, ex,
+						"error sending response");
+			}
+		}
+
+		// send result
+		return result;
+	}
+
+	// used to override notifier creation to use an external notifier, instead
+	// of setting the
+	// properties to create it in the main method
+	private Notifier notifier;
+
+	public void runSample() throws Exception {
+		notifier = NotifierFactory.createNotifier();
+		WorkflowTrackingContext context = notifier.createTrackingContext(null,
+				epr, WORKFLOW_1, SERVICE_0, null, null);
+		// create workflow and service instances
+		{
+
+			WorkflowNotifier notifier = NotifierFactory
+					.createWorkflowNotifier();
+			notifier.workflowInitialized(context, WORKFLOW_1,
+					"Workflow ready to start",
+					"<wfInfo>some annotation about the workflow</wfInfo>",
+					"<dummy>just to check annotations list</dummy>");
+			notifier.serviceInitialized(context, SERVICE_1);
+			notifier.serviceInitialized(context, SERVICE_2);
+		}
+
+		{
+			GenericNotifier notifier = NotifierFactory.createGenericNotifier();
+			InvocationEntity initiatingService = notifier.createEntity(context,
+					null, SERVICE_0, null, null);
+
+			runWorkflow1(initiatingService, null, WORKFLOW_1, null, null);
+		}
+
+		// terminate workflow and service instances
+		{
+			WorkflowNotifier notifier = NotifierFactory
+					.createWorkflowNotifier();
+			notifier.workflowTerminated(context, WORKFLOW_1);
+			notifier.serviceTerminated(context, SERVICE_1);
+			notifier.serviceTerminated(context, SERVICE_2);
+		}
+	}
+
+	@Test
+	public void testSimpleTest() throws Exception {
+
+		System.out
+		.println("USAGE: run edu.indiana.extreme.lead.workflow_tracking.samples.workflow.SimpleWorkflowExecution
"
+				+ " [WSMessaging broker URL (default: print to stdout)]");
+
+		
+		ConsumerNotificationHandler handler = new ConsumerNotificationHandler() {
+
+			public void handleNotification(SOAPEnvelope msgEnvelope) {
+				try {
+					ByteArrayOutputStream out = new ByteArrayOutputStream();
+					XMLPrettyPrinter.prettify(msgEnvelope, out);
+					System.out.println(new String(out.toByteArray()));
+				} catch (Exception e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		};
+
+		WseMsgBrokerClient api = new WseMsgBrokerClient();
+		api.init(BROKER_URL);
+		int consumerPort = 5555;
+
+		String[] consumerServiceEprs = api.startConsumerService(consumerPort,
+				handler);
+
+		api.subscribe(consumerServiceEprs[0], ">", null);
+
+		
+		String topic = "Foo";
+		// if remote broker location specified, use WSMessaging publisher;
+		ConstructorProps props = ConstructorProps.newProps(
+				ConstructorConsts.ENABLE_ASYNC_PUBLISH, "false").set(
+				ConstructorConsts.ENABLE_BATCH_PROVENANCE, "true").set(
+				ConstructorConsts.ANNOTATIONS,
+				AnnotationProps.newProps(AnnotationConsts.ExperimentID,
+						"experiment-id-" + System.currentTimeMillis()).set(
+						AnnotationConsts.UserDN,
+						"/O=IU/OU=Extreme Lab/CN=drlead"));
+		if (BROKER_URL != null) {
+			EndpointReference brokerEpr = api.createEndpointReference(
+					BROKER_URL, topic);
+
+			props.set(ConstructorConsts.BROKER_EPR, brokerEpr.getAddress());
+		} else {
+			props
+					.set(ConstructorConsts.PUBLISHER_IMPL_CLASS,
+							"edu.indiana.extreme.lead.workflow_tracking.impl.publish.LoopbackPublisher");
+			props.set(ConstructorConsts.TOPIC, topic);
+		}
+
+		System.out.println(ConstructorConsts.ANNOTATIONS);
+		System.out.println(ConstructorConsts.KARMA_IMPL);
+		runSample();
+		new Semaphore(0).acquire();
+	}
+
+}

Added: incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/WorkflowNotificationListener.java
URL: http://svn.apache.org/viewvc/incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/WorkflowNotificationListener.java?rev=1142350&view=auto
==============================================================================
--- incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/WorkflowNotificationListener.java
(added)
+++ incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/samples/workflow/WorkflowNotificationListener.java
Sun Jul  3 00:29:24 2011
@@ -0,0 +1,132 @@
+/* -*- mode: Java; c-basic-offset: 4; indent-tabs-mode: nil; -*-  //------100-columns-wide------>*/
+/*
+ * Copyright (c) 2005 Extreme! Lab, Indiana University. All rights reserved.
+ *
+ * This software is open source. See the bottom of this file for the licence.
+ *
+ * $Id: WorkflowNotificationListener.java,v 1.3 2007/10/06 04:56:03 cherath Exp $
+ */
+package edu.indiana.extreme.lead.workflow_tracking.samples.workflow;
+
+import java.net.URL;
+import java.rmi.RemoteException;
+import java.util.Properties;
+
+import org.apache.xmlbeans.XmlException;
+import org.apache.xmlbeans.XmlObject;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import edu.indiana.extreme.lead.workflow_tracking.client.Callback;
+import edu.indiana.extreme.lead.workflow_tracking.client.LeadNotificationManager;
+import edu.indiana.extreme.lead.workflow_tracking.client.NotificationType;
+import edu.indiana.extreme.lead.workflow_tracking.client.Subscription;
+import edu.indiana.extreme.lead.workflow_tracking.types.WorkflowTerminatedDocument;
+import edu.indiana.extreme.lead.workflow_tracking.util.TestConfigKeys;
+
+/**
+ * TODO
+ *
+ * @version $Revision: 1.3 $
+ * @author Yogesh L. Simmhan [mailto:ysimmhan_at_cs.indiana.edu]
+ */
+public class WorkflowNotificationListener  implements Callback {
+
+    Subscription subscription;
+    Properties configs = new Properties();
+	String BROKER_URL ;
+	String MESSAGEBOX_URL;
+	int consumerPort;
+	
+	@BeforeClass
+	public static void setUpBeforeClass() throws Exception {
+
+	}
+
+	@AfterClass
+	public static void tearDownAfterClass() throws Exception {
+	}
+
+	@Before
+	public void setUp() throws Exception {
+		URL configURL = ClassLoader
+				.getSystemResource(TestConfigKeys.CONFIG_FILE_NAME);
+		configs.load(configURL.openStream());
+		BROKER_URL = configs.getProperty(TestConfigKeys.BROKER_EVENTING_SERVICE_EPR);
+		MESSAGEBOX_URL = configs.getProperty(TestConfigKeys.MSGBOX_SERVICE_EPR);
+		consumerPort = Integer.parseInt(configs.getProperty(TestConfigKeys.CONSUMER_PORT));
+	}
+	
+	@After
+	public void tearDown() throws Exception {
+	}
+	
+
+    public WorkflowNotificationListener() { }
+
+    /**
+     * Method deliverMessage is called when a Lead Message is received on the
+     * subscribed topic.
+     *
+     * @param topic
+     *            the topic to which this message was sent. This can also be
+     *            retrieved from the messageObj XMlObject directly after
+     *            typecasting.
+     * @param messageObj
+     *            the XmlObject representing one of the LeadMessages, This needs
+     *            to be typecast to the correct message type before being used.
+     *
+     */
+    public void deliverMessage(String topic, NotificationType type,  XmlObject messageObj)
{
+
+        System.out.println("Received Notification Type [" + type + "] on topic [" + topic
+ "]\n" +
+                           messageObj + "\n---");
+
+        if(type == NotificationType.WorkflowTerminated) {
+            System.out.println("Workflow terminated. Unsubscribing...");
+            WorkflowTerminatedDocument obj = (WorkflowTerminatedDocument)messageObj;
+            try {
+                obj.getWorkflowTerminated().getAnnotation().set(XmlObject.Factory.parse("<something>someval</something>"));
+                System.out.println(obj.toString());
+            } catch (XmlException e) {
+                e.printStackTrace();
+            }
+            try {
+				subscription.destroy();
+			} catch (RemoteException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+        }
+    }
+
+    @Test
+    public void testWokflowNotificationListener() throws Exception {
+
+        String topic = "somerandomtopic";
+
+        WorkflowNotificationListener subscriber = new WorkflowNotificationListener();
+        boolean useMessageBox = true;
+        if(!useMessageBox){
+            subscription =
+                LeadNotificationManager.createSubscription(BROKER_URL, topic, subscriber,consumerPort);
+        } else {
+            subscription =
+                LeadNotificationManager.createMessageBoxSubscription(MESSAGEBOX_URL,
+                                                                     BROKER_URL,
+                                                                     topic, null, subscriber);
+        }
+        System.out.println("Subscribing to broker: " + BROKER_URL);
+        System.out.println("Started listening on topic: " + subscription.getTopic());
+        while(true){
+        	Thread.sleep(10000);
+        }
+
+
+    }
+
+}
+

Added: incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/CommonUtils.java
URL: http://svn.apache.org/viewvc/incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/CommonUtils.java?rev=1142350&view=auto
==============================================================================
--- incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/CommonUtils.java
(added)
+++ incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/CommonUtils.java
Sun Jul  3 00:29:24 2011
@@ -0,0 +1,5 @@
+package edu.indiana.extreme.lead.workflow_tracking.util;
+
+public class CommonUtils {
+	public static final String WORKFLOW_INITIALIZED_NOTIFICATION = "<wor:workflowInitialized
xmlns:wor=\"http://lead.extreme.indiana.edu/namespaces/2006/06/workflow_tracking\"><wor:notificationSource
wor:serviceID=\"http://tempuri.org/workflow1\" /><wor:timestamp>2006-06-04T00:53:41.296-04:00</wor:timestamp></wor:workflowInitialized>";
+}

Added: incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/SubscriberThread.java
URL: http://svn.apache.org/viewvc/incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/SubscriberThread.java?rev=1142350&view=auto
==============================================================================
--- incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/SubscriberThread.java
(added)
+++ incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/SubscriberThread.java
Sun Jul  3 00:29:24 2011
@@ -0,0 +1,76 @@
+package edu.indiana.extreme.lead.workflow_tracking.util;
+
+import java.rmi.RemoteException;
+
+import org.apache.xmlbeans.XmlObject;
+
+import edu.indiana.extreme.lead.workflow_tracking.MultipleSubscriptionTest;
+import edu.indiana.extreme.lead.workflow_tracking.ThreadMessagePassingCallback;
+import edu.indiana.extreme.lead.workflow_tracking.client.Callback;
+import edu.indiana.extreme.lead.workflow_tracking.client.LeadNotificationManager;
+import edu.indiana.extreme.lead.workflow_tracking.client.NotificationType;
+import edu.indiana.extreme.lead.workflow_tracking.client.Subscription;
+
+
+/**
+ * @author Chathura Herath (cherath@cs.indiana.edu)
+ */
+
+public class SubscriberThread extends Thread {
+    
+    private ThreadMessagePassingCallback callback;
+    
+    public static int count =0;
+    
+    private int subCount =0;
+
+    private Subscription subscription;
+    private String brokerURL;
+    private String topic;
+    private int consumerServerPort;
+    
+    
+    public SubscriberThread(ThreadMessagePassingCallback callback, String brokerURL, String
topic, int consumerServerPort){
+        this.callback = callback;
+        this.brokerURL = brokerURL;
+        this.topic = topic;
+        this.consumerServerPort=consumerServerPort;
+    }
+    
+    @Override
+	public void run(){
+        try {
+            subscription = LeadNotificationManager.createSubscription(brokerURL, topic, new
Callback() {
+            
+                        public void deliverMessage(String topic, NotificationType type, 
XmlObject messageObj) {
+            
+                            subCount++;
+                            count++;
+                            System.out.println("Subscription received "+subCount+"th notification
of type:"+type+" Total is :"+count);
+                            assert(type== NotificationType.WorkflowInitialized);
+                            
+                            if(subCount == MultipleSubscriptionTest.NOTIFICATIONS_PUBLISHED){
+                                try {
+									subscription.destroy();
+								} catch (RemoteException e) {
+									// TODO Auto-generated catch block
+									e.printStackTrace();
+								}
+                                callback.done();
+                            }
+                        }
+                    }, consumerServerPort);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        while(true){
+            try {
+                Thread.sleep(10000);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+    
+
+}

Added: incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/TestConfigKeys.java
URL: http://svn.apache.org/viewvc/incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/TestConfigKeys.java?rev=1142350&view=auto
==============================================================================
--- incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/TestConfigKeys.java
(added)
+++ incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/java/edu/indiana/extreme/lead/workflow_tracking/util/TestConfigKeys.java
Sun Jul  3 00:29:24 2011
@@ -0,0 +1,13 @@
+package edu.indiana.extreme.lead.workflow_tracking.util;
+
+public class TestConfigKeys {
+	public final static String CONFIG_FILE_NAME = "unit_test.properties";
+	public final static String BROKER_EVENTING_SERVICE_EPR = "broker.eventing.service.epr";
+	public final static String BROKER_NOTIFICATIONS_SERVICE_EPR = "broker.notification.service.epr";
+	public final static String MSGBOX_SERVICE_EPR="msgbox.service.epr";
+	public final static String CONSUMER_EPR = "consumer.location";
+	public final static String CONSUMER_PORT = "consumer.port";
+	public final static String TOPIC_SIME = "topic.simple";
+	public final static String TOPIC_XPATH = "topic.xpath";
+	public final static String AXIS2_REPO="axis2.repo";
+}

Added: incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/resources/unit_test.properties
URL: http://svn.apache.org/viewvc/incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/resources/unit_test.properties?rev=1142350&view=auto
==============================================================================
--- incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/resources/unit_test.properties
(added)
+++ incubator/airavata/donations/ogce-donation/modules/ws-messaging/workflow-tracking/src/test/resources/unit_test.properties
Sun Jul  3 00:29:24 2011
@@ -0,0 +1,8 @@
+
+broker.eventing.service.epr=http://localhost:8080/axis2/services/EventingService
+broker.notification.service.epr=http://localhost:8080/axis2/services/NotificationService
+msgbox.service.epr=http://localhost:8080/axis2/services/MsgBoxService
+consumer.port=2222
+consumer.location=http://localhost:2222
+topic.simple=MySimpleTestTopic
+topic.xpath=MyXpathTextTopic
\ No newline at end of file



Mime
View raw message