[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>
  * &lt;property name="get-payload-location" value="input" /&gt;
  * &lt;property name="set-payload-location" value="ouput" /&gt;
- * &lt;property name="excludeNonSerializables" value="false" /&gt;
+ * &lt;property name="mappedContextObjects" value="object1,object2" /&gt;
  * &lt;property name="resultType" value="STRING" /&gt;
  * &lt;property name="reportPath" value="/tmp/smooks-report.html" /&gt;
  * &lt;property name="messageProfile" value="fromServiceA" /&gt;
@@ -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