[jboss-svn-commits] JBL Code SVN: r17088 - in labs/jbossesb/workspace/bramley/product: lib/ext and 21 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Dec 7 08:39:07 EST 2007


Author: tfennelly
Date: 2007-12-07 08:39:06 -0500 (Fri, 07 Dec 2007)
New Revision: 17088

Added:
   labs/jbossesb/workspace/bramley/product/lib/ext/commons-codec-1.3.jar
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/InVMRegistry.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/RegsitryEntry.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/InVMListenerMapper.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryUnitTest.java
Modified:
   labs/jbossesb/workspace/bramley/product/etc/schemas/xml/jbossesb-1.0.1.xsd
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/JAXRRegistryImpl.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/MockRegistryImpl.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/Service.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/actions/Aggregator.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/InVMEpr.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierCollection.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierUtil.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/Invoker.java
   labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/MockCourierFactory.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/CourierIntegrationTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/FileCourierUnitTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/InVMCourierUnitTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/MockRegistry.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultFileReplyToEprUnitTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultFtpReplyToEprIntegrationTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultJdbcReplyToEprUnitTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/InVMUnitTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFTPIntegrationTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFileUnitTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerInVMUnitTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJDBCUnitTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJMSXntegrationTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/GatewayInVMServiceUnitTest.java
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/listenerInVM.xml
   labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java
   labs/jbossesb/workspace/bramley/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/CommandInterpreter.java
   labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollectorAction.java
   labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/InvokerAction.java
   labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/OperationsCollectorAction.java
   labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java
Log:
<invm-listener> config + InVMRegistry + a few InVMCourier tweaks

Modified: labs/jbossesb/workspace/bramley/product/etc/schemas/xml/jbossesb-1.0.1.xsd
===================================================================
--- labs/jbossesb/workspace/bramley/product/etc/schemas/xml/jbossesb-1.0.1.xsd	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/etc/schemas/xml/jbossesb-1.0.1.xsd	2007-12-07 13:39:06 UTC (rev 17088)
@@ -497,6 +497,36 @@
         </xsd:complexType>
     </xsd:element>
 
+    <xsd:element name="invm-listener" substitutionGroup="jesb:listener">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+                A specific listener using the invm protocol.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="jesb:listener">
+                    <xsd:attribute name="lock-step-delivery" type="xsd:boolean" use="optional" default="false">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                                Should messages delivered to the associated ciourier be delivered in lock step.
+                                This basically means that the the messageery thread will block untill the message
+                                is picked up.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                    <xsd:attribute name="lock-step-timeout" type="xsd:long" use="optional" default="10000">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                                The thread wait time for the blocking delivery thread when delivery is being made in lock-step.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
     <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
        FS Type Implementations.
     88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->

Added: labs/jbossesb/workspace/bramley/product/lib/ext/commons-codec-1.3.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbossesb/workspace/bramley/product/lib/ext/commons-codec-1.3.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -22,9 +22,6 @@
 
 package org.jboss.internal.soa.esb.couriers;
 
-import java.util.HashMap;
-import java.util.Vector;
-
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.addressing.MalformedEPRException;
 import org.jboss.soa.esb.addressing.eprs.InVMEpr;
@@ -32,282 +29,94 @@
 import org.jboss.soa.esb.couriers.CourierTimeoutException;
 import org.jboss.soa.esb.message.Message;
 
-public class InVMCourier implements PickUpOnlyCourier, DeliverOnlyCourier
-{
-	/**
-	 * disable public default constructor
-	 */
-	protected InVMCourier()
-	{
-	}
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
 
-	/**
-	 * package protected constructor - Objects of this class should only be
-	 * instantiated by internal implementations
-	 * 
-	 * @param epr
-	 */
-	public InVMCourier(InVMEpr epr) throws CourierException,
-			MalformedEPRException
-	{
-		this(epr, false);
-	}
+public class InVMCourier implements PickUpOnlyCourier, DeliverOnlyCourier {
 
-	/**
-	 * package protected constructor - Objects of this class should only be
-	 * instantiated by internal implementations
-	 * 
-	 * @param epr
-	 * @param receiverOnly
-	 */
+    /**
+     * package protected constructor - Objects of this class should only be
+     * instantiated by internal implementations
+     *
+     * @param epr
+     */
+    public InVMCourier(InVMEpr epr) throws CourierException,
+            MalformedEPRException
+    {
+        this.epr = epr;
+        if (epr.getLockstep()) {
+            deliveryTimeout = epr.getLockstepWaitTime();
+        } else {
+            deliveryTimeout = 0;
+        }
+    }
 
-	public InVMCourier(InVMEpr epr, boolean receiverOnly)
-			throws CourierException, MalformedEPRException
-	{
-		_receiverOnly = receiverOnly;
-		_epr = epr;
+    /**
+     * package the ESB message into the queue
+     *
+     * @param message Message - the message to deliverAsync
+     * @return boolean - the result of the delivery
+     * @throws CourierException -
+     *                          if problems were encountered
+     */
+    public boolean deliver(Message message) throws CourierException, MalformedEPRException
+    {
+        if (message == null) {
+            return false;
+        }
 
-		synchronized (_queue)
-		{
-			InVMCourier._referenceCount++;
-			_registered = true;
-		}
-	}
+        synchronized (messageQueue) {
+            messageQueue.add(message);
 
-	/**
-	 * package the ESB message into the queue
-	 * 
-	 * @param message
-	 *            Message - the message to deliverAsync
-	 * @return boolean - the result of the delivery
-	 * @throws CourierException -
-	 *             if problems were encountered
-	 */
+            // Notify 1 waiting pickup thread of the delivery...
+            messageQueue.notify();
 
-	public boolean deliver(Message message) throws CourierException,
-			MalformedEPRException
-	{
-		if (_receiverOnly)
-			throw new CourierException("This is a pickUp-only Courier");
+            if (deliveryTimeout > 0) {
+                try {
+                    // Wait on notification from the pickup thread...
+                    messageQueue.wait(deliveryTimeout);
+                } catch (InterruptedException e) {
+                    _logger.warn("Timeout expired while waiting on message pickup on InVM queue '" + epr.getAddr().getAddress() + "'.", e);
+                }
+            }
+        }
 
-		if (message == null)
-			return false;
-		
-		/*
-		 * Normally we keep the link between sender and receiver threads. This
-		 * makes the model simpler and allows services to be transplanted
-		 * between transports. Plus, this is based on the experiences from CORBA
-		 * 2.0 to 2.3, where POA was introduced: by default all local
-		 * invocations then looked like remote invocations and weren't
-		 * necessarily handled by the same thread. But all good ORBs had a
-		 * workaround to go back to the old style, where the same thread did all
-		 * of the work in "lock step".
-		 */
+        return true;
+    }
 
-		if (_epr.getLockstep())
-			return lockstepDeliver(message);
+    public Message pickup(long millis) throws CourierException, CourierTimeoutException
+    {
+        Message message = null;
 
-		Vector<Message> serviceQueue;
+        millis = Math.max(millis, 100);
+        synchronized (messageQueue) {
+            if (messageQueue.isEmpty()) {
+                try {
+                    messageQueue.wait(millis);
+                } catch (InterruptedException e) {
+                    _logger.debug("Pickup thread '" + Thread.currentThread().getName() + "' interrupted while waiting on delivery notification or timeout.", e);
+                }
+            }
+            if (!messageQueue.isEmpty()) {
+                message = messageQueue.remove();
+            }
 
-		synchronized (_queue)
-		{
-			serviceQueue = _queue.get(_epr.getServiceId());
+            // Notify 1 waiting delivery thread of the pickup...
+            messageQueue.notify();
+        }
 
-			if (serviceQueue == null)
-			{
-				serviceQueue = new Vector<Message>();
-				_queue.put(_epr.getServiceId(), serviceQueue);
+        return message;
+    }
 
-				_queue.notify();
-			}
+    public void cleanup()
+    {
+    }
 
-			if (!_registered)
-			{
-				InVMCourier._referenceCount++;
-				_registered = true;
-			}
-		}
+    protected InVMEpr epr;
 
-		synchronized (serviceQueue)
-		{
-			serviceQueue.add(message);
-		}
+    protected static Logger _logger = Logger.getLogger(InVMCourier.class);
 
-		return true;
-	}
+    private Queue<Message> messageQueue = new ConcurrentLinkedQueue<Message>();
 
-	public Message pickup(long millis) throws CourierException,
-			CourierTimeoutException
-	{
-		long limit = ((millis < 100) ? 100 : millis);
-		
-		if (_epr.getLockstep())
-			return lockstepPickup(limit);
-		
-		long startTime = System.currentTimeMillis();
-		Vector serviceQueue;
-
-		do
-		{
-			synchronized (_queue)
-			{
-				serviceQueue = _queue.get(_epr.getServiceId());
-
-				if (serviceQueue == null) // no queue, so no messages, so
-				// let's wait.
-				{
-					try
-					{
-						_queue.wait(limit);
-					}
-					catch (InterruptedException ex)
-					{
-						serviceQueue = _queue.get(_epr.getServiceId());
-					}
-				}
-
-				if (!_registered)
-				{
-					InVMCourier._referenceCount++;
-					_registered = true;
-				}
-			}
-
-			if (serviceQueue != null)
-			{
-				synchronized (serviceQueue)
-				{
-					/*
-					 * If queue size is 0 then let's keep waiting.
-					 */
-
-					if (serviceQueue.size() > 0)
-					{
-						Message result = (Message) serviceQueue.remove(0);
-
-						if (result != null)
-							return result;
-					}
-				}
-			}
-
-		} while (System.currentTimeMillis() - startTime < limit);
-
-		return null;
-	}
-
-	public void cleanup()
-	{
-		synchronized (_queue)
-		{
-			if (_registered)
-			{
-				if (InVMCourier._referenceCount-- == 0)
-				{
-					_queue.remove(_epr.getServiceId());
-				}
-
-				_registered = false;
-			}
-		}
-	}
-
-	private final boolean lockstepDeliver(Message message)
-			throws CourierException, MalformedEPRException
-	{	
-		Vector<Message> semaphoreMessage = null;
-
-		synchronized (_queue)
-		{
-			semaphoreMessage = _queue.get(_epr.getServiceId());
-			
-			if (semaphoreMessage == null)
-			{
-			   semaphoreMessage = new Vector<Message>();
-			   _queue.put(_epr.getServiceId(), semaphoreMessage);
-			}
-			
-			semaphoreMessage.add(message);
-			
-			_queue.notify();
-		}
-
-		synchronized (semaphoreMessage)
-		{
-			try
-			{
-				semaphoreMessage.wait(_epr.getLockstepWaitTime()); // Not
-																	// picked up
-																	// in 10s?
-				// Probably not going to happen.
-			}
-			catch (Exception ex)
-			{
-				ex.printStackTrace();
-			}
-		}
-
-		return true;
-	}
-
-	private final Message lockstepPickup(long limit) throws CourierException,
-			CourierTimeoutException
-	{	
-		long startTime = System.currentTimeMillis();
-		Vector<Message> semaphoreMessage = null;
-
-		do
-		{
-			synchronized (_queue)
-			{
-				semaphoreMessage = _queue.get(_epr.getServiceId());
-
-				if ((semaphoreMessage == null) || (semaphoreMessage.size() == 0))
-				{ // no queue, so no messages, so let's wait.
-					try
-					{
-						_queue.wait(limit);
-					}
-					catch (InterruptedException ex)
-					{
-						// hopefully message has been added to the queue now
-						
-						semaphoreMessage = _queue.get(_epr.getServiceId());
-					}
-				}
-			}
-
-			if (semaphoreMessage != null)
-			{
-				synchronized (semaphoreMessage)
-				{
-					semaphoreMessage.notify();
-					
-					try
-					{
-						return semaphoreMessage.remove(0);
-					}
-					catch (Exception ex)
-					{
-						return null;
-					}
-				}
-			}
-
-		} while (System.currentTimeMillis() - startTime < limit);
-
-		return null;
-	}
-
-	protected boolean _receiverOnly;
-
-	protected InVMEpr _epr;
-
-	protected static Logger _logger = Logger.getLogger(InVMCourier.class);
-
-	private boolean _registered;
-
-	static private HashMap<String, Vector<Message>> _queue = new HashMap<String, Vector<Message>>();
-
-	static private int _referenceCount = 0;
+    private long deliveryTimeout = 0;
 }

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/couriers/TwoWayCourierImpl.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -49,12 +49,10 @@
  */
 public class TwoWayCourierImpl implements TwoWayCourier
 {
-	private DeliverOnlyCourier _deliverCourier;
-        
-        private EPR _toEPR ;
+    private EPR _toEPR ;
+    private DeliverOnlyCourier deliverCourier;
+    private PickUpOnlyCourier pickupCourier;
 
-	private PickUpOnlyCourier _pickupCourier;
-
 	/**
 	 * Constructor.
 	 * 
@@ -71,16 +69,30 @@
 		setReplyToEpr(replyToEpr);
 	}
 
-	/**
-	 * @see org.jboss.soa.esb.couriers.TwoWayCourier#setToEpr(toEPR).
+    public TwoWayCourierImpl(EPR toEPR, DeliverOnlyCourier deliver, PickUpOnlyCourier pickup) throws CourierException, MalformedEPRException {
+        // TODO: Doesn't seem to require the replyToEpr??
+        _toEPR = toEPR ;
+        deliverCourier = deliver;
+        pickupCourier = pickup;
+    }
+
+    public DeliverOnlyCourier getDeliverCourier() {
+        return deliverCourier;
+    }
+
+    public PickUpOnlyCourier getPickupCourier() {
+        return pickupCourier;
+    }
+
+    /**
 	 */
 	public void setToEpr(EPR toEPR) throws CourierException,
 			MalformedEPRException
 	{
-		DeliverOnlyCourier old = _deliverCourier;
+		DeliverOnlyCourier old = deliverCourier;
                 try
                 {
-                    _deliverCourier = getDeliverCourier(toEPR);
+                    deliverCourier = getDeliverCourier(toEPR);
                     _toEPR = toEPR ;
                 }
                 finally
@@ -90,15 +102,14 @@
 	}
 
 	/**
-	 * @see org.jboss.soa.esb.couriers.TwoWayCourier#setReplyEpr(toReplyEPR).
 	 */
 	public void setReplyToEpr(EPR replyToEPR) throws CourierException,
 			MalformedEPRException
 	{
-		PickUpOnlyCourier old = _pickupCourier;
+		PickUpOnlyCourier old = pickupCourier;
                 try
                 {
-                    _pickupCourier = getPickupCourier(replyToEPR);
+                    pickupCourier = getPickupCourier(replyToEPR);
                 }
                 finally
                 {
@@ -106,21 +117,21 @@
                 }
 	}
 
-	private DeliverOnlyCourier getDeliverCourier(EPR toEPR)
+	public static DeliverOnlyCourier getDeliverCourier(EPR toEPR)
 			throws CourierException, MalformedEPRException
 	{
 		return (null == toEPR) ? null : (DeliverOnlyCourier) courierFromEpr(
 				toEPR, false);
 	}
 
-	private PickUpOnlyCourier getPickupCourier(EPR replyToEPR)
+	public static PickUpOnlyCourier getPickupCourier(EPR replyToEPR)
 			throws CourierException, MalformedEPRException
 	{
 		return (null == replyToEPR) ? null
 				: (PickUpOnlyCourier) courierFromEpr(replyToEPR, true);
 	}
 
-	private Object courierFromEpr(EPR epr, boolean pickUpOnly)
+	private static Object courierFromEpr(EPR epr, boolean pickUpOnly)
 			throws CourierException, MalformedEPRException
 	{
 		if (null == epr)
@@ -131,8 +142,6 @@
 			return new FileCourier((FileEpr) epr, pickUpOnly);
 		if (epr instanceof JDBCEpr)
 			return new SqlTableCourier((JDBCEpr) epr, pickUpOnly);
-		if (epr instanceof InVMEpr)
-			return new InVMCourier((InVMEpr) epr, pickUpOnly);
 
 		// TODO the following is necessary because EPR
 		// serialization/deserialization loses type
@@ -140,7 +149,7 @@
 		return courierFromGenericEPR(epr, pickUpOnly);
 	}
 
-	private Object courierFromGenericEPR(EPR epr, boolean pickUpOnly)
+	private static Object courierFromGenericEPR(EPR epr, boolean pickUpOnly)
 			throws CourierException, MalformedEPRException
 	{
 		String addr = null;
@@ -150,8 +159,6 @@
 			return new JmsCourier(new JMSEpr(epr), pickUpOnly);
 		if (addr.startsWith(JDBCEpr.JDBC_PROTOCOL))
 			return new SqlTableCourier(new JDBCEpr(epr), pickUpOnly);
-		if (addr.startsWith(InVMEpr.INVM_PROTOCOL))
-			return new InVMCourier(new InVMEpr(epr), pickUpOnly);
 		// TODO magic strings
 		if (addr.startsWith("file://") || addr.startsWith("ftp://")
 				|| addr.startsWith("sftp://") || addr.startsWith("ftps://"))
@@ -167,7 +174,7 @@
 	public boolean deliver(Message message) throws CourierException,
 			MalformedEPRException
 	{
-		if (null == _deliverCourier)
+		if (null == deliverCourier)
 			throw new CourierException("No deliverAsync courier");
                 final Header call = message.getHeader();
                 call.setTo(_toEPR) ;
@@ -190,7 +197,7 @@
                 {
                     message = FilterManager.getInstance().doOutputWork(message, null);
                     
-                    return _deliverCourier.deliver(message);
+                    return deliverCourier.deliver(message);
                 }
                 finally
                 {
@@ -207,7 +214,7 @@
 	public Message pickup(long waitTime) throws CourierException,
 			CourierTimeoutException
 	{
-		return pickup(waitTime, _pickupCourier);
+		return pickup(waitTime, pickupCourier);
 	}
 
 	/**
@@ -232,10 +239,10 @@
         
         public void cleanup ()
         {
-            CourierUtil.cleanCourier(_deliverCourier) ;
-            _deliverCourier = null ;
-            CourierUtil.cleanCourier(_pickupCourier) ;
-            _pickupCourier = null ;
-            CourierFactory.deregisterCourier(this) ;
+            CourierUtil.cleanCourier(deliverCourier) ;
+            deliverCourier = null ;
+            CourierUtil.cleanCourier(pickupCourier) ;
+            pickupCourier = null ;
+            CourierFactory.getInstance().deregisterCourier(this) ;
         }
 }

Added: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/InVMRegistry.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/InVMRegistry.java	                        (rev 0)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/InVMRegistry.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -0,0 +1,134 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.services.registry;
+
+import org.jboss.soa.esb.Service;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.services.registry.Registry;
+import org.jboss.soa.esb.services.registry.RegistryException;
+import org.jboss.soa.esb.services.registry.ServiceNotFoundException;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Iterator;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * In VM registry.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class InVMRegistry implements Registry {
+
+    private Map<Service, List<RegsitryEntry>> regEntries = new ConcurrentHashMap<Service, List<RegsitryEntry>>();
+
+    public void unRegisterService(String category, String serviceName) throws RegistryException, ServiceNotFoundException {
+        if(category == null) {            
+            category = "";
+        }
+        regEntries.remove(new Service(category, serviceName));
+    }
+
+    public void registerEPR(String serviceCategoryName, String serviceName, String serviceDescription, EPR epr, String eprDescription) throws RegistryException {
+        if(serviceCategoryName == null) {
+            serviceCategoryName = "";
+        }
+        Service service = new Service(serviceCategoryName, serviceName);
+        RegsitryEntry regEntry = new RegsitryEntry(service, serviceDescription, epr, eprDescription);
+        List<RegsitryEntry> serviceEntries = getServiceEntries(service);
+
+        serviceEntries.add(regEntry);
+    }
+
+    public void unRegisterEPR(String serviceCategoryName, String serviceName, EPR epr) throws RegistryException, ServiceNotFoundException {
+        if(serviceCategoryName == null) {
+            serviceCategoryName = "";
+        }
+        Service service = new Service(serviceCategoryName, serviceName);
+        List<RegsitryEntry> serviceEntries = getServiceEntries(service);
+        Iterator<RegsitryEntry> iterator = serviceEntries.iterator();
+
+        while (iterator.hasNext()) {
+            RegsitryEntry regsitryEntry =  iterator.next();
+
+            if(regsitryEntry.getEpr().getAddr().getAddress().equals(epr.getAddr().getAddress())) {
+                iterator.remove();
+            }
+        }
+    }
+
+    public List<String> findAllServices() throws RegistryException {
+        return findServices(null);
+    }
+
+    public List<String> findServices(String serviceCategoryName) throws RegistryException {
+        Iterator<Service> iterator = regEntries.keySet().iterator();
+        List<String> services = new ArrayList<String>();
+
+        while (iterator.hasNext()) {
+            Service service =  iterator.next();
+            if(serviceCategoryName == null || service.getCategory().equals(serviceCategoryName)) {
+                services.add(service.getName());
+            }
+        }
+
+        return services;
+    }
+
+    public List<EPR> findEPRs(String serviceCategoryName, String serviceName) throws RegistryException, ServiceNotFoundException {
+        if(serviceCategoryName == null) {
+            serviceCategoryName = "";
+        }
+        List<EPR> eprs = new ArrayList<EPR>();
+        Service service = new Service(serviceCategoryName, serviceName);
+        List<RegsitryEntry> serviceEntries = getServiceEntries(service);
+
+        for (RegsitryEntry serviceEntry : serviceEntries) {
+            eprs.add(serviceEntry.getEpr());
+        }
+
+        return eprs;
+    }
+
+    public EPR findEPR(String serviceCategoryName, String serviceName) throws RegistryException, ServiceNotFoundException {
+        if(serviceCategoryName == null) {
+            serviceCategoryName = "";
+        }
+        List<EPR> eprs = findEPRs(serviceCategoryName, serviceName);
+
+        if(!eprs.isEmpty()) {
+            return eprs.get(0);
+        } else {
+            return null;
+        }
+    }
+
+    private synchronized List<RegsitryEntry> getServiceEntries(Service service) {
+        List<RegsitryEntry> serviceEntries = regEntries.get(service);
+
+        if(serviceEntries == null) {
+            serviceEntries = new ArrayList<RegsitryEntry>();
+            regEntries.put(service, serviceEntries);
+        }
+
+        return serviceEntries;
+    }
+}


Property changes on: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/InVMRegistry.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/JAXRRegistryImpl.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/JAXRRegistryImpl.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/JAXRRegistryImpl.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -61,6 +61,7 @@
 import org.jboss.soa.esb.MarshalException;
 import org.jboss.soa.esb.UnmarshalException;
 import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.eprs.InVMEpr;
 import org.jboss.soa.esb.common.Configuration;
 import org.jboss.soa.esb.services.registry.Registry;
 import org.jboss.soa.esb.services.registry.RegistryException;
@@ -72,8 +73,7 @@
  *
  * @author Kurt Stam
  */
-public class JAXRRegistryImpl implements Registry
-{
+public class JAXRRegistryImpl extends InVMRegistry {
 	private static Logger logger = Logger.getLogger(JAXRRegistryImpl.class);
 	public static Set<PasswordAuthentication> creds = new HashSet<PasswordAuthentication>();
 	private static Properties props = new Properties();
@@ -158,7 +158,10 @@
 	 */
 	@SuppressWarnings("unchecked")
     public void unRegisterService(String category, String serviceName) throws RegistryException, ServiceNotFoundException{
-//    first find the ServiceBindings for this service
+        // Make sure it's unregistered from the InVMRegistry...
+        super.unRegisterService(category, serviceName);
+
+        // first find the ServiceBindings for this service
         Connection connection = JAXRRegistryImpl.getConnection();
         Service service = null;
         try {
@@ -185,50 +188,59 @@
 	public void registerEPR(String category, String serviceName, String serviceDescription, EPR epr, String eprDescription) 
 		throws RegistryException
 	{
-		Connection connection = JAXRRegistryImpl.getConnection();
-		try {
-			//Find the service
-			Service service = findService(category,serviceName);
-			if (service==null) {
-				logger.log(Level.DEBUG, "Service " + serviceName + " does not yet exist, creating now..");
-				service = registerService(category, serviceName, serviceDescription);
-			}
+        if(epr instanceof InVMEpr) {
+            // Only register these EPRs in memory...
+            super.registerEPR(category, serviceName, serviceDescription, epr, eprDescription);
+        } else {
+            // All other EPRs are registered in the central repo...
 
-			connection.setCredentials(JAXRRegistryImpl.creds);
-			RegistryService rs = connection.getRegistryService();
-			BusinessLifeCycleManager blm = rs.getBusinessLifeCycleManager();
-            BusinessQueryManager bqm = rs.getBusinessQueryManager();
-			ServiceBinding serviceBinding = blm.createServiceBinding();
-			serviceBinding.setDescription(blm.createInternationalString(eprDescription));
-			String xml = EPRHelper.toXMLString(epr);
-			serviceBinding.setAccessURI(URLEncoder.encode(xml,"UTF-8"));
-		
-		    ArrayList<ServiceBinding> serviceBindings = new ArrayList<ServiceBinding>();
-		    serviceBindings.add(serviceBinding);
-		    service.addServiceBindings(serviceBindings);
-            Collection<String> findQualifiers = new ArrayList<String>();
-            findQualifiers.add(FindQualifier.AND_ALL_KEYS);
-            findQualifiers.add(FindQualifier.SORT_BY_NAME_DESC);
-            ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers, "org.jboss.soa.esb.:category");
-            Classification classification = blm.createClassification(cScheme, "category", category);
-            service.addClassification(classification);
-           
-			saveRegistryObject(serviceBinding);
-		} catch (JAXRException je) {
-			throw new RegistryException(je.getLocalizedMessage(), je);
-        } catch (UnsupportedEncodingException uee) {
-            throw new RegistryException(uee.getLocalizedMessage(), uee);
-        } catch (MarshalException me) {
-            throw new RegistryException(me.getLocalizedMessage(), me);
-		} finally {
-			closeConnection(connection);
-		}
-	}
+            Connection connection = JAXRRegistryImpl.getConnection();
+            try {
+                //Find the service
+                Service service = findService(category,serviceName);
+                if (service==null) {
+                    logger.log(Level.DEBUG, "Service " + serviceName + " does not yet exist, creating now..");
+                    service = registerService(category, serviceName, serviceDescription);
+                }
+
+                connection.setCredentials(JAXRRegistryImpl.creds);
+                RegistryService rs = connection.getRegistryService();
+                BusinessLifeCycleManager blm = rs.getBusinessLifeCycleManager();
+                BusinessQueryManager bqm = rs.getBusinessQueryManager();
+                ServiceBinding serviceBinding = blm.createServiceBinding();
+                serviceBinding.setDescription(blm.createInternationalString(eprDescription));
+                String xml = EPRHelper.toXMLString(epr);
+                serviceBinding.setAccessURI(URLEncoder.encode(xml,"UTF-8"));
+
+                ArrayList<ServiceBinding> serviceBindings = new ArrayList<ServiceBinding>();
+                serviceBindings.add(serviceBinding);
+                service.addServiceBindings(serviceBindings);
+                Collection<String> findQualifiers = new ArrayList<String>();
+                findQualifiers.add(FindQualifier.AND_ALL_KEYS);
+                findQualifiers.add(FindQualifier.SORT_BY_NAME_DESC);
+                ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers, "org.jboss.soa.esb.:category");
+                Classification classification = blm.createClassification(cScheme, "category", category);
+                service.addClassification(classification);
+
+                saveRegistryObject(serviceBinding);
+            } catch (JAXRException je) {
+                throw new RegistryException(je.getLocalizedMessage(), je);
+            } catch (UnsupportedEncodingException uee) {
+                throw new RegistryException(uee.getLocalizedMessage(), uee);
+            } catch (MarshalException me) {
+                throw new RegistryException(me.getLocalizedMessage(), me);
+            } finally {
+                closeConnection(connection);
+            }
+        }
+    }
 	/** 
 	 * Remove an EPR from the Registry
 	 */
 	public void unRegisterEPR(String category, String serviceName, EPR toBeDeletedEPR) throws RegistryException, ServiceNotFoundException{
-		//first find the ServiceBindings for this service
+        super.unRegisterEPR(category, serviceName, toBeDeletedEPR);
+
+        //first find the ServiceBindings for this service
         Connection connection = JAXRRegistryImpl.getConnection();
         Service service = null;
 		try {
@@ -271,8 +283,12 @@
 	 */
 	public List<String> findAllServices() throws RegistryException
 	{
-		List<String> serviceNames = new ArrayList<String>();
-		try {
+        List<String> serviceNames = new ArrayList<String>();
+
+        // Add the invm Services at the front of the list...
+        serviceNames.addAll(super.findAllServices());
+
+        try {
 			Collection services = getJBossESBOrganization().getServices();
 			for (Iterator i=services.iterator();i.hasNext();) {
 				String serviceName = ((Service)i.next()).getName().getValue();
@@ -292,7 +308,11 @@
 	public List<String> findServices(String category) throws RegistryException
 	{
 		List<String>serviceNames = new ArrayList<String>();
-		try {
+
+        // Add the invm Services at the front of the list...
+        serviceNames.addAll(super.findServices(category));
+
+        try {
 			Collection<Service>services = findServicesForCategory(category);
 			for (Iterator<Service> i=services.iterator();i.hasNext();) {
 				String serviceName = i.next().getName().getValue();
@@ -311,7 +331,11 @@
 	public List<EPR> findEPRs(String category, String serviceName) throws RegistryException, ServiceNotFoundException
 	{
 		List<EPR> eprs = new ArrayList<EPR>();
-		Connection connection = JAXRRegistryImpl.getConnection();
+
+        // Add the invm EPRs at the front of the list...
+        eprs.addAll(super.findEPRs(category, serviceName));
+
+        Connection connection = JAXRRegistryImpl.getConnection();
 		try {
 			Service service = findService(category, serviceName);
 			if (service==null){
@@ -345,30 +369,34 @@
 	 */
 	public EPR findEPR(String category, String serviceName) throws RegistryException, ServiceNotFoundException
 	{
-		EPR epr = null;
-		Connection connection = JAXRRegistryImpl.getConnection();
-		try {
-			Service service = findService(category, serviceName);
-			if (service==null){
-				throw new ServiceNotFoundException("Could not find service with category=" + category + " and serviceName=" + serviceName);
-			}
-			// Get registry service and business query manager
-			Collection<ServiceBinding> serviceBindings = findServiceBindings(service);
-			if (serviceBindings.iterator().hasNext()) {
-				ServiceBinding serviceBinding = (ServiceBinding) serviceBindings.iterator().next();
-				String eprXML = URLDecoder.decode(serviceBinding.getAccessURI(),"UTF-8");
-				epr = EPRHelper.fromXMLString(eprXML);
-			}
-		} catch (JAXRException je) {
-			throw new RegistryException(je.getLocalizedMessage(), je);
-        } catch (UnsupportedEncodingException uee) {
-            throw new RegistryException(uee.getLocalizedMessage(), uee);
-        } catch (UnmarshalException me) {
-            throw new RegistryException(me.getLocalizedMessage(), me);
-		} finally {
-			closeConnection(connection);
-		}
-		return epr;
+		EPR epr = super.findEPR(category, serviceName);
+
+        if(epr == null) {
+            Connection connection = JAXRRegistryImpl.getConnection();
+            try {
+                Service service = findService(category, serviceName);
+                if (service==null){
+                    throw new ServiceNotFoundException("Could not find service with category=" + category + " and serviceName=" + serviceName);
+                }
+                // Get registry service and business query manager
+                Collection<ServiceBinding> serviceBindings = findServiceBindings(service);
+                if (serviceBindings.iterator().hasNext()) {
+                    ServiceBinding serviceBinding = (ServiceBinding) serviceBindings.iterator().next();
+                    String eprXML = URLDecoder.decode(serviceBinding.getAccessURI(),"UTF-8");
+                    epr = EPRHelper.fromXMLString(eprXML);
+                }
+            } catch (JAXRException je) {
+                throw new RegistryException(je.getLocalizedMessage(), je);
+            } catch (UnsupportedEncodingException uee) {
+                throw new RegistryException(uee.getLocalizedMessage(), uee);
+            } catch (UnmarshalException me) {
+                throw new RegistryException(me.getLocalizedMessage(), me);
+            } finally {
+                closeConnection(connection);
+            }
+        }
+        
+        return epr;
 	}
 	/**
 	 * Find all Organizations with a name mathing the queryString parameter.
@@ -431,7 +459,12 @@
 			serviceName="";
 		}
 		Connection connection = JAXRRegistryImpl.getConnection();
-		try {
+
+        if(connection == null) {
+            return null;
+        }
+
+        try {
 			// Get registry service and business query manager
 			RegistryService rs = connection.getRegistryService();
 			BusinessQueryManager bqm = rs.getBusinessQueryManager();

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/MockRegistryImpl.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/MockRegistryImpl.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/MockRegistryImpl.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -39,6 +39,8 @@
  */
 public class MockRegistryImpl implements Registry
 {
+    // TODO: Make it extend the InVMRegistry???
+
     private static Map<String,Category> categories = new HashMap<String,Category>();
     
 	/** 

Added: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/RegsitryEntry.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/RegsitryEntry.java	                        (rev 0)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/RegsitryEntry.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.services.registry;
+
+import org.jboss.soa.esb.Service;
+import org.jboss.soa.esb.addressing.EPR;
+
+/**
+ * Registry Entry.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class RegsitryEntry {
+
+    private Service service;
+    private String serviceDescription;
+    private EPR epr;
+    private String eprDescription;
+
+    public RegsitryEntry(Service service, String serviceDescription, EPR epr, String eprDescription) {
+        this.service = service;
+        this.serviceDescription = serviceDescription;
+        this.epr = epr;
+        this.eprDescription = eprDescription;
+    }
+
+    public Service getService() {
+        return service;
+    }
+
+    public String getServiceDescription() {
+        return serviceDescription;
+    }
+
+    public EPR getEpr() {
+        return epr;
+    }
+
+    public String getEprDescription() {
+        return eprDescription;
+    }
+}


Property changes on: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/RegsitryEntry.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/Service.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/Service.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/Service.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -35,20 +35,17 @@
  */
 public class Service implements Serializable{
 
-    /**
-     * 
-     */
     private static final long serialVersionUID = 1L;
     private String category;
     private String name;
 
     public Service(String category, String name) {
-        AssertArgument.isNotNullAndNotEmpty(category, "category");
+        AssertArgument.isNotNull(category, "category");
         AssertArgument.isNotNullAndNotEmpty(name, "name");
         this.category = category.trim();
         this.name = name.trim();
     }
-    
+
     public boolean equals(Service service) {
         if (category.equals(service.getCategory()) && name.equals(service.getName())) {
             return true;

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/actions/Aggregator.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/actions/Aggregator.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/actions/Aggregator.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -299,7 +299,7 @@
                                 logger.debug("Found timeout message.");
                                 try {
                                     EPR epr = registry.findEPR(serviceCategoryName, serviceName);
-                                    Courier courier = CourierFactory.getCourier(epr);
+                                    Courier courier = CourierFactory.getInstance().getCourier(epr);
                                     try
                                     {
                                         courier.deliver(message);

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/InVMEpr.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/InVMEpr.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/InVMEpr.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -25,14 +25,16 @@
  * This class represents the endpoint reference for services.
  */
 
-import java.net.URI;
-import java.net.URISyntaxException;
-
+import org.apache.commons.codec.binary.Hex;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.XMLUtil;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
 /**
  * A helper class for using in-VM communication.
  * 
@@ -226,7 +228,40 @@
 		return "InVMEpr [ " + super.getAddr().extendedToString() + " ]";
 	}
 
-	public static URI type()
+    public boolean equals(Object obj) {
+        if(obj == null) {
+            return false;
+        } else if(!(obj instanceof InVMEpr)) {
+            return false;
+        } else if(obj == this) {
+            return true;
+        }
+
+        // Compare the addresses...
+        return getAddr().getAddress().equals(((InVMEpr)obj).getAddr().getAddress());
+    }
+
+    /**
+     * Create an encoded service ID from the supplied Service Cat and Name.
+     * <p/>
+     * The result is a simple hex encoding of the concatenated strings and is
+     * usable in the InVMEpr URI i.e. is uneffected by slashes etc in the
+     * Cat and Service name strings.
+     *
+     * @param catagory The Service Category.
+     * @param name The Service name.
+     * @return Hex encoded string.
+     */
+    public static String createEncodedServiceId(String catagory, String name) {
+        AssertArgument.isNotNullAndNotEmpty(catagory, "catagory");
+        AssertArgument.isNotNullAndNotEmpty(name, "name");
+
+        byte[] bytes = (catagory.trim() + name.trim()).getBytes();
+
+        return new String(Hex.encodeHex(bytes));
+    }
+
+    public static URI type()
 	{
 		return _type;
 	}

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierCollection.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierCollection.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierCollection.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -54,7 +54,7 @@
             {
                 for (EPR epr: eprs)
                 {
-                    final Courier courier = CourierFactory.getCourier(epr) ;
+                    final Courier courier = CourierFactory.getInstance().getCourier(epr) ;
                     if (courier == null)
                     {
                         throw new CourierException("Null courier returned for EPR: " + epr) ;

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -29,12 +29,17 @@
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 import java.util.Map.Entry;
 
 import org.apache.log4j.Logger;
 import org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl;
+import org.jboss.internal.soa.esb.couriers.InVMCourier;
+import org.jboss.internal.soa.esb.couriers.DeliverOnlyCourier;
+import org.jboss.internal.soa.esb.couriers.PickUpOnlyCourier;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.MalformedEPRException;
+import org.jboss.soa.esb.addressing.eprs.InVMEpr;
 import org.jboss.soa.esb.lifecycle.LifecyclePriorities;
 import org.jboss.soa.esb.lifecycle.LifecycleResource;
 import org.jboss.soa.esb.lifecycle.LifecycleResourceException;
@@ -50,13 +55,19 @@
     /**
      * The lifecycle resource factory.
      */
-    private static final LifecycleResourceFactory<Map<TwoWayCourier, Exception>> lifecycleCourierFactory = new LifecycleCourierFactory() ;
+    private final LifecycleResourceFactory<Map<TwoWayCourier, Exception>> lifecycleCourierFactory = new LifecycleCourierFactory() ;
     /**
      * Lifecycle couriers.
      */
-    private static final LifecycleResource<Map<TwoWayCourier, Exception>> lifecycleCouriers =
+    private final LifecycleResource<Map<TwoWayCourier, Exception>> lifecycleCouriers =
         new LifecycleResource<Map<TwoWayCourier,Exception>>(lifecycleCourierFactory,
                 LifecyclePriorities.COURIER_PRIORITY) ;
+    /**
+     * InVM Couiers.  No real resources or lifecycle associated with these, so no need for the
+     * LifecycleResource stuff.
+     * TODO: Check this with Kev!
+     */
+    private final Map<String, InVMCourier> inVMCouriers = new ConcurrentHashMap<String, InVMCourier>();
 
     /**
      * Factory singleton instance.
@@ -103,9 +114,9 @@
 	 * @return Courier
 	 * @throws CourierException if the specific courier implementation cannot be created.
 	 */
-	public static Courier getCourier(EPR toEPR) throws CourierException, MalformedEPRException
+	public Courier getCourier(EPR toEPR) throws CourierException, MalformedEPRException
 	{
-		return getCourier(toEPR, null);
+		return instance.getCourier(toEPR, null);
 	}
 	/**
 	 * Obtain a courier which can perform pickups only and prime it with the "to address" (toEPR) 
@@ -115,9 +126,9 @@
 	 * @return TwoWayCourier
 	 * @throws CourierException if the specific courier implementation cannot be created.
 	 */
-	public static TwoWayCourier getPickupCourier(EPR replyToEPR) throws CourierException, MalformedEPRException
+	public TwoWayCourier getPickupCourier(EPR replyToEPR) throws CourierException, MalformedEPRException
 	{
-		return getCourier(null, replyToEPR);
+		return instance.getCourier(null, replyToEPR);
 	}
 	/**
 	 * Obtain a courier which can perform both deliveries and pickups and prime it with 
@@ -128,18 +139,48 @@
 	 * @return TwoWayCourier
 	 * @throws CourierException if the specific courier implementation cannot be created.
 	 */
-	public static TwoWayCourier getCourier(EPR toEPR, EPR replyToEPR) throws CourierException, MalformedEPRException
+	public TwoWayCourier getCourier(EPR toEPR, EPR replyToEPR) throws CourierException, MalformedEPRException
 	{
-		final TwoWayCourier result = new TwoWayCourierImpl(toEPR, replyToEPR);
-                registerCourier(result) ;
-                return result ;
-	}
-        
-        /**
+        DeliverOnlyCourier deliverCourier = null;
+        PickUpOnlyCourier pickupCourier = null;
+
+        // Get the Delivery Courier...
+        if(toEPR instanceof InVMEpr) {
+            deliverCourier = getInVMCourier((InVMEpr) toEPR);
+        } else if(toEPR != null) {
+            deliverCourier = TwoWayCourierImpl.getDeliverCourier(toEPR);
+        }
+
+        // Get the Pickup Courier...
+        if(replyToEPR instanceof InVMEpr) {
+            pickupCourier = getInVMCourier((InVMEpr) replyToEPR);
+        } else if(replyToEPR != null) {
+            pickupCourier = TwoWayCourierImpl.getPickupCourier(replyToEPR);
+        }
+
+        final TwoWayCourier result = new TwoWayCourierImpl(toEPR, deliverCourier, pickupCourier);
+        registerCourier(result);
+
+        return result;
+    }
+
+    private synchronized InVMCourier getInVMCourier(InVMEpr epr) throws MalformedEPRException, CourierException {
+        String address = epr.getAddr().getAddress();
+        InVMCourier courier = inVMCouriers.get(address);
+
+        if(courier == null) {
+            courier = new InVMCourier(epr);
+            inVMCouriers.put(address, courier);
+        }
+
+        return courier;
+    }
+
+    /**
          * Register the courier as part of the current set.
          * @param courier The current courier.
          */
-        private static synchronized void registerCourier(final TwoWayCourier courier)
+        private synchronized void registerCourier(final TwoWayCourier courier)
             throws CourierException
         {
             final Exception ex ;
@@ -165,7 +206,7 @@
          * Deregister the courier from the current set.
          * @param courier The current courier.
          */
-        public static synchronized void deregisterCourier(final TwoWayCourier courier)
+        public synchronized void deregisterCourier(final TwoWayCourier courier)
         {
             try
             {

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierUtil.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierUtil.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/couriers/CourierUtil.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -215,7 +215,7 @@
 			throws URISyntaxException, CourierException, MalformedEPRException
 	{
 		EPR toEpr = message.getHeader().getTo();
-		Courier courier = CourierFactory.getCourier(toEpr);
+		Courier courier = CourierFactory.getInstance().getCourier(toEpr);
                 try
                 {
                     courier.deliver(message);

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/config/ESBAwareGenerator.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -33,10 +33,8 @@
 import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument.Service;
 import org.jboss.soa.esb.listeners.config.xbeanmodel.SqlListenerDocument.SqlListener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel.ScheduledListenerDocument.ScheduledListener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.Listener;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.JbrListenerDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.GroovyListenerDocument;
-import org.jboss.soa.esb.listeners.config.xbeanmodel.AbstractScheduledListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel.InvmListenerDocument.InvmListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel.*;
 import org.jboss.soa.esb.listeners.config.mappers.*;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -99,7 +97,9 @@
 		Service listenerService;
 		
 		// Of course we could do the following reflectively if we really want to - TODO perhaps!!
-		if(listener instanceof JmsListener) {
+        if(listener instanceof InvmListener) {
+			listenerConfigTree = InVMListenerMapper.map(root, (InvmListener)listener, model);
+        } else if(listener instanceof JmsListener) {
 			listenerConfigTree = JmsListenerMapper.map(root, (JmsListener)listener, model);
         } else if (listener instanceof ScheduledListener) {
             listenerConfigTree = ScheduledListenerMapper.map(root, (ScheduledListener) listener);

Added: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/InVMListenerMapper.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/InVMListenerMapper.java	                        (rev 0)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/InVMListenerMapper.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -0,0 +1,66 @@
+
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.config.mappers;
+
+import org.w3c.dom.Element;
+import org.jboss.soa.esb.listeners.config.xbeanmodel.InvmListenerDocument;
+import org.jboss.soa.esb.listeners.config.xbeanmodel.ServiceDocument;
+import org.jboss.soa.esb.listeners.config.Generator;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.addressing.eprs.JMSEpr;
+import org.jboss.soa.esb.addressing.eprs.InVMEpr;
+
+/**
+ * Mapper for the InVM transport.
+ * 
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class InVMListenerMapper {
+    public static Element map(Element root, InvmListenerDocument.InvmListener listener, Generator.XMLBeansModel model) {
+        ServiceDocument.Service service = model.getService(listener);
+        Element listenerNode = YADOMUtil.addElement(root, listener.getName());
+
+
+        // Map the standard listener attributes - common across all listener types...
+        MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+        // Map the <property> elements targeted at the listener - from the listener itself.
+        MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+
+        Element eprNode = YADOMUtil.addElement(listenerNode, ListenerTagNames.EPR_TAG);
+
+        // Map EPR related attributes onto the EPR - from the listener config...
+        mapInvmEprProperties(eprNode, listener, service);
+
+        // Remove any empty attributes set on the EPR config...
+        YADOMUtil.removeEmptyAttributes(eprNode);
+
+        return listenerNode;
+    }
+
+    private static void mapInvmEprProperties(Element eprNode, InvmListenerDocument.InvmListener listener, ServiceDocument.Service service) {
+        eprNode.setAttribute(ListenerTagNames.PROTOCOL_TAG, InVMEpr.INVM_PROTOCOL);
+        eprNode.setAttribute(ListenerTagNames.URL_TAG, InVMEpr.INVM_PROTOCOL + "://"
+                + InVMEpr.createEncodedServiceId(service.getCategory(), service.getName())
+                + "?" + listener.getLockStepDelivery()
+                + "#" + listener.getLockStepTimeout());
+    }
+}


Property changes on: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/InVMListenerMapper.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/HibernateInterceptor.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -205,7 +205,7 @@
 		try {
 			boolean bSent = false;
 			for (EPR current : m_targetEprs) {
-				m_courier = CourierFactory.getCourier(current);
+				m_courier = CourierFactory.getInstance().getCourier(current);
 
 				try {
 					if (m_courier.deliver(message)) {

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JmsGatewayListener.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -204,7 +204,7 @@
                 	    boolean bSent = false;
                 	    for (EPR current : _targetEprs) {
                 		
-                		courier = CourierFactory.getCourier(current);
+                		courier = CourierFactory.getInstance().getCourier(current);
                 		try {
                 		    if (courier.deliver((Message) obj)) {
                 			bSent = true;

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/SqlTableGatewayListener.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -237,7 +237,7 @@
 		    boolean bSent = false;
 		    for (EPR current : _targetEprs)
 		    {
-			courier = CourierFactory.getCourier(current);
+			courier = CourierFactory.getInstance().getCourier(current);
 			try
 			{
 			    if (courier.deliver(message))

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -362,7 +362,7 @@
 		{
 			try
 			{
-				courier = CourierFactory.getCourier(replyToAddress);
+				courier = CourierFactory.getInstance().getCourier(replyToAddress);
 				courier.deliver(message);
 			}
 			catch (final CourierException e)
@@ -415,7 +415,7 @@
 		{
 			try
 			{
-				courier = CourierFactory.getCourier(faultToAddress);
+				courier = CourierFactory.getInstance().getCourier(faultToAddress);
 				courier.deliver(message);
 			}
 			catch (final CourierException e)

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/Invoker.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/Invoker.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/Invoker.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -124,7 +124,7 @@
 			call.setMessageID(uri);
 		}
 		
-		Courier sender = CourierFactory.getCourier(call.getTo());
+		Courier sender = CourierFactory.getInstance().getCourier(call.getTo());
                 PickUpOnlyCourier receiver = null;
                 try
                 {
@@ -133,7 +133,7 @@
                         {
                                 if (null==call.getReplyTo())
                                         call.setReplyTo(DefaultReplyTo.getReplyTo(call.getTo()));
-                                receiver        = CourierFactory.getPickupCourier(call.getReplyTo());
+                                receiver        = CourierFactory.getInstance().getPickupCourier(call.getReplyTo());
                         }
                         
                         sender.deliver(outgoing);

Modified: labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -179,7 +179,7 @@
             final TwoWayCourier pickUpCourier ;
             try
             {
-                pickUpCourier = CourierFactory.getPickupCourier(_epr) ;
+                pickUpCourier = CourierFactory.getInstance().getPickupCourier(_epr) ;
                 try
                 {
                     final Method setPollLatency = pickUpCourier.getClass().getMethod(

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/MockCourierFactory.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/MockCourierFactory.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/MockCourierFactory.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -46,7 +46,12 @@
             throw malformedEPRException;
         }
         
-        return couriers.get(toEPR);
+        TwoWayCourier courier = couriers.get(toEPR);
+        if(courier == null) {
+            courier = (TwoWayCourier) getCourier(toEPR);
+        }
+
+        return courier;
     }
 
     public static void install() {

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/CourierIntegrationTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/CourierIntegrationTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/CourierIntegrationTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -100,7 +100,7 @@
 		FileEpr epr = getEpr(url);
 		epr.setInputSuffix(".esbMessage");
 		epr.setPostDelete(true);
-		TwoWayCourier courier = CourierFactory.getPickupCourier(epr);
+		TwoWayCourier courier = CourierFactory.getInstance().getPickupCourier(epr);
 
 		Message message = null;
 		while (null != (message = courier.pickup(100)))
@@ -113,7 +113,7 @@
 		message.getHeader().setMessageID(new URI(UUID.randomUUID().toString()));
 		message.getHeader().setTo(getEpr(url));
 		message.getBody().add(BytesBody.BYTES_LOCATION, "Hello World".getBytes());
-		Courier courier = CourierFactory.getCourier(message.getHeader().getTo());
+		Courier courier = CourierFactory.getInstance().getCourier(message.getHeader().getTo());
 
 		courier.deliver(message);
 	}

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/FileCourierUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/FileCourierUnitTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/FileCourierUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -140,7 +140,7 @@
 		fromEpr.setInputSuffix(TEST_SUFFIX);
 		fromEpr.setPostSuffix(DONE_SUFFIX);
 		
-		TwoWayCourier pickUp = CourierFactory.getPickupCourier(fromEpr);
+		TwoWayCourier pickUp = CourierFactory.getInstance().getPickupCourier(fromEpr);
 		Message retrieved = pickUp.pickup(1000);
 		Assert.assertFalse("Null message retrieved",null==retrieved);
 		
@@ -190,7 +190,7 @@
 		fromEpr.setInputSuffix(TEST_SUFFIX);
 		fromEpr.setPostSuffix(DONE_SUFFIX);
 		
-		TwoWayCourier pickUp = CourierFactory.getPickupCourier(fromEpr);
+		TwoWayCourier pickUp = CourierFactory.getInstance().getPickupCourier(fromEpr);
 
 		try
 		{
@@ -239,7 +239,7 @@
 		fromEpr.setInputSuffix(TEST_SUFFIX);
 		fromEpr.setPostSuffix(DONE_SUFFIX);
 		
-		TwoWayCourier pickUp = CourierFactory.getPickupCourier(fromEpr);
+		TwoWayCourier pickUp = CourierFactory.getInstance().getPickupCourier(fromEpr);
 		Message retrieved = pickUp.pickup(1000);
 		Assert.assertFalse("Null message retrieved",null==retrieved);
 		
@@ -283,7 +283,7 @@
 		// setting postdelete to true will delete input Message files, if they were picked up
 		fromEpr.setPostDelete(true);
 		
-		TwoWayCourier pickUp = CourierFactory.getPickupCourier(fromEpr);
+		TwoWayCourier pickUp = CourierFactory.getInstance().getPickupCourier(fromEpr);
 		Message retrieved = pickUp.pickup(1000);
 		Assert.assertFalse("Null message retrieved",null==retrieved);
 		
@@ -329,7 +329,7 @@
 		// Don't delete - default is to delete files in error
 		fromEpr.setErrorDelete(false);
 		
-		TwoWayCourier pickUp = CourierFactory.getPickupCourier(fromEpr);
+		TwoWayCourier pickUp = CourierFactory.getInstance().getPickupCourier(fromEpr);
 		Message retrieved = pickUp.pickup(1000);
 		Assert.assertTrue("Null message retrieved",null==retrieved);
 		
@@ -357,7 +357,7 @@
 		fromEpr.setErrorSuffix(ERROR_SUFFIX);
 		// Not using setErrorDelete(false) should delete files in error
 		
-		TwoWayCourier pickUp = CourierFactory.getPickupCourier(fromEpr);
+		TwoWayCourier pickUp = CourierFactory.getInstance().getPickupCourier(fromEpr);
 		Message retrieved = pickUp.pickup(1000);
 		Assert.assertTrue("Null message retrieved",null==retrieved);
 		

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/InVMCourierUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/InVMCourierUnitTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/InVMCourierUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -22,17 +22,21 @@
 
 package org.jboss.internal.soa.esb.couriers.tests;
 
-import java.net.URI;
-
 import junit.framework.Assert;
 import junit.framework.JUnit4TestAdapter;
-
 import org.jboss.internal.soa.esb.couriers.InVMCourier;
+import org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl;
+import org.jboss.soa.esb.addressing.MalformedEPRException;
 import org.jboss.soa.esb.addressing.eprs.InVMEpr;
+import org.jboss.soa.esb.couriers.CourierException;
+import org.jboss.soa.esb.couriers.CourierFactory;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.junit.Test;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+
 public class InVMCourierUnitTest
 {
 	public static junit.framework.Test suite()
@@ -44,32 +48,31 @@
 	public void testUnthreadedDeliver() throws Exception
 	{
 		InVMEpr epr = new InVMEpr(new URI("invm://serviceid1"));
-		Producer producer = new Producer(epr);
-		Consumer consumer = new Consumer(epr);
+        InVMCourier courier = new InVMCourier(epr);
+		Producer producer = new Producer(courier);
+		Consumer consumer = new Consumer(courier);
 		
 		producer.run();
 		consumer.run();
 		
-		Assert.assertEquals(consumer.valid(), true);
+		Assert.assertEquals(true, consumer.valid());
 	}
 	
 	@Test
 	public void testThreadedDeliver() throws Exception
 	{
 		InVMEpr epr = new InVMEpr(new URI("invm://serviceid2"));
-		Producer producer = new Producer(epr);
-		Consumer consumer = new Consumer(epr);
+        InVMCourier courier = new InVMCourier(epr);
+		Producer producer = new Producer(courier);
+		Consumer consumer = new Consumer(courier);
 		
 		producer.start();
 		consumer.start();
 		
 		try
 		{
-			synchronized (condition())
-			{
-				condition().wait();
-			}
-		}
+            waitOnConditon();
+        }
 		catch (Exception ex)
 		{
 			ex.printStackTrace();
@@ -82,8 +85,9 @@
 	public void testDelayedThreadedDeliver() throws Exception
 	{
 		InVMEpr epr = new InVMEpr(new URI("invm://serviceid3"));
-		Producer producer = new Producer(epr);
-		Consumer consumer = new Consumer(epr);
+        InVMCourier courier = new InVMCourier(epr);
+		Producer producer = new Producer(courier);
+		Consumer consumer = new Consumer(courier);
 		
 		consumer.start();
 		
@@ -99,11 +103,8 @@
 		
 		try
 		{
-			synchronized (condition())
-			{
-				condition().wait();
-			}
-		}
+            waitOnConditon();
+        }
 		catch (Exception ex)
 		{
 			ex.printStackTrace();
@@ -116,7 +117,8 @@
 	public void testThreadedNullDeliver() throws Exception
 	{
 		InVMEpr epr = new InVMEpr(new URI("invm://serviceid4"));
-		Consumer consumer = new Consumer(epr);
+        InVMCourier courier = new InVMCourier(epr);
+		Consumer consumer = new Consumer(courier);
 		
 		consumer.start();
 		
@@ -130,11 +132,8 @@
 		
 		try
 		{
-			synchronized (condition())
-			{
-				condition().wait();
-			}
-		}
+            waitOnConditon();
+        }
 		catch (Exception ex)
 		{
 			ex.printStackTrace();
@@ -147,19 +146,17 @@
 	public void testLockstepDeliver() throws Exception
 	{
 		InVMEpr epr = new InVMEpr(new URI("invm://serviceid5?true#2000"));
-		Producer producer = new Producer(epr);
-		Consumer consumer = new Consumer(epr);
+        InVMCourier courier = new InVMCourier(epr);
+		Producer producer = new Producer(courier);
+		Consumer consumer = new Consumer(courier);
 		
 		consumer.start();
 		producer.start();
 		
 		try
 		{
-			synchronized (condition())
-			{
-				condition().wait();
-			}
-		}
+            waitOnConditon();
+        }
 		catch (Exception ex)
 		{
 			ex.printStackTrace();
@@ -167,14 +164,25 @@
 		
 		Assert.assertEquals(consumer.valid(), true);
 	}
-	
-	@Test
+
+    @Test
+    public void test_single_Courier_Creation() throws URISyntaxException, MalformedEPRException, CourierException {
+        InVMEpr epr = new InVMEpr(new URI("invm://serviceid5?true#2000"));
+        TwoWayCourierImpl courier1 = (TwoWayCourierImpl) CourierFactory.getInstance().getCourier(epr);
+        TwoWayCourierImpl courier2 = (TwoWayCourierImpl) CourierFactory.getInstance().getCourier(epr);
+
+        Assert.assertTrue(courier1.getDeliverCourier() == courier2.getDeliverCourier());
+        Assert.assertTrue(courier1.getPickupCourier() == courier2.getPickupCourier());
+    }
+
+    @Test
 	public void testLockstepPerformance () throws Exception
 	{
 		InVMEpr epr = new InVMEpr(new URI("invm://serviceid5?true#2000"));
 		int iters = 1000;
-		Producer producer = new Producer(epr, iters, false);
-		Consumer consumer = new Consumer(epr, iters, false);
+        InVMCourier courier = new InVMCourier(epr);
+		Producer producer = new Producer(courier, iters, false);
+		Consumer consumer = new Consumer(courier, iters, false);
 		long stime = System.currentTimeMillis();
 		
 		consumer.start();
@@ -182,11 +190,8 @@
 		
 		try
 		{
-			synchronized (condition())
-			{
-				condition().wait();
-			}
-		}
+            waitOnConditon();
+        }
 		catch (Exception ex)
 		{
 			ex.printStackTrace();
@@ -205,18 +210,26 @@
 		System.err.println("Messages per second: "+msgsPerSecond);
 	}
 
-	@Test
+    private void waitOnConditon() throws InterruptedException {
+        synchronized (condition())
+        {
+            condition().wait();
+        }
+    }
+
+    @Test
 	public void testLockstepMultiProducerPerformance () throws Exception
 	{
 		InVMEpr epr = new InVMEpr(new URI("invm://serviceid5?true#2000"));
 		int iters = 1000;
 		int numberOfProducers = 50;
 		Producer[] producer = new Producer[numberOfProducers];
-		Consumer consumer = new Consumer(epr, iters*numberOfProducers, false);
+        InVMCourier courier = new InVMCourier(epr);
+		Consumer consumer = new Consumer(courier, iters*numberOfProducers, false);
 		long stime = System.currentTimeMillis();
 		
 		for (int i = 0; i < numberOfProducers; i++)
-		    producer[i] = new Producer(epr, iters, false);
+		    producer[i] = new Producer(courier, iters, false);
 		
 		consumer.start();
 		
@@ -225,11 +238,8 @@
 		
 		try
 		{
-			synchronized (condition())
-			{
-				condition().wait();
-			}
-		}
+            waitOnConditon();
+        }
 		catch (Exception ex)
 		{
 			ex.printStackTrace();
@@ -260,23 +270,21 @@
 
 class Producer extends Thread
 {
-	public Producer (InVMEpr epr)
+	public Producer (InVMCourier courier, int iters, boolean debug)
 	{
-		this(epr, InVMCourierUnitTest.ITERATIONS, true);
-	}
-	
-	public Producer (InVMEpr epr, int iters, boolean debug)
-	{
-		_epr = epr;
+        this.courier = courier;
 		_iters = iters;
 		_debug = debug;
 	}
-	
-	public void run ()
+
+    public Producer(InVMCourier courier) {
+        this(courier, InVMCourierUnitTest.ITERATIONS, true);
+    }
+
+    public void run ()
 	{
 		try
 		{
-			InVMCourier courier = new InVMCourier(_epr);
 			int number = 0;
 			int iterations = _iters;
 			
@@ -300,33 +308,32 @@
 		}
 	}
 	
-	private InVMEpr _epr;
+    private InVMCourier courier;
 	private int _iters;
 	private boolean _debug;
 }
 
 class Consumer extends Thread
 {
-	public Consumer (InVMEpr epr)
+    public Consumer(InVMCourier courier) {
+        this(courier, InVMCourierUnitTest.ITERATIONS, true);
+    }
+
+    public Consumer (InVMCourier courier, int iters, boolean debug)
+    {
+        this.courier = courier;
+        _iters = iters;
+        _debug = debug;
+    }
+
+    public void run ()
 	{
-		this(epr, InVMCourierUnitTest.ITERATIONS, true);
-	}
-	
-	public Consumer (InVMEpr epr, int iters, boolean debug)
-	{
-		_epr = epr;
-		_iters = iters;
-		_debug = debug;
-	}
-	
-	public void run ()
-	{
 		try
 		{
-			InVMCourier courier = new InVMCourier(_epr);
 			int i;
-			
-			for (i = 0; i < _iters; i++)
+
+            System.out.println("Consumer Iters: " + _iters);
+            for (i = 0; i < _iters; i++)
 			{
 				Message msg = courier.pickup(2000);
 
@@ -367,8 +374,8 @@
 		return _valid;
 	}
 	
+    private InVMCourier courier;
 	private boolean _valid = false;
-	private InVMEpr _epr;
 	private int _iters;
 	private boolean _debug;
 	private int _itersCompleted = 0;

Added: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.services.registry;
+
+import junit.framework.TestCase;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.services.registry.RegistryException;
+import org.jboss.soa.esb.services.registry.ServiceNotFoundException;
+
+import java.net.URI;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class InVMRegistryUnitTest extends TestCase {
+
+    public void test() throws ServiceNotFoundException, RegistryException {
+        InVMRegistry reg = new InVMRegistry();
+
+        assertNull(reg.findEPR("x", "y"));
+
+        reg.registerEPR("x", "y", "blah", new EPR(URI.create("x://123")), "blah");
+        assertEquals(1, reg.findEPRs("x", "y").size());
+        assertEquals("x://123", reg.findEPR("x", "y").getAddr().getAddress());
+
+        reg.registerEPR("x", "y", "blah", new EPR(URI.create("x://1234")), "blah");
+        assertEquals(2, reg.findEPRs("x", "y").size());
+
+        reg.registerEPR("a", "z", "blah", new EPR(URI.create("x://12345")), "blah");
+        assertEquals(2, reg.findEPRs("x", "y").size());
+        assertEquals(1, reg.findEPRs("a", "z").size());
+
+        assertEquals(2, reg.findAllServices().size());
+        assertEquals(1, reg.findServices("x").size());
+
+        // unreg using a valid service, but unregistred EPR... make sure nothing changes...
+        reg.unRegisterEPR("a", "z", new EPR(URI.create("x://1")));
+        assertEquals(1, reg.findEPRs("a", "z").size());
+        // unreg using a valid service + registred EPR... make sure EPR is removed...
+        reg.unRegisterEPR("a", "z", new EPR(URI.create("x://12345")));
+        assertEquals(0, reg.findEPRs("a", "z").size());
+
+        // unreg all for the service
+        assertEquals(2, reg.findEPRs("x", "y").size());
+        reg.unRegisterService("x", "y");
+        assertEquals(0, reg.findEPRs("x", "y").size());
+    }
+}


Property changes on: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryUnitTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/MockRegistry.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/MockRegistry.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/MockRegistry.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -48,6 +48,8 @@
  */
 public class MockRegistry implements Registry {
 
+    // TODO: Make it extend the InVMRegistry???
+    
     private static final String REGISTRY_IMPEMENTATION_CLASS_ORIGINAL = Environment.REGISTRY_IMPEMENTATION_CLASS + "#Original";
     public static PropertyManager regPropManager = ModulePropertyManager.getPropertyManager(ModulePropertyManager.REGISTRY_MODULE);
     public static List<RepositoryEntry> repository = new ArrayList<RepositoryEntry>();

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultFileReplyToEprUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultFileReplyToEprUnitTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultFileReplyToEprUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -108,7 +108,7 @@
         	FileEpr serviceEpr = new FileEpr(toEpr.getURL());
         	serviceEpr.setInputSuffix(initialSuffix);
         	serviceEpr.setPostDelete(true);
-        	PickUpOnlyCourier listener = CourierFactory.getPickupCourier(serviceEpr);
+        	PickUpOnlyCourier listener = CourierFactory.getInstance().getPickupCourier(serviceEpr);
         	Message received = listener.pickup(100);
         	String text_2 = new String((byte[]) received.getBody().get(BytesBody.BYTES_LOCATION));
         	assertTrue(text_1.equals(text_2));
@@ -122,7 +122,7 @@
         	CourierUtil.deliverMessage(response);
         	
         	// try to pick up reply
-        	PickUpOnlyCourier waiter = CourierFactory.getPickupCourier(replyToEpr);
+        	PickUpOnlyCourier waiter = CourierFactory.getInstance().getPickupCourier(replyToEpr);
         	Message finalMsg = waiter.pickup(100);
         	assertTrue(text_2.equals(new String((byte[]) finalMsg.getBody().get(BytesBody.BYTES_LOCATION))));
         	

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultFtpReplyToEprIntegrationTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultFtpReplyToEprIntegrationTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultFtpReplyToEprIntegrationTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -109,7 +109,7 @@
         	FTPEpr serviceEpr = new FTPEpr(toEpr.getURL());
         	serviceEpr.setInputSuffix(initialSuffix);
         	serviceEpr.setPostDelete(true);
-        	PickUpOnlyCourier listener = CourierFactory.getPickupCourier(serviceEpr);
+        	PickUpOnlyCourier listener = CourierFactory.getInstance().getPickupCourier(serviceEpr);
         	Message received = listener.pickup(100);
         	String text_2 = new String((byte[]) received.getBody().get(BytesBody.BYTES_LOCATION));
         	assertTrue(text_1.equals(text_2));
@@ -123,7 +123,7 @@
         	CourierUtil.deliverMessage(response);
         	
         	// try to pick up reply
-        	PickUpOnlyCourier waiter = CourierFactory.getPickupCourier(replyToEpr);
+        	PickUpOnlyCourier waiter = CourierFactory.getInstance().getPickupCourier(replyToEpr);
         	Message finalMsg = waiter.pickup(100);
         	assertTrue(text_2.equals(new String((byte[]) finalMsg.getBody().get(BytesBody.BYTES_LOCATION))));
         	

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultJdbcReplyToEprUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultJdbcReplyToEprUnitTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/tests/DefaultJdbcReplyToEprUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -137,7 +137,7 @@
 
         	// Mock a service that picks up the original message and replies
         	JDBCEpr serviceEpr = getEpr("foo");
-        	PickUpOnlyCourier listener = CourierFactory.getPickupCourier(serviceEpr);
+        	PickUpOnlyCourier listener = CourierFactory.getInstance().getPickupCourier(serviceEpr);
         	Message received = listener.pickup(100);
         	String text_2 = new String((byte[]) received.getBody().get(BytesBody.BYTES_LOCATION));
         	assertTrue(text_1.equals(text_2));
@@ -150,7 +150,7 @@
         	CourierUtil.deliverMessage(response);
         	
         	// try to pick up reply
-        	PickUpOnlyCourier waiter = CourierFactory.getPickupCourier(replyToEpr);
+        	PickUpOnlyCourier waiter = CourierFactory.getInstance().getPickupCourier(replyToEpr);
         	Message finalMsg = waiter.pickup(100);
         	assertTrue(text_2.equals(new String((byte[]) finalMsg.getBody().get(BytesBody.BYTES_LOCATION))));
         	

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/InVMUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/InVMUnitTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/InVMUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -23,6 +23,7 @@
 package org.jboss.soa.esb.addressing.helpers.tests;
 
 import java.net.URI;
+import java.net.URISyntaxException;
 
 import junit.framework.TestCase;
 
@@ -71,4 +72,11 @@
 		}
 	}
 
+    public void test_getEncodedServiceId() throws URISyntaxException {
+        String serviceId = InVMEpr.createEncodedServiceId("Service Cat / &&&", " Service / Name $$");
+        assertEquals("5365727669636520436174202f2026262653657276696365202f204e616d65202424", serviceId);
+
+        InVMEpr epr = new InVMEpr(new URI(InVMEpr.INVM_PROTOCOL + "://" + serviceId));
+        assertEquals("5365727669636520436174202f2026262653657276696365202f204e616d65202424", epr.getServiceId());
+    }
 }

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFTPIntegrationTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFTPIntegrationTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFTPIntegrationTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -81,7 +81,7 @@
 		int howMany = 10; // how many messages do you want to send before the
 							// listener comes up
 		
-		DeliverOnlyCourier sender = CourierFactory.getCourier(toEPR);
+		DeliverOnlyCourier sender = CourierFactory.getInstance().getCourier(toEPR);
 		
 		Message message = MessageFactory.getInstance().getMessage();
 		message.getHeader().setTo(toEPR);

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFileUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFileUnitTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerFileUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -113,7 +113,7 @@
 		int howMany = 10; // how many messages do you want to send before the
 							// listener comes up
 		
-		DeliverOnlyCourier sender = CourierFactory.getCourier(toEPR);
+		DeliverOnlyCourier sender = CourierFactory.getInstance().getCourier(toEPR);
 		
 		Message message = MessageFactory.getInstance().getMessage();
 		message.getHeader().setTo(toEPR);

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerInVMUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerInVMUnitTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerInVMUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -93,7 +93,7 @@
 		int howMany = 10; // how many messages do you want to send before the
 		// listener comes up
 
-		DeliverOnlyCourier sender = CourierFactory.getCourier(toEPR);
+		DeliverOnlyCourier sender = CourierFactory.getInstance().getCourier(toEPR);
 
 		Message message = MessageFactory.getInstance().getMessage();
 		message.getHeader().setTo(toEPR);

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJDBCUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJDBCUnitTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJDBCUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -107,7 +107,7 @@
 		int howMany = 10; // how many messages do you want to send before the
 							// listener comes up
 		
-		DeliverOnlyCourier sender = CourierFactory.getCourier(toEPR);
+		DeliverOnlyCourier sender = CourierFactory.getInstance().getCourier(toEPR);
 		
 		Message message = MessageFactory.getInstance().getMessage();
 		message.getHeader().setTo(toEPR);

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJMSXntegrationTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJMSXntegrationTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/ListenerManagerJMSXntegrationTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -95,7 +95,7 @@
 		int howMany = 10; // how many messages do you want to send before the
 							// listener comes up
 		
-		DeliverOnlyCourier sender = CourierFactory.getCourier(toEPR);
+		DeliverOnlyCourier sender = CourierFactory.getInstance().getCourier(toEPR);
 		
 		Message message = MessageFactory.getInstance().getMessage();
 		message.getHeader().setTo(toEPR);

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/GatewayInVMServiceUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/GatewayInVMServiceUnitTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/GatewayInVMServiceUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -22,233 +22,90 @@
 
 package org.jboss.soa.esb.listeners.gateway;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.Statement;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.addressing.EPR;
-import org.jboss.soa.esb.addressing.eprs.InVMEpr;
-import org.jboss.soa.esb.common.tests.BaseTest;
+import junit.framework.Assert;
+import junit.framework.TestCase;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.AbstractActionPipelineProcessor;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.client.ServiceInvoker;
 import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.LifecycleUtil;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.ListenerUtil;
-import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycle;
-import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
+import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
 import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.testutils.FileUtil;
-import org.jboss.soa.esb.testutils.HsqldbUtil;
-import org.jboss.soa.esb.testutils.TestEnvironmentUtil;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.parameters.ParamRepositoryException;
+import org.jboss.soa.esb.testutils.ESBConfigUtil;
+import org.xml.sax.SAXException;
 
-public class GatewayInVMServiceUnitTest extends BaseTest
+import java.util.HashMap;
+import java.util.Map;
+
+public class GatewayInVMServiceUnitTest extends TestCase
 {
-	private Logger log = Logger.getLogger(GatewayInVMServiceUnitTest.class);
+    private ESBConfigUtil configUtil;
 
-	public GatewayInVMServiceUnitTest()
-	{
-	}
+    protected void setUp() throws Exception {
+        configUtil = new ESBConfigUtil(getClass().getResourceAsStream("listenerInVM.xml"));
+        configUtil.startController();
+    }
 
-	public void setUp()
-	{
-		runBeforeAllTests();
-	}
+    protected void tearDown() throws Exception {
+        configUtil.stopController();
+    }
 
-	public void tearDown()
-	{
-		runAfterAllTests();
-	}
+    public void test() throws ManagedLifecycleException, SAXException, ParamRepositoryException, ConfigurationException, InterruptedException, MessageDeliverException {
+        ESBConfigUtil configUtil = new ESBConfigUtil(getClass().getResourceAsStream("listenerInVM.xml"));
 
-	public void testGatewayInVMServiceInvocation() throws Exception
-	{
-		ConfigTree tree = new ConfigTree("test");
-		final File tmpDir = new File(System.getProperty("user.dir"));
-		final String tmpDirForm = tmpDir.toURL().toExternalForm();
+        configUtil.startController();
 
-		tree.setAttribute("inputDir", tmpDirForm);
-		tree.setAttribute("target-service-category", "Example12345");
-		tree.setAttribute("target-service-name", "Test12345");
-		tree.setAttribute("gatewayClass",
-				"org.jboss.soa.esb.listeners.gateway.FileGatewayListener");
-		tree.setAttribute("inputSuffix", "dummy");
-		tree.setAttribute("workSuffix", "work");
-		tree.setAttribute("postDelete", "true");
-		tree.setAttribute(ListenerTagNames.POLL_LATENCY_SECS_TAG, "abcd");
+        ServiceInvoker invoker1 = new ServiceInvoker("X", "1");
+        ServiceInvoker invoker2 = new ServiceInvoker("X", "2");
+        Message message1 = MessageFactory.getInstance().getMessage();
+        Message message2 = MessageFactory.getInstance().getMessage();
+        Message message3 = MessageFactory.getInstance().getMessage();
+        Message message4 = MessageFactory.getInstance().getMessage();
 
-		FileGatewayListener gateway = new FileGatewayListener(tree);
+        invoker1.deliverAsync(message1);
+        invoker2.deliverAsync(message2);
 
-		String configFile = getClass().getResource("listenerInVM.xml")
-				.getFile();
-		ConfigTree lTree = ConfigTree.fromInputStream(new FileInputStream(
-				configFile));
-		ConfigTree eprElement = lTree.getAllChildren()[0].getFirstChild("EPR");
-		EPR toEPR = ListenerUtil.assembleEpr(eprElement);
+        // Give the listener threads a few ms to pickup...
+        Thread.sleep(200);
 
-		if (!(toEPR instanceof InVMEpr))
-			fail();
+        assertEquals(2, MockMessageAwareAction.messages.size());
+        assertEquals(message1, MockMessageAwareAction.messages.get("listener1"));
+        assertEquals(message2, MockMessageAwareAction.messages.get("listener2"));
 
-		final List<ManagedLifecycle> instances = LifecycleUtil
-				.getListeners(lTree);
+        // and go with a few more messages....        
+        invoker1.deliverAsync(message3);
+        invoker2.deliverAsync(message4);
 
-		final ManagedLifecycleController controller = new ManagedLifecycleController(
-				instances);
-		controller.start();
+        // Give the listener threads a few ms to pickup...
+        Thread.sleep(200);
 
-		gateway.initialise();
-		gateway.start();
+        assertEquals(2, MockMessageAwareAction.messages.size());
+        assertEquals(message3, MockMessageAwareAction.messages.get("listener1"));
+        assertEquals(message4, MockMessageAwareAction.messages.get("listener2"));
+    }
 
-		File testFile = null;
-
-		try
-		{
-			testFile = File.createTempFile("foo", ".dummy", tmpDir);
-
-			String testString = "Hello World";
-			FileOutputStream stream = new FileOutputStream(testFile);
-
-			stream.write(testString.getBytes());
-			stream.close();
-			
-			gateway.onSchedule();
-		}
-		catch (Throwable ex)
-		{
-			log.error(ex);
-
-			fail();
-		}
-		finally
-		{
-			testFile.delete();
-		}
-		
-		gateway.stop();
-		gateway.destroy();
-		
-		controller.stop();
-		
-		assertTrue(MockMessageAwareAction.received());
-	}
-
-	protected void runBeforeAllTests()
+    public static class MockMessageAwareAction extends AbstractActionPipelineProcessor
 	{
-		try
-		{
-			TestEnvironmentUtil.setESBPropertiesFileToUse("product",
-					"../product");
-			// Set the juddi properties file in System so juddi will pick it up
-			// later and use the test values.
-			String juddiPropertiesFile = "/org/jboss/soa/esb/listeners/juddi-unittest.properties";
-			System.setProperty("juddi.propertiesFile", juddiPropertiesFile);
-			// Read this properties file to get the db connection string
-			Properties props = new Properties();
-			InputStream inStream = Class.class
-					.getResourceAsStream(juddiPropertiesFile);
+        private static Map<String, Message> messages = new HashMap<String, Message>();
+        private ConfigTree config;
 
-			props.load(inStream);
-			String mDbDriver = props.getProperty("juddi.jdbcDriver");
-			String mDbUrl = props.getProperty("juddi.jdbcUrl");
-			String mDbUsername = props.getProperty("juddi.jdbcUsername");
-			String mDbPassword = props.getProperty("juddi.jdbcPassword");
-
-			String database = "not tested yet";
-			if ("org.hsqldb.jdbcDriver".equals(mDbDriver))
-			{
-				database = "hsqldb";
-				// Bring up hsql on default port 9001
-				HsqldbUtil.startHsqldb(TestEnvironmentUtil.getUserDir(
-						"product", "../product")
-						+ "/build/hsqltestdb", "juddi");
-			}
-			else if ("com.mysql.jdbc.Driver".equals(mDbDriver))
-			{
-				database = "mysql";
-			} // add and test your own database..
-
-			// Get the registry-schema create scripts
-			String sqlDir = TestEnvironmentUtil.getUserDir("product",
-					"../product")
-					+ "/install/jUDDI-registry/sql/" + database + "/";
-			// Drop what is there now, if exists. We want to start fresh.
-			String sqlDropCmd = FileUtil.readTextFile(new File(sqlDir
-					+ "drop_database.sql"));
-			String resource = "juddi-sql/" + database + "/create_database.sql";
-			InputStream is = Thread.currentThread().getContextClassLoader()
-					.getResourceAsStream(resource);
-			String sqlCreateCmd = FileUtil.readStream(is);
-			String sqlInsertPubCmd = FileUtil.readTextFile(new File(sqlDir
-					+ "import.sql"));
-
-			try
-			{
-				Class.forName(mDbDriver);
-			}
-			catch (Exception e)
-			{
-				log.error(
-						"ERROR: failed to load " + database + " JDBC driver.",
-						e);
-				return;
-			}
-
-			con = DriverManager.getConnection(mDbUrl, mDbUsername, mDbPassword);
-			Statement stmnt = con.createStatement();
-			stmnt.execute(sqlDropCmd);
-			stmnt.execute(sqlCreateCmd);
-			stmnt.execute(sqlInsertPubCmd);
-			stmnt.close();
-		}
-		catch (Throwable e)
+        public MockMessageAwareAction(ConfigTree config)
 		{
-			log.error("We should stop testing, since we don't have a db.", e);
-			assertTrue(false);
-		}
-	}
+            this.config = config;
+        }
 
-	protected final void runAfterAllTests()
-	{
-		try
-		{
-			Thread.sleep(1000);
-			Statement stmnt = con.createStatement();
-
-			stmnt.execute("SHUTDOWN");
-			stmnt.close();
-
-			con.close();
+        public Message process(Message message) throws ActionProcessingException {
+            synchronized (messages) {
+                try {
+                    messages.put(config.getRequiredAttribute("action"), message);
+                } catch (ConfigurationException e) {
+                    Assert.fail(e.getMessage());
+                }
+            }
+            return message;
 		}
-		catch (Exception ex)
-		{
-			log.error(ex);
-		}
-	}
-
-	private Connection con;
-	
-	public static class MockMessageAwareAction
-	{
-		public MockMessageAwareAction(ConfigTree config)
-		{
-		}
-
-		public Message notifyTest (Message message) throws Exception
-		{
-			_received = true;
-			
-			return message;
-		}
-		
-		public static final boolean received ()
-		{
-			return _received;
-		}
-		
-		private static boolean _received;
-	}
+    }
 }

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/listenerInVM.xml
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/listenerInVM.xml	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/listenerInVM.xml	2007-12-07 13:39:06 UTC (rev 17088)
@@ -1,20 +1,27 @@
-<DummyTester parameterReloadSecs="180">
-   <DummyActionConfig
-    service-category="Example12345"
-	service-name="Test12345"
-	service-description="My Dummy Service Name InVM"
-  	listenerClass="org.jboss.soa.esb.listeners.message.MessageAwareListener"
-	maxThreads="10"
-	>
-		<EPR
-			URL="invm://serviceid67890"
-		/>
-		
-		<action class="org.jboss.soa.esb.listeners.gateway.GatewayInVMServiceUnitTest$MockMessageAwareAction" process="notifyTest" />
-		<action  class="org.jboss.soa.esb.actions.Notifier"  okMethod="notifyOK">
-		   	<NotificationList type="OK"> 
-				<target class="NotifyConsole" /> 
-			</NotificationList> 
-		</action>
-   </DummyActionConfig>
-</DummyTester>
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
+          parameterReloadSecs="5">
+
+    <services>
+
+        <service category="X" name="1" description="Service">
+            <listeners>
+                <invm-listener name="xy-invm"/>
+            </listeners>
+            <actions>
+                <action name="listener1" class="org.jboss.soa.esb.listeners.gateway.GatewayInVMServiceUnitTest$MockMessageAwareAction"/>
+            </actions>
+        </service>
+
+        <service category="X" name="2" description="Service">
+            <listeners>
+                <invm-listener name="xy-invm"/>
+            </listeners>
+            <actions>
+                <action name="listener2" class="org.jboss.soa.esb.listeners.gateway.GatewayInVMServiceUnitTest$MockMessageAwareAction"/>
+            </actions>
+        </service>
+
+    </services>
+
+</jbossesb>

Modified: labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/rosetta/tests/src/org/jboss/soa/esb/services/registry/RegistryUnitTest.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -21,8 +21,19 @@
 */
 package org.jboss.soa.esb.services.registry;
 
+import junit.framework.Assert;
+import junit.framework.JUnit4TestAdapter;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.testutils.FileUtil;
+import org.jboss.soa.esb.testutils.HsqldbUtil;
+import org.jboss.soa.esb.testutils.TestEnvironmentUtil;
+import org.junit.AfterClass;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import org.junit.BeforeClass;
+import org.junit.Test;
 
 import java.io.File;
 import java.io.InputStream;
@@ -31,18 +42,6 @@
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.Properties;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.addressing.EPR;
-import org.jboss.soa.esb.testutils.FileUtil;
-import org.jboss.soa.esb.testutils.HsqldbUtil;
-import org.jboss.soa.esb.testutils.TestEnvironmentUtil;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
 /**
  * Testing the registry.
  * 
@@ -152,7 +151,8 @@
 			assertEquals(services.size(),0);
 		} catch (Exception re) {
 			logger.log(Level.ERROR, re.getLocalizedMessage(), re);
-			assertTrue(false);
+            re.printStackTrace();
+            Assert.fail("Unexpected exception: " + re.getMessage());
 		}
 	}
 	/**

Modified: labs/jbossesb/workspace/bramley/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/CommandInterpreter.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/CommandInterpreter.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/CommandInterpreter.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -101,7 +101,7 @@
 			_logger.error("Null replyToEPR in message - response will not be sent to invoker");
 		else
 		{
-			Courier courier = CourierFactory.getCourier(reply);
+			Courier courier = CourierFactory.getInstance().getCourier(reply);
                         try
                         {
                             courier.deliver(message);

Modified: labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollectorAction.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollectorAction.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/DataCollectorAction.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -87,7 +87,7 @@
 		        	URI uri = new URI(UUID.randomUUID().toString());
 		            esbMessage.getHeader().setMessageID(uri);
 		            try {
-		         		sender = CourierFactory.getCourier(epr);
+		         		sender = CourierFactory.getInstance().getCourier(epr);
 		         		sender.deliver(esbMessage);
 		            } finally {
 		            	CourierUtil.cleanCourier(sender);

Modified: labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/InvokerAction.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/InvokerAction.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/InvokerAction.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -99,7 +99,7 @@
 		        	URI uri = new URI(UUID.randomUUID().toString());
 		            esbMessage.getHeader().setMessageID(uri);
 		            try {
-			        	sender = CourierFactory.getCourier(epr);
+			        	sender = CourierFactory.getInstance().getCourier(epr);
 			            sender.deliver(esbMessage);
 		            } finally {
 		            	CourierUtil.cleanCourier(sender);

Modified: labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/OperationsCollectorAction.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/OperationsCollectorAction.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/client/OperationsCollectorAction.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -88,7 +88,7 @@
 		        	URI uri = new URI(UUID.randomUUID().toString());
 		            esbMessage.getHeader().setMessageID(uri);
 		            try {
-			        	sender = CourierFactory.getCourier(epr);
+			        	sender = CourierFactory.getInstance().getCourier(epr);
 		            	sender.deliver(esbMessage);
 		            } finally {
 		            	CourierUtil.cleanCourier(sender);

Modified: labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java
===================================================================
--- labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java	2007-12-07 11:45:25 UTC (rev 17087)
+++ labs/jbossesb/workspace/bramley/product/tools/console/management/src/main/java/org/jboss/soa/esb/monitoring/server/DataFilerJob.java	2007-12-07 13:39:06 UTC (rev 17088)
@@ -21,11 +21,6 @@
  */
 package org.jboss.soa.esb.monitoring.server;
 
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.List;
-import java.util.UUID;
-
 import org.apache.log4j.Logger;
 import org.jboss.internal.soa.esb.couriers.DeliverOnlyCourier;
 import org.jboss.soa.esb.addressing.EPR;
@@ -44,6 +39,11 @@
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.List;
+import java.util.UUID;
+
 /**
  * DataFilerJob is a Quartz job which, when fired, delivers a message to
  * all DataCollector services asking for statistics.
@@ -76,7 +76,7 @@
 				    esbMessage.getHeader().setMessageID(uri);
 
 				    try {
-						sender = CourierFactory.getCourier(epr);
+						sender = CourierFactory.getInstance().getCourier(epr);
 				    	sender.deliver(esbMessage);				    				    	
 				    } finally {
 				    	CourierUtil.cleanCourier(sender);
@@ -84,7 +84,7 @@
 				}
 			}
 			
-			list = RegistryUtil.getEprs(FilerAction.INTERNAL_CATEGORY, FilerAction.OPERATIONS_COLLECTOR_SERVICE_ACTION_NAME);			
+			list = RegistryUtil.getEprs(org.jboss.soa.esb.monitoring.server.FilerAction.INTERNAL_CATEGORY, org.jboss.soa.esb.monitoring.server.FilerAction.OPERATIONS_COLLECTOR_SERVICE_ACTION_NAME);
 			if (list != null) {
 				for (int i = 0; i < list.size(); i++) {
 					EPR epr = (EPR)list.get(i); 
@@ -96,7 +96,7 @@
 					URI opURI = new URI(UUID.randomUUID().toString());
 					opMessage.getHeader().setMessageID(opURI);
 					try{
-						sender = CourierFactory.getCourier(epr);
+						sender = CourierFactory.getInstance().getCourier(epr);
 						sender.deliver(opMessage);
 					} finally {
 						CourierUtil.cleanCourier(sender);




More information about the jboss-svn-commits mailing list