[jboss-svn-commits] JBL Code SVN: r6564 - in labs/jbossesb/workspace: . eschifman/product eschifman/product/core/listeners/src/org/jboss/soa/esb/actions eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/converters eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/routing eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/templates eschifman/product/core/listeners/src/org/jboss/soa/esb/listeners eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 3 18:47:19 EDT 2006


Author: estebanschifman
Date: 2006-10-03 18:47:09 -0400 (Tue, 03 Oct 2006)
New Revision: 6564

Added:
   labs/jbossesb/workspace/eschifman/
Modified:
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractFileAction.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractSqlRowAction.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessor.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformer.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockAction.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/listeners/AbstractListener.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/listeners/DirectoryPoller.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/BaseTestActionProcessor.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor1.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor2.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor3.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestBean.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ToNowhereRouter.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/LongToDateConverter.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.java
   labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/StringToLongConverter.java
   labs/jbossesb/workspace/eschifman/product/product.properties
Log:
Listeners and action classes refactored to use Message

Copied: labs/jbossesb/workspace/eschifman (from rev 6563, labs/jbossesb/trunk)

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractFileAction.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractFileAction.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractFileAction.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -23,6 +23,7 @@
 package org.jboss.soa.esb.actions;
 
 import java.io.File;
+import org.jboss.soa.esb.message.Message;
 
 /**
  * <p/>
@@ -49,14 +50,21 @@
      * @return The processing result.
      * @throws ActionProcessingException Exception during payload processing.
      */
-    public final Object process(Object message) throws ActionProcessingException {
-        if(!(message instanceof File)) {
-            throw new ActionProcessingException("Message object for processing by " + getClass().getName() 
-                    + " should have been preprocessed to a " + File.class.getName() + " instance.");
+    public final void process(Message message) throws ActionProcessingException {
+    	
+    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+        if(!(oCurr instanceof File)) {
+            throw new ActionProcessingException
+            	("Message current object for processing by " + getClass().getName() 
+                + " should have been preprocessed to a " + File.class.getName() 
+                + " instance.");
         }
         
         // Call the implementing class to process the file message...
-        return process((File)message);
+        message.getBody().remove(CURRENT_OBJECT);
+        Object oResult = process((File)oCurr);
+        if (null!=oResult)
+        	message.getBody().add(CURRENT_OBJECT,oResult);
     }
 
     /**

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractSqlRowAction.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractSqlRowAction.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractSqlRowAction.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -5,6 +5,8 @@
 
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.omg.PortableServer.CurrentOperations;
 
 /**
  * Abstract SQL Row action.
@@ -26,16 +28,19 @@
         logger = Logger.getLogger(getClass());
     }
 
-    public final Object process(Object message) throws ActionProcessingException {
-        if (!(message instanceof Map)) {
+    public final void process(Message message) throws ActionProcessingException {
+    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+        if (!(oCurr instanceof Map)) {
             throw new ActionProcessingException(
                     "Message object for processing by "
                             + getClass().getName()
                             + " should have been preprocessed and supplied as a "
                             + Map.class.getName() + " instance.");
         }
-
-        return process((Map)message);
+        message.getBody().remove(CURRENT_OBJECT);
+        Object oResult = process((Map)oCurr);
+        if (null!=oResult)
+        	message.getBody().add(CURRENT_OBJECT,oResult);
     } // ________________________________
 
     /**

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessor.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessor.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessor.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -23,6 +23,7 @@
 package org.jboss.soa.esb.actions;
 
 import java.io.Serializable;
+import org.jboss.soa.esb.message.Message;
 
 /**
  * Action Processor Interface Definition.
@@ -40,13 +41,14 @@
  */
 public interface ActionProcessor {
     
+	
+	public static final String CURRENT_OBJECT="org.jboss.soa.esb.actions.current.object";
     /**
-     * Perform the processing action on the message "payload" and return the result.
-     * @param message The message payload to be processed.
-     * @return The processing result.
+     * Perform the processing action on the message
+     * @param message The message to be processed.
      * @throws ActionProcessingException Exception during payload processing.
      */
-    public Object process(Object message) throws ActionProcessingException;
+    public void process(Message message) throws ActionProcessingException;
 
     /**
      * Get the "OK" notification message for this processor.

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformer.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformer.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformer.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -22,12 +22,7 @@
 
 package org.jboss.soa.esb.actions;
 
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
+import java.io.*;
 import java.util.List;
 
 import org.apache.log4j.Logger;
@@ -37,6 +32,8 @@
 import org.jboss.soa.esb.services.transform.TransformationService;
 import org.milyn.SmooksStandalone;
 
+import org.jboss.soa.esb.message.*;
+
 /**
  * Smooks Transformer.
  * <p/>
@@ -124,8 +121,12 @@
 	 * @see org.jboss.soa.esb.services.transform.TransformationService#transform(java.lang.Object)
 	 */
 	public Object transform(Object message) throws TransformationException {
-		try {
-			return process(message);
+		if (! (message instanceof Message))
+			throw new TransformationException("Argument must implement the Message interface");
+		try 
+		{
+			process((Message)message);
+			return message;
 		} catch (ActionProcessingException e) {
 			throw new TransformationException(e);
 		}
@@ -134,14 +135,15 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public Object process(Object message) throws ActionProcessingException {
+    public void process(Message message) throws ActionProcessingException {
+    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
     	try {
-	        if(message instanceof String) {
+	        if(oCurr instanceof String) {
 	            byte[] messageBytes = null;
 	            String transformedMessage;
 	            
 	            try {
-	                messageBytes = ((String)message).getBytes(messageEnc);
+	                messageBytes = ((String)oCurr).getBytes(messageEnc);
 	            } catch (UnsupportedEncodingException e) {
 	                // Can't happen - encoding was already tested in the constructor.
 	            }
@@ -154,14 +156,15 @@
 	            if(logger.isDebugEnabled()) {
 	            	long timeTaken = System.currentTimeMillis() - start;
 	            	logger.debug("Transformed message for useragent [" + messageUseragent + "]. Time taken: " 
-	            			+ timeTaken + ".  Message in:\n[" + message + "].  \nMessage out:\n[" + transformedMessage + "].");
+	            			+ timeTaken + ".  Message in:\n[" + oCurr.toString()+ "].  \nMessage out:\n[" + transformedMessage + "].");
 	            }
-	            
-	            return transformedMessage;
+	            message.getBody().remove(CURRENT_OBJECT);
+	            if (null!=transformedMessage)
+	            	message.getBody().add(CURRENT_OBJECT,transformedMessage);
 	        } else {
+	        	String sClass = (null==oCurr) ? "<null>" : oCurr.getClass().getName();
 	            logger.warn("String message types only supported.  Input message was [" 
-	            		+ message.getClass().getName() + "].  Returning message untransformed.");
-	            return message;
+	            		+ sClass + "].  Returning message untransformed.");
 	        }
     	} catch(Throwable thrown) {
     		throw new ActionProcessingException("Message transformation failed.", thrown);

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -29,6 +29,7 @@
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionProcessor;
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
 
 /**
  * Byte Array to String processor.
@@ -58,17 +59,19 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public Object process(Object message) throws ActionProcessingException {
+    public void process(Message message) throws ActionProcessingException {
         byte[] bytes;
         
         try {
-            bytes = (byte[])message;
+            bytes = (byte[])message.getBody().get(CURRENT_OBJECT);
         } catch(ClassCastException e) {
             throw new ActionProcessingException("Message must be an array of bytes. Is " + message.getClass().getName());
         }
         
         try {
-            return new String(bytes, encoding);
+        	String sResult = new String(bytes, encoding);
+        	message.getBody().remove(CURRENT_OBJECT);
+            message.getBody().add(CURRENT_OBJECT,sResult);
         } catch (UnsupportedEncodingException e) {
             throw new ActionProcessingException("Unable to decode byte[] to String. Unsupported character encoding configuration: " + encoding, e);
         }

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -32,6 +32,7 @@
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionProcessor;
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
 
 /**
  * Object to CSV String processor.
@@ -94,7 +95,10 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public Object process(Object message) throws ActionProcessingException {
+    public void process(Message message) throws ActionProcessingException {
+    	
+    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+    	Class oCurrClass = (null==oCurr) ? null : oCurr.getClass(); 
         StringBuffer csv = new StringBuffer();
         boolean hasAppendStarted = false; // Have we appended a value yet?
         
@@ -108,15 +112,15 @@
 
             // Get the bean method....
             try {
-                method = message.getClass().getMethod(methodName, new Class[] {});
+                method = oCurrClass.getMethod(methodName, new Class[] {});
             } catch (Exception e) {
-                logger.error("Bean method: " + methodName + " not found/accessible on message object " + message.getClass().getName(), e);
+                logger.error("Bean method: " + methodName + " not found/accessible on message object " + oCurr.getClass().getName(), e);
                 continue;
             }
 
             // Call the bean method and add the toString of the return to the CSV string....
             try {
-                Object value = method.invoke(message, new Object[] {});
+                Object value = method.invoke(oCurr, new Object[] {});
                 // TODO: Some sort of encoding is required here to make a proper CSV string...
                 csv.append(value != null?value.toString():"");
             } catch (Exception e) {
@@ -124,7 +128,8 @@
             }
         }
         
-        return csv.toString();
+        message.getBody().remove(CURRENT_OBJECT);
+        message.getBody().add(CURRENT_OBJECT,csv.toString());
     }
 
     /* (non-Javadoc)

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -29,6 +29,7 @@
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionProcessor;
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
 
 import com.thoughtworks.xstream.XStream;
 
@@ -70,7 +71,9 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public Object process(Object object) throws ActionProcessingException {
+    public void process(Message message) throws ActionProcessingException {
+    	
+    	Object object = message.getBody().get(CURRENT_OBJECT);
         XStream xstream = new XStream();
         
         if(classAlias == null) {
@@ -83,7 +86,8 @@
             xstream.alias(classAlias, object.getClass());
         }
         
-        return xstream.toXML(object);
+        message.getBody().remove(CURRENT_OBJECT);
+        message.getBody().add(CURRENT_OBJECT,xstream.toXML(object));
     }
 
     /* (non-Javadoc)

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -97,39 +97,39 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public Object process(Object message) throws ActionProcessingException {
-        if(!(message instanceof Serializable)) {
-            throw new ActionProcessingException("Cannot send Object [" + message.getClass().getName() + "] to destination [" + queueSetup.queueName + "]. Object must be serializable.");
+    public void process(org.jboss.soa.esb.message.Message message) throws ActionProcessingException {
+    	
+    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+        if(!(oCurr instanceof Serializable)) {
+            throw new ActionProcessingException("Cannot send Object [" + oCurr.getClass().getName() + "] to destination [" + queueSetup.queueName + "]. Object must be serializable.");
         }
         
         try {
             // Send a Text or Object message to the queue...
-            if (message instanceof String) {
+            if (oCurr instanceof String) {
                 TextMessage oMsg = queueSetup.jmsSession.createTextMessage();
     
                 if(logger.isDebugEnabled()) {
-                    logger.debug("Sending Text message: [" + message + "] to destination [" + queueSetup.queueName + "].");
+                    logger.debug("Sending Text message: [" + oCurr + "] to destination [" + queueSetup.queueName + "].");
                 }
-                oMsg.setText((String)message);
+                oMsg.setText((String)oCurr);
                 setStringProperties(oMsg);
                 queueSetup.jmsProducer.send(oMsg);
             } else {
                 ObjectMessage oMsg = queueSetup.jmsSession.createObjectMessage();
                 
                 if(logger.isDebugEnabled()) {
-                    logger.debug("Sending Object message: [" + message + "] to destination [" + queueSetup.queueName + "].");
+                    logger.debug("Sending Object message: [" + oCurr + "] to destination [" + queueSetup.queueName + "].");
                 }
-                oMsg.setObject((Serializable) message);
+                oMsg.setObject((Serializable) oCurr);
                 setStringProperties(oMsg);
                 queueSetup.jmsProducer.send(oMsg);
             }
         } catch(Exception e) {
-            String errorMessage = "Exception while sending message [" + message + "] to destination [" + queueSetup.queueName + "].";
+            String errorMessage = "Exception while sending message [" + oCurr + "] to destination [" + queueSetup.queueName + "].";
             logger.error(errorMessage, e);
             throw new ActionProcessingException(errorMessage, e);
         }
-        
-        return message;
     }
 
     private void setStringProperties(Message msg) throws JMSException {

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -36,6 +36,7 @@
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionProcessor;
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
 
 /**
  * Object to file writing processor.
@@ -105,7 +106,7 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public Object process(Object message) throws ActionProcessingException {
+    public void process(Message message) throws ActionProcessingException {
         synchronized(file) {
             File outputFile = getOutputFile();
             FileOutputStream fileOutputStream = null;
@@ -118,11 +119,12 @@
                 throw new ActionProcessingException("Action " + actionName + " failed.  Unable to open output file " + outputFile.getAbsolutePath());
             }
             
+            Object oCurr = message.getBody().get(CURRENT_OBJECT);
             try {
-                if(message instanceof byte[]) {
-                    fileOutputStream.write((byte[])message);
+                if(oCurr instanceof byte[]) {
+                    fileOutputStream.write((byte[])oCurr);
                 } else {
-                    fileOutputStream.write(message.toString().getBytes(encoding));
+                    fileOutputStream.write(oCurr.toString().getBytes(encoding));
                 }
                 fileOutputStream.flush();
             } catch (IOException e) {
@@ -134,8 +136,6 @@
                     logger.warn("Exception on closing file " + file.getAbsolutePath(), e);
                 }
             }
-            
-            return message;
         }        
     }
 

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockAction.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockAction.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockAction.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -5,6 +5,7 @@
 
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.message.Message;
 
 
 /**
@@ -21,9 +22,11 @@
      */
     private static Logger logger = Logger.getLogger(MockAction.class);
 
-    public Object process(Object message) {
-        logger.info("process was called with <<" + message.toString() + ">>");
-        return message;
+    public void process(Message message) {
+    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+    	if (null==oCurr)
+    		oCurr = "null";
+        logger.info("process was called with <<" + oCurr.toString() + ">>");
     } // ________________________________
 
     private SimpleDateFormat s_oTS = new SimpleDateFormat(

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/listeners/AbstractListener.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/AbstractListener.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/listeners/AbstractListener.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -30,6 +30,8 @@
 import org.jboss.soa.esb.actions.ActionDefinitionFactory;
 import org.jboss.soa.esb.actions.ActionProcessor;
 import org.jboss.soa.esb.helpers.DomElement;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
 
 /**
  * Base abstract message listener implementation.
@@ -43,38 +45,35 @@
     protected int m_iSleepForThreads = 3000; // default sleep if no threads available
     protected int m_iUpperThreadLimit = 10; // just in case - override if you wish
 
-    protected int m_iQthr = 0, m_iMaxThr;
+    protected int 			m_iQthr = 0, m_iMaxThr;
 
-    protected ThreadGroup m_oThrGrp = null;
-
-    protected Logger logger;
-
-    protected GpListener m_oDad;
-
-    protected DomElement listenerConfig;
-
-    protected String[] m_oActions;
-
+    protected ThreadGroup 	m_oThrGrp = null;
+    protected Logger 		logger;
+    protected GpListener 	m_oDad;
+    protected DomElement 	listenerConfig;
+    protected String[] 		m_oActions;
     protected ActionDefinitionFactory m_oActionDefinitionFactory;
+    protected MessageFactory m_oMsgFactory;
 
     protected AbstractListener(GpListener p_oDad, DomElement p_oParms, ActionDefinitionFactory actionDefinitionFactory) throws Exception {
         
-        logger = Logger.getLogger(this.getClass());
-        m_oDad = p_oDad;
+        logger 		= Logger.getLogger(this.getClass());
+        m_oDad 		= p_oDad;
         listenerConfig = p_oParms.cloneObj();
         m_oActionDefinitionFactory = actionDefinitionFactory;
-        m_oThrGrp = new ThreadGroup(listenerConfig.getName());
+        m_oMsgFactory = MessageFactory.getInstance();
+        m_oThrGrp 	= new ThreadGroup(listenerConfig.getName());
 
         String sAtt = GpListener.obtainAtt(listenerConfig, GpListener.PARM_ACTIONS, "");
-        m_oActions = sAtt.split(",");
+        m_oActions 	= sAtt.split(",");
         
         if(m_oActions.length == 0) {
             throw new ConfigurationException("Listener 'actions' list must be specified.");
         }
 
-        sAtt = GpListener.obtainAtt(listenerConfig, GpListener.PARM_MAX_THREADS, "1");
-        int iMax = Integer.parseInt(sAtt);
-        m_iMaxThr = Math.min(iMax, m_iUpperThreadLimit);
+        sAtt		= GpListener.obtainAtt(listenerConfig, GpListener.PARM_MAX_THREADS, "1");
+        int iMax 	= Integer.parseInt(sAtt);
+        m_iMaxThr 	= Math.min(iMax, m_iUpperThreadLimit);
     } // __________________________________
 
     /**
@@ -86,8 +85,11 @@
     public void run() {
         while (m_oDad.continueLooping()) {
             Object[] processList = receive();
-            
-            for (Object message : processList) {
+            if (null==processList)
+            	try { Thread.sleep(500); }
+            	catch(InterruptedException e) {/*  ok  do nothing  */}
+            else
+              for (Object currentObj : processList) {
                 if (m_iQthr >= m_iMaxThr) {
                     logger.info("Waiting for available threads...(max=" + m_iMaxThr + ")");
                     try {
@@ -99,7 +101,7 @@
                 }
 
                 // Spawn a thread and push the message message through the pipeline...
-                ActionProcessingPipeline runner = new ActionProcessingPipeline(message);
+                ActionProcessingPipeline runner = new ActionProcessingPipeline(currentObj);
                 new Thread(runner).start();
             }
         }
@@ -117,17 +119,17 @@
 
     /**
      * Called on the listener implementation when pipeline processing error has occured.
-     * @param initialMessage The message reference that was initialy supplied to the pipeline.
+     * @param initialObject The object reference that was initialy supplied to the pipeline.
      * @param processor The processor raised the error.
      * @param error The error.
      */
-    protected abstract void processingError(Object initialMessage, ActionProcessor processor, Throwable error);
+    protected abstract void processingError(Object initialObject, ActionProcessor processor, Throwable error);
 
     /**
      * Called on the listener implementation when pipeline processing of a message is complete.
-     * @param initialMessage The message reference that was initialy supplied to the pipeline.
+     * @param initialObject The object reference that was initialy supplied to the pipeline.
      */
-    protected abstract void processingComplete(Object initialMessage);
+    protected abstract void processingComplete(Object initialObject);
     
     /**
      * Close the listener implemenation.
@@ -161,14 +163,14 @@
      */
     private class ActionProcessingPipeline implements Runnable {
         
-        private Object initialMessage;
+        private Object initialObject;
              
         /**
          * Private constructor.
-         * @param initialMessage The inital processing target message.
+         * @param pMessage The inital processing target message.
          */
-        private ActionProcessingPipeline(Object initialMessage) {
-            this.initialMessage = initialMessage;
+        private ActionProcessingPipeline(Object obj) {
+            initialObject = obj;
         }
 
         /* (non-Javadoc)
@@ -182,12 +184,13 @@
             incThreads();
             
             try {
-                Object message = initialMessage;
+                Message message = m_oMsgFactory.getMessage();
+                if (null!=initialObject)
+                	message.getBody().add(ActionProcessor.CURRENT_OBJECT,initialObject);
 
                 // Run the message through each ActionProcessor...
                 for(String action : m_oActions) {
                     ActionDefinition actionDefinition;
-                    Object processingResult = null;
 
                     currentAction = action.trim();
                     actionDefinition = m_oActionDefinitionFactory.getInstance(currentAction);
@@ -198,7 +201,7 @@
                     // The processing result of each action feeds into the processing of the next action...
                     currentProcessor = actionDefinition.getProcessor();
                     try {
-                        processingResult = currentProcessor.process(message);
+                        currentProcessor.process(message);
                     } catch (Exception e) {
                         GpListener.notifyError(listenerConfig, e, currentProcessor.getErrorNotification(message));
                         throw e;
@@ -212,14 +215,13 @@
                     GpListener.notifyOK(listenerConfig, currentProcessor.getOkNotification(message));
                     
                     // Setup the message for processing by the next processor...
-                    message = processingResult;
                 }
             } catch(Throwable thrown) {
-                processingError(initialMessage, currentProcessor, thrown);
+                processingError(initialObject, currentProcessor, thrown);
                 logger.error("Premature termination of action processing pipeline [" + Arrays.asList(m_oActions) + "].  Action [" + currentAction + "] threw an exception.", thrown);
             }
             
-            processingComplete(initialMessage);
+            processingComplete(initialObject);
             
             // Decrement the active thread count for the listener on completion...
             decThreads();

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/listeners/DirectoryPoller.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/DirectoryPoller.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/src/org/jboss/soa/esb/listeners/DirectoryPoller.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -196,8 +196,8 @@
      * @see org.jboss.soa.esb.listeners.AbstractListener#processingError(java.lang.Object, org.jboss.soa.esb.actions.ActionProcessor, java.lang.Throwable)
      */
     @Override
-    protected void processingError(Object initialMessage, ActionProcessor processor, Throwable error) {
-        WorkingFile workingFile = (WorkingFile) initialMessage;
+    protected void processingError(Object currentObject, ActionProcessor processor, Throwable error) {
+        WorkingFile workingFile = (WorkingFile) currentObject;
         
         workingFile.renameToError();
     }
@@ -206,8 +206,8 @@
      * @see org.jboss.soa.esb.listeners.AbstractListener#processingComplete(java.lang.Object)
      */
     @Override
-    protected void processingComplete(Object initialMessage) {
-        WorkingFile workingFile = (WorkingFile) initialMessage;
+    protected void processingComplete(Object currentObject) {
+        WorkingFile workingFile = (WorkingFile) currentObject;
         
         // Delete or rename the file...
         if (workingFile.postDelete) {

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/BaseTestActionProcessor.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/BaseTestActionProcessor.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/BaseTestActionProcessor.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -23,6 +23,7 @@
 package org.jboss.soa.esb.actions;
 
 import java.io.Serializable;
+import org.jboss.soa.esb.message.Message;
 
 /**
  * 
@@ -34,7 +35,7 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public abstract Object process(Object message) throws ActionProcessingException;
+    public abstract void process(Message message) throws ActionProcessingException;
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -29,6 +29,9 @@
 
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
 
 /**
  * SmooksTransformer unit tests.
@@ -59,25 +62,25 @@
     }
 
     public void test_trans() throws ActionProcessingException, ConfigurationException {
-        String message;
+        String stringMessage;
         String transRes;
         
         // Very basic test!  Just illustrates profile based resource selection.
         // Read the smooks-test.cdrl config file in this package!! 
 
         // Initialise the acme order message...
-        message = "<a><ddd>value</ddd></a>";
+        stringMessage = "<a><ddd>value</ddd></a>";
         
         // Transform the order message going to "AcmePartner1"...
-        transRes = transform(message, "Acme-Order-XML", "Acme", "AcmePartner1");
+        transRes = transform(stringMessage, "Acme-Order-XML", "Acme", "AcmePartner1");
         assertEquals("<x><b>value</b></x>", transRes);
         
         // Transform the order message going to "AcmePartner2"...
-        transRes = transform(message, "Acme-Order-XML", "Acme", "AcmePartner2");
+        transRes = transform(stringMessage, "Acme-Order-XML", "Acme", "AcmePartner2");
         assertEquals("<x><c>value</c></x>", transRes);
     }
     
-    private String transform(String message, String type, String from, String to) throws ActionProcessingException, ConfigurationException {
+    private String transform(String stringMessage, String type, String from, String to) throws ActionProcessingException, ConfigurationException {
         List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
 
         // Set the message properties in order to trigger the appropriate transformations
@@ -89,7 +92,11 @@
         // The smooks-cdr.lst and device-profile.xml files are located in the root of the 
         // test src folder...
         SmooksTransformer transformer = new SmooksTransformer("trans", properties);
-        return (String) transformer.process(message);
+        
+        Message oMsg = MessageFactory.getInstance().getMessage();
+        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,stringMessage);
+        transformer.process(oMsg);
+        return (String) oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT);
     }
 
     private void assertConfigException(List<KeyValuePair> properties, String expectedException) {

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor1.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor1.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor1.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -25,6 +25,8 @@
 import java.util.List;
 
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionProcessor;
 
 /**
  * 
@@ -47,8 +49,8 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
      */
-    public Object process(Object payload) {
-        System.out.println("processAction: " + payload);
-        return payload;
+    public void process(Message message) {
+    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+        System.out.println("processAction: " + oCurr);
     }
 }

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor2.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor2.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor2.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -21,6 +21,8 @@
  */
 
 package org.jboss.soa.esb.actions;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionProcessor;
 
 /**
  * 
@@ -33,8 +35,8 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
      */
-    public Object process(Object payload) {
-        System.out.println("processAction: " + payload);
-        return payload;
+    public void process(Message message) {
+    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+        System.out.println("processAction: " + oCurr);
     }
 }

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor3.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor3.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor3.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -21,6 +21,8 @@
  */
 
 package org.jboss.soa.esb.actions;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionProcessor;
 
 /**
  * 
@@ -37,8 +39,8 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
      */
-    public Object process(Object payload) {
-        System.out.println("processAction: " + payload);
-        return payload;
+    public void process(Message message) {
+    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+        System.out.println("processAction: " + oCurr);
     }
 }

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestBean.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestBean.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestBean.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -27,8 +27,10 @@
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
  * @since Version 4.0
  */
-public class TestBean {
-    private String name;
+public class TestBean implements java.io.Serializable 
+{
+	private static final long serialVersionUID = 1L;
+	private String name;
     private String phone;
 
     public TestBean() {

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ToNowhereRouter.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ToNowhereRouter.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ToNowhereRouter.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -24,6 +24,8 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionProcessor;
 
 /**
  * 
@@ -37,12 +39,10 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
      */
-    public Object process(Object payload) throws ActionProcessingException {
-        objects.add(payload);
+    public void process(Message msg) throws ActionProcessingException {
+        objects.add(msg.getBody().get(ActionProcessor.CURRENT_OBJECT));
                 
         System.out.println("ToNowhereRouter");
-        
-        return null;
     }
 
 }

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -28,6 +28,9 @@
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.converters.ByteArrayToString;
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
 
 import junit.framework.TestCase;
 
@@ -48,8 +51,11 @@
 		ByteArrayToString byteArrayToString = new ByteArrayToString(
 				"actionName", properties);
 
-		String decodedBytes = (String) byteArrayToString.process("TestString"
-				.getBytes());
-		assertEquals("TestString", decodedBytes);
+		String sTest = "TestString";
+		Message msg = MessageFactory.getInstance().getMessage();
+		msg.getBody().add(ActionProcessor.CURRENT_OBJECT,sTest.getBytes());
+		byteArrayToString.process(msg);
+		String decodedBytes = (String)msg.getBody().get(ActionProcessor.CURRENT_OBJECT);
+		assertEquals(sTest, decodedBytes);
 	}
 }

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/LongToDateConverter.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/LongToDateConverter.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/LongToDateConverter.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -26,6 +26,8 @@
 
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.BaseTestActionProcessor;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionProcessor;
 
 /**
  * LongToDate Converter Test Action Handler.
@@ -41,15 +43,22 @@
 	 * 
 	 * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
 	 */
-	public Object process(Object payload) throws ActionProcessingException
+	public void process(Message message) throws ActionProcessingException
 	{
-		if (!(payload instanceof Long))
+		Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+		if (!(oCurr instanceof Long))
 		{
 			throw new ActionProcessingException(
 					"This action handler only accepts Long object instances.");
 		}
 		System.out.println("LongToDateConverter");
 
-		return new Date((Long) payload);
+        Object oResult = null;
+        try { oResult = new Date((Long)oCurr); }
+        catch (Exception e)
+        { throw new ActionProcessingException(e); }
+        message.getBody().remove(ActionProcessor.CURRENT_OBJECT);
+        if (null!=oResult)
+        	message.getBody().add(ActionProcessor.CURRENT_OBJECT,oResult);
 	}
 }

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -22,16 +22,18 @@
 
 package org.jboss.soa.esb.actions.converters;
 
+import java.util.ArrayList;
 import java.util.List;
-import java.util.ArrayList;
 
+import junit.framework.TestCase;
+
 import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
 import org.jboss.soa.esb.actions.ActionProcessingException;
-import org.jboss.soa.esb.actions.converters.ObjectToCSVString;
-import org.jboss.soa.esb.helpers.KeyValuePair;
 
-import junit.framework.TestCase;
-
 /**
  * ObjectToCSVString unit tests.
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
@@ -41,29 +43,44 @@
 
     public void test() throws ConfigurationException, ActionProcessingException {
         List<KeyValuePair> properties = new ArrayList<KeyValuePair>();
+        Message oMsg = MessageFactory.getInstance().getMessage();
         
         properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "name"));
         ObjectToCSVString processor = new ObjectToCSVString("ObjectToCSVString", properties);
-        assertEquals("Tom Fennelly", processor.process(new TestBean()));
+        
+        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean());
+        processor.process(oMsg);
+        assertEquals("Tom Fennelly", oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT));
 
         properties.clear();
         properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "name,age"));
         processor = new ObjectToCSVString("ObjectToCSVString", properties);
-        assertEquals("Tom Fennelly,21", processor.process(new TestBean()));
+        oMsg.getBody().remove(ActionProcessor.CURRENT_OBJECT);
+        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean());
+        processor.process(oMsg);
+        assertEquals("Tom Fennelly,21", oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT));
 
         properties.clear();
         properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "id,name,phone,age"));
         processor = new ObjectToCSVString("ObjectToCSVString", properties);
-        assertEquals(",Tom Fennelly,,21", processor.process(new TestBean()));
+        oMsg.getBody().remove(ActionProcessor.CURRENT_OBJECT);
+        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean());
+        processor.process(oMsg);
+        assertEquals(",Tom Fennelly,,21", oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT));
 
         properties.clear();
         properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "id"));
         processor = new ObjectToCSVString("ObjectToCSVString", properties);
-        assertEquals("", processor.process(new TestBean()));
+        oMsg.getBody().remove(ActionProcessor.CURRENT_OBJECT);
+        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean());
+        processor.process(oMsg);
+        assertEquals("", oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT));
     }
     
-    private class TestBean {
-        private String name = "Tom Fennelly";
+    public static class TestBean  implements java.io.Serializable
+    {
+		private static final long serialVersionUID = 1L;
+		private String name = "Tom Fennelly";
         private int age = 21; // hehehehe
         
         public int getAge() {

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -23,18 +23,22 @@
 package org.jboss.soa.esb.actions.converters;
 
 import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
 import java.util.List;
+import org.jboss.soa.esb.actions.routing.*;
 
+import junit.framework.TestCase;
+
 import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
 import org.jboss.soa.esb.actions.ActionProcessingException;
-import org.jboss.soa.esb.actions.converters.FileToByteArray;
-import org.jboss.soa.esb.actions.routing.ObjectToFileWriter;
-import org.jboss.soa.esb.helpers.KeyValuePair;
 
-import junit.framework.TestCase;
-
 /**
  * Unit tests for ObjectToFileWriter.
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
@@ -76,6 +80,8 @@
         properties.add(new KeyValuePair("file", file.getPath()));
         properties.add(new KeyValuePair("append", "true"));
 
+        try { new FileOutputStream(file).close();}
+        catch (IOException e) { }
         // Write something to file and check it was written..
         writeAndCheck(A_STRING, A_STRING);
         // And do it all again to make sure the contents are appended i.e. the file is not overwritten...
@@ -86,11 +92,15 @@
     private void writeAndCheck(Object objectToWrite, String expected) throws ConfigurationException, ActionProcessingException {
         // Use the ObjectToFileWriter to write something to file...
         ObjectToFileWriter fileWriter = new ObjectToFileWriter("ObjectToFileWriter-Test", properties);
-        fileWriter.process(objectToWrite);
+        Message oMsg = MessageFactory.getInstance().getMessage();
+        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,objectToWrite);
+        fileWriter.process(oMsg);
 
         // Use the FileToByteArray processor to read the file contents back...
-        FileToByteArray fileToByteArray = new FileToByteArray();
-        byte[] fileContent = (byte[])fileToByteArray.process(file);
+        oMsg = MessageFactory.getInstance().getMessage();
+        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,file);
+        new FileToByteArray().process(oMsg);
+        byte[] fileContent = (byte[])oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT);
         
         // Make sure the contents are as expected...
         String fileContentString = new String(fileContent);

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -29,7 +29,11 @@
 import org.jboss.soa.esb.actions.TestBean;
 import org.jboss.soa.esb.actions.converters.ObjectToXStream;
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.actions.ActionProcessor;
 
+
 import com.thoughtworks.xstream.XStream;
 import com.thoughtworks.xstream.io.xml.DomDriver;
 
@@ -47,7 +51,10 @@
         
         ObjectToXStream objectToXStream = new ObjectToXStream("TestBean-Serialiser", properties);
         
-        String xml = (String)objectToXStream.process(new TestBean("Tom", "1234"));
+        Message oMsg = MessageFactory.getInstance().getMessage();
+        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean("Tom", "1234"));
+        objectToXStream.process(oMsg);
+        String xml = (String)oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT);
         XStream xstream = new XStream(new DomDriver());
         TestBean bean = new TestBean();
 
@@ -65,7 +72,11 @@
         properties.add(new KeyValuePair("exclude-package", "false"));
         ObjectToXStream objectToXStream = new ObjectToXStream("TestBean-Serialiser", properties);
         
-        String xml = (String)objectToXStream.process(new TestBean("Tom", "1234"));
+        Message oMsg = MessageFactory.getInstance().getMessage();
+        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean("Tom", "1234"));
+        objectToXStream.process(oMsg);
+        String xml = (String)oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT);
+
         XStream xstream = new XStream(new DomDriver());
         TestBean bean = new TestBean();
 
@@ -82,7 +93,11 @@
         properties.add(new KeyValuePair("class-alias", "TomsClass"));
         ObjectToXStream objectToXStream = new ObjectToXStream("TestBean-Serialiser", properties);
         
-        String xml = (String)objectToXStream.process(new TestBean("Tom", "1234"));
+        Message oMsg = MessageFactory.getInstance().getMessage();
+        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean("Tom", "1234"));
+        objectToXStream.process(oMsg);
+        String xml = (String)oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT);
+
         XStream xstream = new XStream(new DomDriver());
         xstream.alias("TomsClass", TestBean.class);
         TestBean bean = new TestBean();
@@ -94,20 +109,3 @@
         assertEquals("1234", bean.getPhone());
     }
 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

Modified: labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/StringToLongConverter.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/StringToLongConverter.java	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/StringToLongConverter.java	2006-10-03 22:47:09 UTC (rev 6564)
@@ -24,6 +24,8 @@
 
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.BaseTestActionProcessor;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionProcessor;
 
 /**
  * StringToLong Converter Test Action Handler.
@@ -35,13 +37,19 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
      */
-    public Object process(Object payload) throws ActionProcessingException {
-        if(!(payload instanceof String)) {
+    public void process(Message message) throws ActionProcessingException {
+    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+        if(!(oCurr instanceof String)) {
             throw new ActionProcessingException("This action handler only accepts String object instances.");
         }
         
         System.out.println("StringToLongConverter");
-
-        return Long.parseLong((String)payload);
+        Object oResult = null;
+        try { oResult = new Long((String)oCurr); }
+        catch (Exception e)
+        { throw new ActionProcessingException(e); }
+        message.getBody().remove(ActionProcessor.CURRENT_OBJECT);
+        if (null!=oResult)
+        	message.getBody().add(ActionProcessor.CURRENT_OBJECT,oResult);
     }
 }

Modified: labs/jbossesb/workspace/eschifman/product/product.properties
===================================================================
--- labs/jbossesb/trunk/product/product.properties	2006-10-03 22:06:31 UTC (rev 6563)
+++ labs/jbossesb/workspace/eschifman/product/product.properties	2006-10-03 22:47:09 UTC (rev 6564)
@@ -4,5 +4,5 @@
 org.jboss.esb.deprecation=yes
 org.jboss.esb.optimize=off
 org.jboss.esb.alltests.build=yes
-org.jboss.esb.frominstall=no
-org.jboss.esb.jboss.home=.
+org.jboss.esb.frominstall=yes
+org.jboss.esb.jboss.home=C:/jboss-4.0.4.GA_patch1




More information about the jboss-svn-commits mailing list