[jboss-svn-commits] JBL Code SVN: r6668 - in labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb: actions listeners
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Oct 6 18:34:07 EDT 2006
Author: estebanschifman
Date: 2006-10-06 18:34:05 -0400 (Fri, 06 Oct 2006)
New Revision: 6668
Modified:
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/listeners/AbstractListener.java
Log:
Keep 'before action' current object temporarily in Message to make both values
available to methods that might need either or both Objects (before/after action)
Modified: 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-06 18:34:05 UTC (rev 6667)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/ActionUtils.java 2006-10-06 22:34:05 UTC (rev 6668)
@@ -21,7 +21,8 @@
*/
package org.jboss.soa.esb.actions;
-import org.jboss.soa.esb.message.Message;;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.Body;
/**
* Contains utility methods for actions
@@ -30,7 +31,8 @@
*/
public class ActionUtils
{
- public static final String CURRENT_OBJECT="org.jboss.soa.esb.actions.current.object";
+ public static final String BEFORE_ACTION="org.jboss.soa.esb.actions.current.before";
+ public static final String CURRENT_OBJECT="org.jboss.soa.esb.actions.current.after";
/**
* Obtain current object from standard spot within message
@@ -42,6 +44,25 @@
return (null==message)? null : message.getBody().get(CURRENT_OBJECT);
}
/**
+ * Obtain previous 'current object' from standard spot within message
+ * @param message - from where to obtain the value
+ * @return Object stored in Body with key ActionProcessor.BEFORE_ACTION
+ */
+ public static Object currentBeforeAction(Message message)
+ {
+ return (null==message)? null : message.getBody().get(BEFORE_ACTION);
+ }
+ /**
+ * Copy 'current object' to a temporary holder within message
+ * @param message
+ */
+ public static void copyCurrentToPrevious(Message message)
+ {
+ Body body = message.getBody();
+ body.remove(BEFORE_ACTION);
+ body.add(BEFORE_ACTION,body.get(CURRENT_OBJECT));
+ }
+ /**
* Put current object in standard spot within message
* <br/>NULL values are not stored
* @param message - to operate on
@@ -55,5 +76,4 @@
message.getBody().add(CURRENT_OBJECT,obj);
return oRet;
}
-
}
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-06 18:34:05 UTC (rev 6667)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/listeners/AbstractListener.java 2006-10-06 22:34:05 UTC (rev 6668)
@@ -201,9 +201,11 @@
// The processing result of each action feeds into the processing of the next action...
currentProcessor = actionDefinition.getProcessor();
try {
+ ActionUtils.copyCurrentToPrevious(message);
message = currentProcessor.process(message);
} catch (Exception e) {
GpListener.notifyError(listenerConfig, e, currentProcessor.getErrorNotification(message));
+ message.getBody().remove(ActionUtils.BEFORE_ACTION);
throw e;
}
@@ -213,6 +215,7 @@
}
// Notify on all processors. May want to do this differently in the future i.e. more selectively ...
GpListener.notifyOK(listenerConfig, currentProcessor.getOkNotification(message));
+ message.getBody().remove(ActionUtils.BEFORE_ACTION);
// Setup the message for processing by the next processor...
}
More information about the jboss-svn-commits
mailing list