[jboss-svn-commits] JBL Code SVN: r12161 - in labs/jbossesb/workspace/dbevenius/product: core/listeners/src/org/jboss/soa/esb/actions/soap and 43 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat May 26 12:26:27 EDT 2007


Author: beve
Date: 2007-05-26 12:26:26 -0400 (Sat, 26 May 2007)
New Revision: 12161

Added:
   labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/BusinessRulesProcessor.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/MessageFilter.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/SOAPClientUnitTest.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Header.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Order.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/OrderItem.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/soap-message-01.xml
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/soapclient-config-01.xml
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/ESBConfigUtil.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/ESBConfigUtilUnitTest.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/jboss-esb.xml
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/soap/
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/message/mapping/
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/message/mapping/ObjectMapper.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/OGNLUtilsUnitTest.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/ognl-test-01.xml
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/MessageMapperTest.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/TestPojo.java
   labs/jbossesb/workspace/dbevenius/product/lib/ext/wstx-lgpl-3.2.1.jar
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/jaxb-api.jar
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/jboss-jaxws.jar
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/jbossws-core.jar
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/jaxrpc-mapping.xml
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/webservices.xml
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wsdl/
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wsdl/LoanBrokerService.wsdl
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wstools-config.xml
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/loanbroker/LoanRequester.java
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerInterface.java
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerWSService.java
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/BusinessProcessorRoutingUnitTest.java
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/BusinessProcessorUnitTest.java
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/Order.java
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBPricingRoutingRules.drl
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBPricingRules.drl
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBRules-XPath.drl
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBRules.drl
Removed:
   labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/ContentBasedFilter.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Header.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Order.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/OrderItem.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/ESBConfigUtilUnitTest.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/jboss-esb.xml
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/message/mapping/ObjectMapper.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/OGNLUtilsUnitTest.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/ognl-test-01.xml
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/MessageMapperTest.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/TestPojo.java
   labs/jbossesb/workspace/dbevenius/product/core/services/rules/
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/build.properties
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/axis.jar
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/commons-discovery.jar
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/milyn-smooks-csv-0.1.jar
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/opencsv-1.6.jar
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS-wsdl
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS-wsdl.xml
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS.wsdl
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/from__loanbroker.cdrl
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/jboss-web.xml
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/smooks-cdr.lst
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/to____jmsbank.cdrl
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wsdl/LoanBrokerService.wsdl
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/generated/
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/JBossESBRules-XPath.drl
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/JBossESBRules.drl
   labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/DomUtils.java
   labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/OGNLUtils.java
Modified:
   labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/ContentBasedRouter.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/SystemPrintln.java
   labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/soap/SOAPClient.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/DefaultJmsReplyToEpr.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/dom/YADOMUtil.java
   labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/util/ClassUtil.java
   labs/jbossesb/workspace/dbevenius/product/core/services/src/org/jboss/soa/esb/services/routing/cbr/ContentBasedRouter.java
   labs/jbossesb/workspace/dbevenius/product/docs/AdministrationGuide.odt
   labs/jbossesb/workspace/dbevenius/product/docs/ProgrammersGuide.odt
   labs/jbossesb/workspace/dbevenius/product/docs/services/MessageTransformation.odt
   labs/jbossesb/workspace/dbevenius/product/docs/services/Registry.odt
   labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/conf/base-build.xml
   labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/fun_cbr/build.xml
   labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/fun_cbr/deployment.xml
   labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_bpel/readme.txt
   labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_jbossws_adapter_01/readme.txt
   labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_war1/build.xml
   labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_war1/readme.txt
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/build.xml
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/jsp/index.jsp
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/web.xml
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/loanbroker/LoanBroker.java
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerWS.java
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/WebCustomer.java
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/esb/conf/deployment.xml
   labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/readme.txt
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/build.xml
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/META-INF/jboss-esb.xml
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouterUnitTest.java
   labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/soa/esb/services/routing/cbr/ContentBasedRoutingUnitTest.java
   labs/jbossesb/workspace/dbevenius/product/services/soapui-client/build.xml
   labs/jbossesb/workspace/dbevenius/product/services/soapui-client/pom.xml
   labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java
   labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBean.java
Log:
Merge from main 12094:12160

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/BusinessRulesProcessor.java (from rev 12160, labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/BusinessRulesProcessor.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/BusinessRulesProcessor.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/BusinessRulesProcessor.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ */
+
+/**
+ * Routes the Message argument to a fixed list of services ([category,name]) 
+ * @author kstam at jboss.com
+ * @since Version 4.2
+ */
+package org.jboss.soa.esb.actions;
+
+import java.util.List;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.registry.RegistryException;
+import org.jboss.soa.esb.services.routing.MessageRouterException;
+
+public class BusinessRulesProcessor extends ContentBasedRouter
+{
+	public BusinessRulesProcessor(ConfigTree config) throws ConfigurationException, RegistryException, MessageRouterException
+	{
+        super(config);
+	}
+	/** 
+     * Inspect the content of the message using a rule set 
+     * Router the message to one or more destinations, using the ContentBasedRouter to figure out
+     * to which destinations it is going to be routed too. 
+     *  
+     * @param message
+     * @return Message
+     * @throws ActionProcessingException
+	 */
+	public Message process(Message message) throws ActionProcessingException
+	{
+        try {
+            List<Object> objectList = _mapper.createObjectList(message, _messagePathList);
+            _cbr.route(_ruleSet, _ruleLanguage, _ruleReload, message, objectList);
+        } catch (MessageRouterException mre) {
+            throw new ActionProcessingException(mre.getMessage(), mre);
+        }
+		return message;
+	}
+    
+    
+}

Deleted: labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/ContentBasedFilter.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/ContentBasedFilter.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/ContentBasedFilter.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,83 +0,0 @@
-/*
- * 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.
- */
-
-/**
- * Routes the Message argument to a fixed list of services ([category,name]) 
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
- * @since Version 4.0
- */
-package org.jboss.soa.esb.actions;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.MalformedEPRException;
-import org.jboss.soa.esb.couriers.CourierException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.services.registry.RegistryException;
-import org.jboss.soa.esb.services.routing.MessageRouter;
-import org.jboss.soa.esb.services.routing.MessageRouterException;
-
-public class ContentBasedFilter extends ContentBasedRouter
-{
-	public static final String ROUTE_TO_TAG = "route-to";
-	private Logger log = Logger.getLogger(this.getClass());
-
-	public ContentBasedFilter(ConfigTree config) throws ConfigurationException, RegistryException, MessageRouterException
-	{
-        super(config);
-	}
-	/** 
-     * Inspect the content of the message using a rule set 
-     * Router the message to one or more destinations, using the ContentBasedRouter to figure out
-     * to which destinations it is going to be routed too. 
-     *  
-     * @param message
-     * @return Message
-     * @throws MalformedEPRException
-     * @throws RegistryException
-     * @throws CourierException
-     * @throws MessageRouterException
-	 */
-	public Message process(Message message) throws MalformedEPRException, RegistryException, CourierException, MessageRouterException
-	{
-        List<String> destinations = _cbr.route(_ruleSet, _ruleLanguage, _ruleReload, message);
-        Collection<String[]> outgoingDestinations = new ArrayList<String[]>();
-		for (String destination : destinations) {
-            if (_destinations.containsKey(destination)) {
-                outgoingDestinations.add(_destinations.get(destination));
-            }
-		}
-        if (outgoingDestinations.size()>0) {
-            MessageRouter.deliverMessages(outgoingDestinations, message); 
-        } else if (destinations.size() > 0) {
-            log.debug("No destinations where found, the Message is filter"); 
-        }
-		return message;
-	}
-    
-    
-}

Modified: labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/ContentBasedRouter.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/ContentBasedRouter.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/ContentBasedRouter.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -19,12 +19,6 @@
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
-
-/**
- * Routes the Message argument to a fixed list of services ([category,name]) 
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
- * @since Version 4.0
- */
 package org.jboss.soa.esb.actions;
 
 import java.util.ArrayList;
@@ -35,75 +29,96 @@
 
 import org.apache.log4j.Logger;
 import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.MalformedEPRException;
-import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.mapping.ObjectMapper;
 import org.jboss.soa.esb.services.registry.Registry;
 import org.jboss.soa.esb.services.registry.RegistryException;
 import org.jboss.soa.esb.services.registry.RegistryFactory;
 import org.jboss.soa.esb.services.routing.MessageRouter;
 import org.jboss.soa.esb.services.routing.MessageRouterException;
 import org.jboss.soa.esb.services.routing.cbr.ContentBasedRouterFactory;
-
-public class ContentBasedRouter
+/**
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @author kstam at jboss.com
+ *
+ */
+public class ContentBasedRouter extends AbstractActionPipelineProcessor
 {
 	public static final String ROUTE_TO_TAG = "route-to";
+    public static final String OBJECT_PATH_TAG = "object-path";
+    public static final String OBJECT_PATH     = "path";
     public static final String DEFAULT_CBR_CLASS = "org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter";
 	private Logger log = Logger.getLogger(this.getClass());
 
 	public ContentBasedRouter(ConfigTree config) throws ConfigurationException, RegistryException, MessageRouterException
 	{
 		_config = config;
-		checkMyParms();
-		_registry = RegistryFactory.getRegistry();
+        checkMyParms();
+        _registry = RegistryFactory.getRegistry();
         _cbr = ContentBasedRouterFactory.getRouter(_cbrClass);
+        _mapper = new ObjectMapper();
 	}
+    
+    public void initialise() 
+    {    
+        if (_destinations.size() < 1)
+        {
+            _logger
+                    .warn("Missing or empty destination list - This action class won't have any effect");
+        }
+    }
 	/** Router the message to one or more destinations, using the ContentBasedRouter to figure out
      *  to which destinations it is going to be routed too.
      *  
      * @param message
      * @return Message
-     * @throws MalformedEPRException
-     * @throws RegistryException
-     * @throws CourierException
-     * @throws MessageRouterException
+     * @throws ActionProcessingException
 	 */
-	public Message process(Message message) throws MalformedEPRException, RegistryException, CourierException, MessageRouterException
+	public Message process(Message message) throws ActionProcessingException
 	{
-        List<String> destinations = _cbr.route(_ruleSet, _ruleLanguage, _ruleReload, message);
-        Collection<String[]> outgoingDestinations = new ArrayList<String[]>();
-		for (String destination : destinations) {
-            if (_destinations.containsKey(destination)) {
-                outgoingDestinations.add(_destinations.get(destination));
+        try {
+            List<Object> objectList = _mapper.createObjectList(message, _messagePathList);
+            List<String> destinations = _cbr.route(_ruleSet, _ruleLanguage, _ruleReload, message, objectList);
+            Collection<String[]> outgoingDestinations = new ArrayList<String[]>();
+    		for (String destination : destinations) {
+                if (_destinations.containsKey(destination)) {
+                    outgoingDestinations.add(_destinations.get(destination));
+                }
+    		}
+            if (outgoingDestinations.size()>0) {
+                MessageRouter.deliverMessages(outgoingDestinations, message); 
+            } else if (destinations.size() > 0) {
+                log.error("The rule destination(s) " + destinations 
+                        + " are  not in found in the destination names in the configuration "
+                        + _destinations.keySet() + ". Please fix your configuration.");
+               
+                MessageRouter.deliverMessage(MessagePersister.SERVICE_CATEGORY
+                                           , MessagePersister.SERVICE_NAME
+                                           , message);
             }
-		}
-        if (outgoingDestinations.size()>0) {
-            MessageRouter.deliverMessages(outgoingDestinations, message); 
-        } else if (destinations.size() > 0) {
-            log.error("The rule destination(s) " + destinations 
-                    + " are  not in found in the destination names in the configuration "
-                    + _destinations.keySet() + ". Please fix your configuration.");
-           
-            MessageRouter.deliverMessage(MessagePersister.SERVICE_CATEGORY
-                                       , MessagePersister.SERVICE_NAME
-                                       , message);
+    		return message;
+        } catch (MessageRouterException mre) {
+            throw new ActionProcessingException(mre.getMessage(), mre);
         }
-		return message;
 	}
     
     /** 
      * @deprecated no longer needed, leaving this in here for backwards compatibility,
      * use the default "process".
      * */
-    public Message split(Message message) throws MalformedEPRException, RegistryException, CourierException, MessageRouterException
+    public Message split(Message message) throws ActionProcessingException
     {
         log.warn("Depricated, please use the default 'process' method in your configuration");
         return process(message);
     }
     
-
+    /**
+     * Reading the piece of configTree specific to the CBR, and setting the configuration.
+     * 
+     * @throws ConfigurationException
+     */
 	protected void checkMyParms() throws ConfigurationException
 	{
         if (_config.getAttribute(ListenerTagNames.RULE_SET_TAG)==null) {
@@ -128,27 +143,35 @@
         
 		_destinations = new HashMap<String, String[]>();
 		ConfigTree[] destList = _config.getChildren(ROUTE_TO_TAG);
-        
-		if (null == destList || destList.length < 1)
-		{
-			_logger
-					.warn("Missing or empty destination list - This action class won't have any effect");
-			return;
-		}
-		for (ConfigTree curr : destList) {
-			try
-			{
-                String key = curr.getRequiredAttribute(ListenerTagNames.DESTINATION_NAME_TAG);
-				String category = curr.getAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG, "");
-				String name = curr.getRequiredAttribute(ListenerTagNames.SERVICE_NAME_TAG);
-				_destinations.put(key, new String[] { category, name });
-			}
-			catch (Exception e)
-			{
-				throw new ConfigurationException(
-						"Problems with destination list", e);
-			}
+		if (destList!=null) {
+    		for (ConfigTree curr : destList) {
+    			try
+    			{
+                    String key = curr.getRequiredAttribute(ListenerTagNames.DESTINATION_NAME_TAG);
+    				String category = curr.getAttribute(ListenerTagNames.SERVICE_CATEGORY_NAME_TAG, "");
+    				String name = curr.getRequiredAttribute(ListenerTagNames.SERVICE_NAME_TAG);
+    				_destinations.put(key, new String[] { category, name });
+    			}
+    			catch (Exception e)
+    			{
+    				throw new ConfigurationException(
+    						"Problems with destination list", e);
+    			}
+            }
         }
+        _messagePathList = new ArrayList<String>();
+        ConfigTree[] objectList = _config.getChildren(OBJECT_PATH_TAG);
+        if (objectList!=null) {
+            for (ConfigTree curr : objectList) {
+                try {
+                    String objectPath = curr.getRequiredAttribute(OBJECT_PATH);
+                    _messagePathList.add(objectPath);
+                } catch (Exception e) {
+                    throw new ConfigurationException(
+                            "Problems with object path list", e);
+                }
+            }
+        }
         
 	}
 
@@ -163,6 +186,10 @@
     protected String _ruleLanguage;
     
     protected boolean _ruleReload;
+    
+    protected List <String> _messagePathList; 
+    
+    protected ObjectMapper _mapper;
 
 	protected Registry _registry;
     

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/MessageFilter.java (from rev 12160, labs/jbossesb/trunk/product/core/listeners/src/org/jboss/soa/esb/actions/MessageFilter.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/MessageFilter.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/MessageFilter.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,83 @@
+/*
+ * 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.
+ */
+
+/**
+ * Routes the Message argument to a fixed list of services ([category,name]) 
+ * @author kstam at redhat.com
+ * @since Version 4.2
+ */
+package org.jboss.soa.esb.actions;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.registry.RegistryException;
+import org.jboss.soa.esb.services.routing.MessageRouter;
+import org.jboss.soa.esb.services.routing.MessageRouterException;
+
+public class MessageFilter extends ContentBasedRouter
+{
+	public static final String ROUTE_TO_TAG = "route-to";
+	private Logger log = Logger.getLogger(this.getClass());
+
+	public MessageFilter(ConfigTree config) throws ConfigurationException, RegistryException, MessageRouterException
+	{
+        super(config);
+	}
+	/** 
+     * Inspect the content of the message using a rule set 
+     * Router the message to one or more destinations, using the ContentBasedRouter to figure out
+     * to which destinations it is going to be routed too. 
+     *  
+     * @param message
+     * @return Message
+     * @throws ActionProcessingException
+	 */
+	public Message process(Message message) throws ActionProcessingException
+	{
+        try {
+            List<Object> objectList = _mapper.createObjectList(message, _messagePathList);
+            List<String> destinations = _cbr.route(_ruleSet, _ruleLanguage, _ruleReload, message, objectList);
+            Collection<String[]> outgoingDestinations = new ArrayList<String[]>();
+    		for (String destination : destinations) {
+                if (_destinations.containsKey(destination)) {
+                    outgoingDestinations.add(_destinations.get(destination));
+                }
+    		}
+            if (outgoingDestinations.size()>0) {
+                MessageRouter.deliverMessages(outgoingDestinations, message); 
+            } else if (destinations.size() > 0) {
+                log.debug("No destinations where found, the Message is filtered"); 
+            }
+        } catch (MessageRouterException mre) {
+            throw new ActionProcessingException(mre.getMessage(), mre);
+        }
+		return message;
+	}
+    
+    
+}

Modified: labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/SystemPrintln.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/SystemPrintln.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/SystemPrintln.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -33,65 +33,95 @@
 
 /**
  * Simple action that prints out the message contents using System.println.
+ * 
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
  */
-public class SystemPrintln extends AbstractActionPipelineProcessor {
+public class SystemPrintln extends AbstractActionPipelineProcessor
+{
 
 	private String printlnMessage;
-	
+
 	/**
 	 * Public constructor.
-	 * @param config Configuration.
+	 * 
+	 * @param config
+	 *            Configuration.
 	 */
-	public SystemPrintln(ConfigTree config) {
-		printlnMessage = config.getAttribute("message", "** 'message' attribute not set **");
+	public SystemPrintln(ConfigTree config)
+	{
+		printlnMessage = config.getAttribute("message",
+				"** 'message' attribute not set **");
 	}
-	
-	/* (non-Javadoc)
+
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.jboss.soa.esb.actions.ActionProcessor#process(org.jboss.soa.esb.message.Message)
 	 */
-	public Message process(Message message) throws ActionProcessingException {
+	public Message process(Message message) throws ActionProcessingException
+	{
 		Object messageObject = ActionUtils.getTaskObject(message);
-		
-                System.out.println(printlnMessage + ": ");
-		if(messageObject instanceof byte[]) {
-			System.out.println("[" + format(new String((byte[])messageObject)) + "].");
-		} else {
-			if (messageObject!=null) System.out.println("[" + format(messageObject.toString()) + "].");
-            for (int i=0; i<message.getAttachment().getUnnamedCount(); i++) {
-                Message attachedMessage = (Message) message.getAttachment().itemAt(i);
-                System.out.println("attachment " + i + ": [" + new String(attachedMessage.getBody().getByteArray()) + "].");
-            }
+
+		System.out.println(printlnMessage + ": ");
+		if (messageObject instanceof byte[])
+		{
+			System.out.println("[" + format(new String((byte[]) messageObject))
+					+ "].");
 		}
-		
+		else
+		{
+			if (messageObject != null)
+				System.out.println("[" + format(messageObject.toString())
+						+ "].");
+			for (int i = 0; i < message.getAttachment().getUnnamedCount(); i++)
+			{
+				Message attachedMessage = (Message) message.getAttachment()
+						.itemAt(i);
+				System.out.println("attachment " + i + ": ["
+						+ new String(attachedMessage.getBody().getByteArray())
+						+ "].");
+			}
+		}
+
 		return message;
 	}
-	
-	private static TransformerFactory factory = TransformerFactory.newInstance();
 
+	private static TransformerFactory factory = TransformerFactory
+			.newInstance();
+
 	/**
 	 * Attempt to format the output.
-	 * @param output Output to be formatted.
+	 * 
+	 * @param output
+	 *            Output to be formatted.
 	 * @return Output.
 	 */
-	private String format(String output) {
-		StreamSource source = new StreamSource(new ByteArrayInputStream(output.getBytes()));
+	private String format(String output)
+	{
+		StreamSource source = new StreamSource(new ByteArrayInputStream(output
+				.getBytes()));
 		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
-		
-		try {
+
+		try
+		{
 			Transformer transformer;
-			
+
 			// There's a bug in Java 5 re this code (formatting).
-			// See http://forum.java.sun.com/thread.jspa?threadID=562510&start=0 and it explains the
+			// See http://forum.java.sun.com/thread.jspa?threadID=562510&start=0
+			// and it explains the
 			// whys of the following code.
 			transformer = factory.newTransformer();
-			transformer.setOutputProperty(OutputKeys.INDENT, "yes");			
-			transformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount", "4");
-			transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+			transformer.setOutputProperty(
+					"{http://xml.apache.org/xalan}indent-amount", "4");
+			transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
+					"yes");
 			transformer.transform(source, new StreamResult(outStream));
-			
+
 			return outStream.toString();
-		} catch (Exception e) {
+		}
+		catch (Exception e)
+		{
 			return output;
 		}
 	}

Modified: labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/soap/SOAPClient.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/soap/SOAPClient.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/src/org/jboss/soa/esb/actions/soap/SOAPClient.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -3,24 +3,63 @@
 import org.jboss.soa.esb.actions.AbstractActionPipelineProcessor;
 import org.jboss.soa.esb.actions.ActionProcessingException;
 import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.actions.ActionLifecycleException;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.util.ClassUtil;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.internal.soa.esb.soap.OGNLUtils;
 import org.apache.log4j.Logger;
 import org.apache.commons.httpclient.methods.PostMethod;
 import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpStatus;
+import org.w3c.dom.*;
+import org.xml.sax.SAXException;
+import org.xml.sax.InputSource;
 
 import javax.management.*;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.namespace.QName;
 import java.util.Map;
+import java.util.LinkedHashMap;
 import java.io.IOException;
+import java.io.StringReader;
 
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+import com.thoughtworks.xstream.io.xml.QNameMap;
+import com.thoughtworks.xstream.io.xml.StaxDriver;
+import com.thoughtworks.xstream.io.HierarchicalStreamReader;
+
 /**
  * SOAP Client action processor.
  * <p/>
  * Uses the SOAPUI Client Service to construct an populate a message
  * for the target service.  This action then routes that message to the service.
  *
+ * <h2>SOAP Request Message Construction</h2>
+ * The message parameters are supplied in one of 2 ways:
+ * <ol>
+ *      <li>As a {@link Map} instance set on the <i>default body location</i> (Message.getBody().add(Map))</li>
+ *      <li>As a {@link Map} instance set on in a <i>named body location</i> (Message.getBody().add(String, Map)),
+ *          where the name of that body location is specified as the value of the "paramsLocation" action property.
+ *      </li>
+ * </ol>
+ * The parameter {@link Map} itself can also be populated in one of 2 ways:
+ * <ol>
+ *      <li>With a set of Objects that are accessed (for SOAP message parameters) using the
+ *          <a href="http://www.ognl.org/">OGNL</a></li> framework.  More on the use of OGNL below.
+ *      <li>With a set of String based key-value pairs(&lt;String, String&gt;), where the
+ *          key is an OGNL expression identifying the SOAP parameter to be populated with
+ *          the key's value.  More on the use of OGNL below.
+ *      </li>
+ * </ol>
+ * 
+ *
+ *
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
  */
 public class SOAPClient extends AbstractActionPipelineProcessor {
@@ -30,17 +69,25 @@
     private String operation;
     private String paramsLocation;
     private String responseLocation;
+    private boolean responseAsOgnlMap;
     private MBeanServer mbeanServer;
     private ObjectName serviceName;
     private String[] buildRequestSig = new String[] {String.class.getName(), String.class.getName(), Map.class.getName()};
     private String[] getEndpointSig = new String[] {String.class.getName()};
+    private static DocumentBuilderFactory docBuilderFactory = createDocumentBuilderFactory();
+    private XStream responseXStreamDeserialzer;
+    private QNameMap responseXStreamQNameMap = new QNameMap();
 
     public SOAPClient(ConfigTree config) throws ConfigurationException {
         wsdl = config.getRequiredAttribute("wsdl");
         operation = config.getRequiredAttribute("operation");
         paramsLocation = config.getAttribute("paramsLocation");
         responseLocation = config.getAttribute("responseLocation");
-        mbeanServer = MBeanServerLocator.locate();
+        responseAsOgnlMap = "true".equalsIgnoreCase(config.getAttribute("responseAsOgnlMap"));
+        ConfigTree[] xstreamAliases = config.getChildren("alias");
+        if(xstreamAliases != null && xstreamAliases.length != 0) {
+            configureXStreamDeserializer(xstreamAliases);
+        }
 
         try {
             serviceName = new ObjectName("jboss.esb:service=SoapUIClientService");
@@ -49,6 +96,11 @@
         }
     }
 
+    public void initialise() throws ActionLifecycleException {
+        super.initialise();
+        mbeanServer = MBeanServerLocator.locate();
+    }
+
     public Message process(final Message message) throws ActionProcessingException {
         Map params;
 
@@ -69,12 +121,8 @@
         String request = buildRequestMessage(params);
         String response = invokeEndpoint(request);
 
-        if(responseLocation != null) {
-            message.getBody().add(responseLocation, response);
-        } else {
-            message.getBody().add(response);
-            ActionUtils.setTaskObject(message, response);
-        }
+        // And process the response into the message...
+        processResponse(message, response);
 
         return message;
     }
@@ -103,14 +151,19 @@
         }
     }
 
-    private String invokeEndpoint(String request) throws ActionProcessingException {
-        PostMethod post = new PostMethod(getEndpoint());
+    protected String invokeEndpoint(String request) throws ActionProcessingException {
+        String endpoint = getEndpoint();
+        PostMethod post = new PostMethod(endpoint);
 
         post.setRequestHeader("SOAPAction", operation);
         post.setRequestBody(request);
         HttpClient httpclient = new HttpClient();
         try {
             int result = httpclient.executeMethod(post);
+            if(result != HttpStatus.SC_OK) {
+                // TODO: We need to do more here!!
+                logger.warn("Received status code '" + result + "' on HTTP SOAP (POST) request to '" + endpoint + "'.");
+            }
             return post.getResponseBodyAsString();
         } catch (IOException e) {
             throw new ActionProcessingException("Failed to invoke SOAP Endpoint: '" + getEndpoint() + " ' - '" + operation + "'.", e);
@@ -118,4 +171,136 @@
             post.releaseConnection();
         }
     }
+
+    /**
+     * Process the SOAP response into the ESB Message instance.
+     * @param message The ESB Message.
+     * @param response The SOAP response.
+     * @throws ActionProcessingException Error processing the response.
+     */
+    protected void processResponse(Message message, String response) throws ActionProcessingException {
+        Object responseObject;
+
+        if(responseXStreamDeserialzer != null) {
+            responseObject = applyXStreamResponseDeserializer(response);
+        } else if(responseAsOgnlMap) {
+            responseObject = populateResponseOgnlMap(response);
+        } else {
+            // Otherwise, the response Object is the raw SOAP String...
+            responseObject = response;
+        }
+
+        if(responseLocation != null) {
+            message.getBody().add(responseLocation, responseObject);
+        } else {
+            message.getBody().add(responseObject);
+            ActionUtils.setTaskObject(message, responseObject);
+        }
+    }
+
+    private Object applyXStreamResponseDeserializer(String response) {
+        StaxDriver driver = new StaxDriver(responseXStreamQNameMap);
+        HierarchicalStreamReader responseReader = driver.createReader(new StringReader(response));
+
+        // Move inside the soap body element...
+        responseReader.moveDown();
+        while(!responseReader.getNodeName().toLowerCase().endsWith("body")) {
+            responseReader.moveUp();
+            responseReader.moveDown();
+        }
+        responseReader.moveDown();
+
+        return responseXStreamDeserialzer.unmarshal(responseReader);
+    }
+
+    private Map<String, String> populateResponseOgnlMap(String response) throws ActionProcessingException {
+        Map map = new LinkedHashMap<String, String>();
+
+        try {
+            DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
+            Document doc = docBuilder.parse(new InputSource(new StringReader(response)));
+            Element graphRootElement = getGraphRootElement(doc.getDocumentElement());
+
+            populateResponseOgnlMap(map, graphRootElement);
+        } catch (ParserConfigurationException e) {
+            throw new ActionProcessingException("Unexpected DOM Parser configuration error.", e);
+        } catch (SAXException e) {
+            throw new ActionProcessingException("Error parsing SOAP response.", e);
+        } catch (IOException e) {
+            throw new ActionProcessingException("Unexpected error reading SOAP response.", e);
+        }
+
+        return map;
+    }
+
+    private void populateResponseOgnlMap(Map<String, String> map, Element element) {
+        NodeList children = element.getChildNodes();
+        int childCount = children.getLength();
+
+        // If the element has a solitary TEXT child, add the text value
+        // against a map key of the elements OGNL expression value.
+        if(childCount == 1) {
+            Node childNode = children.item(0);
+            if(childNode.getNodeType() == Node.TEXT_NODE) {
+                String ognl = OGNLUtils.getOGNLExpression(element);
+                map.put(ognl, childNode.getTextContent());
+                return;
+            }
+        }
+
+        // So the element doesn't contain a solitary TEXT node.  Drill down...
+        for(int i = 0; i < childCount; i++) {
+            Node childNode = children.item(i);
+            if(childNode.getNodeType() == Node.ELEMENT_NODE) {
+                populateResponseOgnlMap(map, (Element)childNode);
+            }
+        }
+    }
+
+    private Element getGraphRootElement(Element element) {
+        String ognl = OGNLUtils.getOGNLExpression(element);
+
+        if(ognl != null && !ognl.equals("")) {
+            return element;
+        }
+
+        NodeList children = element.getChildNodes();
+        int childCount = children.getLength();
+        for(int i = 0; i < childCount; i++) {
+            Node node = children.item(i);
+            if(node.getNodeType() == Node.ELEMENT_NODE) {
+                Element graphRootElement = getGraphRootElement((Element)node);
+                if(graphRootElement != null) {
+                    return graphRootElement;
+                }
+            }
+        }
+
+        return null;
+    }
+
+    private static DocumentBuilderFactory createDocumentBuilderFactory() {
+        DocumentBuilderFactory factory = factory = DocumentBuilderFactory.newInstance();
+        
+        factory.setNamespaceAware(true);
+        factory.setExpandEntityReferences(true);
+
+        return factory;
+    }
+
+    private void configureXStreamDeserializer(ConfigTree[] xstreamAliases) throws ConfigurationException {
+        responseXStreamDeserialzer = new XStream();
+        for(ConfigTree xstreamAlias : xstreamAliases) {
+            String aliasName = xstreamAlias.getRequiredAttribute("name");
+            String aliasTypeName = xstreamAlias.getRequiredAttribute("class");
+            String namespace = xstreamAlias.getRequiredAttribute("namespace");
+
+            try {
+                Class aliasType = ClassUtil.forName(aliasTypeName, getClass());
+                responseXStreamQNameMap.registerMapping(new QName(namespace, aliasName), aliasType);
+            } catch (ClassNotFoundException e) {
+                throw new ConfigurationException("Invalid SOAP response deserializer config. XStream alias type '" + aliasTypeName + "' not found.");
+            }
+        }
+    }
 }

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/SOAPClientUnitTest.java (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/SOAPClientUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/SOAPClientUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/SOAPClientUnitTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,103 @@
+package org.jboss.soa.esb.actions.soap;
+
+import junit.framework.TestCase;
+import org.jboss.soa.esb.util.ESBConfigUtil;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.soap.beans.Order;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.internal.soa.esb.util.StreamUtils;
+
+import java.util.Map;
+
+/**
+ * @author
+ */
+public class SOAPClientUnitTest extends TestCase {
+
+    private ESBConfigUtil configUtil = new ESBConfigUtil(getClass().getResourceAsStream("soapclient-config-01.xml"));
+
+    public void xtest_XStream_ResponseProcessing() throws ConfigurationException, ActionProcessingException {
+        ConfigTree actionConfig = configUtil.getActionConfig("OrderNotificationService", "soapui-client-action-01");
+        SOAPClient soapClient = new SOAPClient(actionConfig);
+        Message message = MessageFactory.getInstance().getMessage();
+
+        soapClient.processResponse(message, response_01);
+        assertEquals(true, message.getBody().get());
+
+        soapClient.processResponse(message, response_02);
+        assertEquals(false, message.getBody().get());
+    }
+
+    public void test_OgnlMap_ResponseProcessing_1() throws ConfigurationException, ActionProcessingException {
+        ConfigTree actionConfig = configUtil.getActionConfig("OrderNotificationService", "soapui-client-action-02");
+        SOAPClient soapClient = new SOAPClient(actionConfig);
+        Message message = MessageFactory.getInstance().getMessage();
+
+        soapClient.processResponse(message, response_01);
+        Map<String, String> response = (Map<String, String>) message.getBody().get();
+        assertEquals("true", response.get("customerOrderAck"));
+
+        soapClient.processResponse(message, response_02);
+        response = (Map<String, String>) message.getBody().get();
+        assertEquals("false", response.get("customerOrderAck"));
+    }
+
+    public void xtest_OgnlMap_ResponseProcessing_2() throws ConfigurationException, ActionProcessingException {
+        ConfigTree actionConfig = configUtil.getActionConfig("OrderNotificationService", "soapui-client-action-05");
+        SOAPClient soapClient = new SOAPClient(actionConfig);
+        String responseString = new String(StreamUtils.readStream(getClass().getResourceAsStream("soap-message-01.xml")));
+        Message message = MessageFactory.getInstance().getMessage();
+
+        soapClient.processResponse(message, responseString);
+        Order order = (Order) message.getBody().get();
+        //assertEquals();
+        System.out.println("sss");
+    }
+
+    public void test_OgnlMap_ResponseProcessing_3() throws ConfigurationException, ActionProcessingException {
+        ConfigTree actionConfig = configUtil.getActionConfig("OrderNotificationService", "soapui-client-action-02");
+        SOAPClient soapClient = new SOAPClient(actionConfig);
+        String responseString = new String(StreamUtils.readStream(getClass().getResourceAsStream("soap-message-01.xml")));
+        Message message = MessageFactory.getInstance().getMessage();
+
+        soapClient.processResponse(message, responseString);
+        Map<String, String> responseMap = (Map<String, String>) message.getBody().get();
+
+        assertEquals("{customerOrder.orderheader.customerName=Tom Fennelly, customerOrder.items[0].partNumber=1, customerOrder.items[0].description=desc-1, customerOrder.items[0].quantity=1, customerOrder.items[0].price=1.1, customerOrder.items[0].extensionAmount=1, customerOrder.items[1].partNumber=2, customerOrder.items[1].description=desc-2, customerOrder.items[1].quantity=2, customerOrder.items[1].price=2.2, customerOrder.items[1].extensionAmount=2}", responseMap.toString());
+    }
+
+    public void test_No_ResponseProcessing() throws ConfigurationException, ActionProcessingException {
+        ConfigTree actionConfig = configUtil.getActionConfig("OrderNotificationService", "soapui-client-action-03");
+        SOAPClient soapClient = new SOAPClient(actionConfig);
+        Message message = MessageFactory.getInstance().getMessage();
+
+        soapClient.processResponse(message, response_01);
+        assertEquals(response_01, message.getBody().get());
+    }
+
+    public void test_ResponseLocation() throws ConfigurationException, ActionProcessingException {
+        ConfigTree actionConfig = configUtil.getActionConfig("OrderNotificationService", "soapui-client-action-04");
+        SOAPClient soapClient = new SOAPClient(actionConfig);
+        Message message = MessageFactory.getInstance().getMessage();
+
+        soapClient.processResponse(message, response_01);
+        assertEquals(response_01, message.getBody().get("myTestLocation"));
+    }
+
+    private static String response_01 =
+            "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
+            "\t<soapenv:Header/>\n" +
+            "\t<soapenv:Body>\n" +
+            "\t\t<aetgt:customerOrderAck xmlns:aetgt=\"http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd\">true</aetgt:customerOrderAck>\n" +
+            "\t</soapenv:Body>\n" +
+            "</soapenv:Envelope>";
+    private static String response_02 =
+            "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n" +
+            "\t<soapenv:Body>\n" +
+            "\t\t<aetgt:customerOrderAck xmlns:aetgt=\"http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd\">false</aetgt:customerOrderAck>\n" +
+            "\t</soapenv:Body>\n" +
+            "</soapenv:Envelope>";
+}

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans)

Deleted: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Header.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Header.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Header.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,35 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.actions.soap.beans;
-
-/**
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class Header {
-    private String customerName;
-
-    public String getCustomerName() {
-        return customerName;
-    }
-
-    public void setCustomerName(String customerName) {
-        this.customerName = customerName;
-    }
-}

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Header.java (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Header.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Header.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Header.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.actions.soap.beans;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class Header {
+    private String customerName;
+
+    public String getCustomerName() {
+        return customerName;
+    }
+
+    public void setCustomerName(String customerName) {
+        this.customerName = customerName;
+    }
+}

Deleted: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Order.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Order.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Order.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,47 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.actions.soap.beans;
-
-import java.util.List;
-import java.util.ArrayList;
-
-/**
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class Order {
-    private Header header;
-    private List<OrderItem> items;
-
-    public Header getHeader() {
-        return header;
-    }
-
-    public void setHeader(Header header) {
-        this.header = header;
-    }
-
-    public List<OrderItem> getItems() {
-        return items;
-    }
-
-    public void setItems(List<OrderItem> items) {
-        this.items = items;
-    }
-}

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Order.java (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Order.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Order.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/Order.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.actions.soap.beans;
+
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class Order {
+    private Header header;
+    private List<OrderItem> items;
+
+    public Header getHeader() {
+        return header;
+    }
+
+    public void setHeader(Header header) {
+        this.header = header;
+    }
+
+    public List<OrderItem> getItems() {
+        return items;
+    }
+
+    public void setItems(List<OrderItem> items) {
+        this.items = items;
+    }
+}

Deleted: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/OrderItem.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/OrderItem.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/OrderItem.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,71 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.actions.soap.beans;
-
-/**
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class OrderItem {
-    private int partNumber;
-    private String description;
-    private int quantity;
-    private float price;
-    private int extensionAmount;
-
-    public int getPartNumber() {
-        return partNumber;
-    }
-
-    public void setPartNumber(int partNumber) {
-        this.partNumber = partNumber;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    public int getQuantity() {
-        return quantity;
-    }
-
-    public void setQuantity(int quantity) {
-        this.quantity = quantity;
-    }
-
-    public float getPrice() {
-        return price;
-    }
-
-    public void setPrice(float price) {
-        this.price = price;
-    }
-
-    public int getExtensionAmount() {
-        return extensionAmount;
-    }
-
-    public void setExtensionAmount(int extensionAmount) {
-        this.extensionAmount = extensionAmount;
-    }
-}

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/OrderItem.java (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/OrderItem.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/OrderItem.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/beans/OrderItem.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.actions.soap.beans;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class OrderItem {
+    private int partNumber;
+    private String description;
+    private int quantity;
+    private float price;
+    private int extensionAmount;
+
+    public int getPartNumber() {
+        return partNumber;
+    }
+
+    public void setPartNumber(int partNumber) {
+        this.partNumber = partNumber;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public int getQuantity() {
+        return quantity;
+    }
+
+    public void setQuantity(int quantity) {
+        this.quantity = quantity;
+    }
+
+    public float getPrice() {
+        return price;
+    }
+
+    public void setPrice(float price) {
+        this.price = price;
+    }
+
+    public int getExtensionAmount() {
+        return extensionAmount;
+    }
+
+    public void setExtensionAmount(int extensionAmount) {
+        this.extensionAmount = extensionAmount;
+    }
+}

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/soap-message-01.xml (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/soap-message-01.xml)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/soap-message-01.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/soap-message-01.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,27 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd" xmlns:stan="http://schemas.active-endpoints.com/sample/standardtypes/2006/04/StandardTypes.xsd">
+   <soapenv:Header/>
+   <soapenv:Body>
+      <cus:customerOrder>
+         <cus:orderheader>
+             <cus:customerName>Tom Fennelly</cus:customerName>
+         </cus:orderheader>
+         <cus:items>
+            <!--1 or more repetitions:-->
+            <cus:item>
+               <cus:partNumber>1</cus:partNumber>
+               <cus:description>desc-1</cus:description>
+               <cus:quantity>1</cus:quantity>
+               <cus:price>1.1</cus:price>
+               <cus:extensionAmount>1</cus:extensionAmount>
+            </cus:item>
+            <cus:item>
+                <cus:partNumber>2</cus:partNumber>
+                <cus:description>desc-2</cus:description>
+                <cus:quantity>2</cus:quantity>
+                <cus:price>2.2</cus:price>
+                <cus:extensionAmount>2</cus:extensionAmount>
+            </cus:item>
+         </cus:items>
+      </cus:customerOrder>
+   </soapenv:Body>
+</soapenv:Envelope>
\ No newline at end of file

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/soapclient-config-01.xml (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/soapclient-config-01.xml)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/soapclient-config-01.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/actions/soap/soapclient-config-01.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,60 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+        xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
+        parameterReloadSecs="5">
+
+    <providers>
+        <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
+                      jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+                      jndi-URL="localhost">
+            <jms-bus busid="OrderNotificationBus">
+                <jms-message-filter dest-type="QUEUE" dest-name="queue/OrderNotificationBus"/>
+            </jms-bus>
+        </jms-provider>
+
+    </providers>
+
+    <services>
+
+        <service category="OrderNotificationService" name="OrderNotificationService"
+                 description="Order Notification Service">
+            <listeners>
+                <jms-listener name="OrderNotificationService" busidref="OrderNotificationBus"/>
+            </listeners>
+            <actions>
+                <action name="soapui-client-action-01" class="org.jboss.soa.esb.actions.soap.SOAPClient">
+                    <property name="wsdl" value="http://localhost:18080/active-bpel/services/RetailerCallback?wsdl"/>
+                    <property name="operation" value="ZZZ"/>
+                    <property name="responseXStreamConfig">
+                        <alias name="customerOrderAck" class="java.lang.Boolean" namespace="http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd" />
+                    </property>
+                </action>
+                <action name="soapui-client-action-02" class="org.jboss.soa.esb.actions.soap.SOAPClient">
+                    <property name="wsdl" value="http://localhost:18080/active-bpel/services/RetailerCallback?wsdl"/>
+                    <property name="operation" value="ZZZ"/>
+                    <property name="responseAsOgnlMap" value="true" />
+                </action>
+                <action name="soapui-client-action-03" class="org.jboss.soa.esb.actions.soap.SOAPClient">
+                    <property name="wsdl" value="http://localhost:18080/active-bpel/services/RetailerCallback?wsdl"/>
+                    <property name="operation" value="ZZZ"/>
+                </action>
+                <action name="soapui-client-action-04" class="org.jboss.soa.esb.actions.soap.SOAPClient">
+                    <property name="wsdl" value="http://localhost:18080/active-bpel/services/RetailerCallback?wsdl"/>
+                    <property name="operation" value="ZZZ"/>
+                    <property name="responseLocation" value="myTestLocation"/>
+                </action>
+                <action name="soapui-client-action-05" class="org.jboss.soa.esb.actions.soap.SOAPClient">
+                    <property name="wsdl" value="http://localhost:18080/active-bpel/services/RetailerCallback?wsdl"/>
+                    <property name="operation" value="ZZZ"/>
+                    <property name="responseXStreamConfig">
+                        <alias name="customerOrder" class="org.jboss.soa.esb.actions.soap.beans.Order" namespace="http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd" />
+                        <alias name="orderheader" class="org.jboss.soa.esb.actions.soap.beans.Header" namespace="http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd" />
+                        <alias name="item" class="org.jboss.soa.esb.actions.soap.beans.OrderItem" namespace="http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd" />
+                    </property>
+                </action>
+            </actions>
+        </service>
+
+    </services>
+
+</jbossesb>

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/ESBConfigUtil.java (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/util/ESBConfigUtil.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/ESBConfigUtil.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/ESBConfigUtil.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,116 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.util;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.config.Generator;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
+import org.xml.sax.SAXException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
+
+import java.io.InputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ByteArrayInputStream;
+
+import junit.framework.TestCase;
+
+/**
+ * Utility class for working with the ESB configuration.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ESBConfigUtil {
+
+    private Document listenerConfig;
+    private Document gatewayConfig;
+
+    public ESBConfigUtil(InputStream esbXsdConfig) {
+        AssertArgument.isNotNull(esbXsdConfig, "esbXsdConfig");
+        ByteArrayOutputStream listenerConfigStream = new ByteArrayOutputStream();
+        ByteArrayOutputStream gatewayConfigStream = new ByteArrayOutputStream();
+        Generator generator = null;
+
+        try {
+            generator = new Generator(esbXsdConfig, listenerConfigStream, gatewayConfigStream);
+            generator.generate();
+            listenerConfig = YADOMUtil.parseStream(new ByteArrayInputStream(listenerConfigStream.toByteArray()), false, false);
+            gatewayConfig = YADOMUtil.parseStream(new ByteArrayInputStream(gatewayConfigStream.toByteArray()), false, false);
+        } catch(Exception e) {
+            e.printStackTrace();
+            TestCase.fail(e.getMessage());
+        }
+    }
+
+    public ConfigTree getListenerConfig(String listenerName) {
+        AssertArgument.isNotNull(listenerName, "listenerName");
+        return ConfigTree.fromElement(getListenerConfig(listenerName, listenerConfig));
+    }
+
+    public ConfigTree getGatewayConfig(String gatewayName) {
+        AssertArgument.isNotNull(gatewayName, "gatewayName");
+        return ConfigTree.fromElement(getListenerConfig(gatewayName, gatewayConfig));
+    }
+
+    private Element getListenerConfig(String name, Document config) {
+        NodeList listenerConfigElements = config.getDocumentElement().getElementsByTagName(name);
+
+        if(listenerConfigElements == null || listenerConfigElements.getLength() == 0) {
+            return null;
+        }
+
+        return (Element) listenerConfigElements.item(0);
+    }
+
+    public ConfigTree getActionConfig(String listenerName, String actionName) {
+        AssertArgument.isNotNull(listenerName, "listenerName");
+        AssertArgument.isNotNull(actionName, "actionName");
+
+        Element listener = getListenerConfig(listenerName, listenerConfig);
+        NodeList actions = listener.getElementsByTagName("action");
+
+        if(actions == null || actions.getLength() == 0) {
+            return null;
+        }
+
+        for(int i = 0; i < actions.getLength(); i++) {
+            Element action = (Element) actions.item(i);
+
+            if(actionName.equals(action.getAttribute("action"))) {
+                return ConfigTree.fromElement(action);
+            }
+        }
+        
+        return null;
+    }
+
+
+    public Document getListenerConfig() {
+        return listenerConfig;
+    }
+
+    public Document getGatewayConfig() {
+        return gatewayConfig;
+    }
+}

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/util/test)

Deleted: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/ESBConfigUtilUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/ESBConfigUtilUnitTest.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/ESBConfigUtilUnitTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,26 +0,0 @@
-package org.jboss.soa.esb.util.test;
-
-import static java.lang.System.out;
-
-import junit.framework.TestCase;
-import org.jboss.soa.esb.util.ESBConfigUtil;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.ConfigurationException;
-
-import javax.xml.transform.stream.StreamResult;
-
-/**
- * @author
- */
-public class ESBConfigUtilUnitTest extends TestCase {
-
-    public void test() throws ConfigurationException {
-        ESBConfigUtil configUtil = new ESBConfigUtil(getClass().getResourceAsStream("jboss-esb.xml"));
-
-        assertTrue(configUtil.getListenerConfig("JMS-ESBListener").toString().startsWith("<JMS-ESBListener listenerClass=\"org.jboss.soa.esb.listeners.message.MessageAwareListener\" maxThreads=\"1\" service-category=\"ABI_OrderManager\" service-description=\"ABI OrderManager Service\" service-name=\"ABI_OrderManager\">"));
-        assertTrue(configUtil.getGatewayConfig("FileGateway").toString().startsWith("<FileGateway"));
-        assertTrue(configUtil.getActionConfig("OrderNotificationService", "print-after-transform").toString().startsWith("<action action=\"print-after-transform\""));
-    }
-
-
-}

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/ESBConfigUtilUnitTest.java (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/ESBConfigUtilUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/ESBConfigUtilUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/ESBConfigUtilUnitTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,26 @@
+package org.jboss.soa.esb.util.test;
+
+import static java.lang.System.out;
+
+import junit.framework.TestCase;
+import org.jboss.soa.esb.util.ESBConfigUtil;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.ConfigurationException;
+
+import javax.xml.transform.stream.StreamResult;
+
+/**
+ * @author
+ */
+public class ESBConfigUtilUnitTest extends TestCase {
+
+    public void test() throws ConfigurationException {
+        ESBConfigUtil configUtil = new ESBConfigUtil(getClass().getResourceAsStream("jboss-esb.xml"));
+
+        assertTrue(configUtil.getListenerConfig("JMS-ESBListener").toString().startsWith("<JMS-ESBListener listenerClass=\"org.jboss.soa.esb.listeners.message.MessageAwareListener\" maxThreads=\"1\" service-category=\"ABI_OrderManager\" service-description=\"ABI OrderManager Service\" service-name=\"ABI_OrderManager\">"));
+        assertTrue(configUtil.getGatewayConfig("FileGateway").toString().startsWith("<FileGateway"));
+        assertTrue(configUtil.getActionConfig("OrderNotificationService", "print-after-transform").toString().startsWith("<action action=\"print-after-transform\""));
+    }
+
+
+}

Deleted: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/jboss-esb.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/jboss-esb.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,142 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb
-        xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
-        parameterReloadSecs="5">
-
-    <providers>
-        <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
-                      jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
-                      jndi-URL="localhost">
-
-            <jms-bus busid="OrderManagerGateway">
-                <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_gw"/>
-            </jms-bus>
-            <jms-bus busid="OrderManagerService">
-                <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_esb"
-                                    selector="service='ordermanager'"/>
-            </jms-bus>
-            <jms-bus busid="ShipperService">
-                <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_esb"
-                                    selector="service='shipper'"/>
-            </jms-bus>
-            <jms-bus busid="OrderNotificationService">
-                <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_esb"
-                                    selector="service='orderNotifier'"/>
-            </jms-bus>
-        </jms-provider>
-
-        <jbr-provider name="JBR-Http-1" protocol="http" host="localhost">
-            <jbr-bus busid="Http-1" port="8865"/>
-        </jbr-provider>
-
-        <jbr-provider name="JBR-Http-2" protocol="http" host="localhost">
-            <jbr-bus busid="Http-2" port="8866"/>
-        </jbr-provider>
-
-        <jbr-provider name="JBR-Socket" protocol="socket" host="localhost">
-            <jbr-bus busid="Socket-1" port="8988"/>
-        </jbr-provider>
-
-        <fs-provider name="File Sys Provider">
-            <fs-bus busid="notificationChannel">
-                <fs-message-filter
-                        directory="/ae-demo/orders"
-                        input-suffix=".in.csv"
-                        work-suffix=".esbWorking"
-                        post-delete="false"
-                        post-directory="/ae-demo/orders"
-                        post-suffix=".done.csv"
-                        error-delete="false"
-                        error-directory="/ae-demo/orders"
-                        error-suffix=".IN_ERROR.csv"
-                        />
-            </fs-bus>
-        </fs-provider>
-
-    </providers>
-
-    <services>
-
-        <service category="ABI_OrderManager" name="ABI_OrderManager" description="ABI OrderManager Service">
-
-            <listeners>
-                <jms-listener name="JMS-Gateway" busidref="OrderManagerGateway" is-gateway="true" maxThreads="1"/>
-                <jbr-listener name="Http-Gateway" busidref="Http-1" is-gateway="true" maxThreads="1"/>
-                <jbr-listener name="Socket-Gateway" busidref="Socket-1" is-gateway="true" maxThreads="1"/>
-
-                <jms-listener name="JMS-ESBListener" busidref="OrderManagerService" maxThreads="1"/>
-            </listeners>
-            <actions>
-                <action name="print-before" class="org.jboss.soa.esb.actions.SystemPrintln">
-                    <property name="message"
-                              value="[Quickstart_webservice_bpel] Message before invoking 'ABI_OrderManager' endpoint"/>
-                </action>
-                <action name="JBossWSAdapter" class="org.jboss.soa.esb.actions.soap.JBossWSAdapter">
-                    <property name="jbossws-endpoint" value="ABI_OrderManager"/>
-                </action>
-                <action name="print-after" class="org.jboss.soa.esb.actions.SystemPrintln">
-                    <property name="message"
-                              value="[Quickstart_webservice_bpel] Message after invoking 'ABI_OrderManager' endpoint"/>
-                </action>
-            </actions>
-        </service>
-
-        <service category="ABI_Shipper" name="ABI_Shipper" description="ABI Shipper Service">
-
-            <listeners>
-                <jbr-listener name="Http-Gateway" busidref="Http-2" is-gateway="true" maxThreads="1"/>
-
-                <jms-listener name="JMS-ESBListener" busidref="ShipperService" maxThreads="1"/>
-            </listeners>
-            <actions>
-                <action name="print-before" class="org.jboss.soa.esb.actions.SystemPrintln">
-                    <property name="message"
-                              value="[Quickstart_webservice_bpel] Message before invoking 'ABI_Shipping' endpoint"/>
-                </action>
-                <action name="JBossWSAdapter" class="org.jboss.soa.esb.actions.soap.JBossWSAdapter">
-                    <property name="jbossws-endpoint" value="ABI_Shipping"/>
-                </action>
-                <action name="print-after" class="org.jboss.soa.esb.actions.SystemPrintln">
-                    <property name="message"
-                              value="[Quickstart_webservice_bpel] Message after invoking 'ABI_Shipping' endpoint"/>
-                </action>
-            </actions>
-        </service>
-
-        <service category="OrderNotificationService" name="OrderNotificationService"
-                 description="Order Notification Service">
-            <listeners>
-                <fs-listener name="FileGateway" busidref="notificationChannel" is-gateway="true"
-                             poll-frequency-seconds="10"/>
-                <jms-listener name="OrderNotificationService" busidref="OrderNotificationService"/>
-            </listeners>
-            <actions>
-                <!-- Transform the incoming CSV order approval record into a populated
-                     com.activebpel.ordermanagement.SalesOrderNotification instance. -->
-                <action name="message-populator" class="org.jboss.soa.esb.actions.converters.SmooksTransformer">
-                    <property name="from" value="OrderManager"/>
-                    <property name="from-type" value="text/csv:orderApproval"/>
-                    <property name="to" value="RetailerCallback"/>
-                    <property name="to-type" value="text/xml:SendSalesOrderNotification"/>
-                </action>
-                <action name="print-after-transform" class="org.jboss.soa.esb.actions.SystemPrintln">
-                    <property name="message" value="[Quickstart_webservice_bpel] Message after transform and before SOAPClient"/>
-                </action>
-                <!-- Inject the com.activebpel.ordermanagement.SalesOrderNotification instance
-                     into the SOAPClient. SOAPClient will use SOAPUI to construct a soap request
-                     template and will then use OGNL to populate the values (from the Smooks 
-                     EXTRACTED_BEANS_HASH) into the soap message. -->
-                <action name="soapui-client" class="org.jboss.soa.esb.actions.soap.SOAPClient">
-                    <property name="wsdl" value="http://localhost:18080/active-bpel/services/RetailerCallback?wsdl"/>
-                    <property name="operation" value="SendSalesOrderNotification"/>
-                    <property name="paramsLocation" value="EXTRACTED_BEANS_HASH"/>
-                    <property name="responseXStreamConfig">
-                        <alias name="customerOrderAck" class="java.lang.Boolean" />
-                    </property>
-                </action>
-            </actions>
-        </service>
-
-    </services>
-
-</jbossesb>

Copied: labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/jboss-esb.xml (from rev 12160, labs/jbossesb/trunk/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/jboss-esb.xml)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/jboss-esb.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/listeners/tests/src/org/jboss/soa/esb/util/test/jboss-esb.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,142 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+        xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
+        parameterReloadSecs="5">
+
+    <providers>
+        <jms-provider name="JBossMQ" connection-factory="ConnectionFactory"
+                      jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
+                      jndi-URL="localhost">
+
+            <jms-bus busid="OrderManagerGateway">
+                <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_gw"/>
+            </jms-bus>
+            <jms-bus busid="OrderManagerService">
+                <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_esb"
+                                    selector="service='ordermanager'"/>
+            </jms-bus>
+            <jms-bus busid="ShipperService">
+                <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_esb"
+                                    selector="service='shipper'"/>
+            </jms-bus>
+            <jms-bus busid="OrderNotificationService">
+                <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_webservice_bpel_esb"
+                                    selector="service='orderNotifier'"/>
+            </jms-bus>
+        </jms-provider>
+
+        <jbr-provider name="JBR-Http-1" protocol="http" host="localhost">
+            <jbr-bus busid="Http-1" port="8865"/>
+        </jbr-provider>
+
+        <jbr-provider name="JBR-Http-2" protocol="http" host="localhost">
+            <jbr-bus busid="Http-2" port="8866"/>
+        </jbr-provider>
+
+        <jbr-provider name="JBR-Socket" protocol="socket" host="localhost">
+            <jbr-bus busid="Socket-1" port="8988"/>
+        </jbr-provider>
+
+        <fs-provider name="File Sys Provider">
+            <fs-bus busid="notificationChannel">
+                <fs-message-filter
+                        directory="/ae-demo/orders"
+                        input-suffix=".in.csv"
+                        work-suffix=".esbWorking"
+                        post-delete="false"
+                        post-directory="/ae-demo/orders"
+                        post-suffix=".done.csv"
+                        error-delete="false"
+                        error-directory="/ae-demo/orders"
+                        error-suffix=".IN_ERROR.csv"
+                        />
+            </fs-bus>
+        </fs-provider>
+
+    </providers>
+
+    <services>
+
+        <service category="ABI_OrderManager" name="ABI_OrderManager" description="ABI OrderManager Service">
+
+            <listeners>
+                <jms-listener name="JMS-Gateway" busidref="OrderManagerGateway" is-gateway="true" maxThreads="1"/>
+                <jbr-listener name="Http-Gateway" busidref="Http-1" is-gateway="true" maxThreads="1"/>
+                <jbr-listener name="Socket-Gateway" busidref="Socket-1" is-gateway="true" maxThreads="1"/>
+
+                <jms-listener name="JMS-ESBListener" busidref="OrderManagerService" maxThreads="1"/>
+            </listeners>
+            <actions>
+                <action name="print-before" class="org.jboss.soa.esb.actions.SystemPrintln">
+                    <property name="message"
+                              value="[Quickstart_webservice_bpel] Message before invoking 'ABI_OrderManager' endpoint"/>
+                </action>
+                <action name="JBossWSAdapter" class="org.jboss.soa.esb.actions.soap.JBossWSAdapter">
+                    <property name="jbossws-endpoint" value="ABI_OrderManager"/>
+                </action>
+                <action name="print-after" class="org.jboss.soa.esb.actions.SystemPrintln">
+                    <property name="message"
+                              value="[Quickstart_webservice_bpel] Message after invoking 'ABI_OrderManager' endpoint"/>
+                </action>
+            </actions>
+        </service>
+
+        <service category="ABI_Shipper" name="ABI_Shipper" description="ABI Shipper Service">
+
+            <listeners>
+                <jbr-listener name="Http-Gateway" busidref="Http-2" is-gateway="true" maxThreads="1"/>
+
+                <jms-listener name="JMS-ESBListener" busidref="ShipperService" maxThreads="1"/>
+            </listeners>
+            <actions>
+                <action name="print-before" class="org.jboss.soa.esb.actions.SystemPrintln">
+                    <property name="message"
+                              value="[Quickstart_webservice_bpel] Message before invoking 'ABI_Shipping' endpoint"/>
+                </action>
+                <action name="JBossWSAdapter" class="org.jboss.soa.esb.actions.soap.JBossWSAdapter">
+                    <property name="jbossws-endpoint" value="ABI_Shipping"/>
+                </action>
+                <action name="print-after" class="org.jboss.soa.esb.actions.SystemPrintln">
+                    <property name="message"
+                              value="[Quickstart_webservice_bpel] Message after invoking 'ABI_Shipping' endpoint"/>
+                </action>
+            </actions>
+        </service>
+
+        <service category="OrderNotificationService" name="OrderNotificationService"
+                 description="Order Notification Service">
+            <listeners>
+                <fs-listener name="FileGateway" busidref="notificationChannel" is-gateway="true"
+                             poll-frequency-seconds="10"/>
+                <jms-listener name="OrderNotificationService" busidref="OrderNotificationService"/>
+            </listeners>
+            <actions>
+                <!-- Transform the incoming CSV order approval record into a populated
+                     com.activebpel.ordermanagement.SalesOrderNotification instance. -->
+                <action name="message-populator" class="org.jboss.soa.esb.actions.converters.SmooksTransformer">
+                    <property name="from" value="OrderManager"/>
+                    <property name="from-type" value="text/csv:orderApproval"/>
+                    <property name="to" value="RetailerCallback"/>
+                    <property name="to-type" value="text/xml:SendSalesOrderNotification"/>
+                </action>
+                <action name="print-after-transform" class="org.jboss.soa.esb.actions.SystemPrintln">
+                    <property name="message" value="[Quickstart_webservice_bpel] Message after transform and before SOAPClient"/>
+                </action>
+                <!-- Inject the com.activebpel.ordermanagement.SalesOrderNotification instance
+                     into the SOAPClient. SOAPClient will use SOAPUI to construct a soap request
+                     template and will then use OGNL to populate the values (from the Smooks 
+                     EXTRACTED_BEANS_HASH) into the soap message. -->
+                <action name="soapui-client" class="org.jboss.soa.esb.actions.soap.SOAPClient">
+                    <property name="wsdl" value="http://localhost:18080/active-bpel/services/RetailerCallback?wsdl"/>
+                    <property name="operation" value="SendSalesOrderNotification"/>
+                    <property name="paramsLocation" value="EXTRACTED_BEANS_HASH"/>
+                    <property name="responseXStreamConfig">
+                        <alias name="customerOrderAck" class="java.lang.Boolean" />
+                    </property>
+                </action>
+            </actions>
+        </service>
+
+    </services>
+
+</jbossesb>

Modified: labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -388,6 +388,7 @@
 	private void createMessageConsumer () throws CourierException, ConfigurationException, MalformedEPRException
 	{
         Context oJndiCtx = null;
+        boolean success = false ;
 		try
 		{
             Properties environment = _epr.getJndiEnvironment();
@@ -431,6 +432,7 @@
 			} else {
 				throw new CourierException("Unknown destination type");
             }
+                        success = true ;
 		}
         catch (ConnectionException cex)
         {
@@ -450,6 +452,18 @@
 		{
 			throw new MalformedEPRException(ex);
 		}
+                finally
+                {
+                    if (!success)
+                    {
+                        if (_jmsSession != null)
+                        {
+                            _pool.closeSession(_jmsSession) ;
+                            _jmsSession = null ;
+                        }
+                        _pool = null ;
+                    }
+                }
 	} // ________________________________
 
 

Copied: labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/soap (from rev 12160, labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/soap)

Deleted: labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,123 +0,0 @@
-package org.jboss.internal.soa.esb.soap;
-
-import org.apache.log4j.Logger;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Comment;
-import org.jboss.soa.esb.dom.YADOMUtil;
-
-import java.util.Map;
-
-import ognl.Ognl;
-import ognl.OgnlException;
-
-/**
- * OGNL Utilities for SOAP message processing.
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public abstract class OGNLUtils {
-
-    private static Logger logger = Logger.getLogger(OGNLUtils.class);
-    public static final String JBOSSESB_SOAP_NS = "http://jbossesb.jboss.org/soap";
-    public static final String JBOSSESB_SOAP_NS_PREFIX = "jbossesb-soap:";
-    public static final String OGNL_ATTRIB = "ognl";
-    public static final String IS_COLLECTION_ATTRIB = "is-collection";
-
-    public static Object getParameter(String ognl, Map params) {
-        Object param;
-
-        // Try getting the parameter from the params Map using the
-        // raw OGNL expression as the key...
-        param = params.get(ognl);
-        if(param == null) {
-            // And if that didn't work, try using the OGNL expression to extract the param
-            // from an Object Graph using the OGNL toolkit...
-            try {
-                param = Ognl.getValue(ognl, params);
-            } catch (OgnlException ex) {
-                if(logger.isDebugEnabled()) {
-                    logger.debug("OGNL Error.", ex);
-                }
-            }
-        }
-
-        return (param != null?param:"");
-    }
-
-    public static String getOGNLExpression(Element element) {
-        StringBuffer ognlExpression = new StringBuffer();
-        Node parent = element.getParentNode();
-        boolean isCollection;
-        boolean isInBody = false;
-
-        ognlExpression.append(getOGNLToken(element));
-
-        while (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
-            Element parentElement = (Element) parent;
-            String parentName = YADOMUtil.getName(parentElement);
-
-            if (parentName.equalsIgnoreCase("body") &&
-                    parent.getNamespaceURI().equalsIgnoreCase("http://schemas.xmlsoap.org/soap/envelope/")) {
-                isInBody = true;
-                break;
-            }
-
-            String preassignedOgnl = parentElement.getAttributeNS(JBOSSESB_SOAP_NS, OGNL_ATTRIB);
-            if(preassignedOgnl != null && !preassignedOgnl.equals("")) {
-                ognlExpression.insert(0, "." + preassignedOgnl);
-                isInBody = true;
-                break;
-            } else {
-                ognlExpression.insert(0, getOGNLToken(parentElement));
-            }
-            parent = parent.getParentNode();
-        }
-
-        if(!isInBody) {
-            return "";
-        }
-
-        // Remove the leading '.'
-        ognlExpression.deleteCharAt(0);
-
-        return ognlExpression.toString();
-    }
-
-    public static String getOGNLToken(Element element) {
-        String localName = element.getLocalName();
-        String ognlToken;
-
-        if (assertIsParentCollection(element)) {
-            int count = YADOMUtil.countElementsBefore(element, element.getTagName());
-            ognlToken = "[" + count + "]";
-        } else {
-            ognlToken = "." + localName;
-        }
-
-        return ognlToken;
-    }
-
-    private static boolean assertIsCollection(Element element) {
-        if(element.getAttributeNS(JBOSSESB_SOAP_NS, IS_COLLECTION_ATTRIB).equals("true")) {
-            // It's already been attributed... no need to check for the soapui comment...
-            return true;
-        }
-
-        Comment firstComment = (Comment) YADOMUtil.getFirstChildByType(element, Node.COMMENT_NODE);
-
-        // TODO: Get Ole (soapUI) to add an attribute to the collection element - better than looking for this comment.
-        if(firstComment != null && firstComment.getTextContent().indexOf("1 or more repetitions") != -1) {
-            return true;
-        }
-
-        return false;
-    }
-
-    private static boolean assertIsParentCollection(Element element) {
-        Node parent = element.getParentNode();
-        if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE && assertIsCollection((Element)parent)) {
-            return true;
-        }
-        return false;
-    }
-}

Copied: labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java (from rev 12160, labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/internal/soa/esb/soap/OGNLUtils.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,123 @@
+package org.jboss.internal.soa.esb.soap;
+
+import org.apache.log4j.Logger;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.Comment;
+import org.jboss.soa.esb.dom.YADOMUtil;
+
+import java.util.Map;
+
+import ognl.Ognl;
+import ognl.OgnlException;
+
+/**
+ * OGNL Utilities for SOAP message processing.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class OGNLUtils {
+
+    private static Logger logger = Logger.getLogger(OGNLUtils.class);
+    public static final String JBOSSESB_SOAP_NS = "http://jbossesb.jboss.org/soap";
+    public static final String JBOSSESB_SOAP_NS_PREFIX = "jbossesb-soap:";
+    public static final String OGNL_ATTRIB = "ognl";
+    public static final String IS_COLLECTION_ATTRIB = "is-collection";
+
+    public static Object getParameter(String ognl, Map params) {
+        Object param;
+
+        // Try getting the parameter from the params Map using the
+        // raw OGNL expression as the key...
+        param = params.get(ognl);
+        if(param == null) {
+            // And if that didn't work, try using the OGNL expression to extract the param
+            // from an Object Graph using the OGNL toolkit...
+            try {
+                param = Ognl.getValue(ognl, params);
+            } catch (OgnlException ex) {
+                if(logger.isDebugEnabled()) {
+                    logger.debug("OGNL Error.", ex);
+                }
+            }
+        }
+
+        return (param != null?param:"");
+    }
+
+    public static String getOGNLExpression(Element element) {
+        StringBuffer ognlExpression = new StringBuffer();
+        Node parent = element.getParentNode();
+        boolean isCollection;
+        boolean isInBody = false;
+
+        ognlExpression.append(getOGNLToken(element));
+
+        while (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
+            Element parentElement = (Element) parent;
+            String parentName = YADOMUtil.getName(parentElement);
+
+            if (parentName.equalsIgnoreCase("body") &&
+                    parent.getNamespaceURI().equalsIgnoreCase("http://schemas.xmlsoap.org/soap/envelope/")) {
+                isInBody = true;
+                break;
+            }
+
+            String preassignedOgnl = parentElement.getAttributeNS(JBOSSESB_SOAP_NS, OGNL_ATTRIB);
+            if(preassignedOgnl != null && !preassignedOgnl.equals("")) {
+                ognlExpression.insert(0, "." + preassignedOgnl);
+                isInBody = true;
+                break;
+            } else {
+                ognlExpression.insert(0, getOGNLToken(parentElement));
+            }
+            parent = parent.getParentNode();
+        }
+
+        if(!isInBody) {
+            return "";
+        }
+
+        // Remove the leading '.'
+        ognlExpression.deleteCharAt(0);
+
+        return ognlExpression.toString();
+    }
+
+    public static String getOGNLToken(Element element) {
+        String localName = element.getLocalName();
+        String ognlToken;
+
+        if (assertIsParentCollection(element)) {
+            int count = YADOMUtil.countElementsBefore(element, element.getTagName());
+            ognlToken = "[" + count + "]";
+        } else {
+            ognlToken = "." + localName;
+        }
+
+        return ognlToken;
+    }
+
+    private static boolean assertIsCollection(Element element) {
+        if(element.getAttributeNS(JBOSSESB_SOAP_NS, IS_COLLECTION_ATTRIB).equals("true")) {
+            // It's already been attributed... no need to check for the soapui comment...
+            return true;
+        }
+
+        Comment firstComment = (Comment) YADOMUtil.getFirstChildByType(element, Node.COMMENT_NODE);
+
+        // TODO: Get Ole (soapUI) to add an attribute to the collection element - better than looking for this comment.
+        if(firstComment != null && firstComment.getTextContent().indexOf("1 or more repetitions") != -1) {
+            return true;
+        }
+
+        return false;
+    }
+
+    private static boolean assertIsParentCollection(Element element) {
+        Node parent = element.getParentNode();
+        if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE && assertIsCollection((Element)parent)) {
+            return true;
+        }
+        return false;
+    }
+}

Modified: labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/DefaultJmsReplyToEpr.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/DefaultJmsReplyToEpr.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/addressing/eprs/DefaultJmsReplyToEpr.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -36,8 +36,7 @@
 				,replyDestinationName(epr)
 				,epr.getConnectionFactory()
 				,epr.getJndiEnvironment()
-                ,epr.getMessageSelector()
-                //, replySelector(epr)
+				,replySelector(epr)
 			 );
 	}
 	private static String replyDestinationName(JMSEpr toEpr)

Modified: labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/dom/YADOMUtil.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/dom/YADOMUtil.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/dom/YADOMUtil.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -26,6 +26,8 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.List;
+import java.util.Vector;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -36,13 +38,14 @@
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
+import javax.xml.xpath.XPathFactory;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathConstants;
 
 import org.jboss.soa.esb.ConfigurationException;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
+import org.w3c.dom.*;
 import org.xml.sax.SAXException;
 
 /**
@@ -89,6 +92,8 @@
 
     /**
      * Parse the XML stream and return the associated W3C Document object.
+     * <p/>
+     * Performs a namespace unaware parse.
      *
      * @param stream
      *            The stream to be parsed.
@@ -101,6 +106,26 @@
      */
     public static Document parseStream(InputStream stream, boolean validate,
             boolean expandEntityRefs) throws SAXException, IOException {
+        return parseStream(stream, validate, expandEntityRefs, false);
+    }
+
+    /**
+     * Parse the XML stream and return the associated W3C Document object.
+     *
+     * @param stream
+     *            The stream to be parsed.
+     * @param validate
+     *            True if the document is to be validated, otherwise false.
+     * @param expandEntityRefs
+     *            Expand entity References as per
+     *            {@link DocumentBuilderFactory#setExpandEntityReferences(boolean)}.
+     * @param namespaceAware
+     *            True if the document parse is to be namespace aware,
+     *            otherwise false.
+     * @return The W3C Document object associated with the input stream.
+     */
+    public static Document parseStream(InputStream stream, boolean validate,
+            boolean expandEntityRefs, boolean namespaceAware) throws SAXException, IOException {
         if (stream == null) {
             throw new IllegalArgumentException(
                     "null 'stream' arg in method call.");
@@ -112,6 +137,7 @@
 
             factory.setValidating(validate);
             factory.setExpandEntityReferences(expandEntityRefs);
+            factory.setNamespaceAware(namespaceAware);
             docBuilder = factory.newDocumentBuilder();
 
             return docBuilder.parse(stream);
@@ -214,4 +240,176 @@
 			throw new ConfigurationException("Failed to serialize ESB Configuration Document instance.", e);
 		}
 	}
+
+    /**
+     * Count the DOM element nodes before the supplied node, having the specified
+     * tag name, not including the node itself.
+     * <p/>
+     * Counts the sibling nodes.
+     *
+     * @param node    Node whose element siblings are to be counted.
+     * @param tagName The tag name of the sibling elements to be counted.
+     * @return The number of siblings elements before the supplied node with the
+     *         specified tag name.
+     */
+    public static int countElementsBefore(Node node, String tagName) {
+        Node parent = node.getParentNode();
+
+        NodeList siblings = parent.getChildNodes();
+        int count = 0;
+        int siblingCount = siblings.getLength();
+
+        for (int i = 0; i < siblingCount; i++) {
+            Node sibling = siblings.item(i);
+
+            if (sibling == node) {
+                break;
+            }
+            if (sibling.getNodeType() == Node.ELEMENT_NODE && ((Element) sibling).getTagName().equals(tagName)) {
+                count++;
+            }
+        }
+
+        return count;
+    }
+
+    /**
+     * Copy the nodes of a NodeList into the supplied list.
+     * <p/>
+     * This is not a cloneCollectionTemplateElement.  It's just a copy of the node references.
+     * <p/>
+     * Allows iteration over the Nodelist using the copy in the knowledge that
+     * the list will remain the same length, even if we modify the underlying NodeList.
+     * Using the NodeList can result in problems because elements can get removed from
+     * the list while we're iterating over it.
+     * <p/>
+     * <i>This code was acquired donated by the Milyn Smooks project.</i>
+     *
+     * @param nodeList Nodelist to copy.
+     * @return List copy.
+     */
+    public static List<Node> copyNodeList(NodeList nodeList) {
+        List<Node> copy = new Vector<Node>();
+
+        if (nodeList != null) {
+            int nodeCount = nodeList.getLength();
+
+            for (int i = 0; i < nodeCount; i++) {
+                copy.add(nodeList.item(i));
+            }
+        }
+
+        return copy;
+    }
+    
+    public static Element getNextSiblingElement(Node node) {
+        Node nextSibling = node.getNextSibling();
+
+        while (nextSibling != null) {
+            if (nextSibling.getNodeType() == Node.ELEMENT_NODE) {
+                return (Element) nextSibling;
+            }
+            nextSibling = nextSibling.getNextSibling();
+        }
+
+        return null;
+    }
+
+    public static Node getFirstChildByType(Element element, int nodeType) {
+        NodeList children = element.getChildNodes();
+        int childCount = children.getLength();
+
+        for(int i = 0; i < childCount; i++) {
+            Node child = children.item(i);
+            if (child.getNodeType() == nodeType) {
+                return child;
+            }
+        }
+
+        return null;
+    }
+
+    private static String ELEMENT_NAME_FUNC = "/name()";
+
+    private static XPathFactory xPathFactory = XPathFactory.newInstance();
+
+    /**
+     * Get the W3C NodeList instance associated with the XPath selection
+     * supplied.
+     * <p/>
+     * <b>NOTE</b>: Taken from Milyn Commons.
+     *
+     * @param node  The document node to be searched.
+     * @param xpath The XPath String to be used in the selection.
+     * @return The W3C NodeList instance at the specified location in the
+     *         document, or null.
+     */
+    public static NodeList getNodeList(Node node, String xpath) {
+        if (node == null) {
+            throw new IllegalArgumentException(
+                    "null 'document' arg in method call.");
+        } else if (xpath == null) {
+            throw new IllegalArgumentException(
+                    "null 'xpath' arg in method call.");
+        }
+        try {
+            XPath xpathEvaluater = xPathFactory.newXPath();
+
+            if (xpath.endsWith(ELEMENT_NAME_FUNC)) {
+                return (NodeList) xpathEvaluater.evaluate(xpath.substring(0,
+                        xpath.length() - ELEMENT_NAME_FUNC.length()), node,
+                        XPathConstants.NODESET);
+            } else {
+                return (NodeList) xpathEvaluater.evaluate(xpath, node,
+                        XPathConstants.NODESET);
+            }
+        } catch (XPathExpressionException e) {
+            throw new IllegalArgumentException("bad 'xpath' expression ["
+                    + xpath + "].");
+        }
+    }
+
+    /**
+     * Get the W3C Node instance associated with the XPath selection supplied.
+     * <p/>
+     * <b>NOTE</b>: Taken from Milyn Commons.
+     *
+     * @param node  The document node to be searched.
+     * @param xpath The XPath String to be used in the selection.
+     * @return The W3C Node instance at the specified location in the document,
+     *         or null.
+     */
+    public static Node getNode(Node node, String xpath) {
+        NodeList nodeList = getNodeList(node, xpath);
+
+        if (nodeList == null || nodeList.getLength() == 0) {
+            return null;
+        } else {
+            return nodeList.item(0);
+        }
+    }
+
+    /**
+     * Get the name from the supplied element.
+     * <p/>
+     * Returns the {@link Node#getLocalName() localName} of the element
+     * if set (namespaced element), otherwise the
+     * element's {@link Element#getTagName() tagName} is returned.
+     * <p/>
+     * <b>NOTE</b>: Taken from Milyn Smooks.
+     *
+     * @param element The element.
+     * @return The element name.
+     */
+    public static String getName(Element element) {
+        AssertArgument.isNotNull(element, "element");
+
+        String name = element.getLocalName();
+
+        if(name != null) {
+            return name;
+        } else {
+            return element.getTagName();
+        }
+    }
 }

Copied: labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/message/mapping (from rev 12160, labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/message/mapping)

Deleted: labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/message/mapping/ObjectMapper.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/message/mapping/ObjectMapper.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/message/mapping/ObjectMapper.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,172 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2007
- */
-package org.jboss.soa.esb.message.mapping;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.message.Body;
-import org.jboss.soa.esb.message.Message;
-
-/**
- * Extracts objects from an ESB message and puts them into a Map, which can be used for later processsing.
- * 
- * @author kurt.stam at jboss.com
- *
- */
-public class ObjectMapper 
-{
-    /** Name to get the byte[] content */
-    public static String BODY_CONTENT = "BODY_CONTENT";
-    private Logger logger = Logger.getLogger(this.getClass());
-    /**
-     * 
-     * body.myObject will add 'myObject', while
-     * body.myObject.mySubObject will create an entry of 'mySubObject'. 
-     * 
-     * in the returned List.
-     * 
-     * @param message - the message 
-     * @param variableMap - the key represents the query to get the object from
-     *                      from the message.
-     *                      
-     * @return List of Objects.
-     */
-    public List<Object> createObjectList (Message message,List<String> messageObjectPathList)
-    {
-        List<Object> objectList = new ArrayList<Object>();
-        if (messageObjectPathList!=null) {
-            for (String messageObjectPath: messageObjectPathList)
-            {   
-                Object value = getObjectFromMessage(message, messageObjectPath);
-                if (value==null) {
-                    logger.warn("The value of " + messageObjectPath + " is null");
-                } else {
-                    objectList.add(value);
-                }
-            }
-        }
-        return objectList;
-    }     
-    /**
-     * Extracts objects from the message, using a ESB Message Object Path. The
-     * path should follow the syntax:
-     * 
-     * location.objectname.<bean>...
-     * 
-     * location  : one of [body, property, attachment]
-     * objectname: name of the object name, attachments can be named or numbered, so for
-     *             attachments this can be a number too.
-     * <bean>    : optionally you traverse a bean graph by specifying bean names;
-     * 
-     *  examples : 
-     *  property.Order, gets the property object named "Order"
-     *  attachment.1, gets the first attachment Object
-     *  attachment.FirstAttachment, gets the attachment named 'FirstAttachment'
-     *  attachment.1.Order, calls getOrder() on the attached Object.
-     *  body.BODY_CONTENT, gets the byte[] of the body.
-     *  body.Order1.lineitem, obtains the object named "Order1"
-     *  from the body of the message. Next it will call getLineitem() on this object.
-     *  
-     *  More <bean> elements can be added to the query to traverse the bean graph.
-     * 
-     * @param message - an ESB Message.
-     * @param esbMessageObjectPath - path to the object.
-     * @return Object obtained from the message.
-     */    
-    public Object getObjectFromMessage(Message message, String esbMessageObjectPath) 
-    {
-        Object object=null;
-        String[] path = esbMessageObjectPath.split("\\.");
-        if (path.length<2) {
-            logger.error(esbMessageObjectPath + " should be of type 'location.name'");
-            return null;
-        } else {
-            String location = path[0];
-            String name     = path[1];
-            if ("body".equalsIgnoreCase(location)) {
-                Body body   = message.getBody();
-                object =
-                    BODY_CONTENT.equals(name)
-                    ? body.getByteArray()
-                    : body.get(name);
-            } else if ("property".equalsIgnoreCase(location)) {
-                object = message.getProperties().getProperty(name);
-            } else if ("attachment".equalsIgnoreCase(location)) {
-                if (isNumeric(name)) {
-                    int index = Integer.valueOf(name);
-                    object = message.getAttachment().itemAt(index);
-                } else {
-                    object = message.getAttachment().get(name);
-                }
-            } else {
-                logger.error(esbMessageObjectPath + " should start with either 'body', 'property', or 'attachment'");
-                return null;
-            }
-        }
-        //If needed traverse the bean graph.
-        if (path.length>2) object = getBean(path, object);
-        return object;
-    }
-    /**
-     * Checks to see if the name is number.
-     * 
-     * @param name
-     * @return
-     */
-    private boolean isNumeric(String name) {
-        for (int i=0; i<name.length(); i++) {
-            if (!Character.isDigit(name.charAt(i))) return false;
-        }
-        return true;
-    }
-    /**
-     * Constructs the getter - get<Beanname>, and invokes the method on the Object
-     * to traverse the bean path.
-     * 
-     * @param objectPath - path to the bean.
-     * @param bean - bean which graph is traversed.
-     * @return - the sought-after bean.
-     */
-    private Object getBean(String[] objectPath, Object bean) 
-    {
-        for (int i=2; i<objectPath.length-1;i++) {
-            String getter = "get" + objectPath[i].substring(0, 1).toUpperCase() 
-                                  + objectPath[i].substring(1,objectPath[i].length());
-            try {
-                Method method = bean.getClass().getMethod(getter, (Class[]) null);
-                bean = method.invoke(bean, (Object[]) null);
-            } catch (NoSuchMethodException nsm) {
-                logger.error(nsm.getMessage() + " " + getter + " on " + bean);
-                return bean;
-            } catch (InvocationTargetException ite) {
-                logger.error(ite.getMessage() + " while invoking " + getter + " on " + bean);
-                return bean;
-            } catch (IllegalAccessException iae) {
-                logger.error(iae.getMessage() + " while invoking " + getter + " on " + bean);
-                return bean;
-            }
-        }
-        return bean;
-    }
-}

Copied: labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/message/mapping/ObjectMapper.java (from rev 12160, labs/jbossesb/trunk/product/core/rosetta/src/org/jboss/soa/esb/message/mapping/ObjectMapper.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/message/mapping/ObjectMapper.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/message/mapping/ObjectMapper.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,172 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2007
+ */
+package org.jboss.soa.esb.message.mapping;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.message.Message;
+
+/**
+ * Extracts objects from an ESB message and puts them into a Map, which can be used for later processsing.
+ * 
+ * @author kurt.stam at jboss.com
+ *
+ */
+public class ObjectMapper 
+{
+    /** Name to get the byte[] content */
+    public static String BODY_CONTENT = "BODY_CONTENT";
+    private Logger logger = Logger.getLogger(this.getClass());
+    /**
+     * 
+     * body.myObject will add 'myObject', while
+     * body.myObject.mySubObject will create an entry of 'mySubObject'. 
+     * 
+     * in the returned List.
+     * 
+     * @param message - the message 
+     * @param variableMap - the key represents the query to get the object from
+     *                      from the message.
+     *                      
+     * @return List of Objects.
+     */
+    public List<Object> createObjectList (Message message,List<String> messageObjectPathList)
+    {
+        List<Object> objectList = new ArrayList<Object>();
+        if (messageObjectPathList!=null) {
+            for (String messageObjectPath: messageObjectPathList)
+            {   
+                Object value = getObjectFromMessage(message, messageObjectPath);
+                if (value==null) {
+                    logger.warn("The value of " + messageObjectPath + " is null");
+                } else {
+                    objectList.add(value);
+                }
+            }
+        }
+        return objectList;
+    }     
+    /**
+     * Extracts objects from the message, using a ESB Message Object Path. The
+     * path should follow the syntax:
+     * 
+     * location.objectname.<bean>...
+     * 
+     * location  : one of [body, property, attachment]
+     * objectname: name of the object name, attachments can be named or numbered, so for
+     *             attachments this can be a number too.
+     * <bean>    : optionally you traverse a bean graph by specifying bean names;
+     * 
+     *  examples : 
+     *  property.Order, gets the property object named "Order"
+     *  attachment.1, gets the first attachment Object
+     *  attachment.FirstAttachment, gets the attachment named 'FirstAttachment'
+     *  attachment.1.Order, calls getOrder() on the attached Object.
+     *  body.BODY_CONTENT, gets the byte[] of the body.
+     *  body.Order1.lineitem, obtains the object named "Order1"
+     *  from the body of the message. Next it will call getLineitem() on this object.
+     *  
+     *  More <bean> elements can be added to the query to traverse the bean graph.
+     * 
+     * @param message - an ESB Message.
+     * @param esbMessageObjectPath - path to the object.
+     * @return Object obtained from the message.
+     */    
+    public Object getObjectFromMessage(Message message, String esbMessageObjectPath) 
+    {
+        Object object=null;
+        String[] path = esbMessageObjectPath.split("\\.");
+        if (path.length<2) {
+            logger.error(esbMessageObjectPath + " should be of type 'location.name'");
+            return null;
+        } else {
+            String location = path[0];
+            String name     = path[1];
+            if ("body".equalsIgnoreCase(location)) {
+                Body body   = message.getBody();
+                object =
+                    BODY_CONTENT.equals(name)
+                    ? body.getByteArray()
+                    : body.get(name);
+            } else if ("property".equalsIgnoreCase(location)) {
+                object = message.getProperties().getProperty(name);
+            } else if ("attachment".equalsIgnoreCase(location)) {
+                if (isNumeric(name)) {
+                    int index = Integer.valueOf(name);
+                    object = message.getAttachment().itemAt(index);
+                } else {
+                    object = message.getAttachment().get(name);
+                }
+            } else {
+                logger.error(esbMessageObjectPath + " should start with either 'body', 'property', or 'attachment'");
+                return null;
+            }
+        }
+        //If needed traverse the bean graph.
+        if (path.length>2) object = getBean(path, object);
+        return object;
+    }
+    /**
+     * Checks to see if the name is number.
+     * 
+     * @param name
+     * @return
+     */
+    private boolean isNumeric(String name) {
+        for (int i=0; i<name.length(); i++) {
+            if (!Character.isDigit(name.charAt(i))) return false;
+        }
+        return true;
+    }
+    /**
+     * Constructs the getter - get<Beanname>, and invokes the method on the Object
+     * to traverse the bean path.
+     * 
+     * @param objectPath - path to the bean.
+     * @param bean - bean which graph is traversed.
+     * @return - the sought-after bean.
+     */
+    private Object getBean(String[] objectPath, Object bean) 
+    {
+        for (int i=2; i<objectPath.length-1;i++) {
+            String getter = "get" + objectPath[i].substring(0, 1).toUpperCase() 
+                                  + objectPath[i].substring(1,objectPath[i].length());
+            try {
+                Method method = bean.getClass().getMethod(getter, (Class[]) null);
+                bean = method.invoke(bean, (Object[]) null);
+            } catch (NoSuchMethodException nsm) {
+                logger.error(nsm.getMessage() + " " + getter + " on " + bean);
+                return bean;
+            } catch (InvocationTargetException ite) {
+                logger.error(ite.getMessage() + " while invoking " + getter + " on " + bean);
+                return bean;
+            } catch (IllegalAccessException iae) {
+                logger.error(iae.getMessage() + " while invoking " + getter + " on " + bean);
+                return bean;
+            }
+        }
+        return bean;
+    }
+}

Modified: labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/util/ClassUtil.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/util/ClassUtil.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/src/org/jboss/soa/esb/util/ClassUtil.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -92,12 +92,6 @@
                 }
         }
         final ClassLoader threadClassLoader = Thread.currentThread().getContextClassLoader() ;
-        URL[] urls = ((URLClassLoader)threadClassLoader).getURLs();
-
-        for(int i=0; i< urls.length; i++)
-        {
-            System.out.println(urls[i].getFile());
-        }    
         if (threadClassLoader != null)
         {
                 final InputStream is = threadClassLoader.getResourceAsStream(resource) ;
@@ -108,12 +102,6 @@
         }
         
         final ClassLoader classLoader = caller.getClassLoader() ;
-        urls = ((URLClassLoader)classLoader).getURLs();
-
-        for(int i=0; i< urls.length; i++)
-        {
-            System.out.println(urls[i].getFile());
-        }   
         if (classLoader != null)
         {
                 final InputStream is = classLoader.getResourceAsStream(resource) ;

Copied: labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap (from rev 12160, labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap)

Deleted: labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/OGNLUtilsUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/OGNLUtilsUnitTest.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/OGNLUtilsUnitTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,108 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.internal.soa.esb.soap;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.Element;
-import org.jboss.soa.esb.dom.YADOMUtil;
-import org.jboss.soa.esb.ConfigurationException;
-import org.xml.sax.SAXException;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.ArrayList;
-
-import junit.framework.TestCase;
-
-import javax.xml.xpath.XPathFactory;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.namespace.NamespaceContext;
-
-/**
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class OGNLUtilsUnitTest extends TestCase {
-
-    public void test() throws IOException, SAXException, ConfigurationException, XPathExpressionException {
-        Node node;
-
-        // Test regular node...
-        node = getNode("/soapenv:Envelope/soapenv:Body/cus:customerOrder/cus:header/cus:customerName");
-        assertEquals("customerOrder.header.customerName", OGNLUtils.getOGNLExpression((Element) node));
-
-        // Test collection nodes...
-        node = getNode("/soapenv:Envelope/soapenv:Body/cus:customerOrder/cus:items/cus:item[1]");
-        assertEquals("customerOrder.items[0]", OGNLUtils.getOGNLExpression((Element) node));
-
-        node = getNode("/soapenv:Envelope/soapenv:Body/cus:customerOrder/cus:items/cus:item[2]");
-        assertEquals("customerOrder.items[1]", OGNLUtils.getOGNLExpression((Element) node));
-
-        node = getNode("/soapenv:Envelope/soapenv:Body/cus:customerOrder/cus:items/cus:item[2]/cus:partNumber");
-        assertEquals("customerOrder.items[1].partNumber", OGNLUtils.getOGNLExpression((Element) node));
-    }
-
-    private Node getNode(String xpath) throws IOException, SAXException, XPathExpressionException {
-        Document order = YADOMUtil.parseStream(getClass().getResourceAsStream("ognl-test-01.xml"), false, false, true);
-        XPathFactory xPathFactory = XPathFactory.newInstance();
-        XPath xpathEvaluater = xPathFactory.newXPath();
-
-        xpathEvaluater.setNamespaceContext(new MockNamespaceContext());
-
-        return (Node) xpathEvaluater.evaluate(xpath, order, XPathConstants.NODE);        
-    }
-
-    class MockNamespaceContext implements NamespaceContext {
-
-        private Map<String, String> namespaces = new HashMap<String, String>();
-        private Map<String, String> prefixes = new HashMap<String, String>();
-
-        public MockNamespaceContext() {
-            namespaces.put("soapenv", "http://schemas.xmlsoap.org/soap/envelope/");
-            namespaces.put("cus", "http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd");
-            namespaces.put("stan", "http://schemas.active-endpoints.com/sample/standardtypes/2006/04/StandardTypes.xsd");
-            prefixes.put("http://schemas.xmlsoap.org/soap/envelope/", "soapenv");
-            prefixes.put("http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd", "cus");
-            prefixes.put("http://schemas.active-endpoints.com/sample/standardtypes/2006/04/StandardTypes.xsd", "stan");
-        }
-
-        public String getNamespaceURI(String prefix) {
-            return namespaces.get(prefix);
-        }
-
-        public String getPrefix(String namespaceURI) {
-            return prefixes.get(namespaceURI);
-        }
-
-        public Iterator getPrefixes(String namespaceURI) {
-            ArrayList list = new ArrayList();
-
-            if(prefixes.containsKey(namespaceURI)) {
-                list.add(prefixes.get(namespaceURI));
-            }
-
-            return list.iterator();
-        }
-    }
-}

Copied: labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/OGNLUtilsUnitTest.java (from rev 12160, labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/OGNLUtilsUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/OGNLUtilsUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/OGNLUtilsUnitTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.soap;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.Element;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.ConfigurationException;
+import org.xml.sax.SAXException;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.ArrayList;
+
+import junit.framework.TestCase;
+
+import javax.xml.xpath.XPathFactory;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.namespace.NamespaceContext;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class OGNLUtilsUnitTest extends TestCase {
+
+    public void test() throws IOException, SAXException, ConfigurationException, XPathExpressionException {
+        Node node;
+
+        // Test regular node...
+        node = getNode("/soapenv:Envelope/soapenv:Body/cus:customerOrder/cus:header/cus:customerName");
+        assertEquals("customerOrder.header.customerName", OGNLUtils.getOGNLExpression((Element) node));
+
+        // Test collection nodes...
+        node = getNode("/soapenv:Envelope/soapenv:Body/cus:customerOrder/cus:items/cus:item[1]");
+        assertEquals("customerOrder.items[0]", OGNLUtils.getOGNLExpression((Element) node));
+
+        node = getNode("/soapenv:Envelope/soapenv:Body/cus:customerOrder/cus:items/cus:item[2]");
+        assertEquals("customerOrder.items[1]", OGNLUtils.getOGNLExpression((Element) node));
+
+        node = getNode("/soapenv:Envelope/soapenv:Body/cus:customerOrder/cus:items/cus:item[2]/cus:partNumber");
+        assertEquals("customerOrder.items[1].partNumber", OGNLUtils.getOGNLExpression((Element) node));
+    }
+
+    private Node getNode(String xpath) throws IOException, SAXException, XPathExpressionException {
+        Document order = YADOMUtil.parseStream(getClass().getResourceAsStream("ognl-test-01.xml"), false, false, true);
+        XPathFactory xPathFactory = XPathFactory.newInstance();
+        XPath xpathEvaluater = xPathFactory.newXPath();
+
+        xpathEvaluater.setNamespaceContext(new MockNamespaceContext());
+
+        return (Node) xpathEvaluater.evaluate(xpath, order, XPathConstants.NODE);        
+    }
+
+    class MockNamespaceContext implements NamespaceContext {
+
+        private Map<String, String> namespaces = new HashMap<String, String>();
+        private Map<String, String> prefixes = new HashMap<String, String>();
+
+        public MockNamespaceContext() {
+            namespaces.put("soapenv", "http://schemas.xmlsoap.org/soap/envelope/");
+            namespaces.put("cus", "http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd");
+            namespaces.put("stan", "http://schemas.active-endpoints.com/sample/standardtypes/2006/04/StandardTypes.xsd");
+            prefixes.put("http://schemas.xmlsoap.org/soap/envelope/", "soapenv");
+            prefixes.put("http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd", "cus");
+            prefixes.put("http://schemas.active-endpoints.com/sample/standardtypes/2006/04/StandardTypes.xsd", "stan");
+        }
+
+        public String getNamespaceURI(String prefix) {
+            return namespaces.get(prefix);
+        }
+
+        public String getPrefix(String namespaceURI) {
+            return prefixes.get(namespaceURI);
+        }
+
+        public Iterator getPrefixes(String namespaceURI) {
+            ArrayList list = new ArrayList();
+
+            if(prefixes.containsKey(namespaceURI)) {
+                list.add(prefixes.get(namespaceURI));
+            }
+
+            return list.iterator();
+        }
+    }
+}

Deleted: labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/ognl-test-01.xml
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/ognl-test-01.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/ognl-test-01.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,27 +0,0 @@
-<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd" xmlns:stan="http://schemas.active-endpoints.com/sample/standardtypes/2006/04/StandardTypes.xsd">
-   <soapenv:Header/>
-   <soapenv:Body>
-      <cus:customerOrder>
-         <cus:header>
-             <cus:customerName>?</cus:customerName>
-         </cus:header>
-         <cus:items>
-            <!--1 or more repetitions:-->
-            <cus:item>
-               <cus:partNumber>?</cus:partNumber>
-               <cus:description>?</cus:description>
-               <cus:quantity>?</cus:quantity>
-               <cus:price>?</cus:price>
-               <cus:extensionAmount>?</cus:extensionAmount>
-            </cus:item>
-            <cus:item>
-               <cus:partNumber>?</cus:partNumber>
-               <cus:description>?</cus:description>
-               <cus:quantity>?</cus:quantity>
-               <cus:price>?</cus:price>
-               <cus:extensionAmount>?</cus:extensionAmount>
-            </cus:item>
-         </cus:items>
-      </cus:customerOrder>
-   </soapenv:Body>
-</soapenv:Envelope>
\ No newline at end of file

Copied: labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/ognl-test-01.xml (from rev 12160, labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/ognl-test-01.xml)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/ognl-test-01.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/internal/soa/esb/soap/ognl-test-01.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,27 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cus="http://schemas.active-endpoints.com/sample/customerorder/2006/04/CustomerOrder.xsd" xmlns:stan="http://schemas.active-endpoints.com/sample/standardtypes/2006/04/StandardTypes.xsd">
+   <soapenv:Header/>
+   <soapenv:Body>
+      <cus:customerOrder>
+         <cus:header>
+             <cus:customerName>?</cus:customerName>
+         </cus:header>
+         <cus:items>
+            <!--1 or more repetitions:-->
+            <cus:item>
+               <cus:partNumber>?</cus:partNumber>
+               <cus:description>?</cus:description>
+               <cus:quantity>?</cus:quantity>
+               <cus:price>?</cus:price>
+               <cus:extensionAmount>?</cus:extensionAmount>
+            </cus:item>
+            <cus:item>
+               <cus:partNumber>?</cus:partNumber>
+               <cus:description>?</cus:description>
+               <cus:quantity>?</cus:quantity>
+               <cus:price>?</cus:price>
+               <cus:extensionAmount>?</cus:extensionAmount>
+            </cus:item>
+         </cus:items>
+      </cus:customerOrder>
+   </soapenv:Body>
+</soapenv:Envelope>
\ No newline at end of file

Copied: labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping (from rev 12160, labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping)

Deleted: labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/MessageMapperTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/MessageMapperTest.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/MessageMapperTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,133 +0,0 @@
-/**
- * 
- */
-package org.jboss.soa.esb.message.mapping;
-
-import static org.junit.Assert.assertTrue;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.junit.Test;
-
-
-/**
- * @author kstam
- *
- */
-public class MessageMapperTest {
-
-    @Test
-    public void property () {
-        ObjectMapper mapper = new ObjectMapper();
-        Message message = MessageFactory.getInstance().getMessage();
-        List<String> variableList = new ArrayList<String>();
-        
-        message.getProperties().setProperty("property1", "some object");
-        variableList.add("property.property1");
-        
-        TestPojo testPojo1 = new TestPojo();
-        testPojo1.setCount(1);
-        testPojo1.setName("test1");
-        TestPojo testPojo2 = new TestPojo();
-        testPojo2.setCount(1);
-        testPojo2.setName("test2");
-        testPojo1.setTestPojo(testPojo2);
-        message.getProperties().setProperty("property2", testPojo1);
-        variableList.add("property.property2.testPojo.testPojo");
-        
-        List<Object> pojos=mapper.createObjectList(message, variableList);
-        
-        Object pojo1 = pojos.get(0);
-        assertTrue("some object".equals(pojo1));
-        
-        Object pojo2 = pojos.get(1);
-        assertTrue(testPojo2.equals(pojo2));
-    }
-    
-    @Test
-    public void attachment_hashmap() {
-        ObjectMapper mapper = new ObjectMapper();
-        Message message = MessageFactory.getInstance().getMessage();
-        List<String> variableList = new ArrayList<String>();
-        
-        message.getAttachment().put("attachment1", "some object");
-        variableList.add("attachment.attachment1");
-        
-        TestPojo testPojo1 = new TestPojo();
-        testPojo1.setCount(1);
-        testPojo1.setName("test1");
-        TestPojo testPojo2 = new TestPojo();
-        testPojo2.setCount(1);
-        testPojo2.setName("test2");
-        testPojo1.setTestPojo(testPojo2);
-        message.getAttachment().put("attachment2", testPojo1);
-        variableList.add("attachment.attachment2.testPojo.testPojo");
-        
-        List<Object> pojos=mapper.createObjectList(message, variableList);
-        
-        Object pojo1 = pojos.get(0);
-        assertTrue("some object".equals(pojo1));
-        
-        Object pojo2 = pojos.get(1);
-        assertTrue(testPojo2.equals(pojo2));  
-    }
-    
-    @Test
-    public void attachment_list() {
-        ObjectMapper mapper = new ObjectMapper();
-        Message message = MessageFactory.getInstance().getMessage();
-        List<String> variableList = new ArrayList<String>();
-        
-        message.getAttachment().addItem("some object");
-        variableList.add("attachment.0");
-        
-        TestPojo testPojo1 = new TestPojo();
-        testPojo1.setCount(1);
-        testPojo1.setName("test1");
-        TestPojo testPojo2 = new TestPojo();
-        testPojo2.setCount(1);
-        testPojo2.setName("test2");
-        testPojo1.setTestPojo(testPojo2);
-        message.getAttachment().addItem(testPojo1);
-        variableList.add("attachment.1.testPojo.testPojo");
-        
-        List<Object> pojos=mapper.createObjectList(message, variableList);
-        
-        Object pojo1 = pojos.get(0);
-        assertTrue("some object".equals(pojo1));
-        
-        Object pojo2 = pojos.get(1);
-        assertTrue(testPojo2.equals(pojo2));
-    }
-    
-    @Test
-    public void body() {
-        ObjectMapper mapper = new ObjectMapper();
-        Message message = MessageFactory.getInstance().getMessage();
-        List<String> variableList = new ArrayList<String>();
-        
-        message.getBody().add("body1", "some object");
-        variableList.add("body.body1");
-        
-        TestPojo testPojo1 = new TestPojo();
-        testPojo1.setCount(1);
-        testPojo1.setName("test1");
-        TestPojo testPojo2 = new TestPojo();
-        testPojo2.setCount(1);
-        testPojo2.setName("test2");
-        testPojo1.setTestPojo(testPojo2);
-        message.getBody().add("body2", testPojo1);
-        variableList.add("body.body2.testPojo.testPojo");
-        
-        List<Object> pojos=mapper.createObjectList(message, variableList);
-        
-        Object pojo1 = pojos.get(0);
-        assertTrue("some object".equals(pojo1));
-        
-        Object pojo2 = pojos.get(1);
-        assertTrue(testPojo2.equals(pojo2));  
-    }
-}

Copied: labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/MessageMapperTest.java (from rev 12160, labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/MessageMapperTest.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/MessageMapperTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/MessageMapperTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,133 @@
+/**
+ * 
+ */
+package org.jboss.soa.esb.message.mapping;
+
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.junit.Test;
+
+
+/**
+ * @author kstam
+ *
+ */
+public class MessageMapperTest {
+
+    @Test
+    public void property () {
+        ObjectMapper mapper = new ObjectMapper();
+        Message message = MessageFactory.getInstance().getMessage();
+        List<String> variableList = new ArrayList<String>();
+        
+        message.getProperties().setProperty("property1", "some object");
+        variableList.add("property.property1");
+        
+        TestPojo testPojo1 = new TestPojo();
+        testPojo1.setCount(1);
+        testPojo1.setName("test1");
+        TestPojo testPojo2 = new TestPojo();
+        testPojo2.setCount(1);
+        testPojo2.setName("test2");
+        testPojo1.setTestPojo(testPojo2);
+        message.getProperties().setProperty("property2", testPojo1);
+        variableList.add("property.property2.testPojo.testPojo");
+        
+        List<Object> pojos=mapper.createObjectList(message, variableList);
+        
+        Object pojo1 = pojos.get(0);
+        assertTrue("some object".equals(pojo1));
+        
+        Object pojo2 = pojos.get(1);
+        assertTrue(testPojo2.equals(pojo2));
+    }
+    
+    @Test
+    public void attachment_hashmap() {
+        ObjectMapper mapper = new ObjectMapper();
+        Message message = MessageFactory.getInstance().getMessage();
+        List<String> variableList = new ArrayList<String>();
+        
+        message.getAttachment().put("attachment1", "some object");
+        variableList.add("attachment.attachment1");
+        
+        TestPojo testPojo1 = new TestPojo();
+        testPojo1.setCount(1);
+        testPojo1.setName("test1");
+        TestPojo testPojo2 = new TestPojo();
+        testPojo2.setCount(1);
+        testPojo2.setName("test2");
+        testPojo1.setTestPojo(testPojo2);
+        message.getAttachment().put("attachment2", testPojo1);
+        variableList.add("attachment.attachment2.testPojo.testPojo");
+        
+        List<Object> pojos=mapper.createObjectList(message, variableList);
+        
+        Object pojo1 = pojos.get(0);
+        assertTrue("some object".equals(pojo1));
+        
+        Object pojo2 = pojos.get(1);
+        assertTrue(testPojo2.equals(pojo2));  
+    }
+    
+    @Test
+    public void attachment_list() {
+        ObjectMapper mapper = new ObjectMapper();
+        Message message = MessageFactory.getInstance().getMessage();
+        List<String> variableList = new ArrayList<String>();
+        
+        message.getAttachment().addItem("some object");
+        variableList.add("attachment.0");
+        
+        TestPojo testPojo1 = new TestPojo();
+        testPojo1.setCount(1);
+        testPojo1.setName("test1");
+        TestPojo testPojo2 = new TestPojo();
+        testPojo2.setCount(1);
+        testPojo2.setName("test2");
+        testPojo1.setTestPojo(testPojo2);
+        message.getAttachment().addItem(testPojo1);
+        variableList.add("attachment.1.testPojo.testPojo");
+        
+        List<Object> pojos=mapper.createObjectList(message, variableList);
+        
+        Object pojo1 = pojos.get(0);
+        assertTrue("some object".equals(pojo1));
+        
+        Object pojo2 = pojos.get(1);
+        assertTrue(testPojo2.equals(pojo2));
+    }
+    
+    @Test
+    public void body() {
+        ObjectMapper mapper = new ObjectMapper();
+        Message message = MessageFactory.getInstance().getMessage();
+        List<String> variableList = new ArrayList<String>();
+        
+        message.getBody().add("body1", "some object");
+        variableList.add("body.body1");
+        
+        TestPojo testPojo1 = new TestPojo();
+        testPojo1.setCount(1);
+        testPojo1.setName("test1");
+        TestPojo testPojo2 = new TestPojo();
+        testPojo2.setCount(1);
+        testPojo2.setName("test2");
+        testPojo1.setTestPojo(testPojo2);
+        message.getBody().add("body2", testPojo1);
+        variableList.add("body.body2.testPojo.testPojo");
+        
+        List<Object> pojos=mapper.createObjectList(message, variableList);
+        
+        Object pojo1 = pojos.get(0);
+        assertTrue("some object".equals(pojo1));
+        
+        Object pojo2 = pojos.get(1);
+        assertTrue(testPojo2.equals(pojo2));  
+    }
+}

Deleted: labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/TestPojo.java
===================================================================
--- labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/TestPojo.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/TestPojo.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,37 +0,0 @@
-/**
- * 
- */
-package org.jboss.soa.esb.message.mapping;
-
-import java.io.Serializable;
-
-/**
- * @author kstam
- *
- */
-public class TestPojo implements Serializable
-{
-    private static final long serialVersionUID = 1L;
-    String name;
-    int count;
-    TestPojo testPojo;
-    
-    public int getCount() {
-        return count;
-    }
-    public void setCount(int count) {
-        this.count = count;
-    }
-    public String getName() {
-        return name;
-    }
-    public void setName(String name) {
-        this.name = name;
-    }
-    public TestPojo getTestPojo() {
-        return testPojo;
-    }
-    public void setTestPojo(TestPojo testPojo) {
-        this.testPojo = testPojo;
-    }
-}

Copied: labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/TestPojo.java (from rev 12160, labs/jbossesb/trunk/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/TestPojo.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/TestPojo.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/core/rosetta/tests/src/org/jboss/soa/esb/message/mapping/TestPojo.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,37 @@
+/**
+ * 
+ */
+package org.jboss.soa.esb.message.mapping;
+
+import java.io.Serializable;
+
+/**
+ * @author kstam
+ *
+ */
+public class TestPojo implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    String name;
+    int count;
+    TestPojo testPojo;
+    
+    public int getCount() {
+        return count;
+    }
+    public void setCount(int count) {
+        this.count = count;
+    }
+    public String getName() {
+        return name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+    public TestPojo getTestPojo() {
+        return testPojo;
+    }
+    public void setTestPojo(TestPojo testPojo) {
+        this.testPojo = testPojo;
+    }
+}

Modified: labs/jbossesb/workspace/dbevenius/product/core/services/src/org/jboss/soa/esb/services/routing/cbr/ContentBasedRouter.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/core/services/src/org/jboss/soa/esb/services/routing/cbr/ContentBasedRouter.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/core/services/src/org/jboss/soa/esb/services/routing/cbr/ContentBasedRouter.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -49,10 +49,12 @@
 	 *            the ruleSet.
 	 * @param message -
 	 *            Message that needs routing.
+     * @param objectList - a list with additional objects (typically pulled from the message)
+     * 
 	 * @return List of routing destinations.
 	 */
 	public abstract List<String> route (String ruleSet, String ruleLanguage,
-			boolean ruleReload, Message message) throws MessageRouterException;
+			boolean ruleReload, Message message, List<Object> objectList) throws MessageRouterException;
 
 	/**
 	 * Route a message using a certain ruleSet.
@@ -64,8 +66,10 @@
 	 *            the ruleSet.
 	 * @param message -
 	 *            Message that needs routing.
+     * @param objectList - a list with additional objects (typically pulled from the message)
+     * 
 	 * @return List of routing destinations.
 	 */
 	public abstract List<String> route (String ruleSet, boolean ruleReload,
-			Message message) throws MessageRouterException;
+			Message message, List<Object> objectList) throws MessageRouterException;
 }

Modified: labs/jbossesb/workspace/dbevenius/product/docs/AdministrationGuide.odt
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/dbevenius/product/docs/ProgrammersGuide.odt
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/dbevenius/product/docs/services/MessageTransformation.odt
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/dbevenius/product/docs/services/Registry.odt
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/dbevenius/product/lib/ext/wstx-lgpl-3.2.1.jar (from rev 12160, labs/jbossesb/trunk/product/lib/ext/wstx-lgpl-3.2.1.jar)
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/conf/base-build.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/conf/base-build.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/conf/base-build.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -16,16 +16,9 @@
     <property name="build.dir" value="${basedir}/build" />
     <property name="classes" value="${build.dir}/classes" />
 
-	<!-- lib directory for jbossesb jar files.  -->
-	<condition property="esb.product.lib.dir" 
-		value="${product.dir}/build/jbossesb/lib" else="${product.dir}/lib">
-		<available file="${product.dir}/build/jbossesb/lib/jbossesb-rosetta.jar"/>
-	</condition>
-	<!-- fail if this is not a GA release distribution and the project has not yet been built -->	
-	<available file="${esb.product.lib.dir}/jbossesb-rosetta.jar" property="lib.exists" />
-	<fail unless="lib.exists" message="JBossESB must be built. Please run 'ant' in ${product.dir}"/>
-	
-	<!-- check if org.jboss.esb.jboss.server.home has been specified in quickstarts.properites -->
+	<!-- 
+		check if org.jboss.esb.jboss.server.home has been specified in quickstarts.properites 
+	-->
 	<condition
 		property="org.jboss.esb.server.home"  
 		value="${quickstart.org.jboss.esb.server.home}" 
@@ -33,11 +26,14 @@
 		<isset property="quickstart.org.jboss.esb.server.home"/>
 	</condition>
 	
-	<!-- check if org.jboss.esb.jboss.server.config has been specified in quickstarts.properites -->
+	<!-- 
+		check if org.jboss.esb.jboss.server.config has been specified in quickstarts.properites 
+		default = "default"
+	-->
 	<condition 
 		property="org.jboss.esb.server.config" 
 		value="${quickstart.org.jboss.esb.server.config}"
-		else="${install.org.jboss.esb.server.config}"> 
+		else="default"> 
 		<isset property="quickstart.org.jboss.esb.server.config"/>
 	</condition>
 	
@@ -45,6 +41,41 @@
 	<property name="org.jboss.esb.server.deploy.dir" 
 		value="${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/deploy"/>
 	
+
+	<!-- lib directory for jbossesb jar files.  
+		 src distribution 		= ${product.dir}/build/jbossesb/lib
+		 bundled distribution	= ${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/deploy/jbossesb.sar/lib
+		 ga 					= ${product.dir}/lib ? Need to verify all possible distributions. Daniel 20070525
+	-->
+	<condition property="esb.product.lib.dir.src.or.ga" 
+		value="${product.dir}/build/jbossesb/lib" else="${product.dir}/lib/ext">
+		<available file="${product.dir}/build/jbossesb/lib/jbossesb-rosetta.jar"/>
+	</condition>
+
+	<condition property="esb.product.lib.dir" 
+		value="${esb.product.lib.dir.src.or.ga}" else="${product.dir}/server/default/deploy/jbossesb.sar/lib">
+		<available file="${esb.product.lib.dir.src.or.ga}/jbossesb-rosetta.jar"/>
+	</condition>
+
+	<!-- fail if this is not a GA release distribution and the project has not yet been built -->	
+	<available file="${esb.product.lib.dir}/jbossesb-rosetta.jar" property="lib.exists" />
+
+	<!-- ext lib directory 
+		 src distribution 		= product/lib/ext
+		 bundled distribution	= ${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/deploy/jbossesb.sar/lib
+		 ga 					= ${product.dir}/lib ? Need to verify all possible distributions. Daniel 20070525
+	-->
+    <condition property="esb.ext.lib.dir.src.or.bundled"
+        value="${product.dir}/lib/ext" else="${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/deploy/jbossesb.sar/lib">
+        <available file="${product.dir}/lib/ext" type="dir"/>
+    </condition>
+    <condition property="esb.ext.lib.dir"
+        value="${esb.ext.lib.dir.src.or.bundled}" else="${product.dir}/lib">
+		<isset property="esb.ext.lib.dir.src.or.bundled"/>
+    </condition>
+
+	<fail unless="lib.exists" message="JBossESB must be built. Please run 'ant' in ${product.dir}"/>
+	
 	<!-- check if the application server support JBoss Messaging or JBossMQ -->
 	<condition property="jms.destinations.file" 
 			value="esb-quickstart-jbm-service.xml" else="esb-quickstart-jbmq-service.xml">
@@ -74,22 +105,28 @@
 
         <path refid="quickstart-dependencies-classpath" />
         <path refid="quickstart-lib-classpath" />
-        <fileset dir="${product.dir}/lib/ext" includes="*.jar" /> <!-- Product Dependencies. -->
+        <fileset dir="${esb.ext.lib.dir}" includes="*.jar" /> <!-- Product Dependencies. -->
+        <fileset dir="${product.dir}/lib" includes="*.jar" /> <!-- Product Dependencies. -->
 		<fileset dir="${esb.product.lib.dir}" includes="*.jar" /> <!-- Product Jars. -->
+		<fileset dir="${org.jboss.esb.server.home}/client" includes="*.jar" /> <!-- Required for JMS Client Code. -->
 	</path>
 
 	<path id="exec-classpath">
 		<pathelement location="." />
         <pathelement location="${basedir}/src" />
 		<pathelement location="${classes}" />
+		<fileset dir="${org.jboss.esb.server.home}/server/default/lib" includes="jboss-remoting.jar" /> <!-- Required for JMS Client Code. -->
+		<fileset dir="${org.jboss.esb.server.home}/server/default/lib" includes="jboss-j2ee.jar" /> <!-- Required for JMS Client Code. -->
+		<fileset dir="${esb.product.lib.dir}" includes="*.jar" /> <!-- Product Jars. -->
+		<fileset dir="${org.jboss.esb.server.home}/lib/endorsed" includes="*.jar" /> <!-- Required for JMS Client Code. -->
+		<!--fileset dir="${org.jboss.esb.server.home}/client" includes="*.jar" /--> <!-- Required for JMS Client Code. -->
 		<path refid="compile-classpath" />
-		<fileset dir="${org.jboss.esb.server.home}/server/default/lib" includes="jboss-j2ee.jar" /> <!-- Required for JMS Client Code. -->
 	</path>
     </target>
 
     <target name="compile" depends="dependencies">
 		<mkdir dir="${classes}" />
-		<javac srcdir="${basedir}/src" destdir="${classes}">
+		<javac srcdir="${basedir}/src" destdir="${classes}" debug="true">
 			<classpath refid="compile-classpath" />
 		</javac>
 	</target>
@@ -196,7 +233,7 @@
 
     <target name="assert-ws-available">
         <available property="ws-available" file="${org.jboss.esb.server.deploy.dir}/jbossws.sar" type="dir" />
-        <fail unless="ws-available">**** DEPLOYMENT FAILED... Sorry, this Quickstart requires a JBoss Webservice container.  '${org.jboss.server.dir}' does not have a Webservice container.  Check the 'jbosshome.dir' property in ../quickstarts.properties"</fail>
+        <fail unless="ws-available">**** DEPLOYMENT FAILED... Sorry, this Quickstart requires a JBoss Webservice container.  '${org.jboss.server.dir}' does not have a Webservice container.  Check the 'org.jboss.esb.server.home' property in ../quickstarts.properties"</fail>
         <echo message="JBoss Webservice container found on target '${org.jboss.esb.server.deploy.dir}'." />
     </target>
 
@@ -244,6 +281,7 @@
 			product.dir : ${product.dir}
 			install.dir : ${install.dir}
 			esb.product.lib.dir : ${esb.product.lib.dir}
+			esb.ext.lib.dir : ${esb.ext.lib.dir}
 			org.jboss.esb.server.home : ${org.jboss.esb.server.home}
 			org.jboss.esb.server.config : ${org.jboss.esb.server.config}
 			org.jboss.esb.jboss.server.deploy.dir : ${org.jboss.esb.server.deploy.dir}

Modified: labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/fun_cbr/build.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/fun_cbr/build.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/fun_cbr/build.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -47,7 +47,7 @@
 			basedir="${basedir}/src/services/rules" includes="*.*"/>
 
   	  <copy file="${build.dir}/${ant.project.name}_Rules.jar" overwrite="true"
-			todir="${jbosshome.dir}/server/default/deploy/jbossesb.sar/lib"	
+			todir="${org.jboss.esb.server.deploy.dir}/jbossesb.sar/lib"	
 	  />
   </target>
 	
@@ -86,4 +86,4 @@
 	 </java>
    </target> 
 	
-</project>
\ No newline at end of file
+</project>

Modified: labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/fun_cbr/deployment.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/fun_cbr/deployment.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/fun_cbr/deployment.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <jbossesb-deployment>
-  <depends>jboss.esb:deployment=jbrules-cbr.esb</depends>
+  <depends>jboss.esb:deployment=jbrules.esb</depends>
 </jbossesb-deployment>

Modified: labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_bpel/readme.txt
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_bpel/readme.txt	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_bpel/readme.txt	2007-05-26 16:26:26 UTC (rev 12161)
@@ -17,7 +17,8 @@
 
 Before Running:
 ===============
-1. Update the "jbosshome.dir" property in the quickstarts.properties file in "../conf".
+1. Update the "org.jboss.esb.server.home" property in the quickstarts.properties
+   file in "../conf".
 2. Make sure the jbossesb.sar is deployed on your JBoss Application Server.
    In the ESB "install" folder update deployment.properties and then run "ant".
 

Modified: labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_jbossws_adapter_01/readme.txt
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_jbossws_adapter_01/readme.txt	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_jbossws_adapter_01/readme.txt	2007-05-26 16:26:26 UTC (rev 12161)
@@ -5,7 +5,8 @@
 
 Before Running:
 ===============
-1. Update the "jbosshome.dir" property in the quickstarts.properties file in "../".
+1. Update the "org.jboss.esb.server.home" property in the quickstarts.properties
+   file in "../".
 2. Make sure the jbossesb.sar is deployed on your JBoss Application Server.
    In the ESB "install" folder update deployment.properties and then run "ant".
    This example does require you to use a version for 4.0.4+ with the EJB3 profile.
@@ -18,4 +19,4 @@
 the needed jars and deploy the ESB archive component to the Application Server.  If you are 
 monitoring the Application Server console you will see it hot deploy the WAR.
 
-2. Run "ant runtest". 
\ No newline at end of file
+2. Run "ant runtest". 

Modified: labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_war1/build.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_war1/build.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_war1/build.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -10,19 +10,16 @@
 
     <property name="additional.deploys" value="jbmq-service.xml"/>
 
-    <target name="quickstart-specific-deploys" depends="assert-ws-available">
-        <!-- Overriden from the target of the same name in base-build.xml. -->
-        <!-- Called by the "deploy" target.  Don't call directly!! -->
+    <target name="quickstart-specific-assemblies" depends="assert-ws-available, makewar"/>
 
-        <!-- Build and deploy the webservice... -->
-        <antcall target="makewar" />
-        <copy file="build/${ant.project.name}.war" overwrite="true" todir="${jbosshome.dir}/server/default/deploy"/>
+    <target name="quickstart-specific-clean">
+        <delete dir="war/classes"/>
     </target>
 
     <target name="makewar" description="make war">
         <!-- Compile... -->
         <mkdir dir="war/classes" />
-        <javac srcdir="war/src" destdir="war/classes">
+        <javac srcdir="war/src" destdir="war/classes" debug="true">
             <classpath>
                 <path refid="compile-classpath" />
                 <fileset dir="war/lib/ext" includes="*.jar" />

Modified: labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_war1/readme.txt
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_war1/readme.txt	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/quickstarts/webservice_war1/readme.txt	2007-05-26 16:26:26 UTC (rev 12161)
@@ -7,7 +7,8 @@
 
 Before Running:
 ===============
-1. Update the "jbosshome.dir" property in the quickstarts.properties file in "../".
+1. Update the "org.jboss.esb.server.home" property in the quickstarts.properties
+   file in "../".
 2. Make sure the jbossesb.sar is deployed on your JBoss Application Server.
    In the ESB "install" folder update deployment.properties and then run "ant".
    This example does require you to use a version for 4.0.4+ with the EJB3 profile.
@@ -49,4 +50,4 @@
 This assumes you put in "Your Name" as the parameter in your WS client testing tool.
      
      
-    
\ No newline at end of file
+    

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/build.properties
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/build.properties	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/build.properties	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,2 +0,0 @@
-org.jboss.soa.samples.trailblazer.jboss_home=/Users/tcunning/esb/esbserver
-org.jboss.soa.samples.trailblazer.jboss_server=default

Modified: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/build.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/build.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/build.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,234 +1,232 @@
-<!--
-  JBoss, Home of Professional Open Source
-  Copyright 2006, JBoss Inc., and others contributors as indicated 
-  by the @authors tag. All rights reserved. 
-  See the copyright.txt in the distribution for a
-  full listing of individual contributors. 
-  This copyrighted material is made available to anyone wishing to use,
-  modify, copy, or redistribute it subject to the terms and conditions
-  of the GNU Lesser General Public License, v. 2.1.
-  This program is distributed in the hope that it will be useful, but WITHOUT A 
-  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,
-  v.2.1 along with this distribution; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-  MA  02110-1301, USA.
-  
-  (C) 2005-2006,
-  @author Daniel Brum
--->
+<project name="TRAILBLAZER" default="esb.samples.trailblazer.esb.compile" basedir=".">	
 
-<project name="TRAILBLAZER" default="org.jboss.esb.samples.trailblazer.esb.compile" basedir=".">	
-
 	<!-- UPDATE THIS WITH YOUR JBOSS_HOME AND SERVER -->
-	<property file="build.properties" />
+	<property name="trailblazer.dir" location="."/>
+	<property name="esb.home.dir" value="${trailblazer.dir}/../.."/>
+	<property name="install.dir" value="${esb.home.dir}/install"/>
+	<property file="${install.dir}/deployment.properties"/>
 
-	<property name="org.jboss.soa.samples.trailblazer.jboss_home" 		value="/jboss-4.0.5.GA"/>
-	<property name="org.jboss.soa.samples.trailblazer.jboss_server"	value="default"/>
-	<property name="org.jboss.soa.samples.trailblazer.home" value="."/>
+	<property name="org.jboss.esb.server.home" value="/jboss-4.2.0.GA"/>
+	<property name="org.jboss.esb.server.config" value="default"/>
+	<property name="trailblazer.dir" value="."/>
 
-	<property name="org.jboss.soa.samples.trailblazer.esb_home"	 	location="../../"/>
-
 	<!-- properties for the esb part of the trailblazer -->
-	<property name="org.jboss.esb.samples.trailblazer.esb.dest"        	value="${basedir}/esb/build"/>
-	<property name="org.jboss.esb.samples.trailblazer.esb.classes.dir" 	value="${basedir}/esb/build/classes"/>
-	<property name="org.jboss.esb.samples.trailblazer.esb.testclasses.dir"  value="${basedir}/esb/build/classes/tests/"/>
-	<property name="org.jboss.esb.samples.trailblazer.esb.src.dir"          value="${basedir}/esb/src"/>
-	<property name="org.jboss.esb.samples.trailblazer.esb.test.dir"         value="${basedir}/esb/test"/>
-	<property name="org.jboss.esb.samples.trailblazer.esb.lib.dir"      	value="${basedir}/esb/lib"/>
-	<property name="org.jboss.esb.samples.trailblazer.esb.tests.report.dir" value="${basedir}/esb/build/tests"/>
+	<property name="esb.dest"     	value="${basedir}/esb/build"/>
+	<property name="classes.dir" 	value="${basedir}/esb/build/classes"/>
+	<property name="esb.testclasses.dir"  value="${basedir}/esb/build/classes/tests/"/>
+	<property name="esb.src.dir"    value="${basedir}/esb/src"/>
+	<property name="esb.test.dir"   value="${basedir}/esb/test"/>
+	<property name="esb.lib.dir"   	value="${basedir}/esb/lib"/>
+	<property name="report.dir" 	value="${basedir}/esb/build/tests"/>
 
 	<!-- properties for the client(web) part of the trailblazer -->
-	<property name="org.jboss.esb.samples.trailblazer.client.dest"        		value="${basedir}/client/build"/>
-	<property name="org.jboss.esb.samples.trailblazer.client.classes.dir" 		value="${basedir}/client/build/classes"/>
-	<property name="org.jboss.esb.samples.trailblazer.client.testclasses.dir"  	value="${basedir}/client/build/classes/tests/"/>
-	<property name="org.jboss.esb.samples.trailblazer.client.src.dir"          	value="${basedir}/client/src"/>
-	<property name="org.jboss.esb.samples.trailblazer.client.test.dir"         	value="${basedir}/client/test"/>
-	<property name="org.jboss.esb.samples.trailblazer.client.lib.dir"		value="${basedir}/client/lib"/>
-	<property name="org.jboss.esb.samples.trailblazer.client.tests.report.dir" 	value="${basedir}/client/build/tests"/>
+	<property name="client.dir" value="${basedir}/client"/>
+	<property name="esb.samples.trailblazer.client.dest" 
+		value="${basedir}/client/build"/>
+	<property name="esb.samples.trailblazer.client.classes.dir" 
+		value="${basedir}/client/build/classes"/>
+	<property name="esb.samples.trailblazer.client.testclasses.dir" 
+		value="${basedir}/client/build/classes/tests/"/>
+	<property name="esb.samples.trailblazer.client.src.dir" 
+		value="${basedir}/client/src"/>
+	<property name="esb.samples.trailblazer.client.test.dir" 
+		value="${basedir}/client/test"/>
+	<property name="esb.samples.trailblazer.client.lib.dir"	
+		value="${basedir}/client/lib"/>
+	<property name="esb.samples.trailblazer.client.tests.report.dir"
+		value="${basedir}/client/build/tests"/>
 
 	<property environment="env" />
 
-        <property name="org.jboss.soa.esb.lib.file" value="jbossesb-rosetta.jar"/>
-        <property name="org.jboss.soa.esb.lib.dist.dir" value="${org.jboss.soa.samples.trailblazer.esb_home}/lib"/>
-        <property name="org.jboss.soa.esb.lib.src.dir" value="../../build/jbossesb/lib"/>
+        <property name="esb.lib.file" value="jbossesb-rosetta.jar"/>
+        <property name="soa.esb.lib.dist.dir" value="${esb.home.dir}/lib"/>
+        <property name="soa.esb.lib.src.dir" value="../../build/jbossesb/lib"/>
 
-	<available file="${org.jboss.soa.esb.lib.file}"
-            filepath="${org.jboss.soa.esb.lib.dist.dir}"
-            property="org.jboss.soa.esb.lib.dir"
-            value="${org.jboss.soa.esb.lib.dist.dir}"/>
+	<available file="${esb.lib.file}"
+            filepath="${soa.esb.lib.dist.dir}"
+            property="soa.esb.lib.dir"
+            value="${soa.esb.lib.dist.dir}"/>
 
-	<available file="${org.jboss.soa.esb.lib.file}"
-            filepath="${org.jboss.soa.esb.lib.src.dir}"
-            property="org.jboss.soa.esb.lib.dir"
-            value="${org.jboss.soa.esb.lib.src.dir}"/>
+	<available file="${esb.lib.file}"
+            filepath="${soa.esb.lib.src.dir}"
+            property="soa.esb.lib.dir"
+            value="${soa.esb.lib.src.dir}"/>
 
-	<property name="org.jboss.soa.esb.lib.ext.dir" value="${org.jboss.soa.esb.lib.dir}/ext"/>
-	
+	<property name="soa.esb.lib.ext.dir" value="${soa.esb.lib.dir}/ext"/>
 
+	<!-- wstools classpath -->
+	<path id="wstools.classpath">
+		<fileset dir="${client.dir}/lib/ext/jboss-jaxws.jar"/>
+		<fileset dir="${client.dir}/lib/ext/jbossws-client.jar"/>
+		<fileset dir="${esb.samples.trailblazer.client.lib.dir}" includes="*.jar"/>
+	</path>	
+
 	<!-- classpath -->
-	<path id="org.jboss.esb.samples.trailblazer.esb.classpath">
-		<fileset dir="${org.jboss.soa.esb.lib.dir}/ext" includes="*.jar"/>
-		<fileset dir="${org.jboss.esb.samples.trailblazer.esb.lib.dir}/ext" includes="*.jar"/>
-		<fileset dir="${org.jboss.soa.samples.trailblazer.jboss_home}/client" includes="jbossall-client.jar jbossws-client.jar mail.jar"/>
-		<fileset dir="${org.jboss.soa.esb.lib.dir}" includes="*.jar"/>
-		<fileset dir="${org.jboss.esb.samples.trailblazer.client.lib.dir}/ext" includes="*.jar"/>
+	<path id="esb.samples.trailblazer.esb.classpath">
+		<fileset dir="${soa.esb.lib.dir}/ext" includes="*.jar"/>
+		<fileset dir="${esb.lib.dir}/ext" includes="*.jar"/>
+		<fileset dir="${org.jboss.esb.server.home}/client" includes="jbossall-client.jar jbossws-client.jar mail.jar"/>
+		<fileset dir="${soa.esb.lib.dir}" includes="*.jar"/>
+		<fileset dir="${esb.samples.trailblazer.client.lib.dir}/ext" includes="*.jar"/>
 	</path>
 
 	<!-- classpath for running the listener-->
-	<path id="org.jboss.esb.samples.trailblazer.esb.classpath.run">
-		<fileset dir="${org.jboss.soa.esb.lib.ext.dir}"
+	<path id="esb.samples.trailblazer.esb.classpath.run">
+		<fileset dir="${soa.esb.lib.ext.dir}"
 			includes="jaxr-api*.jar,scout*.jar,juddi*.jar"/>
-		<fileset dir="${org.jboss.esb.samples.trailblazer.esb.dest}/dist" includes="trailblazer-esb.jar"/>
-		<fileset dir="${org.jboss.soa.samples.trailblazer.esb_home}/lib/ext" includes="*.jar" excludes="jaxr-api*.jar,scout*.jar,juddi*.jar"/>
-		<fileset dir="${org.jboss.soa.esb.lib.ext.dir}" includes="*.jar" excludes="jaxr-api*.jar,scout*.jar,juddi*.jar"/>
-		<fileset dir="${org.jboss.soa.samples.trailblazer.jboss_home}/client" includes="jbossall-client.jar jbossws-client.jar mail.jar"/>
-		<fileset dir="${org.jboss.soa.esb.lib.dir}" includes="*.jar"/>
-		<fileset dir="${org.jboss.esb.samples.trailblazer.esb.lib.dir}/ext" includes="*.jar"/>
+		<fileset dir="${esb.dest}/dist" includes="trailblazer-esb.jar"/>
+		<fileset dir="${esb.home.dir}/lib/ext" includes="*.jar" excludes="jaxr-api*.jar,scout*.jar,juddi*.jar"/>
+		<fileset dir="${soa.esb.lib.ext.dir}" includes="*.jar" excludes="jaxr-api*.jar,scout*.jar,juddi*.jar"/>
+		<fileset dir="${org.jboss.esb.server.home}/client" includes="jbossall-client.jar jbossws-client.jar mail.jar"/>
+		<fileset dir="${soa.esb.lib.dir}" includes="*.jar"/>
+		<fileset dir="${esb.lib.dir}/ext" includes="*.jar"/>
 		<!-- for finding the jbossesb-properties.xml file -->
 		<pathelement location="${basedir}"/>
 	</path>
 
-	<path id="org.jboss.esb.samples.trailblazer.esb.classpath.client">
-		<fileset dir="${org.jboss.soa.esb.lib.ext.dir}"/>
-		<fileset dir="${org.jboss.esb.samples.trailblazer.esb.lib.dir}/ext" includes="*.jar"/>
-		<fileset dir="${org.jboss.soa.samples.trailblazer.jboss_home}/client" includes="jbossall-client.jar jbossws-client.jar mail.jar"/>
-		<fileset dir="${org.jboss.soa.esb.lib.dir}" includes="*.jar"/>
-		<fileset dir="${org.jboss.esb.samples.trailblazer.client.lib.dir}/ext" includes="*.jar"/>
-		<fileset dir="${org.jboss.esb.samples.trailblazer.esb.dest}/dist" includes="trailblazer-esb.jar"/>
-        <pathelement location="${org.jboss.esb.samples.trailblazer.esb.classes.dir}"/>
-    </path>
+	<path id="esb.samples.trailblazer.esb.classpath.client">
+		<fileset dir="${soa.esb.lib.ext.dir}"/>
+		<fileset dir="${esb.lib.dir}/ext" includes="*.jar"/>
+		<fileset dir="${org.jboss.esb.server.home}/client" includes="jbossall-client.jar jbossws-client.jar mail.jar"/>
+		<fileset dir="${soa.esb.lib.dir}" includes="*.jar"/>
+		<fileset dir="${esb.samples.trailblazer.client.lib.dir}/ext" includes="*.jar"/>
+		<fileset dir="${esb.dest}/dist" includes="trailblazer-esb.jar"/>
+		<pathelement location="${classes.dir}"/>
+	</path>
 
+	<target name="clean">
+		<delete dir="${esb.dest}"/>
+		<delete dir="${esb.samples.trailblazer.client.dest}"/>
+	</target>
 
+	<!-- =================================================================== -->
+	<!-- wstools is not currently used, but is useful for producing WS	 -->
+	<!-- deployment files.							 -->
+	<!-- =================================================================== -->
+	<taskdef name="wstools" classname="org.jboss.ws.tools.ant.wstools">
+		<classpath>
+			<pathelement location="client/lib/ext/jboss-jaxws.jar"/>
+			<pathelement location="client/lib/ext/jbossws-core.jar"/>	
+			<pathelement location="${esb.home.dir}/lib/ext/activation.jar"/>
+			<pathelement location="${esb.home.dir}/lib/ext/jbossall-client.jar"/>
+			<pathelement location="${esb.home.dir}/lib/ext/mail.jar"/>
+			<pathelement path="${esb.samples.trailblazer.client.classes.dir}"/>
+		</classpath>
+	</taskdef>   
 
-	<target name="clean">
-		<delete dir="${org.jboss.esb.samples.trailblazer.esb.dest}"/>
-		<delete dir="${org.jboss.esb.samples.trailblazer.client.dest}"/>
+	<target name="wstools">
+		<wstools
+			dest="client/WEB-INF"
+			config="client/resources/wstools-config.xml"
+		/>
 	</target>
-	
+
 	<!-- =================================================================== -->
 	<!-- Prepares the directory structure                                    -->
 	<!-- =================================================================== -->
-	<target name="org.jboss.esb.samples.trailblazer.prepare" depends="clean">
-		<mkdir dir="${org.jboss.esb.samples.trailblazer.esb.dest}"/>
-		<mkdir dir="${org.jboss.esb.samples.trailblazer.esb.dest}/dist"/>
-		<mkdir dir="${org.jboss.esb.samples.trailblazer.esb.dest}/classes"/>
-		<mkdir dir="${org.jboss.esb.samples.trailblazer.client.dest}"/>
-		<mkdir dir="${org.jboss.esb.samples.trailblazer.client.dest}/dist"/>
-		<mkdir dir="${org.jboss.esb.samples.trailblazer.client.dest}/classes"/>
+	<target name="esb.built" unless="soa.esb.lib.dir">
+		<echo>Please build the ESB with "ant dist" in the ESB parent</echo>
+		<echo>directory in order to run the Trailblazer application.</echo>
+		<fail>Please build ESB first.</fail>
 	</target>
 
+	<target name="trailblazer.prepare" depends="esb.built,clean" if="soa.esb.lib.dir">
+		<mkdir dir="${esb.dest}"/>
+		<mkdir dir="${esb.dest}/dist"/>
+		<mkdir dir="${esb.dest}/classes"/>
+		<mkdir dir="${esb.samples.trailblazer.client.dest}"/>
+		<mkdir dir="${esb.samples.trailblazer.client.dest}/dist"/>
+		<mkdir dir="${esb.samples.trailblazer.client.dest}/classes"/>
+	</target>
+
 	<!-- Compilation targets -->
 	<!-- ___________________ -->
 	
 	<!-- ESB COMPILATION -->
-	<target name="org.jboss.esb.samples.trailblazer.esb.compile" depends="org.jboss.esb.samples.trailblazer.prepare"
+	<target name="esb.compile" 
+		depends="trailblazer.prepare"
 		description="Compiling Trailblazer ESB classes">
 		<javac
-		            destdir="${org.jboss.esb.samples.trailblazer.esb.classes.dir}"
-		            classpathref="org.jboss.esb.samples.trailblazer.esb.classpath"
-		        	debug="true"
-		        	>
-			<src path="${org.jboss.esb.samples.trailblazer.esb.src.dir}"/>
+		        destdir="${classes.dir}"
+		        classpathref="esb.samples.trailblazer.esb.classpath"
+			debug="true">
+			<src path="${esb.src.dir}"/>
 		</javac>
 	</target>
 
 	<!-- CLIENT(WEB) COMPILATION -->
-	<target name="org.jboss.esb.samples.trailblazer.client.compile" depends="org.jboss.esb.samples.trailblazer.prepare"
+    	<target name="client.compile" 
+		depends="trailblazer.prepare"
 		description="Compiling Trailblazer client classes">
 
-		<javac
-		            destdir="${org.jboss.esb.samples.trailblazer.client.classes.dir}"
-		            classpathref="org.jboss.esb.samples.trailblazer.esb.classpath.client" debug="true">
-			<src path="${org.jboss.esb.samples.trailblazer.client.src.dir}"/>
+		<javac	destdir="${esb.samples.trailblazer.client.classes.dir}"
+            		classpathref="esb.samples.trailblazer.esb.classpath.client" debug="true">
+	    		<src path="${esb.samples.trailblazer.client.src.dir}"/>
 		</javac>
 	</target>
-	
 
 	<!-- JAR/WAR targets -->
-	<target name="org.jboss.esb.samples.trailblazer.esb.jar" depends="compile" >
+	<target name="esb.jar" depends="compile" >
+		<property name="esb.build.dir" value="${esb.dest}" />
 
-        <!-- shortened variable - the long ones are a bit ridiculous :-) -->
-        <property name="esb.build.dir" value="${org.jboss.esb.samples.trailblazer.esb.dest}" />
-
-        <!-- ESB Client JAR -->
+	        <!-- ESB Client JAR -->
 		<echo message="Building Trailblazer ESB archives"/>
-		<jar    destfile="${esb.build.dir}/dist/trailblazer-esb.jar"
-                basedir="${org.jboss.esb.samples.trailblazer.esb.classes.dir}" 
-                includes="**/*.class" excludes="**/web/*.class">
-        </jar>
-        <!-- ESB Deployment (.esb) -->
-        <copy todir="${esb.build.dir}/META-INF">
-            <fileset dir="esb/conf" includes="jboss-esb.xml,deployment.xml" />
-        </copy>
-        <jar destfile="${esb.build.dir}/dist/trailblazer.esb">
-            <fileset dir="${org.jboss.esb.samples.trailblazer.esb.classes.dir}" excludes="**/web/*.class" />            
-            <fileset dir="${esb.build.dir}" includes="META-INF/**" />
-            <fileset dir="esb/conf" includes="jbm-queue-service.xml" />
-            <fileset dir="${basedir}" includes="trailblazer.properties,template/**" />
-        </jar>
+		<jar destfile="${esb.build.dir}/dist/trailblazer-esb.jar"
+        	        basedir="${classes.dir}" 
+               		includes="**/*.class" excludes="**/web/*.class">
+        	</jar>
+        	<!-- ESB Deployment (.esb) -->
+        	<copy todir="${esb.build.dir}/META-INF">
+            		<fileset dir="esb/conf" includes="jboss-esb.xml,deployment.xml" />
+        	</copy>
+	        <jar destfile="${esb.build.dir}/dist/trailblazer.esb">
+        	    <fileset dir="${classes.dir}" excludes="**/web/*.class" />            
+      	    	    <fileset dir="${esb.build.dir}" includes="META-INF/**" />
+	    	    <fileset dir="esb/conf" includes="jbmq-service.xml"/>
+	            <fileset dir="${basedir}" includes="trailblazer.properties,template/**" />
+        	</jar>
+	</target>
 
+	<target name="war" depends="compile"> 
+
 		<!-- Web side WAR -->
 		<echo message="Building Trailblazer WAR file"/>
-		<delete file="${org.jboss.esb.samples.trailblazer.client.dest}/dist/trailblazer.war" />		
-		<war    warfile="${org.jboss.esb.samples.trailblazer.client.dest}/dist/trailblazer.war"
-		        webxml="${basedir}/client/resources/web.xml">
-			<classes dir="${org.jboss.esb.samples.trailblazer.client.classes.dir}" includes="**/web/**/*.class"/>
-			<classes dir="${org.jboss.esb.samples.trailblazer.client.classes.dir}" includes="**/loanbroker/**/*.class"/>
-            <classes dir="${basedir}" includes="trailblazer.properties" />
-			<lib dir="${org.jboss.soa.esb.lib.dir}">
-				<include name="*.jar"/>
-			</lib>
-
-			<lib dir="${org.jboss.esb.samples.trailblazer.esb.dest}/dist">
-				<include name="trailblazer-esb.jar"/>
-			</lib>
-
-			<lib dir="${org.jboss.esb.samples.trailblazer.client.lib.dir}/ext">
-				<include name="axis.jar"/>
-				<include name="commons-discovery.jar"/>
-			</lib>
-			<lib dir="${org.jboss.soa.esb.lib.ext.dir}">
-				<include name="xbean*.jar"/>
-				<include name="xmlpublic.jar"/>
-				<include name="stax-api-*.jar"/>
-				<include name="commons-discovery.jar"/>
-				<include name="jbossts-common.jar"/>
-				<include name="jaxr-api-*.jar"/>
-				<include name="scout-*.jar"/>
-				<include name="juddi-*.jar"/>				
-			</lib>
-			<fileset dir="${basedir}/client/jsp">
-				<include name="**/*.jsp"/>
-			</fileset>
+		<delete file="${esb.samples.trailblazer.client.dest}/dist/trailblazer.war" />		
+		<war warfile="${esb.samples.trailblazer.client.dest}/dist/trailblazer.war"
+	       		webxml="${basedir}/client/resources/web.xml">
+			<classes dir="${esb.samples.trailblazer.client.classes.dir}">
+				<include name="**/loanbroker/*.class"/>
+				<include name="**/trailblazer/web/*.class"/>
+				<include name="trailblazer.properties"/>
+			</classes>
 			<webinf dir="${basedir}/client/resources">
-				<include name="jboss-web.xml"/>
+				<include name="jaxrpc-mapping.xml"/>
+				<include name="webservices.xml"/>
+				<include name="wsdl/*"/>
 			</webinf>
-			<classes dir="${basedir}">
-				<include name="juddi.properties"/>
-			</classes>
+			<lib dir="${esb.dest}/dist">
+                                <include name="trailblazer-esb.jar"/>
+                        </lib>
+			<fileset dir="client/jsp">
+				<include name="**/*.jsp"/>
+			</fileset>
 		</war>
 	</target>
 
-    <target name="deploy" depends="jar">
-        <property name="target-server" value="${org.jboss.soa.samples.trailblazer.jboss_home}/server/${org.jboss.soa.samples.trailblazer.jboss_server}" />
+	
+	<target name="deploy" depends="jar, war">
+        	<property name="target-server" value="${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}" />
 
-        <echo message="Deploying Trailblazer EAR and WAR files to target server '${target-server}'."/>
-        <copy todir="${target-server}/deploy">
-            <fileset dir="${org.jboss.esb.samples.trailblazer.esb.dest}/dist/" includes="trailblazer.esb" />
-            <fileset dir="${org.jboss.esb.samples.trailblazer.client.dest}/dist/" includes="trailblazer.war" />
-        </copy>
-
-        <!-- copy file="${basedir}/esb-trailblazer-service.xml" overwrite="true"
-				todir="${org.jboss.soa.samples.trailblazer.jboss_home}/server/${org.jboss.soa.samples.trailblazer.jboss_server}/deploy"/>
-		<copy file="${basedir}/jbossesb-properties.xml" 
-				tofile="${org.jboss.soa.samples.trailblazer.jboss_home}/server/${org.jboss.soa.samples.trailblazer.jboss_server}/deploy/jbossesb.sar/jbossesb-properties.xml" overwrite="true"/ -->
+	        <echo message="Deploying Trailblazer EAR and WAR files to target server '${target-server}'."/>
+        	<copy todir="${target-server}/deploy">
+            	<fileset dir="${esb.dest}/dist/" includes="trailblazer.esb" />
+            	<fileset dir="${esb.samples.trailblazer.client.dest}/dist/" includes="trailblazer.war" />
+        	</copy>
 	</target>
 	
 	<!-- Short target names -->
-	<target name="compile" depends="org.jboss.esb.samples.trailblazer.esb.compile,org.jboss.esb.samples.trailblazer.client.compile"/>
-	<target name="jar" depends="org.jboss.esb.samples.trailblazer.esb.jar"/>
+	<target name="compile" depends="esb.compile,client.compile"/>
+	<target name="jar" depends="esb.jar"/>
 
 	<!-- run the ESB listeners -->
 	<!-- set the first argument to 0 for an indefinite run for the listener launcher -->
@@ -238,16 +236,14 @@
 	<target name="runESB" depends="jar">
 		<echo>Running ESB Trailblazer listeners</echo>
 		<java fork="yes" classname="org.jboss.soa.esb.listeners.StandAloneBootStrapper" failonerror="true">
-			<jvmarg value="-Dorg.jboss.soa.esb.propertyFile=${org.jboss.soa.samples.trailblazer.home}/esb/jbossesb-properties.xml"/>
-			<arg value="${org.jboss.soa.samples.trailblazer.home}/esb/conf/jboss-esb.xml"/>
-			<classpath refid="org.jboss.esb.samples.trailblazer.esb.classpath.run"/>
+			<jvmarg value="-Dorg.jboss.soa.esb.propertyFile=${trailblazer.dir}/esb/jbossesb-properties.xml"/>
+			<arg value="${trailblazer.dir}/esb/conf/jboss-esb.xml"/>
+			<classpath refid="esb.samples.trailblazer.esb.classpath.run"/>
 		</java>
 	</target>
 
 	<!-- javadocs paths -->
-	<path id="org.jboss.esb.samples.trailblazer.esb.javadocs.path">
+	<path id="esb.samples.trailblazer.esb.javadocs.path">
 		<pathelement path="esb/classes"/>
 	</path>
-
-		
 </project>

Modified: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/jsp/index.jsp
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/jsp/index.jsp	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/jsp/index.jsp	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,3 +1,5 @@
+<%@ page import="org.jboss.soa.esb.samples.trailblazer.web.WebCustomer"%>
+<%@ page import="org.jboss.soa.esb.samples.trailblazer.loanbroker.LoanRequester"%>
 <% 
 /*
  * JBoss, Home of Professional Open Source
@@ -18,7 +20,7 @@
  * 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.
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
  
 String[] formHeader  = {"Name", "Address", "SSN", "Email", "Salary", "Employer", "LoanAmount", "LoanDuration"};
@@ -109,22 +111,8 @@
 </form>
 
 <% } else  {
-	
-	org.jboss.soa.esb.samples.trailblazer.web.generated.LoanBrokerWSBindingStub binding=null;
-    try {
-        binding = (org.jboss.soa.esb.samples.trailblazer.web.generated.LoanBrokerWSBindingStub)
-                      new org.jboss.soa.esb.samples.trailblazer.web.generated.LoanBrokerWSServiceLocator().getLoanBrokerWSPort();
-    }
-    catch (javax.xml.rpc.ServiceException jre) {
-        if(jre.getLinkedCause()!=null)
-            jre.getLinkedCause().printStackTrace();
-        
-    }
-    // Time out after a minute
-    binding.setTimeout(60000);
-
     //Setting the values in the request
-    org.jboss.soa.esb.samples.trailblazer.web.generated.WebCustomer webCustomer = new org.jboss.soa.esb.samples.trailblazer.web.generated.WebCustomer();
+    WebCustomer webCustomer = new WebCustomer();
     webCustomer.setName(formValue[0]);
     webCustomer.setAddress(formValue[1]);
     webCustomer.setSsn(Integer.valueOf(formValue[2]).intValue());
@@ -132,10 +120,9 @@
     webCustomer.setSalary(Double.valueOf(formValue[4]).doubleValue());
     webCustomer.setEmployerName(formValue[5]);
     webCustomer.setLoanAmount(Double.valueOf(formValue[6]).doubleValue());
-    webCustomer.setLoanDuration(Integer.valueOf(formValue[7]).intValue());
-    
-    binding.requestLoan(webCustomer); %>
-    
+    webCustomer.setLoanDuration(Integer.valueOf(formValue[7]).intValue());
+    LoanRequester.request(webCustomer);
+%>
     <table width="100%" border="0" cellpadding="10" cellspacing="3">
         <tr><td><br><br><br><br>
         <tr><td><h1>Loan Broker</h1></td></tr>
@@ -143,9 +130,5 @@
         <tr><td><a href="index.jsp">Fill out another request</a></td></tr>
 	
  <% } %>
-
-
-
-
 </body>
-</html>
\ No newline at end of file
+</html>

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/axis.jar
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/commons-discovery.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/jaxb-api.jar (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/lib/ext/jaxb-api.jar)
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/jboss-jaxws.jar (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/lib/ext/jboss-jaxws.jar)
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/jbossws-core.jar (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/lib/ext/jbossws-core.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/milyn-smooks-csv-0.1.jar
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/lib/ext/opencsv-1.6.jar
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS-wsdl
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS-wsdl	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS-wsdl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,47 +0,0 @@
-<?xml version="1.0"?>
-<definitions name="LoanBrokerWSService" targetNamespace="http://localhost/trailblazerWS">
-<types>
-	<schema elementFormDefault="qualified" targetNamespace="http://localhost/trailblazerWS">
-	<complexType name="WebCustomer">
-		<sequence>
-			<element name="address" nillable="true" type="string"/>
-			<element name="email" nillable="true" type="string"/>
-			<element name="employerName" nillable="true" type="string"/>
-			<element name="loanAmount" type="double"/>
-			<element name="loanDuration" type="int"/>
-			<element name="name" nillable="true" type="string"/>
-			<element name="salary" type="double"/>
-			<element name="ssn" type="int"/>
-		</sequence>
-	</complexType>
-	</schema>
-</types>
-
-<message name="LoanBrokerESB-WS_RequestLoanResponse"/>
-	<message name="LoanBrokerESB-WS_RequestLoan">
-<part name="WebCustomer_1" type="tns:WebCustomer"/>
-</message>
-<portType name="LoanBrokerESB-WS">
-	<operation name="RequestLoan" parameterOrder="WebCustomer_1">
-<input message="tns:LoanBrokerESB-WS_RequestLoan"/>
-<output message="tns:LoanBrokerESB-WS_RequestLoanResponse"/>
-</operation>
-</portType>
-	<binding name="LoanBrokerESB-WSBinding" type="tns:LoanBrokerESB-WS">
-<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
-	<operation name="RequestLoan">
-<soap:operation soapAction=""/>
-	<input>
-<soap:body namespace="http://localhost/trailblazerWS" use="literal"/>
-</input>
-	<output>
-<soap:body namespace="http://localhost/trailblazerWS" use="literal"/>
-</output>
-</operation>
-</binding>
-	<service name="LoanBrokerWSService">
-	<port binding="tns:LoanBrokerESB-WSBinding" name="LoanBrokerESB-WSPort">
-<soap:address location="http://d820:8080/trailblazer/LoanBrokerWS"/>
-</port>
-</service>
-</definitions>

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS-wsdl.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS-wsdl.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS-wsdl.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,47 +0,0 @@
-<?xml version="1.0"?>
-<definitions name="LoanBrokerWSService" targetNamespace="http://localhost/trailblazerWS">
-<types>
-	<schema elementFormDefault="qualified" targetNamespace="http://localhost/trailblazerWS">
-	<complexType name="WebCustomer">
-		<sequence>
-			<element name="address" nillable="true" type="string"/>
-			<element name="email" nillable="true" type="string"/>
-			<element name="employerName" nillable="true" type="string"/>
-			<element name="loanAmount" type="double"/>
-			<element name="loanDuration" type="int"/>
-			<element name="name" nillable="true" type="string"/>
-			<element name="salary" type="double"/>
-			<element name="ssn" type="int"/>
-		</sequence>
-	</complexType>
-	</schema>
-</types>
-
-<message name="LoanBrokerESB-WS_RequestLoanResponse"/>
-	<message name="LoanBrokerESB-WS_RequestLoan">
-<part name="WebCustomer_1" type="tns:WebCustomer"/>
-</message>
-<portType name="LoanBrokerESB-WS">
-	<operation name="RequestLoan" parameterOrder="WebCustomer_1">
-<input message="tns:LoanBrokerESB-WS_RequestLoan"/>
-<output message="tns:LoanBrokerESB-WS_RequestLoanResponse"/>
-</operation>
-</portType>
-	<binding name="LoanBrokerESB-WSBinding" type="tns:LoanBrokerESB-WS">
-<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
-	<operation name="RequestLoan">
-<soap:operation soapAction=""/>
-	<input>
-<soap:body namespace="http://localhost/trailblazerWS" use="literal"/>
-</input>
-	<output>
-<soap:body namespace="http://localhost/trailblazerWS" use="literal"/>
-</output>
-</operation>
-</binding>
-	<service name="LoanBrokerWSService">
-	<port binding="tns:LoanBrokerESB-WSBinding" name="LoanBrokerESB-WSPort">
-<soap:address location="http://d820:8080/trailblazer/LoanBrokerWS"/>
-</port>
-</service>
-</definitions>

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS.wsdl
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS.wsdl	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/LoanBrokerWS.wsdl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,46 +0,0 @@
-<?xml version="1.0"?>
-<definitions name="LoanBrokerWSService" targetNamespace="http://localhost/trailblazer">
-	<types>
-	<schema elementFormDefault="qualified" targetNamespace="http://localhost/trailblazer">
-	<complexType name="WebCustomer">
-	<sequence>
-<element name="address" nillable="true" type="string"/>
-<element name="email" nillable="true" type="string"/>
-<element name="employerName" nillable="true" type="string"/>
-<element name="loanAmount" type="double"/>
-<element name="loanDuration" type="int"/>
-<element name="name" nillable="true" type="string"/>
-<element name="salary" type="double"/>
-<element name="ssn" type="int"/>
-</sequence>
-</complexType>
-</schema>
-</types>
-<message name="LoanBrokerWS_RequestLoanResponse"/>
-	<message name="LoanBrokerWS_RequestLoan">
-<part name="WebCustomer_1" type="tns:WebCustomer"/>
-</message>
-	<portType name="LoanBrokerWS">
-	<operation name="RequestLoan" parameterOrder="WebCustomer_1">
-<input message="tns:LoanBrokerWS_RequestLoan"/>
-<output message="tns:LoanBrokerWS_RequestLoanResponse"/>
-</operation>
-</portType>
-	<binding name="LoanBrokerWSBinding" type="tns:LoanBrokerWS">
-<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
-	<operation name="RequestLoan">
-<soap:operation soapAction=""/>
-	<input>
-<soap:body namespace="http://localhost/trailblazer" use="literal"/>
-</input>
-	<output>
-<soap:body namespace="http://localhost/trailblazer" use="literal"/>
-</output>
-</operation>
-</binding>
-	<service name="LoanBrokerWSService">
-	<port binding="tns:LoanBrokerWSBinding" name="LoanBrokerWSPort">
-<soap:address location="http://localhost:8080/trailblazer/LoanBrokerWS"/>
-</port>
-</service>
-</definitions>

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/from__loanbroker.cdrl
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/from__loanbroker.cdrl	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/from__loanbroker.cdrl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,16 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE smooks-resource-list PUBLIC '-//MILYN//DTD SMOOKS 1.0//EN' 'http://milyn.org/dtd/smooksres-list-1.0.dtd'>
-
-<smooks-resource-list>
-
-	<!-- 
-		Bank Quotes from the loan broker are always in CSV format.  Need to enable a CSV to SAX parser
-		to enable transformation of these messages.
-		
-		See: http://milyn.codehaus.org/javadoc/smooks-cartridges/csv/org/milyn/csv/CSVParser.html
-	-->
-	<smooks-resource useragent="type:BankQuote-CSV AND from:LoanBroker" selector="org.xml.sax.driver" path="org.milyn.csv.CSVParser" >
-		<param name="fields" type="string-list">ssn,creditScore,creditHistoryLen,amount,term,customerUniqueId</param>
-	</smooks-resource>
-
-</smooks-resource-list>

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/jaxrpc-mapping.xml (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/resources/jaxrpc-mapping.xml)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/jaxrpc-mapping.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/jaxrpc-mapping.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,69 @@
+<?xml version='1.0' encoding='UTF-8'?><java-wsdl-mapping version='1.1' xmlns='http://java.sun.com/xml/ns/j2ee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd'>
+ <package-mapping>
+  <package-type>org.jboss.soa.esb.samples.trailblazer.web</package-type>
+  <namespaceURI>http://org.jboss.ws/samples/rpcstyle/types</namespaceURI>
+ </package-mapping>
+ <java-xml-type-mapping>
+  <java-type>org.jboss.soa.esb.samples.trailblazer.web.WebCustomer</java-type>
+  <root-type-qname xmlns:typeNS='http://org.jboss.ws/samples/rpcstyle/types'>typeNS:WebCustomer</root-type-qname>
+  <qname-scope>complexType</qname-scope>
+  <variable-mapping>
+   <java-variable-name>address</java-variable-name>
+   <xml-element-name>address</xml-element-name>
+  </variable-mapping>
+  <variable-mapping>
+   <java-variable-name>email</java-variable-name>
+   <xml-element-name>email</xml-element-name>
+  </variable-mapping>
+  <variable-mapping>
+   <java-variable-name>employerName</java-variable-name>
+   <xml-element-name>employerName</xml-element-name>
+  </variable-mapping>
+  <variable-mapping>
+   <java-variable-name>loanAmount</java-variable-name>
+   <xml-element-name>loanAmount</xml-element-name>
+  </variable-mapping>
+  <variable-mapping>
+   <java-variable-name>loanDuration</java-variable-name>
+   <xml-element-name>loanDuration</xml-element-name>
+  </variable-mapping>
+  <variable-mapping>
+   <java-variable-name>name</java-variable-name>
+   <xml-element-name>name</xml-element-name>
+  </variable-mapping>
+  <variable-mapping>
+   <java-variable-name>salary</java-variable-name>
+   <xml-element-name>salary</xml-element-name>
+  </variable-mapping>
+  <variable-mapping>
+   <java-variable-name>ssn</java-variable-name>
+   <xml-element-name>ssn</xml-element-name>
+  </variable-mapping>
+ </java-xml-type-mapping>
+ <service-interface-mapping>
+  <service-interface>org.jboss.soa.esb.samples.trailblazer.web.LoanBrokerService</service-interface>
+  <wsdl-service-name xmlns:serviceNS='http://org.jboss.ws/samples/rpcstyle'>serviceNS:LoanBrokerService</wsdl-service-name>
+  <port-mapping>
+   <port-name>LoanBrokerInterfacePort</port-name>
+   <java-port-name>LoanBrokerInterfacePort</java-port-name>
+  </port-mapping>
+ </service-interface-mapping>
+ <service-endpoint-interface-mapping>
+  <service-endpoint-interface>org.jboss.soa.esb.samples.trailblazer.web.LoanBrokerInterface</service-endpoint-interface>
+  <wsdl-port-type xmlns:portTypeNS='http://org.jboss.ws/samples/rpcstyle'>portTypeNS:LoanBrokerInterface</wsdl-port-type>
+  <wsdl-binding xmlns:bindingNS='http://org.jboss.ws/samples/rpcstyle'>bindingNS:LoanBrokerInterfaceBinding</wsdl-binding>
+  <service-endpoint-method-mapping>
+   <java-method-name>RequestLoan</java-method-name>
+   <wsdl-operation>RequestLoan</wsdl-operation>
+   <method-param-parts-mapping>
+    <param-position>0</param-position>
+    <param-type>org.jboss.soa.esb.samples.trailblazer.web.WebCustomer</param-type>
+    <wsdl-message-mapping>
+     <wsdl-message xmlns:wsdlMsgNS='http://org.jboss.ws/samples/rpcstyle'>wsdlMsgNS:LoanBrokerInterface_RequestLoan</wsdl-message>
+     <wsdl-message-part-name>WebCustomer_1</wsdl-message-part-name>
+     <parameter-mode>IN</parameter-mode>
+    </wsdl-message-mapping>
+   </method-param-parts-mapping>
+  </service-endpoint-method-mapping>
+ </service-endpoint-interface-mapping>
+</java-wsdl-mapping>
\ No newline at end of file

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/jboss-web.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/jboss-web.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/jboss-web.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?> 
-<jboss-web>
-	<class-loading java2ClassLoadingCompliance="false">
-	<loader-repository>	
-		org.jboss.soa.esb:loader=jbossesb
-		<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
-	</loader-repository>
-	</class-loading>
-</jboss-web>
-
-
-

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/smooks-cdr.lst
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/smooks-cdr.lst	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/smooks-cdr.lst	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,31 +0,0 @@
-#################################################################################################################################################
-#
-# OVERVIEW:
-# =========
-# This is the Smooks configuration file "list file" i.e. it lists all the Smooks resource configuration files.  One should think of these
-# configuration files as being the Smooks configuration database.  These configurations may/will eventually be maintained in a database
-# with a graphical UI to aid comprehension.
-#
-# THINGS TO NOTE:
-# ===============
-# 1. Don't try to apply any significance to the fact that there are multiple .cdrl files.  This does not mean they are
-#    separate transformations.  All these files are loaded by Smooks to make up a "database" of transformation
-#    resource configurations.  Smooks will dynamically select the resource configurations that apply in a given situation
-#    based on the profiles associated with the requested transformation "useragent" e.g. message type, message producer,
-#    message consumer.
-#
-# 2. The .cdrl list entries in this file are resource references on the *classpath* i.e. they're not filesystem paths.
-#    These .cdrl files should all be located in the "transform" folder.
-#
-#################################################################################################################################################
-
-################################################################################
-# Message transformation resource definitions
-################################################################################
-/from__loanbroker.cdrl
-/to____jmsbank.cdrl
-
-################################################################################
-# Common transformation support resource definitions.
-################################################################################
-/org/milyn/templating/templating-cdu-creators-0.1.cdrl

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/to____jmsbank.cdrl
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/to____jmsbank.cdrl	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/to____jmsbank.cdrl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,40 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE smooks-resource-list PUBLIC '-//MILYN//DTD SMOOKS 1.0//EN' 'http://milyn.org/dtd/smooksres-list-1.0.dtd'>
-
-<smooks-resource-list>
-
-	<!-- 
-		1.	Bank Quotes from the loan broker are always XML'ified CSV records.
-			See from__loanbroker.cdrl
-		2.	The JMSBank needs this data as XML, but the XML produced by CSVParser needs the following
-			modifications:
-			i)	A general restructuring of the <csv-record> elements to fit the format requirements of the JMSBank.
-				(See http://milyn.codehaus.org/javadoc/smooks-cartridges/templating/org/milyn/templating/xslt/XslContentDeliveryUnitCreator.html)
-			ii)	Remove the root <csv-set>.  We know that there's only one CSV record in this set and the JMSBank
-				expects the root to be "org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteRequest".
-				(See http://milyn.codehaus.org/javadoc/smooks-cartridges/misc/org/milyn/cdres/trans/RemoveElementTU.html)
-				Note of course that this particular transformation could be easily avoided by simply targeting the XSLT
-				transformation at the <csv-set> element.  However, if multiple <csv-record> elements were present and
-				supported by the JMS Bank, a configuration like this would be more appropriate - the only difference being
-				that the <csv-set> would more like get renamed than removed.
-	-->
-	<smooks-resource useragent="type:BankQuote-CSV AND from:LoanBroker AND to:JMSBank" selector="csv-record">
-		<param name="restype">xsl</param>
-		<param name="resdata">
-			<![CDATA[
-				<org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteRequest>
-					<ssn><xsl:value-of select="ssn"/></ssn>
-					<creditScore><xsl:value-of select="creditScore"/></creditScore>
-					<historyLength><xsl:value-of select="creditHistoryLen"/></historyLength>
-					<loanAmount><xsl:value-of select="amount"/></loanAmount>
-					<loanTerm><xsl:value-of select="term"/></loanTerm>
-					<customerUID><xsl:value-of select="customerUniqueId"/></customerUID>
-				</org.jboss.soa.esb.samples.loanbroker.banks.BankQuoteRequest>
-			]]>
-		</param>
-	</smooks-resource>
-	<smooks-resource useragent="type:BankQuote-CSV AND from:LoanBroker AND to:JMSBank" selector="csv-set" path="org.milyn.cdres.trans.RemoveElementTU">
-		<param name="keepChildContent">true</param>
-	</smooks-resource>
-
-</smooks-resource-list>

Modified: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/web.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/web.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/web.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -2,11 +2,20 @@
 
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> 
 	<servlet> 
-		<servlet-name>LoanBrokerWS</servlet-name> 
+		<servlet-name>LoanBroker</servlet-name> 
 		<servlet-class>org.jboss.soa.esb.samples.trailblazer.web.LoanBrokerWS</servlet-class>
 	</servlet>
 	<servlet-mapping>
-		<servlet-name>LoanBrokerWS</servlet-name>
-		<url-pattern>/LoanBrokerWS</url-pattern>
+		<servlet-name>LoanBroker</servlet-name>
+		<url-pattern>/LoanBroker</url-pattern>
 	</servlet-mapping>
+	<service-ref>
+		<service-ref-name>service/LoanBrokerService</service-ref-name>
+		<service-interface>javax.xml.rpc.Service</service-interface>
+		<wsdl-file>WEB-INF/wsdl/LoanBrokerService.wsdl</wsdl-file>
+		<jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
+		<port-component-ref>
+		 <service-endpoint-interface>org.jboss.soa.esb.samples.trailblazer.web.LoanBrokerWS</service-endpoint-interface>
+		</port-component-ref>
+	</service-ref>
 </web-app>

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/webservices.xml (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/resources/webservices.xml)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/webservices.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/webservices.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,15 @@
+<webservices version='1.1' xmlns='http://java.sun.com/xml/ns/j2ee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd'>
+ <webservice-description>
+  <webservice-description-name>LoanBrokerService</webservice-description-name>
+  <wsdl-file>WEB-INF/wsdl/LoanBrokerService.wsdl</wsdl-file>
+  <jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
+  <port-component>
+   <port-component-name>LoanBrokerInterfacePort</port-component-name>
+   <wsdl-port xmlns:portNS='http://org.jboss.ws/samples/rpcstyle'>portNS:LoanBrokerInterfacePort</wsdl-port>
+   <service-endpoint-interface>org.jboss.soa.esb.samples.trailblazer.web.LoanBrokerInterface</service-endpoint-interface>
+   <service-impl-bean>
+    <servlet-link>LoanBroker</servlet-link>
+   </service-impl-bean>
+  </port-component>
+ </webservice-description>
+</webservices>

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wsdl (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/resources/wsdl)

Deleted: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wsdl/LoanBrokerService.wsdl
===================================================================
--- labs/jbossesb/trunk/product/samples/trailblazer/client/resources/wsdl/LoanBrokerService.wsdl	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wsdl/LoanBrokerService.wsdl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<definitions name='LoanBrokerService' targetNamespace='http://org.jboss.ws/samples/rpcstyle' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:ns1='http://org.jboss.ws/samples/rpcstyle/types' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://org.jboss.ws/samples/rpcstyle' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
- <types>
-  <schema targetNamespace='http://org.jboss.ws/samples/rpcstyle/types' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://org.jboss.ws/samples/rpcstyle/types' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
-   <complexType name='WebCustomer'>
-    <sequence>
-     <element name='address' nillable='true' type='string'/>
-     <element name='email' nillable='true' type='string'/>
-     <element name='employerName' nillable='true' type='string'/>
-     <element name='loanAmount' type='double'/>
-     <element name='loanDuration' type='int'/>
-     <element name='name' nillable='true' type='string'/>
-     <element name='salary' type='double'/>
-     <element name='ssn' type='int'/>
-    </sequence>
-   </complexType>
-  </schema>
- </types>
- <message name='LoanBrokerInterface_RequestLoan' xmlns='http://schemas.xmlsoap.org/wsdl/'>
-  <part name='WebCustomer_1' type='ns1:WebCustomer'/>
- </message>
- <message name='LoanBrokerInterface_RequestLoanResponse'/>
- <portType name='LoanBrokerInterface'>
-  <operation name='RequestLoan' parameterOrder='WebCustomer_1'>
-   <input message='tns:LoanBrokerInterface_RequestLoan'/>
-   <output message='tns:LoanBrokerInterface_RequestLoanResponse'/>
-  </operation>
- </portType>
- <binding name='LoanBrokerInterfaceBinding' type='tns:LoanBrokerInterface'>
-  <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-  <operation name='RequestLoan'>
-   <soap:operation soapAction=''/>
-   <input>
-    <soap:body namespace='http://org.jboss.ws/samples/rpcstyle' use='literal'/>
-   </input>
-   <output>
-    <soap:body namespace='http://org.jboss.ws/samples/rpcstyle' use='literal'/>
-   </output>
-  </operation>
- </binding>
- <service name='LoanBrokerService'>
-  <port binding='tns:LoanBrokerInterfaceBinding' name='LoanBrokerInterfacePort'>
-   <soap:address location='http://localhost:8080/trailblazer/LoanBroker'/>
-  </port>
- </service>
-</definitions>

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wsdl/LoanBrokerService.wsdl (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/resources/wsdl/LoanBrokerService.wsdl)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wsdl/LoanBrokerService.wsdl	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wsdl/LoanBrokerService.wsdl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions name='LoanBrokerService' targetNamespace='http://org.jboss.ws/samples/rpcstyle' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:ns1='http://org.jboss.ws/samples/rpcstyle/types' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://org.jboss.ws/samples/rpcstyle' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
+ <types>
+  <schema targetNamespace='http://org.jboss.ws/samples/rpcstyle/types' xmlns='http://www.w3.org/2001/XMLSchema' xmlns:soap11-enc='http://schemas.xmlsoap.org/soap/encoding/' xmlns:tns='http://org.jboss.ws/samples/rpcstyle/types' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
+   <complexType name='WebCustomer'>
+    <sequence>
+     <element name='address' nillable='true' type='string'/>
+     <element name='email' nillable='true' type='string'/>
+     <element name='employerName' nillable='true' type='string'/>
+     <element name='loanAmount' type='double'/>
+     <element name='loanDuration' type='int'/>
+     <element name='name' nillable='true' type='string'/>
+     <element name='salary' type='double'/>
+     <element name='ssn' type='int'/>
+    </sequence>
+   </complexType>
+  </schema>
+ </types>
+ <message name='LoanBrokerInterface_RequestLoan' xmlns='http://schemas.xmlsoap.org/wsdl/'>
+  <part name='WebCustomer_1' type='ns1:WebCustomer'/>
+ </message>
+ <message name='LoanBrokerInterface_RequestLoanResponse'/>
+ <portType name='LoanBrokerInterface'>
+  <operation name='RequestLoan' parameterOrder='WebCustomer_1'>
+   <input message='tns:LoanBrokerInterface_RequestLoan'/>
+   <output message='tns:LoanBrokerInterface_RequestLoanResponse'/>
+  </operation>
+ </portType>
+ <binding name='LoanBrokerInterfaceBinding' type='tns:LoanBrokerInterface'>
+  <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
+  <operation name='RequestLoan'>
+   <soap:operation soapAction=''/>
+   <input>
+    <soap:body namespace='http://org.jboss.ws/samples/rpcstyle' use='literal'/>
+   </input>
+   <output>
+    <soap:body namespace='http://org.jboss.ws/samples/rpcstyle' use='literal'/>
+   </output>
+  </operation>
+ </binding>
+ <service name='LoanBrokerService'>
+  <port binding='tns:LoanBrokerInterfaceBinding' name='LoanBrokerInterfacePort'>
+   <soap:address location='http://localhost:8080/trailblazer/LoanBroker'/>
+  </port>
+ </service>
+</definitions>

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wstools-config.xml (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/resources/wstools-config.xml)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wstools-config.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/resources/wstools-config.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  wstools -cp ../../../output/classes -config wstools-config.xml
+-->
+
+<configuration xmlns="http://www.jboss.org/jbossws-tools"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://www.jboss.org/jbossws-tools http://www.jboss.org/jbossws-tools/schema/jbossws-tool_1_0.xsd">
+  
+  <java-wsdl>
+    <service name="LoanBrokerService" style="rpc" endpoint="org.jboss.soa.esb.samples.trailblazer.web.LoanBrokerInterface"/>
+    <namespaces target-namespace="http://org.jboss.ws/samples/rpcstyle" type-namespace="http://org.jboss.ws/samples/rpcstyle/types"/>
+    <mapping file="jaxrpc-mapping.xml"/>
+    <webservices servlet-link="LoanBrokerEndpoint"/>
+  </java-wsdl>
+  
+</configuration>

Modified: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/loanbroker/LoanBroker.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/loanbroker/LoanBroker.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/loanbroker/LoanBroker.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -90,13 +90,13 @@
 	
 	private Customer getCustomer(WebCustomer wCustomer) {
 		Customer customer = new Customer();
-		customer.ssn = wCustomer.ssn;
-		customer.name = wCustomer.name;
-		customer.address = wCustomer.address;
-		customer.email = wCustomer.email;
-		customer.salary = wCustomer.salary;
-		customer.loanAmount = wCustomer.loanAmount;
-		customer.loanDuration = wCustomer.loanDuration;
+		customer.ssn = wCustomer.getSsn();
+		customer.name = wCustomer.getName();
+		customer.address = wCustomer.getAddress();
+		customer.email = wCustomer.getEmail();
+		customer.salary = wCustomer.getSalary();
+		customer.loanAmount = wCustomer.getLoanAmount();
+		customer.loanDuration = wCustomer.getLoanDuration();
 		customer.creditScore = 0;
 		
 		return customer;

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/loanbroker/LoanRequester.java (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/loanbroker/LoanRequester.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/loanbroker/LoanRequester.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/loanbroker/LoanRequester.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,29 @@
+package org.jboss.soa.esb.samples.trailblazer.loanbroker;
+
+import javax.naming.InitialContext;
+import javax.xml.rpc.Service;
+
+import org.jboss.soa.esb.samples.trailblazer.web.*;
+
+/**
+ * LoanRequester is a small class that serves as a web service client.
+ */
+public class LoanRequester {
+	public LoanRequester() {	
+	}
+	
+	/**
+	 * Grab the port and call request loan.
+	 * @return customer customer bean
+	 */
+	public static void request(WebCustomer customer) { 
+		try {
+			InitialContext iniCtx = new InitialContext(); 
+			Service service = (Service)iniCtx.lookup("java:comp/env/service/LoanBrokerService");
+			LoanBrokerInterface port = (LoanBrokerInterface)service.getPort(LoanBrokerInterface.class);
+			port.RequestLoan(customer);
+		} catch (Exception e) {
+			e.printStackTrace();
+		 }
+	} 
+}
\ No newline at end of file

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerInterface.java (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerInterface.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerInterface.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerInterface.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,10 @@
+package org.jboss.soa.esb.samples.trailblazer.web;
+
+import java.rmi.Remote;
+
+/**
+ * The Loan broker web interface, which will handle a loan request. 
+ */
+public interface LoanBrokerInterface extends Remote {
+   public void RequestLoan(WebCustomer webCustomer_1) throws java.rmi.RemoteException;
+}

Modified: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerWS.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerWS.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerWS.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -22,7 +22,6 @@
  */
 package org.jboss.soa.esb.samples.trailblazer.web;
 
-
 import javax.jws.WebMethod;
 import javax.jws.WebService;
 import javax.jws.soap.SOAPBinding;
@@ -33,19 +32,18 @@
 /**
  * The Loan broker web service, which will handle a loan request. 
  */
- at WebService(name = "LoanBrokerWS", targetNamespace = "http://localhost/trailblazer")
+ at WebService(name = "LoanBrokerWS",
+		targetNamespace = "http://localhost/trailblazer")
 @SOAPBinding(style = SOAPBinding.Style.RPC)
-public class LoanBrokerWS 
-{
+public class LoanBrokerWS implements LoanBrokerInterface {
+	private static final long serialVersionUID = 1L;
 	private static Logger logger = Logger.getLogger(LoanBrokerWS.class);
 		
 	@WebMethod
-	// method name is .NET friendly
 	public void RequestLoan(WebCustomer customer) {
+		logger.info("WebCustomer received: \n" + customer);
 			
-			logger.info("WebCustomer received: \n" + customer);
-			
-			LoanBroker broker = new LoanBroker();
-			broker.processLoanRequest(customer);
+		LoanBroker broker = new LoanBroker();
+		broker.processLoanRequest(customer);
 	}
 }

Copied: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerWSService.java (from rev 12160, labs/jbossesb/trunk/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerWSService.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerWSService.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/LoanBrokerWSService.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,59 @@
+
+package org.jboss.soa.esb.samples.trailblazer.web;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+
+
+/**
+ * JBossWS Generated Source
+ * 
+ * Generation Date: Thu May 24 11:21:38 EDT 2007
+ * 
+ * This generated source code represents a derivative work of the input to
+ * the generator that produced it. Consult the input for the copyright and
+ * terms of use that apply to this source code.
+ * 
+ * JAX-WS Version: 2.0
+ * 
+ */
+ at WebServiceClient(name = "LoanBrokerWSService", targetNamespace = "http://localhost/trailblazer", wsdlLocation = "http://localhost:8080/trailblazer/LoanBroker?wsdl")
+public class LoanBrokerWSService
+    extends Service
+{
+
+    private final static URL LOANBROKERWSSERVICE_WSDL_LOCATION;
+
+    static {
+        URL url = null;
+        try {
+            url = new URL("http://localhost:8080/trailblazer/LoanBroker?wsdl");
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        }
+        LOANBROKERWSSERVICE_WSDL_LOCATION = url;
+    }
+
+    public LoanBrokerWSService(URL wsdlLocation, QName serviceName) {
+        super(wsdlLocation, serviceName);
+    }
+
+    public LoanBrokerWSService() {
+        super(LOANBROKERWSSERVICE_WSDL_LOCATION, new QName("http://localhost/trailblazer", "LoanBrokerWSService"));
+    }
+
+    /**
+     * 
+     * @return
+     *     returns LoanBrokerWS
+     */
+    @WebEndpoint(name = "LoanBrokerWSPort")
+    public LoanBrokerWS getLoanBrokerWSPort() {
+        return (LoanBrokerWS)super.getPort(new QName("http://localhost/trailblazer", "LoanBrokerWSPort"), LoanBrokerWS.class);
+    }
+
+}

Modified: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/WebCustomer.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/WebCustomer.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/client/src/org/jboss/soa/esb/samples/trailblazer/web/WebCustomer.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -35,27 +35,43 @@
 @SuppressWarnings("serial")
 public class WebCustomer implements Serializable
 {
-	public	String	name	,address	,employerName;
-	public	double	salary	,loanAmount;
-	public	int		loanDuration;	
-	public int		ssn;
-	public String	email;
-	
-	
-	public WebCustomer(){}
-	
-	public WebCustomer(String name, String address, String employerName, double salary, int loanDuration, double loanAmount, int ssn,String email) 
-    {
-		this.name			= name;
-		this.address		= address;
-		this.employerName	= employerName;
-		this.salary			= salary;
-		this.loanAmount		= loanAmount;
-		this.loanDuration	= loanDuration;
-		this.ssn 			= ssn;
-		this.email			= email;		
-    }//_________________________________________
-	
+    private java.lang.String address;
+
+    private java.lang.String email;
+
+    private java.lang.String employerName;
+
+    private double loanAmount;
+
+    private int loanDuration;
+
+    private java.lang.String name;
+
+    private double salary;
+
+    private int ssn;
+
+    public WebCustomer() {
+    }
+
+    public WebCustomer(
+           java.lang.String address,
+           java.lang.String email,
+           java.lang.String employerName,
+           double loanAmount,
+           int loanDuration,
+           java.lang.String name,
+           double salary,
+           int ssn) {
+           this.address = address;
+           this.email = email;
+           this.employerName = employerName;
+           this.loanAmount = loanAmount;
+           this.loanDuration = loanDuration;
+           this.name = name;
+           this.salary = salary;
+           this.ssn = ssn;
+    }
 	public String toString() {
 		String ret = "-- WebCustomer details -- \n";
 		ret += "name: " + name + "\n";
@@ -71,4 +87,163 @@
 		return ret;
 	}
 
+    /**
+     * Gets the address value for this WebCustomer.
+     * 
+     * @return address
+     */
+    public java.lang.String getAddress() {
+        return address;
+    }
+
+
+    /**
+     * Sets the address value for this WebCustomer.
+     * 
+     * @param address
+     */
+    public void setAddress(java.lang.String address) {
+        this.address = address;
+    }
+
+
+    /**
+     * Gets the email value for this WebCustomer.
+     * 
+     * @return email
+     */
+    public java.lang.String getEmail() {
+        return email;
+    }
+
+
+    /**
+     * Sets the email value for this WebCustomer.
+     * 
+     * @param email
+     */
+    public void setEmail(java.lang.String email) {
+        this.email = email;
+    }
+
+
+    /**
+     * Gets the employerName value for this WebCustomer.
+     * 
+     * @return employerName
+     */
+    public java.lang.String getEmployerName() {
+        return employerName;
+    }
+
+
+    /**
+     * Sets the employerName value for this WebCustomer.
+     * 
+     * @param employerName
+     */
+    public void setEmployerName(java.lang.String employerName) {
+        this.employerName = employerName;
+    }
+
+
+    /**
+     * Gets the loanAmount value for this WebCustomer.
+     * 
+     * @return loanAmount
+     */
+    public double getLoanAmount() {
+        return loanAmount;
+    }
+
+
+    /**
+     * Sets the loanAmount value for this WebCustomer.
+     * 
+     * @param loanAmount
+     */
+    public void setLoanAmount(double loanAmount) {
+        this.loanAmount = loanAmount;
+    }
+
+
+    /**
+     * Gets the loanDuration value for this WebCustomer.
+     * 
+     * @return loanDuration
+     */
+    public int getLoanDuration() {
+        return loanDuration;
+    }
+
+
+    /**
+     * Sets the loanDuration value for this WebCustomer.
+     * 
+     * @param loanDuration
+     */
+    public void setLoanDuration(int loanDuration) {
+        this.loanDuration = loanDuration;
+    }
+
+
+    /**
+     * Gets the name value for this WebCustomer.
+     * 
+     * @return name
+     */
+    public java.lang.String getName() {
+        return name;
+    }
+
+
+    /**
+     * Sets the name value for this WebCustomer.
+     * 
+     * @param name
+     */
+    public void setName(java.lang.String name) {
+        this.name = name;
+    }
+
+
+    /**
+     * Gets the salary value for this WebCustomer.
+     * 
+     * @return salary
+     */
+    public double getSalary() {
+        return salary;
+    }
+
+
+    /**
+     * Sets the salary value for this WebCustomer.
+     * 
+     * @param salary
+     */
+    public void setSalary(double salary) {
+        this.salary = salary;
+    }
+
+
+    /**
+     * Gets the ssn value for this WebCustomer.
+     * 
+     * @return ssn
+     */
+    public int getSsn() {
+        return ssn;
+    }
+
+
+    /**
+     * Sets the ssn value for this WebCustomer.
+     * 
+     * @param ssn
+     */
+    public void setSsn(int ssn) {
+        this.ssn = ssn;
+    }
+	
 }

Modified: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/esb/conf/deployment.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/esb/conf/deployment.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/esb/conf/deployment.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,7 +1,7 @@
 <jbossesb-deployment>
-  <depends>jboss.messaging.destination:service=Queue,name=esb-tb-creditAgencyQueue</depends>
-  <depends>jboss.messaging.destination:service=Queue,name=esb-tb-creditAgencyQueue_reply</depends>
-  <depends>jboss.messaging.destination:service=Queue,name=esb-tb-bankRequestQueue</depends>
-  <depends>jboss.messaging.destination:service=Queue,name=esb-tb-bankResponseQueue</depends>
-  <depends>jboss.messaging.destination:service=Queue,name=esb-tb-bankGatewayResponseQueue</depends>
+  <depends>jboss.mq.destination:service=Queue,name=esb-tb-creditAgencyQueue</depends>
+  <depends>jboss.mq.destination:service=Queue,name=esb-tb-creditAgencyQueue_reply</depends>
+  <depends>jboss.mq.destination:service=Queue,name=esb-tb-bankRequestQueue</depends>
+  <depends>jboss.mq.destination:service=Queue,name=esb-tb-bankResponseQueue</depends>
+  <depends>jboss.mq.destination:service=Queue,name=esb-tb-bankGatewayResponseQueue</depends>
 </jbossesb-deployment>

Modified: labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/readme.txt
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/readme.txt	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/samples/trailblazer/readme.txt	2007-05-26 16:26:26 UTC (rev 12161)
@@ -13,12 +13,9 @@
 File: jbossesb-properties.xml (jbossesb.sar/jbossesb-properties.xml)
 - Update the section titled "transports" and specify all of the SMTP mail server settings for your environment.
 
-File: build.properties
-- update with the 2 settings below to where you have your JBoss deployed to, along with the server instance you are using:
-org.jboss.soa.samples.trailblazer.jboss_home=/opt/jboss-4.0.5
-org.jboss.soa.samples.trailblazer.jboss_server=default
+File : deployment.properties (install/deployment.properties)
+- Update the app server location settings.
 
-
 -------------------------------------------
 To run the Trailblazer, follow these steps:
 


Property changes on: labs/jbossesb/workspace/dbevenius/product/services/jbrules
___________________________________________________________________
Name: svn:ignore
   + build


Modified: labs/jbossesb/workspace/dbevenius/product/services/jbrules/build.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/build.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/build.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,4 +1,4 @@
-<project name="jbrules-cbr" default="test" basedir=".">
+<project name="jbrules" default="test" basedir=".">
 	
 	<!-- Import the base Ant build script... -->
 	<import file="base-project-build.xml"/>

Modified: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouter.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -82,9 +82,9 @@
 	 *            Message that needs routing.
 	 */
 	public List<String> route (String ruleSet, boolean ruleReload,
-			Message message) throws MessageRouterException
+			Message message, List<Object> objectList) throws MessageRouterException
 	{
-		return route(ruleSet, null, ruleReload, message);
+		return route(ruleSet, null, ruleReload, message, objectList);
 	}
 
 	/**
@@ -101,7 +101,7 @@
 	 */
 	@SuppressWarnings("unchecked")
 	public List<String> route (String ruleSet, String ruleLanguage,
-			boolean ruleReload, Message message) throws MessageRouterException
+			boolean ruleReload, Message message, List<Object> objectList) throws MessageRouterException
 	{
         List<String> destinations = new ArrayList();
 		try {
@@ -135,6 +135,11 @@
     		logger.log(Priority.DEBUG,
     				"Obtained message=" + message + " with ruleSet=" + ruleSet);
     		workingMemory.setGlobal("destinations", destinations);
+            if (objectList!=null) {
+                for (Object object : objectList) {
+                    workingMemory.assertObject(object);
+                }
+            }
     		workingMemory.assertObject(message);
     		logger.log(Priority.DEBUG, "Fire the JBossRules Engine");
     		workingMemory.fireAllRules();

Deleted: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/JBossESBRules-XPath.drl
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/JBossESBRules-XPath.drl	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/JBossESBRules-XPath.drl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,47 +0,0 @@
-#created on: Nov 8, 2006
-package com.jboss.soa.esb.routing.cbr
-
-#list any import classes here.
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageType;
-
-expander XPathLanguage.dsl
-
-#declare any global variables here
-global java.util.List destinations;
-
-rule "Routing Rule using XPATH match"
-	
-	when
-		xpathMatch "/jbossesb"
-	then 
-		Log : "XPath Matched";
-		Destination : "XML_XPath_Destination";
-end
-
-rule "Routing Rule using XPATH equals"
-	
-	when
-		xpathEquals "/Dave", "rocks"
-	then 
-		Log : "XPath Equals";
-		Destination : "XML_XPath_Dave_Destination";
-end
-
-rule "Routing Rule using XPATH greater than"
-	
-	when
-	    xpathGreaterThan "/price" , "1.00"
-	then 
-		Log : "XPath Greater Then";
-		Destination : "XML_XPath_GreaterThan_Destination";
-end
-
-rule "Routing Rule using XPATH less than"
-	
-	when
-		xpathLessThan "/price", "1.00"
-	then 
-		Log : "XPath Less Then";
-		Destination : "XML_XPath_LessThan_Destination";
-end

Deleted: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/JBossESBRules.drl
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/JBossESBRules.drl	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/JBossESBRules.drl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,29 +0,0 @@
-#created on: Oct 30, 2006
-package com.jboss.soa.esb.routing.cbr
-
-#list any import classes here.
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageType;
-
-#declare any global variables here
-global java.util.List destinations;
-
-
-rule "Routing Rule - Serialized based message"
-	
-	when
-		Message( type == MessageType.JAVA_SERIALIZED)
-	then
-		System.out.println("Serialized");
-		destinations.add("serialized-destination");
-		
-end
-
-rule "Routing Rule - XML based message"
-	
-	when
-		Message( type == MessageType.JBOSS_XML)
-	then 
-		System.out.println("JBoss_XML"); 
-		destinations.add("xml-destination");
-end
\ No newline at end of file

Modified: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/META-INF/jboss-esb.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/main/resources/META-INF/jboss-esb.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,47 +1,6 @@
 <?xml version = "1.0" encoding = "UTF-8"?>
 <jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
      <!--  
-     		jbossesb internal services 
+     		jbossesb internal rule based services
      -->
-     
-     <providers>
-          <jms-provider name="Default-JMS-Provider" connection-factory="ConnectionFactory">          
-              <jms-bus busid="DeadMessageQueue">
-                  <jms-message-filter
-                      dest-type="QUEUE"
-                      dest-name="queue/DeadMessageQueue"
-                  />
-              </jms-bus>
-          </jms-provider>
-      </providers>
-      
-     <services>   
-        <service category="JBossESB-Internal" 
-                 name="DeadLetterService" 
-                 description="Dead Messages can be send to this service, which is configured to store and/or
-                 notify" >
-            <listeners>
-                <jms-listener name="JMS-DLQListener"
-                              busidref="DeadMessageQueue"
-                              maxThreads="1"
-                />                
-            </listeners>
-            <actions>
-               <action name="PersistAction" 
-               		class="org.jboss.soa.esb.actions.MessagePersister" >
-               		<property name="classfication" value="DLQ"/>
-               		<property name="message-store-type" value="urn:jboss/esb/persistence/type/DATABASE"/>
-               </action>
-               <action name="notificationAction" 
-               		class="org.jboss.soa.esb.actions.Notifier">
-               		<property name="okMethod" value="notifyOK" />
-               		<property name="notification-details">
-   	 				   <NotificationList> 
-      				     <target class="NotifyConsole" />
-	    		   	   </NotificationList> 
-	    		   </property>
-   	   			</action>    
-            </actions>
-        </service>
-      </services>
 </jbossesb>

Copied: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/BusinessProcessorRoutingUnitTest.java (from rev 12160, labs/jbossesb/trunk/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/BusinessProcessorRoutingUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/BusinessProcessorRoutingUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/BusinessProcessorRoutingUnitTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,113 @@
+/*
+ * 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.internal.soa.esb.services.routing.cbr;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.message.mapping.ObjectMapper;
+import org.jboss.soa.esb.services.routing.MessageRouterException;
+import org.junit.Test;
+
+/**
+ * 
+ * @author kurt.stam at redhat.com
+ *
+ */
+public class BusinessProcessorRoutingUnitTest
+{
+	@Test
+	public void discount()
+	{
+        //new messages
+		Message message = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+		Order order = new Order();
+        order.setQuantity(20);
+        order.setUnitPrice(new BigDecimal("20.0"));
+		message.getBody().add("Order", order);
+        //extract the order from the message, so the drl can process it
+        List<String> messagePathList = new ArrayList<String>();
+        messagePathList.add("body.Order");
+        ObjectMapper mapper = new ObjectMapper();
+        List<Object> objectList = mapper.createObjectList(message, messagePathList);
+        //Now send to the rules engine
+		JBossRulesRouter jbossRulesRouter = new JBossRulesRouter();
+        try {
+    		List<String> destinations = jbossRulesRouter.route("JBossESBPricingRoutingRules.drl", false, message, objectList);
+            assertEquals(order.getDiscount(),10.0);
+            assertEquals("10%",message.getBody().get("DiscountObject"));
+            String shippingDestination = destinations.iterator().next();
+            System.out.println(shippingDestination);
+            assertEquals("express-shipping-destination", shippingDestination);
+           
+        } catch (MessageRouterException mre) {
+            System.out.println("Exception was thrown.");
+            mre.printStackTrace();
+            assertTrue(false);
+        }
+	}
+    
+    @Test
+    public void nodiscount()
+    {
+        //new messages
+        Message message = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+        Order order = new Order();
+        order.setQuantity(2);
+        order.setUnitPrice(new BigDecimal("20.0"));
+        message.getBody().add("Order", order);
+//      extract the order from the message, so the drl can process it
+        List<String> messagePathList = new ArrayList<String>();
+        messagePathList.add("body.Order");
+        ObjectMapper mapper = new ObjectMapper();
+        List<Object> objectList = mapper.createObjectList(message, messagePathList);
+        //Now send to the rules engine
+        JBossRulesRouter jbossRulesRouter = new JBossRulesRouter();
+        try {
+            List<String> destinations = jbossRulesRouter.route("JBossESBPricingRoutingRules.drl", false, message, objectList);
+            assertEquals(order.getDiscount(),0.0);
+            assertEquals("0%",message.getBody().get("DiscountObject"));
+            String shippingDestination = destinations.iterator().next();
+            System.out.println(shippingDestination);
+            assertEquals("normal-shipping-destination", shippingDestination);
+           
+        } catch (MessageRouterException mre) {
+            System.out.println("Exception was thrown.");
+            mre.printStackTrace();
+            assertTrue(false);
+        }
+    }
+	
+	public static junit.framework.Test suite() {
+		return new JUnit4TestAdapter(BusinessProcessorRoutingUnitTest.class);
+	}
+
+}

Copied: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/BusinessProcessorUnitTest.java (from rev 12160, labs/jbossesb/trunk/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/BusinessProcessorUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/BusinessProcessorUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/BusinessProcessorUnitTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,79 @@
+/*
+ * 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.internal.soa.esb.services.routing.cbr;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.message.mapping.ObjectMapper;
+import org.jboss.soa.esb.services.routing.MessageRouterException;
+import org.junit.Test;
+
+/**
+ * 
+ * @author kurt.stam at redhat.com
+ *
+ */
+public class BusinessProcessorUnitTest
+{
+	@Test
+	public void discount()
+	{
+        //new messages
+		Message message = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+		Order order = new Order();
+        order.setQuantity(20);
+        order.setUnitPrice(new BigDecimal("20.0"));
+		message.getBody().add("Order", order);
+//      extract the order from the message, so the drl can process it
+        List<String> messagePathList = new ArrayList<String>();
+        messagePathList.add("body.Order");
+        ObjectMapper mapper = new ObjectMapper();
+        List<Object> objectList = mapper.createObjectList(message, messagePathList);
+        //Now send to the rules engine
+		JBossRulesRouter jbossRulesRouter = new JBossRulesRouter();
+        try {
+    		jbossRulesRouter.route("JBossESBPricingRules.drl", false, message, objectList);
+            assertEquals(order.getDiscount(),10.0);
+            assertEquals("10%",message.getBody().get("DiscountObject"));
+           
+        } catch (MessageRouterException mre) {
+            System.out.println("Exception was thrown.");
+            mre.printStackTrace();
+            assertTrue(false);
+        }
+	}
+	
+	public static junit.framework.Test suite() {
+		return new JUnit4TestAdapter(BusinessProcessorUnitTest.class);
+	}
+
+}

Modified: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouterUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouterUnitTest.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/JBossRulesRouterUnitTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -28,7 +28,6 @@
 
 import junit.framework.JUnit4TestAdapter;
 
-import org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.message.format.MessageType;
@@ -58,8 +57,9 @@
 		
 		JBossRulesRouter jbossRulesRouter = new JBossRulesRouter();
         try {
-    		List<String> destinationServices = jbossRulesRouter.route("JBossESBRules.drl", false, message);
+    		List<String> destinationServices = jbossRulesRouter.route("JBossESBRules.drl", false, message, null);
     		assertEquals(destinationServices.iterator().next(),"serialized-destination");
+            System.out.println(message.getBody().get("test"));
         } catch (MessageRouterException mre) {
             System.out.println("Exception was thrown.");
             mre.printStackTrace();
@@ -83,7 +83,7 @@
 	
 		JBossRulesRouter jbossRulesRouter = new JBossRulesRouter();
         try {
-    		List<String> destinationServices = jbossRulesRouter.route("JBossESBRules.drl", false, message);
+    		List<String> destinationServices = jbossRulesRouter.route("JBossESBRules.drl", false, message, null);
     		assertEquals(destinationServices.iterator().next(),"xml-destination");
         } catch (MessageRouterException mre) {
             System.out.println("Exception was thrown.");

Copied: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/Order.java (from rev 12160, labs/jbossesb/trunk/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/Order.java)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/Order.java	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/internal/soa/esb/services/routing/cbr/Order.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2007
+ */
+package org.jboss.internal.soa.esb.services.routing.cbr;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @author kstam
+ *
+ */
+public class Order implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+    private int quantity;
+    private BigDecimal unitPrice;
+    private double discount;
+    private BigDecimal totalPrice;
+    
+    public double getDiscount() {
+        return discount;
+    }
+    public void setDiscount(double discount) {
+        this.discount = discount;
+    }
+    public int getQuantity() {
+        return quantity;
+    }
+    public void setQuantity(int quantity) {
+        this.quantity = quantity;
+    }
+    public BigDecimal getTotalPrice() {
+        return totalPrice;
+    }
+    public void setTotalPrice(BigDecimal totalPrice) {
+        this.totalPrice = totalPrice;
+    }
+    public BigDecimal getUnitPrice() {
+        return unitPrice;
+    }
+    public void setUnitPrice(BigDecimal unitPrice) {
+        this.unitPrice = unitPrice;
+    }
+}

Modified: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/soa/esb/services/routing/cbr/ContentBasedRoutingUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/soa/esb/services/routing/cbr/ContentBasedRoutingUnitTest.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/java/org/jboss/soa/esb/services/routing/cbr/ContentBasedRoutingUnitTest.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -58,7 +58,7 @@
 			message.getAttachment().addItem(new String("TEST ATTACHMENT2"));
 			
 			ContentBasedRouter cbr = ContentBasedRouterFactory.getRouter(org.jboss.soa.esb.actions.ContentBasedRouter.DEFAULT_CBR_CLASS);
-			List<String> destinationServices = cbr.route("JBossESBRules.drl",false,message);
+			List<String> destinationServices = cbr.route("JBossESBRules.drl",false,message,null);
 			assertEquals(destinationServices.iterator().next(),"serialized-destination");
 		} catch (MessageRouterException e) {
 			e.printStackTrace();
@@ -82,7 +82,7 @@
 			message.getAttachment().addItem(new String("TEST ATTACHMENT2"));
 			
 			ContentBasedRouter cbr = ContentBasedRouterFactory.getRouter(org.jboss.soa.esb.actions.ContentBasedRouter.DEFAULT_CBR_CLASS);
-			List<String> destinationServices = cbr.route("JBossESBRules.drl",false,message);
+			List<String> destinationServices = cbr.route("JBossESBRules.drl",false,message,null);
 			assertEquals(destinationServices.iterator().next(),"xml-destination");
 		} catch (MessageRouterException e) {
 			e.printStackTrace();
@@ -105,7 +105,7 @@
 			message.getAttachment().addItem(new String("TEST ATTACHMENT2"));
 			
 			ContentBasedRouter cbr = ContentBasedRouterFactory.getRouter(org.jboss.soa.esb.actions.ContentBasedRouter.DEFAULT_CBR_CLASS);
-			List<String> destinationServices = cbr.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message);
+			List<String> destinationServices = cbr.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message,null);
 			assertEquals(destinationServices.iterator().next(),"XML_XPath_Destination");
 		} catch (MessageRouterException e) {
 			e.printStackTrace();
@@ -122,7 +122,7 @@
 			message.getBody().setByteArray(("<Dave>rocks</Dave>").getBytes());
 		
 			ContentBasedRouter cbr = ContentBasedRouterFactory.getRouter(org.jboss.soa.esb.actions.ContentBasedRouter.DEFAULT_CBR_CLASS);
-			List<String> destinationServices = cbr.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message);
+			List<String> destinationServices = cbr.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message,null);
 			assertEquals(destinationServices.iterator().next(),"XML_XPath_Dave_Destination");
 		} catch (MessageRouterException e) {
 			e.printStackTrace();
@@ -139,7 +139,7 @@
 			message.getBody().setByteArray(("<price>1.55</price>").getBytes());
 			
 			ContentBasedRouter cbr = ContentBasedRouterFactory.getRouter(org.jboss.soa.esb.actions.ContentBasedRouter.DEFAULT_CBR_CLASS);
-			List<String> destinationServices = cbr.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message);
+			List<String> destinationServices = cbr.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message,null);
 			assertEquals(destinationServices.iterator().next(),"XML_XPath_GreaterThan_Destination");
 		} catch (MessageRouterException e) {
 			e.printStackTrace();
@@ -156,7 +156,7 @@
 			message.getBody().setByteArray(("<price>0.55</price>").getBytes());
 			
 			ContentBasedRouter cbr = ContentBasedRouterFactory.getRouter(org.jboss.soa.esb.actions.ContentBasedRouter.DEFAULT_CBR_CLASS);
-			List<String> destinationServices = cbr.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message);
+			List<String> destinationServices = cbr.route("JBossESBRules-XPath.drl","XPathLanguage.dsl",false,message,null);
 			assertEquals(destinationServices.iterator().next(),"XML_XPath_LessThan_Destination");
 		} catch (MessageRouterException e) {
 			e.printStackTrace();

Copied: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBPricingRoutingRules.drl (from rev 12160, labs/jbossesb/trunk/product/services/jbrules/src/test/resources/JBossESBPricingRoutingRules.drl)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBPricingRoutingRules.drl	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBPricingRoutingRules.drl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,41 @@
+#created on: Oct 30, 2006
+package com.jboss.soa.esb.routing.cbr
+
+#list any import classes here.
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.internal.soa.esb.services.routing.cbr.Order 
+
+#declare any global variables here
+global java.util.List destinations;
+
+
+rule "Pricing Rule - low quantity"
+	
+	when
+	    m     : Message ()
+		order : Order( quantity < 10)
+	then
+		System.out.println("low volume");
+		#we can modify the object
+		order.setDiscount(0);
+		#demonstrate that we can add a new object to the message
+		m.getBody().add("DiscountObject","0%");
+		#set the routing destination
+		destinations.add("normal-shipping-destination");
+end
+
+rule "Prioing Rule - high quantity"
+	
+	when
+	    m     : Message ()
+		order : Order( quantity >= 10)
+	then 
+		System.out.println("high volume");
+		#we can modify the object
+		order.setDiscount(10);
+		#demonstrate that we can add a new object to the message
+		m.getBody().add("DiscountObject","10%");
+		#sets the routing destination
+		destinations.add("express-shipping-destination");
+end
\ No newline at end of file

Copied: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBPricingRules.drl (from rev 12160, labs/jbossesb/trunk/product/services/jbrules/src/test/resources/JBossESBPricingRules.drl)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBPricingRules.drl	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBPricingRules.drl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,37 @@
+#created on: Oct 30, 2006
+package com.jboss.soa.esb.routing.cbr
+
+#list any import classes here.
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.internal.soa.esb.services.routing.cbr.Order 
+
+#declare any global variables here
+global java.util.List destinations;
+
+
+rule "Pricing Rule - low quantity"
+	
+	when
+	    m     : Message ()
+		order : Order( quantity < 10)
+	then
+		System.out.println("low volume");
+		#we can modify the object
+		order.setDiscount(0);
+		#demonstrate that we can add a new object to the message
+		m.getBody().add("DiscountObject","0%");
+end
+
+rule "Prioing Rule - high quantity"
+	
+	when
+	    m     : Message ()
+		order : Order( quantity >= 10)
+	then 
+		System.out.println("high volume");
+		#we can modify the object
+		order.setDiscount(10);
+		#demonstrate that we can add a new object to the message
+		m.getBody().add("DiscountObject","10%");
+end
\ No newline at end of file

Copied: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBRules-XPath.drl (from rev 12160, labs/jbossesb/trunk/product/services/jbrules/src/test/resources/JBossESBRules-XPath.drl)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBRules-XPath.drl	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBRules-XPath.drl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,47 @@
+#created on: Nov 8, 2006
+package com.jboss.soa.esb.routing.cbr
+
+#list any import classes here.
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageType;
+
+expander XPathLanguage.dsl
+
+#declare any global variables here
+global java.util.List destinations;
+
+rule "Routing Rule using XPATH match"
+	
+	when
+		xpathMatch "/jbossesb"
+	then 
+		Log : "XPath Matched";
+		Destination : "XML_XPath_Destination";
+end
+
+rule "Routing Rule using XPATH equals"
+	
+	when
+		xpathEquals "/Dave", "rocks"
+	then 
+		Log : "XPath Equals";
+		Destination : "XML_XPath_Dave_Destination";
+end
+
+rule "Routing Rule using XPATH greater than"
+	
+	when
+	    xpathGreaterThan "/price" , "1.00"
+	then 
+		Log : "XPath Greater Then";
+		Destination : "XML_XPath_GreaterThan_Destination";
+end
+
+rule "Routing Rule using XPATH less than"
+	
+	when
+		xpathLessThan "/price", "1.00"
+	then 
+		Log : "XPath Less Then";
+		Destination : "XML_XPath_LessThan_Destination";
+end

Copied: labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBRules.drl (from rev 12160, labs/jbossesb/trunk/product/services/jbrules/src/test/resources/JBossESBRules.drl)
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBRules.drl	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/product/services/jbrules/src/test/resources/JBossESBRules.drl	2007-05-26 16:26:26 UTC (rev 12161)
@@ -0,0 +1,29 @@
+#created on: Oct 30, 2006
+package com.jboss.soa.esb.routing.cbr
+
+#list any import classes here.
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageType;
+
+#declare any global variables here
+global java.util.List destinations;
+
+
+rule "Routing Rule - Serialized based message"
+	
+	when
+		Message( type == MessageType.JAVA_SERIALIZED)
+	then
+		System.out.println("Serialized");
+		destinations.add("serialized-destination");
+		
+end
+
+rule "Routing Rule - XML based message"
+	
+	when
+		Message( type == MessageType.JBOSS_XML)
+	then 
+		System.out.println("JBoss_XML"); 
+		destinations.add("xml-destination");
+end
\ No newline at end of file

Modified: labs/jbossesb/workspace/dbevenius/product/services/soapui-client/build.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/soapui-client/build.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/soapui-client/build.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -8,10 +8,15 @@
     <property name="maven.build.final.name" value="soapui-client"/>
     <property name="maven.test.reports" value="${maven.build.directory}/test-reports"/>
     <property name="maven.test.output" value="target/test-classes"/>
+
+    <fileset id="jboss-esb-dependencies" dir="../../build/jbossesb/lib" includes="jbossesb-rosetta.jar" />
+
     <path id="build.classpath">
         <fileset dir="src/lib" includes="*.jar" />
         <fileset dir="../../lib/ext" includes="*.jar" />
+        <fileset refid="jboss-esb-dependencies" />
     </path>
+
     <target name="clean" description="Clean the output directory">
         <delete dir="${maven.build.directory}"/>
     </target>
@@ -43,6 +48,7 @@
         <copy todir="${maven.build.directory}/sar">
             <fileset dir="src" includes="lib/*.jar" excludes="lib/jboss-*.jar" />
             <fileset dir="src/main/resources" />
+            <fileset refid="jboss-esb-dependencies" />
         </copy>
         <copy todir="${maven.build.directory}/sar">
             <!-- fileset dir="${maven.build.directory}" includes="${maven.build.final.name}.jar" / -->

Modified: labs/jbossesb/workspace/dbevenius/product/services/soapui-client/pom.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/soapui-client/pom.xml	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/soapui-client/pom.xml	2007-05-26 16:26:26 UTC (rev 12161)
@@ -44,6 +44,13 @@
         </dependency>
         <dependency>
             <groupId>jboss</groupId>
+            <artifactId>jbossesb-rosetta</artifactId>
+            <version>4.0.x</version>
+            <systemPath>${basedir}/../../build/jbossesb/lib/jbossesb-rosetta.jar</systemPath>
+            <scope>system</scope>
+        </dependency>
+        <dependency>
+            <groupId>jboss</groupId>
             <artifactId>jboss-system</artifactId>
             <version>4.0.x</version>
             <systemPath>${basedir}/src/lib/jboss-system.jar</systemPath>
@@ -60,7 +67,7 @@
             <groupId>jboss</groupId>
             <artifactId>jbossall-client</artifactId>
             <version>4.0.x</version>
-            <systemPath>${basedir}/../../../../lib/ext/jbossall-client.jar</systemPath>
+            <systemPath>${basedir}/../../lib/ext/jbossall-client.jar</systemPath>
             <scope>system</scope>
         </dependency>
         <dependency>
@@ -83,8 +90,12 @@
             <artifactId>ognl</artifactId>
             <version>2.6.9</version>
         </dependency>
-
         <dependency>
+            <groupId>xalan</groupId>
+            <artifactId>xalan</artifactId>
+            <version>2.7.0</version>
+        </dependency>
+        <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>4.1</version>

Deleted: labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/DomUtils.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/DomUtils.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/DomUtils.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,108 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.services.soapui;
-
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Element;
-
-import java.util.List;
-import java.util.Vector;
-
-/**
- * DOM utility methods for the SOAPUI client.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class DomUtils {
-    /**
-     * Count the DOM element nodes before the supplied node, having the specified
-     * tag name, not including the node itself.
-     * <p/>
-     * Counts the sibling nodes.
-     *
-     * @param node    Node whose element siblings are to be counted.
-     * @param tagName The tag name of the sibling elements to be counted.
-     * @return The number of siblings elements before the supplied node with the
-     *         specified tag name.
-     */
-    protected static int countElementsBefore(Node node, String tagName) {
-        Node parent = node.getParentNode();
-
-        NodeList siblings = parent.getChildNodes();
-        int count = 0;
-        int siblingCount = siblings.getLength();
-
-        for (int i = 0; i < siblingCount; i++) {
-            Node sibling = siblings.item(i);
-
-            if (sibling == node) {
-                break;
-            }
-            if (sibling.getNodeType() == Node.ELEMENT_NODE && ((Element) sibling).getTagName().equals(tagName)) {
-                count++;
-            }
-        }
-
-        return count;
-    }
-
-    /**
-     * Copy the nodes of a NodeList into the supplied list.
-     * <p/>
-     * This is not a cloneCollectionTemplateElement.  It's just a copy of the node references.
-     * <p/>
-     * Allows iteration over the Nodelist using the copy in the knowledge that
-     * the list will remain the same length, even if we modify the underlying NodeList.
-     * Using the NodeList can result in problems because elements can get removed from
-     * the list while we're iterating over it.
-     * <p/>
-     * <i>This code was acquired donated by the Milyn Smooks project.</i>
-     *
-     * @param nodeList Nodelist to copy.
-     * @return List copy.
-     */
-    public static List<Node> copyNodeList(NodeList nodeList) {
-        List<Node> copy = new Vector<Node>();
-
-        if (nodeList != null) {
-            int nodeCount = nodeList.getLength();
-
-            for (int i = 0; i < nodeCount; i++) {
-                copy.add(nodeList.item(i));
-            }
-        }
-
-        return copy;
-    }
-
-    protected static Element getNextSiblingElement(Node node) {
-        Node nextSibling = node.getNextSibling();
-
-        while (nextSibling != null) {
-            if (nextSibling.getNodeType() == Node.ELEMENT_NODE) {
-                return (Element) nextSibling;
-            }
-            nextSibling = nextSibling.getNextSibling();
-        }
-
-        return null;
-    }
-}

Deleted: labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/OGNLUtils.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/OGNLUtils.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/OGNLUtils.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -1,98 +0,0 @@
-/*
-	Milyn - Copyright (C) 2006
-
-	This library is free software; you can redistribute it and/or
-	modify it under the terms of the GNU Lesser General Public
-	License (version 2.1) as published by the Free Software
-	Foundation.
-
-	This library 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:
-	http://www.gnu.org/licenses/lgpl.txt
-*/
-package org.jboss.soa.esb.services.soapui;
-
-import ognl.Ognl;
-import ognl.OgnlException;
-
-import java.util.Map;
-
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.apache.log4j.Logger;
-
-/**
- * OGNL Utilities for the SOAP UI Client service.
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public abstract class OGNLUtils {
-
-    private static Logger logger = Logger.getLogger(OGNLUtils.class);
-
-    public static Object getParameter(String ognl, Map params) {
-        Object param;
-
-        // Try getting the parameter from the params Map using the
-        // raw OGNL expression as the key...
-        param = params.get(ognl);
-        if(param == null) {
-            // And if that didn't work, try using the OGNL expression to extract the param
-            // from an Object Graph using the OGNL toolkit...
-            try {
-                param = Ognl.getValue(ognl, params);
-            } catch (OgnlException ex) {
-                if(logger.isDebugEnabled()) {
-                    logger.debug("OGNL Error.", ex);
-                }
-            }
-        }
-
-        return (param != null?param:"");
-    }
-
-    public static String getOGNLExpression(Element element) {
-        StringBuffer xpath = new StringBuffer();
-        Node parent = element.getParentNode();
-
-        xpath.append(getOGNLToken(element));
-
-        while (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
-            if (parent.getLocalName().equalsIgnoreCase("body") &&
-                    parent.getNamespaceURI().equalsIgnoreCase("http://schemas.xmlsoap.org/soap/envelope/")) {
-                break;
-            }
-
-            Element parentElement = (Element) parent;
-            String preassignedOgnl = parentElement.getAttributeNS(SoapUIClientService.SOAPUICL_NS, SoapUIClientService.OGNL_ATTRIB);
-            if(preassignedOgnl != null && !preassignedOgnl.equals("")) {
-                xpath.insert(0, "." + preassignedOgnl);
-                break;
-            } else {
-                xpath.insert(0, getOGNLToken(parentElement));
-            }
-            parent = parent.getParentNode();
-        }
-
-        // Remove the leading '.'
-        xpath.deleteCharAt(0);
-
-        return xpath.toString();
-    }
-
-    public static String getOGNLToken(Element element) {
-        String localName = element.getLocalName();
-        int count = DomUtils.countElementsBefore(element, element.getTagName());
-        String xpathToken;
-
-        if (count > 0) {
-            xpathToken = "." + localName + "[" + (count + 1) + "]";
-        } else {
-            xpathToken = "." + localName;
-        }
-
-        return xpathToken;
-    }
-}

Modified: labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -28,6 +28,8 @@
 import java.util.*;
 
 import org.jboss.system.ServiceMBeanSupport;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.internal.soa.esb.soap.OGNLUtils;
 import org.w3c.dom.*;
 import org.xml.sax.SAXException;
 import org.milyn.xml.XmlUtil;
@@ -44,10 +46,7 @@
  */
 public class SoapUIClientService extends ServiceMBeanSupport implements SoapUIClientServiceMBean {
 
-    protected static final String SOAPUICL_NS = "http://jbossesb.jboss.org/soapui-client";
-    protected static final String SOAPUICL_NS_PREFIX = "soapui:";
-    protected static final String IS_CLONE_ATTRIB = "is-clone";
-    protected static final String OGNL_ATTRIB = "ognl";
+    private static final String IS_CLONE_ATTRIB = "is-clone";
     private static Logger logger = Logger.getLogger(SoapUIClientService.class);
     private Map<String, WsdlInterface[]> wsdls = new HashMap<String, WsdlInterface[]>();
     private DocumentBuilder docBuilder;
@@ -82,22 +81,6 @@
     }
 
     /**
-     * Populate the supplied SOAP responseObject from the supplied soapMessage.
-     *
-     * @param wsdl      WSDL URL.
-     * @param operation Operation name.
-     * @param soapMessage The soap message containing the data.
-     * @param responseObject The soap response object to be populated fromthe data in the soap message.
-     * @return The populated responseObject, or a fault object if the message contains a fault.
-     * @throws IOException Failed to load WSDL.
-     * @throws UnsupportedOperationException Operation not supported on specified WSDL.
-     * @throws SAXException Failed to parse the SOAP message.
-     */
-    public Object populateResponse(String wsdl, String operation, String soapMessage, Object responseObject) throws IOException, UnsupportedOperationException, SAXException {
-        throw new UnsupportedOperationException("Not yet implemented!");
-    }
-
-    /**
      * Get the 1st endpoint from the specified WSDL.
      *
      * @param wsdl      WSDL URL.
@@ -141,6 +124,7 @@
 
     private String injectParameters(String soapMessage, Map params) throws IOException, SAXException {
         Document messageDoc = docBuilder.parse(new ByteArrayInputStream(soapMessage.getBytes()));
+
         Element docRoot = messageDoc.getDocumentElement();
 
         expandMessage(docRoot, params);
@@ -161,9 +145,10 @@
     private void expandMessage(Element element, Map params) {
 
         // If this element is not a cloned element, check does it need to be cloned...
-        if(!element.hasAttributeNS(SOAPUICL_NS, IS_CLONE_ATTRIB)) {
+        if(!element.hasAttributeNS(OGNLUtils.JBOSSESB_SOAP_NS, IS_CLONE_ATTRIB)) {
             String ognl = OGNLUtils.getOGNLExpression(element);
             Object param;
+
             param = OGNLUtils.getParameter(ognl, params);
             if(param != null) {
                 Class paramRuntime = param.getClass();
@@ -183,7 +168,7 @@
         }
 
         // Now do the same for the child elements...
-        List<Node> children = DomUtils.copyNodeList(element.getChildNodes());
+        List<Node> children = YADOMUtil.copyNodeList(element.getChildNodes());
         for (Node node : children) {
             if (node.getNodeType() == Node.ELEMENT_NODE) {
                 expandMessage((Element) node, params);
@@ -200,7 +185,7 @@
             if(firstNode.getNodeType() == Node.ELEMENT_NODE) {
                 firstElement = (Element)firstNode;
             } else {
-                firstElement = DomUtils.getNextSiblingElement(firstNode);
+                firstElement = YADOMUtil.getNextSiblingElement(firstNode);
             }
         }
 
@@ -229,21 +214,21 @@
             return;
         }
 
-        Element nextSibling = DomUtils.getNextSiblingElement(element);
+        Element nextSibling = YADOMUtil.getNextSiblingElement(element);
         Node parent = element.getParentNode();
 
-        element.setAttributeNS(SOAPUICL_NS, SOAPUICL_NS_PREFIX + OGNL_ATTRIB, ognl + "[0]");
+        element.setAttributeNS(OGNLUtils.JBOSSESB_SOAP_NS, OGNLUtils.JBOSSESB_SOAP_NS_PREFIX + OGNLUtils.OGNL_ATTRIB, ognl + "[0]");
         for(int i = 0; i < cloneCount; i++) {
             Element clone = (Element) element.cloneNode(true);
 
-            clone.setAttributeNS(SOAPUICL_NS, SOAPUICL_NS_PREFIX + IS_CLONE_ATTRIB, "true");
-            clone.setAttributeNS(SOAPUICL_NS, SOAPUICL_NS_PREFIX + OGNL_ATTRIB, ognl + "[" + Integer.toString(i + 1) + "]");
+            clone.setAttributeNS(OGNLUtils.JBOSSESB_SOAP_NS, OGNLUtils.JBOSSESB_SOAP_NS_PREFIX + IS_CLONE_ATTRIB, "true");
+            clone.setAttributeNS(OGNLUtils.JBOSSESB_SOAP_NS, OGNLUtils.JBOSSESB_SOAP_NS_PREFIX + OGNLUtils.OGNL_ATTRIB, ognl + "[" + Integer.toString(i + 1) + "]");
             if(nextSibling == null) {
                 parent.appendChild(clone);
             } else {
                 parent.insertBefore(clone, nextSibling);
             }
-            nextSibling = DomUtils.getNextSiblingElement(clone);
+            nextSibling = YADOMUtil.getNextSiblingElement(clone);
         }
     }
 
@@ -269,8 +254,8 @@
             }
         }
 
-        element.removeAttributeNS(SOAPUICL_NS, IS_CLONE_ATTRIB);
-        element.removeAttributeNS(SOAPUICL_NS, OGNL_ATTRIB);
+        element.removeAttributeNS(OGNLUtils.JBOSSESB_SOAP_NS, IS_CLONE_ATTRIB);
+        element.removeAttributeNS(OGNLUtils.JBOSSESB_SOAP_NS, OGNLUtils.OGNL_ATTRIB);
     }
 
 }

Modified: labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBean.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBean.java	2007-05-26 15:56:48 UTC (rev 12160)
+++ labs/jbossesb/workspace/dbevenius/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientServiceMBean.java	2007-05-26 16:26:26 UTC (rev 12161)
@@ -50,20 +50,6 @@
     public abstract String buildRequest(String wsdl, String operation, Map params) throws IOException, UnsupportedOperationException, SAXException;
 
     /**
-     * Populate the supplied SOAP responseObject from the supplied soapMessage.
-     *
-     * @param wsdl      WSDL URL.
-     * @param operation Operation name.
-     * @param soapMessage The soap message containing the data.
-     * @param responseObject The soap response object to be populated fromthe data in the soap message.
-     * @return The populated responseObject, or a fault object if the message contains a fault.
-     * @throws IOException Failed to load WSDL.
-     * @throws UnsupportedOperationException Operation not supported on specified WSDL.
-     * @throws SAXException Failed to parse the SOAP message.
-     */
-    public abstract Object populateResponse(String wsdl, String operation, String soapMessage, Object responseObject) throws IOException, UnsupportedOperationException, SAXException;
-
-    /**
      * Get the 1st endpoint from the specified WSDL.
      *
      * @param wsdl      WSDL URL.




More information about the jboss-svn-commits mailing list