[jboss-svn-commits] JBL Code SVN: r6633 - in labs/jbossesb/trunk: product/core/listeners/src/org/jboss/soa/esb/actions product/core/listeners/src/org/jboss/soa/esb/actions/converters product/core/listeners/src/org/jboss/soa/esb/actions/routing product/core/listeners/src/org/jboss/soa/esb/actions/templates product/core/listeners/src/org/jboss/soa/esb/listeners product/core/listeners/tests/src/org/jboss/soa/esb/actions product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions qa/junit/src/org/jboss/soa/esb/listeners

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Oct 5 19:01:33 EDT 2006


Author: estebanschifman
Date: 2006-10-05 19:01:04 -0400 (Thu, 05 Oct 2006)
New Revision: 6633

Added:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java
Modified:
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractFileAction.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractSqlRowAction.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessor.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FtpDownloader.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FtpUploader.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformer.java
   labs/jbossesb/trunk/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/FileToByteArray.java
   labs/jbossesb/trunk/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/ObjectToXStream.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/FileCopier.java
   labs/jbossesb/trunk/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/ObjectToFileWriter.java
   labs/jbossesb/trunk/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/MockFileAction.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockSqlRowAction.java
   labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/AbstractListener.java
   labs/jbossesb/trunk/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/SmooksTransformerUnitTest.java
   labs/jbossesb/trunk/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/TestActionProcessor2.java
   labs/jbossesb/trunk/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/ToNowhereRouter.java
   labs/jbossesb/trunk/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/LongToDateConverter.java
   labs/jbossesb/trunk/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/ObjectToFileWriterUnitTest.java
   labs/jbossesb/trunk/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/StringToLongConverter.java
   labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessBanksResponse.java
   labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java
   labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java
   labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ToBankQuoteResponse.java
   labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/listeners/MessageBox.java
Log:
New class ActionUtils.java
Change void process(Message) to Message process(Message)
Change notifications (OK and ERR) to take Message argument

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractFileAction.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -50,9 +50,9 @@
      * @return The processing result.
      * @throws ActionProcessingException Exception during payload processing.
      */
-    public final void process(Message message) throws ActionProcessingException {
+    public final Message process(Message message) throws ActionProcessingException {
     	
-    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+    	Object oCurr = ActionUtils.currentFromMessage(message);
         if(!(oCurr instanceof File)) {
             throw new ActionProcessingException
             	("Message current object for processing by " + getClass().getName() 
@@ -61,10 +61,8 @@
         }
         
         // Call the implementing class to process the file message...
-        message.getBody().remove(CURRENT_OBJECT);
-        Object oResult = process((File)oCurr);
-        if (null!=oResult)
-        	message.getBody().add(CURRENT_OBJECT,oResult);
+        ActionUtils.putCurrentObject(message,process((File)oCurr));
+        return message;
     }
 
     /**

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/AbstractSqlRowAction.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -27,8 +27,8 @@
         logger = Logger.getLogger(getClass());
     }
 
-    public final void process(Message message) throws ActionProcessingException {
-    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+    public final Message process(Message message) throws ActionProcessingException {
+    	Object oCurr = ActionUtils.currentFromMessage(message);
         if (!(oCurr instanceof Map)) {
             throw new ActionProcessingException(
                     "Message object for processing by "
@@ -36,10 +36,8 @@
                             + " should have been preprocessed and supplied as a "
                             + Map.class.getName() + " instance.");
         }
-        message.getBody().remove(CURRENT_OBJECT);
-        Object oResult = process((Map)oCurr);
-        if (null!=oResult)
-        	message.getBody().add(CURRENT_OBJECT,oResult);
+        ActionUtils.putCurrentObject(message,process((Map)oCurr));
+        return message;
     } // ________________________________
 
     /**

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionProcessor.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -42,25 +42,25 @@
 public interface ActionProcessor {
     
 	
-	public static final String CURRENT_OBJECT="org.jboss.soa.esb.actions.current.object";
     /**
      * Perform the processing action on the message
      * @param message The message to be processed.
+     * @return Message - result of process
      * @throws ActionProcessingException Exception during payload processing.
      */
-    public void process(Message message) throws ActionProcessingException;
+    public Message process(Message message) throws ActionProcessingException;
 
     /**
      * Get the "OK" notification message for this processor.
      * @param message The message Object.
      * @return The OK message.
      */
-    public abstract Serializable getOkNotification(Object message);
+    public abstract Serializable getOkNotification(Message message);
 
     /**
      * Get the "Error" notification message for this processor.
      * @param message The message Object.
      * @return The Error message.
      */
-    public abstract Serializable getErrorNotification(Object message);
+    public abstract Serializable getErrorNotification(Message message);
 }

Added: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY 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 along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.soa.esb.actions;
+import org.jboss.soa.esb.message.Message;;
+
+/**
+ * Contains utility methods for actions 
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @since Version 4.0
+ */
+public class ActionUtils 
+{
+	public static final String CURRENT_OBJECT="org.jboss.soa.esb.actions.current.object";
+
+    /**
+     * Obtain current object from standard spot within message 
+     * @param message - from where to obtain the 'current object'
+     * @return Object stored in Body with key ActionProcessor.CURRENT_OBJECT
+     */
+    public static Object currentFromMessage(Message message)
+    {
+    	return (null==message)? null : message.getBody().get(CURRENT_OBJECT);
+    }
+    /**
+     * Put current object in standard spot within message
+     * <br/>NULL values are not stored 
+     * @param message - to operate on
+     * @param obj - Object to store - Won't be stored if &lt;null&gt;
+     * @return Object previous 'current object'
+     */
+    public static Object putCurrentObject(Message message, Object obj)
+    {
+    	Object oRet = message.getBody().remove(CURRENT_OBJECT);
+    	if (null!=obj)
+    		message.getBody().add(CURRENT_OBJECT,obj);
+    	return oRet;
+    }	
+
+}

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FtpDownloader.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FtpDownloader.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FtpDownloader.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -33,6 +33,7 @@
 import org.jboss.soa.esb.listeners.GpListener;
 import org.jboss.soa.esb.listeners.RemoteDirectoryPoller;
 import org.jboss.soa.esb.util.FtpClientUtil;
+import org.jboss.soa.esb.message.Message;
 
 public class FtpDownloader extends AbstractFileAction 
 {
@@ -85,12 +86,12 @@
 			else
 				_workFile.remoteRenameToOutput(_ftpClient);
 			
-			GpListener.notifyOK(_parms,getOkNotification(_workFile));
+			GpListener.notifyOK(_parms,getOkNotification(null));
 			return _workFile;
 		}
         catch (Exception e)
         {
-			GpListener.notifyError(_parms,e,getErrorNotification(_workFile));
+			GpListener.notifyError(_parms,e,getErrorNotification(null));
 			try { _workFile.remoteRenameToInput(_ftpClient); }
 			catch (Exception e2) { /* not much we can do if can't rename back to input */}
         	throw new ActionProcessingException(e);
@@ -103,7 +104,7 @@
 		}
 	} //________________________________
 
-	public Serializable getOkNotification(Object obj) 
+	public Serializable getOkNotification(Message message) 
 	{
 		return new StringBuilder()
 		.append(_workFile.getInputFile().toString())
@@ -111,7 +112,7 @@
 		.toString();
 	} //________________________________
 	
-	public Serializable getErrorNotification(Object obj) 
+	public Serializable getErrorNotification(Message message) 
 	{
 		return new StringBuilder()
 		.append("Failed to download ").append(_workFile.getInputFile().toString())

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FtpUploader.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FtpUploader.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/FtpUploader.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -33,6 +33,7 @@
 import org.jboss.soa.esb.listeners.DirectoryPoller;
 import org.jboss.soa.esb.listeners.GpListener;
 import org.jboss.soa.esb.util.FtpClientUtil;
+import org.jboss.soa.esb.message.Message;
 
 public class FtpUploader extends AbstractFileAction 
 {
@@ -76,12 +77,12 @@
 			else
 				_workFile.renameToOutputFile();
 			
-			GpListener.notifyOK(_parms,getOkNotification(_workFile));
+			GpListener.notifyOK(_parms,getOkNotification(null));
 			return _workFile;
 		}
         catch (Exception e)
         {
-			GpListener.notifyError(_parms,e,getErrorNotification(_workFile));
+			GpListener.notifyError(_parms,e,getErrorNotification(null));
 			_workFile.renameToError();
         	throw new ActionProcessingException(e);
 		}
@@ -93,7 +94,7 @@
 		}
 	} //________________________________
 
-	public Serializable getOkNotification(Object obj) 
+	public Serializable getOkNotification(Message message) 
 	{
 		return new StringBuilder()
 		.append(_workFile.getInputFile().toString())
@@ -102,7 +103,7 @@
 		.toString();
 	} //________________________________
 	
-	public Serializable getErrorNotification(Object obj) 
+	public Serializable getErrorNotification(Message message) 
 	{
 		return new StringBuilder()
 		.append("Failed to upload ").append(_workFile.getInputFile().toString())

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/SmooksTransformer.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -135,8 +135,8 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(Message message) throws ActionProcessingException {
-    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+    public Message process(Message message) throws ActionProcessingException {
+    	Object oCurr = ActionUtils.currentFromMessage(message);
     	try {
 	        if(oCurr instanceof String) {
 	            byte[] messageBytes = null;
@@ -158,9 +158,7 @@
 	            	logger.debug("Transformed message for useragent [" + messageUseragent + "]. Time taken: " 
 	            			+ timeTaken + ".  Message in:\n[" + oCurr.toString()+ "].  \nMessage out:\n[" + transformedMessage + "].");
 	            }
-	            message.getBody().remove(CURRENT_OBJECT);
-	            if (null!=transformedMessage)
-	            	message.getBody().add(CURRENT_OBJECT,transformedMessage);
+	            ActionUtils.putCurrentObject(message,transformedMessage);
 	        } else {
 	        	String sClass = (null==oCurr) ? "<null>" : oCurr.getClass().getName();
 	            logger.warn("String message types only supported.  Input message was [" 
@@ -169,19 +167,20 @@
     	} catch(Throwable thrown) {
     		throw new ActionProcessingException("Message transformation failed.", thrown);
     	}
+    	return message;
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(Message message) {
         return null;
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(Message message) {
         return null;
     }
 

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ByteArrayToString.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -30,6 +30,7 @@
 import org.jboss.soa.esb.actions.ActionProcessor;
 import org.jboss.soa.esb.helpers.KeyValuePair;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionUtils;
 
 /**
  * Byte Array to String processor.
@@ -59,36 +60,35 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(Message message) throws ActionProcessingException {
+    public Message process(Message message) throws ActionProcessingException {
         byte[] bytes;
         
         try {
-            bytes = (byte[])message.getBody().get(CURRENT_OBJECT);
+            bytes = (byte[])ActionUtils.currentFromMessage(message);
         } catch(ClassCastException e) {
             throw new ActionProcessingException("Message must be an array of bytes. Is " + message.getClass().getName());
         }
         
         try {
-        	String sResult = new String(bytes, encoding);
-        	message.getBody().remove(CURRENT_OBJECT);
-            message.getBody().add(CURRENT_OBJECT,sResult);
+        	ActionUtils.putCurrentObject(message,new String(bytes, encoding));
+        	return message;
         } catch (UnsupportedEncodingException e) {
             throw new ActionProcessingException("Unable to decode byte[] to String. Unsupported character encoding configuration: " + encoding, e);
         }
     }
 
     /* (non-Javadoc)
-     * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
+     * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(Message)
      */
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(Message message) {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
+     * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(Message)
      */
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(Message message) {
         // TODO Auto-generated method stub
         return null;
     }

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/FileToByteArray.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/FileToByteArray.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/FileToByteArray.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -33,6 +33,8 @@
 import org.jboss.soa.esb.actions.AbstractFileAction;
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.listeners.DirectoryPoller.WorkingFile;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionUtils;
 
 /**
  * File data to byte array reader {@link org.jboss.soa.esb.actions.ActionProcessor}.
@@ -83,15 +85,17 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
-        return "Successfully read file contents of " + ((WorkingFile)message).getInputFile() + " into byte array.";
+    public Serializable getOkNotification(Message message) {
+        return "Successfully read file contents of " 
+        + ((WorkingFile)ActionUtils.currentFromMessage(message)).getInputFile() + " into byte array.";
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
-        return "Failed to read file contents of " + ((WorkingFile)message).getInputFile() + " into byte array.";
+    public Serializable getErrorNotification(Message message) {
+        return "Failed to read file contents of " 
+        + ((WorkingFile)ActionUtils.currentFromMessage(message)).getInputFile() + " into byte array.";
     }
 
 }

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToCSVString.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -33,6 +33,7 @@
 import org.jboss.soa.esb.actions.ActionProcessor;
 import org.jboss.soa.esb.helpers.KeyValuePair;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionUtils;
 
 /**
  * Object to CSV String processor.
@@ -95,9 +96,9 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(Message message) throws ActionProcessingException {
+    public Message process(Message message) throws ActionProcessingException {
     	
-    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+    	Object oCurr = ActionUtils.currentFromMessage(message);
     	Class oCurrClass = (null==oCurr) ? null : oCurr.getClass(); 
         StringBuffer csv = new StringBuffer();
         boolean hasAppendStarted = false; // Have we appended a value yet?
@@ -127,22 +128,21 @@
                 logger.error("Exception calling bean method: " + methodName, e);
             }
         }
-        
-        message.getBody().remove(CURRENT_OBJECT);
-        message.getBody().add(CURRENT_OBJECT,csv.toString());
+        ActionUtils.putCurrentObject(message,csv.toString());
+        return message;
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(Message message) {
         return null;
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(Message message) {
         return null;
     }
 }

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/ObjectToXStream.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -30,6 +30,7 @@
 import org.jboss.soa.esb.actions.ActionProcessor;
 import org.jboss.soa.esb.helpers.KeyValuePair;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionUtils;
 
 import com.thoughtworks.xstream.XStream;
 
@@ -71,9 +72,9 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(Message message) throws ActionProcessingException {
+    public Message process(Message message) throws ActionProcessingException {
     	
-    	Object object = message.getBody().get(CURRENT_OBJECT);
+    	Object object = ActionUtils.currentFromMessage(message);
         XStream xstream = new XStream();
         
         if(classAlias == null) {
@@ -86,21 +87,21 @@
             xstream.alias(classAlias, object.getClass());
         }
         
-        message.getBody().remove(CURRENT_OBJECT);
-        message.getBody().add(CURRENT_OBJECT,xstream.toXML(object));
+        ActionUtils.putCurrentObject(message,xstream.toXML(object));
+        return message;
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(Message message) {
         return null;
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(Message message) {
         return null;
     }
 }

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/FileCopier.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/FileCopier.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/FileCopier.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -38,6 +38,7 @@
 import org.jboss.soa.esb.helpers.*;
 import org.jboss.soa.esb.listeners.DirectoryPoller.WorkingFile;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.actions.ActionUtils;
 
 /**
  * File copy action.
@@ -132,15 +133,15 @@
         return workingFile;
     } // __________________________________
 
-    public Serializable getOkNotification(Object message) {
-    	Object currentObject = ((Message)message).getBody().get(CURRENT_OBJECT);
+    public Serializable getOkNotification(Message message) {
+    	Object currentObject = ActionUtils.currentFromMessage(message);
 
     	return "File " + ((WorkingFile)currentObject).getInputFile().getAbsolutePath()
                 + " successfully copied to all destination";
     }
 
-    public Serializable getErrorNotification(Object message) {
-    	Object currentObject = ((Message)message).getBody().get(CURRENT_OBJECT);
+    public Serializable getErrorNotification(Message message) {
+    	Object currentObject = ActionUtils.currentFromMessage(message);
 
     	return "File " + ((WorkingFile)currentObject).getInputFile().getAbsolutePath()
                 + " to configured destination";

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/JMSRouter.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -44,6 +44,7 @@
 import org.jboss.soa.esb.common.Configuration;
 import org.jboss.soa.esb.helpers.AppServerContext;
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.actions.ActionUtils;
 
 /**
  * JSM Routing Action Processor.
@@ -97,9 +98,10 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(org.jboss.soa.esb.message.Message message) throws ActionProcessingException {
+    public org.jboss.soa.esb.message.Message 
+    	process(org.jboss.soa.esb.message.Message message) throws ActionProcessingException {
     	
-    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+    	Object oCurr = ActionUtils.currentFromMessage(message);
         if(!(oCurr instanceof Serializable)) {
             throw new ActionProcessingException("Cannot send Object [" + oCurr.getClass().getName() + "] to destination [" + queueSetup.queueName + "]. Object must be serializable.");
         }
@@ -125,6 +127,7 @@
                 setStringProperties(oMsg);
                 queueSetup.jmsProducer.send(oMsg);
             }
+            return message;
         } catch(Exception e) {
             String errorMessage = "Exception while sending message [" + oCurr + "] to destination [" + queueSetup.queueName + "].";
             logger.error(errorMessage, e);
@@ -147,14 +150,14 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(org.jboss.soa.esb.message.Message message) {
         return null;
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(org.jboss.soa.esb.message.Message message) {
         return null;
     }
 
@@ -195,4 +198,5 @@
             }
         }
     }
+
 }

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/routing/ObjectToFileWriter.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -35,6 +35,7 @@
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 import org.jboss.soa.esb.helpers.KeyValuePair;
 import org.jboss.soa.esb.message.Message;
 
@@ -106,7 +107,7 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(Message message) throws ActionProcessingException {
+    public Message process(Message message) throws ActionProcessingException {
         synchronized(file) {
             File outputFile = getOutputFile();
             FileOutputStream fileOutputStream = null;
@@ -119,7 +120,7 @@
                 throw new ActionProcessingException("Action " + actionName + " failed.  Unable to open output file " + outputFile.getAbsolutePath());
             }
             
-            Object oCurr = message.getBody().get(CURRENT_OBJECT);
+            Object oCurr = ActionUtils.currentFromMessage(message);
             try {
                 if(oCurr instanceof byte[]) {
                     fileOutputStream.write((byte[])oCurr);
@@ -136,7 +137,8 @@
                     logger.warn("Exception on closing file " + file.getAbsolutePath(), e);
                 }
             }
-        }        
+        }
+        return message;
     }
 
     /**
@@ -161,14 +163,14 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(Message message) {
         return null;
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(Message message) {
         return null;
     }
 

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockAction.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -5,6 +5,7 @@
 
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 import org.jboss.soa.esb.message.Message;
 
 
@@ -22,11 +23,12 @@
      */
     private static Logger logger = Logger.getLogger(MockAction.class);
 
-    public void process(Message message) {
-    	Object oCurr = message.getBody().get(CURRENT_OBJECT);
+    public Message process(Message message) {
+    	Object oCurr = ActionUtils.currentFromMessage(message);
     	if (null==oCurr)
     		oCurr = "null";
         logger.info("process was called with <<" + oCurr.toString() + ">>");
+        return message;
     } // ________________________________
 
     private SimpleDateFormat s_oTS = new SimpleDateFormat(
@@ -36,14 +38,16 @@
         return s_oTS.format(new java.util.Date(System.currentTimeMillis()));
     }
 
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(Message message) {
+    	Object oCurr = ActionUtils.currentFromMessage(message);
         return getStamp() + " Notif OK - <"
-                + ((null == message) ? "null" : message.toString()) + ">";
+                + ((null == oCurr) ? "null" : oCurr.toString()) + ">";
     } // ________________________________
 
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(Message message) {
+    	Object oCurr = ActionUtils.currentFromMessage(message);
         return getStamp() + " Notif ERROR - <"
-                + ((null == message) ? "null" : message.toString()) + ">";
+                + ((null == oCurr) ? "null" : message.toString()) + ">";
     } // ________________________________
 
 } // ____________________________________________________________________________

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockFileAction.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockFileAction.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockFileAction.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -7,6 +7,8 @@
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.actions.AbstractFileAction;
 import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.message.Message;
 
 /**
  * Use this class to tune your XML configurations
@@ -33,17 +35,17 @@
 	private String getStamp() 
 		{ return s_oTS.format(new java.util.Date(System.currentTimeMillis())); }
 
-	public Serializable getOkNotification(Object message)
+	public Serializable getOkNotification(Message message)
 	{
 		return getStamp()+" Notif OK - <"
-		+((null==message)?"null":message.toString())
+		+ActionUtils.currentFromMessage(message)
 		+">";
 	} //________________________________
 
-	public Serializable getErrorNotification(Object message)
+	public Serializable getErrorNotification(Message message)
 	{
 		return getStamp()+" Notif ERROR - <"
-		+((null==message)?"null":message.toString())
+		+ActionUtils.currentFromMessage(message)
 		+">";
 	} //________________________________
 	

Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockSqlRowAction.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockSqlRowAction.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/templates/MockSqlRowAction.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -7,7 +7,9 @@
 import java.util.Vector;
 
 import org.jboss.soa.esb.actions.AbstractSqlRowAction;
+import org.jboss.soa.esb.actions.ActionUtils;
 import org.jboss.soa.esb.helpers.KeyValuePair;
+import org.jboss.soa.esb.message.Message;
 
 /**
  * Use this class to tune your XML configurations
@@ -44,17 +46,17 @@
 	private String getStamp() 
 		{ return s_oTS.format(new java.util.Date(System.currentTimeMillis())); }
 
-	public Serializable getOkNotification(Object message)
+	public Serializable getOkNotification(Message message)
 	{
 		return getStamp()+" Notif OK - <"
-		+((null==message)?"null":message.toString())
+		+ActionUtils.currentFromMessage(message)
 		+">";
 	} //________________________________
 
-	public Serializable getErrorNotification(Object message)
+	public Serializable getErrorNotification(Message message)
 	{
 		return getStamp()+" Notif ERROR - <"
-		+((null==message)?"null":message.toString())
+		+ActionUtils.currentFromMessage(message)
 		+">";
 	} //________________________________
 } //____________________________________________________________________________

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/AbstractListener.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -29,12 +29,13 @@
 import org.jboss.soa.esb.actions.ActionDefinition;
 import org.jboss.soa.esb.actions.ActionDefinitionFactory;
 import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 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.
+ * Base abstract listener implementation.
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
  * @since Version 4.0
  */
@@ -119,17 +120,17 @@
 
     /**
      * Called on the listener implementation when pipeline processing error has occured.
-     * @param initialObject The object reference that was initialy supplied to the pipeline.
+     * @param initialMsg The message that was initialy supplied to the pipeline.
      * @param processor The processor raised the error.
      * @param error The error.
      */
-    protected abstract void processingError(Object initialObject, ActionProcessor processor, Throwable error);
+    protected abstract void processingError(Object initialMsg, ActionProcessor processor, Throwable error);
 
     /**
      * Called on the listener implementation when pipeline processing of a message is complete.
-     * @param initialObject The object reference that was initialy supplied to the pipeline.
+     * @param initialMsg The message that was initialy supplied to the pipeline.
      */
-    protected abstract void processingComplete(Object initialObject);
+    protected abstract void processingComplete(Object initialMsg);
     
     /**
      * Close the listener implemenation.
@@ -137,7 +138,7 @@
      * Allows the listener to perform relevant close/cleanup tasks.
      */
     protected abstract void close();
-
+    
     /**
      * Increment the active thread count.
      */
@@ -185,8 +186,7 @@
             
             try {
                 Message message = m_oMsgFactory.getMessage();
-                if (null!=initialObject)
-                	message.getBody().add(ActionProcessor.CURRENT_OBJECT,initialObject);
+                ActionUtils.putCurrentObject(message,initialObject);
 
                 // Run the message through each ActionProcessor...
                 for(String action : m_oActions) {
@@ -201,7 +201,7 @@
                     // The processing result of each action feeds into the processing of the next action...
                     currentProcessor = actionDefinition.getProcessor();
                     try {
-                        currentProcessor.process(message);
+                        message = currentProcessor.process(message);
                     } catch (Exception e) {
                         GpListener.notifyError(listenerConfig, e, currentProcessor.getErrorNotification(message));
                         throw e;

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/BaseTestActionProcessor.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -35,19 +35,19 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public abstract void process(Message message) throws ActionProcessingException;
+    public abstract Message process(Message message) throws ActionProcessingException;
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(Message message) {
         return "OK: " + message;
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(Message message) {
         return "ERROR: " + message;
     }
 

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/SmooksTransformerUnitTest.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -31,7 +31,6 @@
 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.
@@ -94,9 +93,9 @@
         SmooksTransformer transformer = new SmooksTransformer("trans", properties);
         
         Message oMsg = MessageFactory.getInstance().getMessage();
-        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,stringMessage);
-        transformer.process(oMsg);
-        return (String) oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT);
+        ActionUtils.putCurrentObject(oMsg,stringMessage);
+        oMsg = transformer.process(oMsg);
+        return (String) ActionUtils.currentFromMessage(oMsg);
     }
 
     private void assertConfigException(List<KeyValuePair> properties, String expectedException) {

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor1.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -26,7 +26,6 @@
 
 import org.jboss.soa.esb.helpers.KeyValuePair;
 import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.actions.ActionProcessor;
 
 /**
  * 
@@ -49,8 +48,8 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
      */
-    public void process(Message message) {
-    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
-        System.out.println("processAction: " + oCurr);
+    public Message process(Message message) {
+        System.out.println("processAction: " + ActionUtils.currentFromMessage(message));
+        return message;
     }
 }

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor2.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -22,7 +22,7 @@
 
 package org.jboss.soa.esb.actions;
 import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 
 /**
  * 
@@ -35,8 +35,8 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
      */
-    public void process(Message message) {
-    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
-        System.out.println("processAction: " + oCurr);
+    public Message process(Message message) {
+        System.out.println("processAction: " + ActionUtils.currentFromMessage(message));
+        return message;
     }
 }

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/TestActionProcessor3.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -22,7 +22,7 @@
 
 package org.jboss.soa.esb.actions;
 import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 
 /**
  * 
@@ -39,8 +39,8 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
      */
-    public void process(Message message) {
-    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
-        System.out.println("processAction: " + oCurr);
+    public Message process(Message message) {
+        System.out.println("processAction: " + ActionUtils.currentFromMessage(message));
+        return message;
     }
 }

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/ToNowhereRouter.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -25,7 +25,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 
 /**
  * 
@@ -39,10 +39,11 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
      */
-    public void process(Message msg) throws ActionProcessingException {
-        objects.add(msg.getBody().get(ActionProcessor.CURRENT_OBJECT));
+    public Message process(Message msg) throws ActionProcessingException {
+        objects.add(ActionUtils.currentFromMessage(msg));
                 
         System.out.println("ToNowhereRouter");
+        return msg;
     }
 
 }

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ByteArrayToStringUnitTest.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -30,7 +30,7 @@
 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.ActionUtils;
 
 import junit.framework.TestCase;
 
@@ -53,9 +53,9 @@
 
 		String sTest = "TestString";
 		Message msg = MessageFactory.getInstance().getMessage();
-		msg.getBody().add(ActionProcessor.CURRENT_OBJECT,sTest.getBytes());
+		ActionUtils.putCurrentObject(msg,sTest.getBytes());
 		byteArrayToString.process(msg);
-		String decodedBytes = (String)msg.getBody().get(ActionProcessor.CURRENT_OBJECT);
+		String decodedBytes = (String)ActionUtils.currentFromMessage(msg);
 		assertEquals(sTest, decodedBytes);
 	}
 }

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/LongToDateConverter.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -25,9 +25,9 @@
 import java.util.Date;
 
 import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.ActionUtils;
 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.
@@ -43,9 +43,9 @@
 	 * 
 	 * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
 	 */
-	public void process(Message message) throws ActionProcessingException
+	public Message process(Message message) throws ActionProcessingException
 	{
-		Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+		Object oCurr = ActionUtils.currentFromMessage(message);
 		if (!(oCurr instanceof Long))
 		{
 			throw new ActionProcessingException(
@@ -53,12 +53,9 @@
 		}
 		System.out.println("LongToDateConverter");
 
-        Object oResult = null;
-        try { oResult = new Date((Long)oCurr); }
+        try { ActionUtils.putCurrentObject(message,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);
+        return message;
 	}
 }

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToCSVStringUnitTest.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -31,8 +31,8 @@
 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.ActionUtils;
 
 /**
  * ObjectToCSVString unit tests.
@@ -48,33 +48,30 @@
         properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "name"));
         ObjectToCSVString processor = new ObjectToCSVString("ObjectToCSVString", properties);
         
-        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean());
-        processor.process(oMsg);
-        assertEquals("Tom Fennelly", oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT));
+		ActionUtils.putCurrentObject(oMsg,new TestBean());
+        oMsg = processor.process(oMsg);
+        assertEquals("Tom Fennelly", ActionUtils.currentFromMessage(oMsg));
 
         properties.clear();
         properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "name,age"));
         processor = new ObjectToCSVString("ObjectToCSVString", properties);
-        oMsg.getBody().remove(ActionProcessor.CURRENT_OBJECT);
-        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean());
+        ActionUtils.putCurrentObject(oMsg,new TestBean());
         processor.process(oMsg);
-        assertEquals("Tom Fennelly,21", oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT));
+        assertEquals("Tom Fennelly,21", ActionUtils.currentFromMessage(oMsg));
 
         properties.clear();
         properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "id,name,phone,age"));
         processor = new ObjectToCSVString("ObjectToCSVString", properties);
-        oMsg.getBody().remove(ActionProcessor.CURRENT_OBJECT);
-        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean());
+        ActionUtils.putCurrentObject(oMsg,new TestBean());
         processor.process(oMsg);
-        assertEquals(",Tom Fennelly,,21", oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT));
+        assertEquals(",Tom Fennelly,,21", ActionUtils.currentFromMessage(oMsg));
 
         properties.clear();
         properties.add(new KeyValuePair(ObjectToCSVString.BEAN_PROPERTIES_PROP, "id"));
         processor = new ObjectToCSVString("ObjectToCSVString", properties);
-        oMsg.getBody().remove(ActionProcessor.CURRENT_OBJECT);
-        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean());
+        ActionUtils.putCurrentObject(oMsg,new TestBean());
         processor.process(oMsg);
-        assertEquals("", oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT));
+        assertEquals("", ActionUtils.currentFromMessage(oMsg));
     }
     
     public static class TestBean  implements java.io.Serializable

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToFileWriterUnitTest.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -36,8 +36,8 @@
 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.ActionUtils;
 
 /**
  * Unit tests for ObjectToFileWriter.
@@ -96,14 +96,14 @@
         // Use the ObjectToFileWriter to write something to file...
         ObjectToFileWriter fileWriter = new ObjectToFileWriter("ObjectToFileWriter-Test", properties);
         Message oMsg = MessageFactory.getInstance().getMessage();
-        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,objectToWrite);
+        ActionUtils.putCurrentObject(oMsg,objectToWrite);
         fileWriter.process(oMsg);
 
         // Use the FileToByteArray processor to read the file contents back...
         oMsg = MessageFactory.getInstance().getMessage();
-        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,file);
+        ActionUtils.putCurrentObject(oMsg,file);
         new FileToByteArray().process(oMsg);
-        byte[] fileContent = (byte[])oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT);
+        byte[] fileContent = (byte[])ActionUtils.currentFromMessage(oMsg);
 
         // Make sure the contents are as expected...
         String fileContentString = new String(fileContent);

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/ObjectToXStreamUnitTest.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -31,7 +31,7 @@
 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.ActionUtils;
 
 
 import com.thoughtworks.xstream.XStream;
@@ -52,9 +52,9 @@
         ObjectToXStream objectToXStream = new ObjectToXStream("TestBean-Serialiser", properties);
         
         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);
+        ActionUtils.putCurrentObject(oMsg,new TestBean("Tom", "1234"));
+        oMsg = objectToXStream.process(oMsg);
+        String xml = (String)ActionUtils.currentFromMessage(oMsg);
         XStream xstream = new XStream(new DomDriver());
         TestBean bean = new TestBean();
 
@@ -73,9 +73,9 @@
         ObjectToXStream objectToXStream = new ObjectToXStream("TestBean-Serialiser", properties);
         
         Message oMsg = MessageFactory.getInstance().getMessage();
-        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean("Tom", "1234"));
+        ActionUtils.putCurrentObject(oMsg,new TestBean("Tom", "1234"));
         objectToXStream.process(oMsg);
-        String xml = (String)oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT);
+        String xml = (String)ActionUtils.currentFromMessage(oMsg);
 
         XStream xstream = new XStream(new DomDriver());
         TestBean bean = new TestBean();
@@ -94,9 +94,9 @@
         ObjectToXStream objectToXStream = new ObjectToXStream("TestBean-Serialiser", properties);
         
         Message oMsg = MessageFactory.getInstance().getMessage();
-        oMsg.getBody().add(ActionProcessor.CURRENT_OBJECT,new TestBean("Tom", "1234"));
+        ActionUtils.putCurrentObject(oMsg,new TestBean("Tom", "1234"));
         objectToXStream.process(oMsg);
-        String xml = (String)oMsg.getBody().get(ActionProcessor.CURRENT_OBJECT);
+        String xml = (String)ActionUtils.currentFromMessage(oMsg);
 
         XStream xstream = new XStream(new DomDriver());
         xstream.alias("TomsClass", TestBean.class);

Modified: labs/jbossesb/trunk/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-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/converters/StringToLongConverter.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -25,7 +25,7 @@
 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;
+import org.jboss.soa.esb.actions.ActionUtils;
 
 /**
  * StringToLong Converter Test Action Handler.
@@ -37,19 +37,16 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#processAction(java.lang.Object)
      */
-    public void process(Message message) throws ActionProcessingException {
-    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+    public Message process(Message message) throws ActionProcessingException {
+    	Object oCurr = ActionUtils.currentFromMessage(message);
         if(!(oCurr instanceof String)) {
             throw new ActionProcessingException("This action handler only accepts String object instances.");
         }
         
         System.out.println("StringToLongConverter");
-        Object oResult = null;
-        try { oResult = new Long((String)oCurr); }
+        try { ActionUtils.putCurrentObject(message,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);
+        return message;
     }
 }

Modified: labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessBanksResponse.java
===================================================================
--- labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessBanksResponse.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessBanksResponse.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -28,6 +28,7 @@
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 import org.jboss.soa.esb.common.Configuration;
 import org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteResponse;
 import org.jboss.soa.esb.samples.loanbroker.domain.Customer;
@@ -43,10 +44,10 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(Message message) throws ActionProcessingException {
+    public Message process(Message message) throws ActionProcessingException {
         BankQuoteResponse bankResponse;
 		
-    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+    	Object oCurr = ActionUtils.currentFromMessage(message);
 		try {
             bankResponse = (BankQuoteResponse) oCurr;
         } catch(ClassCastException e) {
@@ -82,6 +83,7 @@
     			ProcessEmail email = new ProcessEmail(customer);
     			email.sendEmail();
     		}
+    		return message;
         } catch (Exception e) {
             throw new ActionProcessingException("Exception processing quote.", e);
         }
@@ -90,14 +92,14 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object arg0) {
+    public Serializable getOkNotification(Message arg0) {
 		return "OK NOTIF: " + this.getClass().getSimpleName();
 	}
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object arg0) {
+    public Serializable getErrorNotification(Message arg0) {
 		return "ERR NOTIFICATION: "+this.getClass().getSimpleName();
 	}
 }

Modified: labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java
===================================================================
--- labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditRequest.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -28,6 +28,7 @@
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 import org.jboss.soa.esb.samples.loanbroker.creditagency.CreditCheckRequest;
 import org.jboss.soa.esb.samples.loanbroker.creditagency.CreditCheckResponseNotification;
 import org.jboss.soa.esb.message.Message;
@@ -39,9 +40,9 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(Message message) throws ActionProcessingException {
+    public Message process(Message message) throws ActionProcessingException {
     	
-    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+    	Object oCurr = ActionUtils.currentFromMessage(message);
 		logger.info("processObject was called with <<" +oCurr.toString()+">>");
 		
         CreditCheckRequest creditRequest;
@@ -57,22 +58,21 @@
 		//create our Response						     
 
 		Object oResult = new CreditCheckResponseNotification(creditRequest.requestID, creditScore, creditRequest.customerID);
-		message.getBody().remove(ActionProcessor.CURRENT_OBJECT);
-		if (null!=oResult)
-			message.getBody().add(ActionProcessor.CURRENT_OBJECT,oResult);
+		ActionUtils.putCurrentObject(message,oResult);
+		return message;
 	}
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(Message message) {
         return "OK NOTIFICATION: "+this.getClass();
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(Message message) {
         return "ERR NOTIFICATION: "+this.getClass();
     }	
 }

Modified: labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java
===================================================================
--- labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ProcessCreditResponse.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -27,6 +27,7 @@
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 import org.jboss.soa.esb.common.Configuration;
 import org.jboss.soa.esb.samples.loanbroker.QuoteRequest;
 import org.jboss.soa.esb.samples.loanbroker.adapters.CustomerAdapter;
@@ -46,9 +47,9 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(Message message) throws ActionProcessingException {
+    public Message process(Message message) throws ActionProcessingException {
 
-    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+    	Object oCurr = ActionUtils.currentFromMessage(message);
 		logger.info("processObject was called with <<" + oCurr + ">>");
 		
         CreditCheckResponseNotification response;
@@ -76,10 +77,8 @@
     //		m_oLogger.info(this.getClass().getSimpleName() + " -- Customer2 TEST DEBUG customer2: \n" + customer2.toDTO().toXml());
     		
             QuoteRequest quote = CustomerAdapter.bankQuoteFromCustomer(customer);
-            
-            message.getBody().remove(ActionProcessor.CURRENT_OBJECT);
-            if (null!=quote)
-            	message.getBody().add(ActionProcessor.CURRENT_OBJECT,quote);
+            ActionUtils.putCurrentObject(message,quote);
+            return message;
         } catch(Exception e) {
             throw new ActionProcessingException("Failed to process credit check response.", e);
         }
@@ -88,14 +87,14 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(Message message) {
         return "OK NOTIF: " + this.getClass();
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(Message message) {
         return "ERR NOTIFICATION: "+this.getClass();
     }
 }

Modified: labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ToBankQuoteResponse.java
===================================================================
--- labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ToBankQuoteResponse.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/product/samples/trailblazer/bankloanbrokerdemo/java/src/org/jboss/soa/esb/samples/loanbroker/actions/ToBankQuoteResponse.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -29,6 +29,7 @@
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 import org.jboss.soa.esb.helpers.DomElement;
 import org.jboss.soa.esb.helpers.KeyValuePair;
 import org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteResponse;
@@ -54,11 +55,11 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(Message messageIn) throws ActionProcessingException {
+    public Message process(Message messageIn) throws ActionProcessingException {
         BankQuoteResponse bankResponse;
         String message;
 
-    	Object oCurr = messageIn.getBody().get(ActionProcessor.CURRENT_OBJECT);
+    	Object oCurr = ActionUtils.currentFromMessage(messageIn);
         try {
             message = (String)oCurr;
         } catch(ClassCastException e) {
@@ -78,9 +79,8 @@
             throw new ActionProcessingException("Unsupported Transformation: " + actionName);
         }
         
-        messageIn.getBody().remove(ActionProcessor.CURRENT_OBJECT);
-        if (null!=bankResponse)
-        	messageIn.getBody().add(ActionProcessor.CURRENT_OBJECT,bankResponse);
+        ActionUtils.putCurrentObject(messageIn,bankResponse);
+        return messageIn;
     }
 
     private BankQuoteResponse fromXML(String message) throws ActionProcessingException {
@@ -116,7 +116,7 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
+    public Serializable getOkNotification(Message message) {
         // TODO Auto-generated method stub
         return null;
     }
@@ -124,7 +124,7 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
+    public Serializable getErrorNotification(Message message) {
         // TODO Auto-generated method stub
         return null;
     }

Modified: labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/listeners/MessageBox.java
===================================================================
--- labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/listeners/MessageBox.java	2006-10-05 22:48:33 UTC (rev 6632)
+++ labs/jbossesb/trunk/qa/junit/src/org/jboss/soa/esb/listeners/MessageBox.java	2006-10-05 23:01:04 UTC (rev 6633)
@@ -31,6 +31,7 @@
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionProcessor;
+import org.jboss.soa.esb.actions.ActionUtils;
 import org.jboss.soa.esb.message.Message;
 
 /**
@@ -46,13 +47,13 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#process(java.lang.Object)
      */
-    public void process(Message message) throws ActionProcessingException {
-    	Object oCurr = message.getBody().get(ActionProcessor.CURRENT_OBJECT);
+    public Message process(Message message) throws ActionProcessingException {
+    	Object oCurr = ActionUtils.currentFromMessage(message);
     	if (null==oCurr)
     		oCurr="<null>";
         logger.info("MessageBox received message: " + message);
         messages.add(oCurr);
-        
+        return message;
     }
 
     public static void assertMessageCount(int count, long maxWait) {
@@ -76,15 +77,15 @@
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getOkNotification(java.lang.Object)
      */
-    public Serializable getOkNotification(Object message) {
-        return "OK" + message;
+    public Serializable getOkNotification(Message message) {
+        return "OK" + ActionUtils.currentFromMessage(message);
     }
 
     /* (non-Javadoc)
      * @see org.jboss.soa.esb.actions.ActionProcessor#getErrorNotification(java.lang.Object)
      */
-    public Serializable getErrorNotification(Object message) {
-        return "Error" + message;
+    public Serializable getErrorNotification(Message message) {
+        return "Error" + ActionUtils.currentFromMessage(message);
     }
 
 }




More information about the jboss-svn-commits mailing list