[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(<String, String>), 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