[jboss-svn-commits] JBL Code SVN: r7649 - in labs/jbossesb/trunk/product: console/resources/WEB-INF/lib core/listeners/src/org/jboss/soa/esb/actions/converters lib/ext
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Nov 16 11:15:46 EST 2006
Author: tfennelly
Date: 2006-11-16 11:15:32 -0500 (Thu, 16 Nov 2006)
New Revision: 7649
Added:
labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-lang-2.1.jar
labs/jbossesb/trunk/product/lib/ext/milyn-smooks-javabean-0.1.1.jar
Modified:
labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java
Log:
added an extra jar - trying to get a demo running for Burr
Added: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-lang-2.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/console/resources/WEB-INF/lib/commons-lang-2.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java 2006-11-16 15:50:54 UTC (rev 7648)
+++ labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/converters/SmooksTransformer.java 2006-11-16 16:15:32 UTC (rev 7649)
@@ -24,11 +24,13 @@
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
+import java.io.CharArrayWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashMap;
import java.util.List;
import org.apache.log4j.Logger;
@@ -45,7 +47,10 @@
import org.jboss.soa.esb.services.transform.TransformationException;
import org.jboss.soa.esb.services.transform.TransformationService;
import org.milyn.SmooksStandalone;
+import org.milyn.container.standalone.StandaloneContainerRequest;
import org.milyn.device.ident.UnknownDeviceException;
+import org.milyn.javabean.BeanAccessor;
+import org.w3c.dom.Node;
/**
* Smooks Transformer.
@@ -60,6 +65,17 @@
public class SmooksTransformer implements TransformationService, ActionProcessor {
+ /**
+ * Key for storing/accessing any potential message Body bean HashMaps as populated
+ * by the Smooks Javabean Cartridge.
+ */
+ public static final String EXTRACTED_BEANS_HASH = "EXTRACTED_BEANS_HASH";
+ /**
+ * Config property key for setting a true/false flag to indicate whether or not
+ * a bean hashs should be set as the message payload before exiting the process method.
+ */
+ public static final String SET_BEANHASH_TO_PAYLOAD = "set-beanhash-to-payload";
+
public static final String FROM_EPR = "from-epr";
public static final String FROM_TYPE = "from-type";
public static final String TO_EPR = "to-epr";
@@ -72,6 +88,7 @@
private String defaultMessageFromEPR;
private String defaultMessageToType;
private String defaultMessageToEPR;
+ private boolean setPayloadToBeanHash = false;
/**
* Public constructor.
@@ -93,6 +110,7 @@
public SmooksTransformer(ConfigTree propertiesTree) throws ConfigurationException {
List<KeyValuePair> properties = propertiesTree.attributesAsList();
+ // Get the message flow properties...
defaultMessageFromType = KeyValuePair.getValue(FROM_TYPE, properties);
if(defaultMessageFromType != null && defaultMessageFromType.trim().equals("")) {
throw new ConfigurationException("Empty '" + FROM_TYPE + "' config attribute supplied.");
@@ -109,6 +127,9 @@
if(defaultMessageToEPR != null && defaultMessageToEPR.trim().equals("")) {
throw new ConfigurationException("Empty '" + TO_EPR + "' config attribute supplied.");
}
+
+ // Get the set-beanhash-to-payload property...
+ setPayloadToBeanHash = KeyValuePair.getBooleanValue(SET_BEANHASH_TO_PAYLOAD, properties, false);
if(smooks == null) {
initSmooks(properties);
@@ -144,13 +165,35 @@
messageBytes = ((String)payload).getBytes("UTF-8");
long start = System.currentTimeMillis();
- transformedMessage = smooks.filterAndSerialize(messageUseragent, new ByteArrayInputStream(messageBytes));
+ StandaloneContainerRequest request;
+ Node filterResult;
+ CharArrayWriter serializeBuffer = new CharArrayWriter(((String)payload).length());
+
+ // Filter and Serialise...
+ request = smooks.createRequest(messageUseragent, null);
+ filterResult = smooks.filter(request, new ByteArrayInputStream(messageBytes));
+ smooks.serialize(request, filterResult, serializeBuffer);
+
+ transformedMessage = serializeBuffer.toString();
+
+ // Javabean cartridge resources may have extract data from the message and populated some beans.
+ // Get them and stick them on the message - so they can be accessed by downstream actions...
+ HashMap beanHash = BeanAccessor.getBeans(request);
+ if(beanHash != null) {
+ message.getBody().add(EXTRACTED_BEANS_HASH, beanHash);
+ }
+
if(logger.isDebugEnabled()) {
long timeTaken = System.currentTimeMillis() - start;
logger.debug("Transformed message for useragent [" + messageUseragent + "]. Time taken: "
+ timeTaken + ". Message in:\n[" + payload.toString()+ "]. \nMessage out:\n[" + transformedMessage + "].");
}
- ActionUtils.setTaskObject(message,transformedMessage);
+
+ if(beanHash != null && setPayloadToBeanHash) {
+ ActionUtils.setTaskObject(message, beanHash);
+ } else {
+ ActionUtils.setTaskObject(message, transformedMessage);
+ }
} else {
String sClass = (null==payload) ? "<null>" : payload.getClass().getName();
logger.warn("String message types only supported. Input message was ["
Added: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-javabean-0.1.1.jar
===================================================================
(Binary files differ)
Property changes on: labs/jbossesb/trunk/product/lib/ext/milyn-smooks-javabean-0.1.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
More information about the jboss-svn-commits
mailing list