[jboss-svn-commits] JBL Code SVN: r27332 - in labs/jbossesb/trunk/product: docs and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 30 07:38:45 EDT 2009
Author: tfennelly
Date: 2009-06-30 07:38:45 -0400 (Tue, 30 Jun 2009)
New Revision: 27332
Modified:
labs/jbossesb/trunk/product/docs/ProgrammersGuide.odt
labs/jbossesb/trunk/product/ivy.xml
labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksInstanceManager.java
labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/smooks/SmooksAction.java
labs/jbossesb/trunk/product/services/smooks/src/test/java/org/jboss/soa/esb/smooks/SmooksActionUnitTest.java
Log:
https://jira.jboss.org/jira/browse/JBESB-2578
Smooks v1.2
Modified: labs/jbossesb/trunk/product/docs/ProgrammersGuide.odt
===================================================================
(Binary files differ)
Modified: labs/jbossesb/trunk/product/ivy.xml
===================================================================
--- labs/jbossesb/trunk/product/ivy.xml 2009-06-30 11:08:45 UTC (rev 27331)
+++ labs/jbossesb/trunk/product/ivy.xml 2009-06-30 11:38:45 UTC (rev 27332)
@@ -68,23 +68,32 @@
<dependency org="beanshell" name="bsh" rev="1.3.0"/>
<!-- Smooks dependencies -->
- <dependency org="org.milyn" name="milyn-commons" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-core" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-javabean" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-edisax-parser" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-magger" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-css" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-csv" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-edi" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-json" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-misc" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-routing" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-scripting" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-servlet" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-smooks-templating" rev="1.1.1"/>
- <dependency org="org.milyn" name="milyn-tinak" rev="1.1.1"/>
- <dependency org="org.freemarker" name="freemarker" rev="2.3.9"/>
- <dependency org="jackson" name="jackson-lgpl" rev="0.9.3"/>
+ <dependency org="org.milyn" name="milyn-commons" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-core" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-javabean" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-edisax-parser" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-magger" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-calc" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-css" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-csv" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-edi" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-ejc" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-persistence" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-json" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-misc" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-persistence" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-routing" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-rules" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-scripting" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-servlet" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-templating" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-smooks-validation" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-scribe-hibernate" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-scribe-ibatis" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-scribe-jpa" rev="1.2"/>
+ <dependency org="org.milyn" name="milyn-tinak" rev="1.2"/>
+ <dependency org="org.freemarker" name="freemarker" rev="2.3.11"/>
+ <dependency org="org.codehaus.jackson" name="jackson-core-lgpl" rev="1.0.1"/>
<dependency org="javax.jcr" name="jcr" rev="1.0"/>
Modified: labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksInstanceManager.java
===================================================================
--- labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksInstanceManager.java 2009-06-30 11:08:45 UTC (rev 27331)
+++ labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksInstanceManager.java 2009-06-30 11:38:45 UTC (rev 27332)
@@ -84,11 +84,6 @@
try {
Smooks instance = new Smooks(configurationSourceURI);
- // We need to disable the resource config store's shutdown hook
- // because the ESB container lifecycle handles this through
- // calling the destroy method...
- instance.getApplicationContext().getStore().removeShutdownHook();
-
return instance;
} catch (SAXException e) {
throw new SmooksException("Invalid Smooks resource config '" + configurationSourceURI + "'.", e);
Modified: labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/smooks/SmooksAction.java
===================================================================
--- labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/smooks/SmooksAction.java 2009-06-30 11:08:45 UTC (rev 27331)
+++ labs/jbossesb/trunk/product/services/smooks/src/main/java/org/jboss/soa/esb/smooks/SmooksAction.java 2009-06-30 11:38:45 UTC (rev 27332)
@@ -34,6 +34,7 @@
import org.milyn.container.plugin.PayloadProcessor;
import org.milyn.container.plugin.ResultType;
import org.milyn.event.report.HtmlReportGenerator;
+import org.apache.commons.lang.ArrayUtils;
import java.io.IOException;
import java.io.Serializable;
@@ -56,7 +57,7 @@
* <pre>
* <property name="get-payload-location" value="input" />
* <property name="set-payload-location" value="ouput" />
- * <property name="excludeNonSerializables" value="false" />
+ * <property name="mappedContextObjects" value="object1,object2" />
* <property name="resultType" value="STRING" />
* <property name="reportPath" value="/tmp/smooks-report.html" />
* <property name="messageProfile" value="fromServiceA" />
@@ -64,26 +65,29 @@
*
* Description of configuration properties:
* <ul>
- * <li><i>smooksConfig</i> - the Smooks configuration file. Can be a path on the file system or on the classpath.
- * <li><i>get-payload-location</i> - the body location which contains the object to be transformed. See {@link MessagePayloadProxy}.
- * <li><i>set-payload-location</i> - the body location where the transformed object will be placed. See {@link MessagePayloadProxy}.
- * <li><i>excludeNonSerializables</i> - if true, non serializable attributes from the Smooks ExecutionContext will no be included. Default is true.
+ * <li><i>smooksConfig</i> - the Smooks configuration file. Can be a path on the file system or on the classpath.</li>
+ * <li><i>get-payload-location</i> - the body location which contains the object to be transformed. See {@link MessagePayloadProxy}.</li>
+ * <li><i>set-payload-location</i> - the body location where the transformed object will be placed. See {@link MessagePayloadProxy}.</li>
+ * <li><i>mappedContextObjects</i> - comma separated list of Smooks {@link ExecutionContext} objects to be mapped into the {@link #EXECUTION_CONTEXT_ATTR_MAP_KEY} Map on the ESB Message. Default is an empty list.
+ * See <a href="#exposing-smooks-exec">Exposing the Smooks ExecutionContext to other ESB Actions</a>.</li>
* <li><i>resultType</i> - type of result expected from Smooks ("STRING", "BYTES", "JAVA", "NORESULT"). Default is "STRING". For more
- * on specifying and controlling the Smooks filtering result, see <a href="#specify-result">Specifying the Source and Result Types</a>.
+ * on specifying and controlling the Smooks filtering result, see <a href="#specify-result">Specifying the Source and Result Types</a>.</li>
* <li><i>javaResultBeanId</i> - specifies the Smooks bean context beanId to be mapped as the result when the resultType is "JAVA". If not specified,
- * the whole bean context bean Map is mapped as the result.
- * <li><i>reportPath</i> - specifies the path and file name for generating a Smooks Execution Report. This is a development tool.
+ * the whole bean context bean Map is mapped as the result.</li>
+ * <li><i>reportPath</i> - specifies the path and file name for generating a Smooks Execution Report. This is a development tool.</li>
* <li><i>messageProfile</i> - specifies the default message "profile" name to be used in {@link Smooks#createExecutionContext(String) creation of the Smooks ExecutionContext}.
- * See <a href="#profiling">Message Profiling</a>.
+ * See <a href="#profiling">Message Profiling</a>.</li>
* </ul>
*
- * <h3>Exposing the Smooks {@link ExecutionContext} to other ESB Actions</h3>
- * After Smooks has performed the filtering operation on the message payload, it maps the contents of the
+ * <h3 id="exposing-smooks-exec">Exposing the Smooks {@link ExecutionContext} to other ESB Actions</h3>
+ * After Smooks has performed the filtering operation on the message payload, it can map the contents of the
* {@link ExecutionContext} onto a Map on the the ESB message, making it available to other actions in the ESB.
* This Map can be accessed by using the {@link #EXECUTION_CONTEXT_ATTR_MAP_KEY} key as follows:
* <pre>
* message.getBody().get( SmooksAction.EXECUTION_CONTEXT_ATTR_MAP_KEY );
* </pre>
+ * The {@link ExecutionContext} objects to be mapped must be specified in the "mappedContextObjects" action property.
+ * The objects must also be {@link Serializable}.
*
* <h3 id="specify-result">Specifying the Source and Result Types</h3>
* From the ESB Message data type, this action is able to automatically determine the type of
@@ -123,9 +127,9 @@
private MessagePayloadProxy payloadProxy;
- private boolean excludeNonSerializables;
-
private String reportPath;
+
+ private String[] mappedContextObjects;
// public
@@ -135,10 +139,6 @@
try
{
smooks = new Smooks(smooksConfig);
- // We need to disable the resource config store's shutdown hook
- // because the ESB container lifecycle handles this through
- // calling the destroy method...
- smooks.getApplicationContext().getStore().removeShutdownHook();
}
catch (Exception e)
{
@@ -165,9 +165,15 @@
}
payloadProxy = new MessagePayloadProxy( configTree );
- excludeNonSerializables = Boolean.valueOf( configTree.getAttribute( "excludeNonSerializables", "true" ) );
reportPath = configTree.getAttribute("reportPath");
+
+ String mappedContextObjectsConfig = configTree.getAttribute("mappedContextObjects");
+ if(mappedContextObjectsConfig != null) {
+ mappedContextObjects = mappedContextObjectsConfig.split(",");
+ } else {
+ mappedContextObjects = new String[0];
+ }
}
/**
@@ -224,29 +230,25 @@
/**
* Will return a Map containing only the Serializable objects
- * that exist in the passed-in Map if {@link #excludeNonSerializables} is true.
+ * listed in the "mappedContextObjects" action property.
*
* @param smooksAttribuesMap - Map containing attributes from the Smooks ExecutionContext
- * @return Map - Map containing only the Serializable objects from the passed-in map.
+ * @return Map - Map containing only the Serializable ExecutionContext objects listed in
+ * the "mappedContextObjects" action property.
*/
@SuppressWarnings( "unchecked" )
protected Map getSerializableObjectsMap( final Map smooksAttribuesMap )
{
- if ( !excludeNonSerializables )
- return smooksAttribuesMap;
+ Map smooksExecutionContextMap = new HashMap();
- Map smooksExecutionContextMap = new HashMap();
+ for(String mappedContextObject : mappedContextObjects) {
+ Object contextObject = smooksAttribuesMap.get(mappedContextObject);
+ if(contextObject instanceof Serializable) {
+ smooksExecutionContextMap.put( mappedContextObject, contextObject );
+ }
+ }
- Set<Map.Entry> s = smooksAttribuesMap.entrySet();
- for (Map.Entry me : s)
- {
- Object value = me.getValue();
- if( value instanceof Serializable )
- {
- smooksExecutionContextMap.put( me.getKey(), value );
- }
- }
- return smooksExecutionContextMap;
+ return smooksExecutionContextMap;
}
}
\ No newline at end of file
Modified: labs/jbossesb/trunk/product/services/smooks/src/test/java/org/jboss/soa/esb/smooks/SmooksActionUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/services/smooks/src/test/java/org/jboss/soa/esb/smooks/SmooksActionUnitTest.java 2009-06-30 11:08:45 UTC (rev 27331)
+++ labs/jbossesb/trunk/product/services/smooks/src/test/java/org/jboss/soa/esb/smooks/SmooksActionUnitTest.java 2009-06-30 11:38:45 UTC (rev 27332)
@@ -109,29 +109,16 @@
Map map = new Hashtable();
map.put( "test1", "testing" );
map.put( "test2", new NonSerializableClass() );
- SmooksAction action = new SmooksAction( config );
+
+ ConfigTree configTree = createConfigTree();
+ configTree.setAttribute("mappedContextObjects", "test1,test2");
+ SmooksAction action = new SmooksAction( configTree );
Map serializableObjects = action.getSerializableObjectsMap( map );
assertTrue( serializableObjects.containsKey( "test1" ));
assertTrue( !serializableObjects.containsKey( "test2" ));
}
-
- @Test
- @SuppressWarnings("unchecked")
- public void getExecutionContextAttributesWithSerializable() throws ConfigurationException, ActionProcessingException
- {
- Map map = new Hashtable();
- map.put( "test1", "testing" );
- map.put( "test2", new NonSerializableClass() );
- config.setAttribute( "excludeNonSerializables", "false" );
- SmooksAction action = new SmooksAction( config );
-
- Map serializableObjects = action.getSerializableObjectsMap( map );
-
- assertTrue( serializableObjects.containsKey( "test1" ));
- assertTrue( serializableObjects.containsKey( "test2" ));
- }
@Test
public void ConstructorResultType() throws ConfigurationException, ActionProcessingException
More information about the jboss-svn-commits
mailing list