[jboss-svn-commits] JBL Code SVN: r34428 - in labs/jbossesb/trunk/product/samples/quickstarts: aggregator and 67 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jul 30 19:01:14 EDT 2010
Author: dward
Date: 2010-07-30 19:01:09 -0400 (Fri, 30 Jul 2010)
New Revision: 34428
Added:
labs/jbossesb/trunk/product/samples/quickstarts/helloworld_ftp_action/lib/
labs/jbossesb/trunk/product/samples/quickstarts/https_2way_ssl/lib/
labs/jbossesb/trunk/product/samples/quickstarts/invm_transport1/lib/
labs/jbossesb/trunk/product/samples/quickstarts/jms_router/lib/
labs/jbossesb/trunk/product/samples/quickstarts/jms_secured/lib/
labs/jbossesb/trunk/product/samples/quickstarts/jms_transacted/lib/
labs/jbossesb/trunk/product/samples/quickstarts/security_cert/lib/
labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/lib/
labs/jbossesb/trunk/product/samples/quickstarts/smooks_file_splitter_router/lib/
labs/jbossesb/trunk/product/samples/quickstarts/spring_helloworld/lib/
labs/jbossesb/trunk/product/samples/quickstarts/transform_XML2XML_stream/lib/
Removed:
labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java
labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/hsqldb/jpetstore.properties
Modified:
labs/jbossesb/trunk/product/samples/quickstarts/aggregator/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration2/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration3/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration3/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration4/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/business_rules_service/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/business_ruleservice_cep.drl
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/deployment.xml
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/hornetq-jms.xml
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jbm-queue-service.xml
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jbmq-queue-service.xml
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jboss-esb.xml
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/src/org/jboss/soa/esb/samples/quickstart/business_ruleservice_cep/status/StatusSender.java
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_ruleAgent/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_ruleAgent/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_stateful/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/business_service/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/conf/base-build.xml
labs/jbossesb/trunk/product/samples/quickstarts/custom_action/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/deadletter/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/deployment.xml
labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/hornetq-jms.xml
labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jbm-queue-service.xml
labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jbmq-queue-service.xml
labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jboss-esb.xml
labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/exceptions_faults/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/groovy_gateway/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/helloworld/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/helloworld_action/oracle-aq/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/helloworld_action/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_action/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_notifier/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_notifier/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/helloworld_topic_notifier/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/helloworld_topic_notifier/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/http_gateway/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/https_2way_ssl/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/huge-split-enrich-transform-route/README.html
labs/jbossesb/trunk/product/samples/quickstarts/invm_transport1/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/jms_router/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/jms_secured/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/jms_topic/README.html
labs/jbossesb/trunk/product/samples/quickstarts/load_generator/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/messagealerts/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/messagefilter/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/messagestore/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/native_client/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml
labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml
labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java
labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java
labs/jbossesb/trunk/product/samples/quickstarts/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/scheduled_services/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/security_saml/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/simple_cbr/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/smooks_file_splitter_router/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/smooks_file_splitter_router/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/spring_aop/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/spring_helloworld/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/transform_XML2POJO/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/transform_XML2POJO2/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/two_servers/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer1/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/webservice_mtom/README.html
labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/readme.txt
labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_basic/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_routed/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_security/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_versioning/build.xml
labs/jbossesb/trunk/product/samples/quickstarts/webservice_wsaddressing/README.html
labs/jbossesb/trunk/product/samples/quickstarts/webservice_wssecurity/README.html
labs/jbossesb/trunk/product/samples/quickstarts/wiretap/readme.txt
Log:
Tweaks needed for JBESB-3383.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/aggregator/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/aggregator/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/aggregator/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,63 +1,63 @@
-Overview:
-=========
- The purpose of this particular example is to demonstrate the Enterprise
- Integration Patterns of Splitter and Aggregator. In addition, this example
- demonstrates the concepts of multiple JVMs, each running unique services but
- all working in concert, a federated model that shares a common registry and
- uses JMS between the JVMs.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run standalone mode:
-=======================
- 1. In a command terminal window in the quickstart folder type
- 'ant deploy-jms-dests'.
- 2. In a command terminal window in this folder ("Window1"), type 'ant run'.
- This executes the splitter.
- 3. In a command terminal window in this folder ("Window2"), type
- 'ant runRedService'. This rips out the Customer.
- 4. In a command terminal window in this folder ("Window3"), type
- 'ant runGreenService'. This rips out the LineItems.
- 5. In a command terminal window in this folder ("Window4"), type
- 'ant runBlueService'. This rips out the OrderHeader.
- 6. In a command terminal window in this folder ("Window5"), type
- 'ant runAggregatorService'. Displays individual parts together.
- 7. In a command terminal window in this folder ("Window6"), type
- 'ant receiveRed'.
- 8. In a command terminal window in this folder ("Window7"), type
- 'ant receiveGreen'.
- 9. In a command terminal window in this folder ("Window8"), type
- 'ant receiveBlue'.
- 10. Open another command terminal window in this folder ("Window9"), type
- 'ant runtest'.
- 11. Switch back to the previous windows to see the output.
- 12. When finished, interrupt the ESB, services and receivers using Ctrl-C.
- 13. Undeploy the JMS configuration, type 'ant undeploy-jms-dests'.
-
-What to look at in this Quickstart:
-===================================
- The aggregation action (SystemPrintln in this case) needs to contain logic
- for handling the "parts". The trick is to use ActionUtils.getTaskObject() and
- loop through the attachments:
-
- public Message process(Message message) throws ActionProcessingException {
- Object messageObject = ActionUtils.getTaskObject(message);
-
- if(messageObject instanceof byte[]) {
- System.out.println(printlnMessage + ": \n[" +
- format(new String((byte[])messageObject)) + "].");
- } else {
- if (messageObject!=null)
- System.out.println(printlnMessage + ": \n[" +
- 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().getContents()) + "].");
- }
- }
- return message;
- }
+Overview:
+=========
+ The purpose of this particular example is to demonstrate the Enterprise
+ Integration Patterns of Splitter and Aggregator. In addition, this example
+ demonstrates the concepts of multiple JVMs, each running unique services but
+ all working in concert, a federated model that shares a common registry and
+ uses JMS between the JVMs.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run standalone mode:
+=======================
+ 1. In a command terminal window in the quickstart folder type
+ 'ant deploy-jms-dests'.
+ 2. In a command terminal window in this folder ("Window1"), type 'ant run'.
+ This executes the splitter.
+ 3. In a command terminal window in this folder ("Window2"), type
+ 'ant runRedService'. This rips out the Customer.
+ 4. In a command terminal window in this folder ("Window3"), type
+ 'ant runGreenService'. This rips out the LineItems.
+ 5. In a command terminal window in this folder ("Window4"), type
+ 'ant runBlueService'. This rips out the OrderHeader.
+ 6. In a command terminal window in this folder ("Window5"), type
+ 'ant runAggregatorService'. Displays individual parts together.
+ 7. In a command terminal window in this folder ("Window6"), type
+ 'ant receiveRed'.
+ 8. In a command terminal window in this folder ("Window7"), type
+ 'ant receiveGreen'.
+ 9. In a command terminal window in this folder ("Window8"), type
+ 'ant receiveBlue'.
+ 10. Open another command terminal window in this folder ("Window9"), type
+ 'ant runtest'.
+ 11. Switch back to the previous windows to see the output.
+ 12. When finished, interrupt the ESB, services and receivers using Ctrl-C.
+ 13. Undeploy the JMS configuration, type 'ant undeploy-jms-dests'.
+
+What to look at in this Quickstart:
+===================================
+ The aggregation action (SystemPrintln in this case) needs to contain logic
+ for handling the "parts". The trick is to use ActionUtils.getTaskObject() and
+ loop through the attachments:
+
+ public Message process(Message message) throws ActionProcessingException {
+ Object messageObject = ActionUtils.getTaskObject(message);
+
+ if(messageObject instanceof byte[]) {
+ System.out.println(printlnMessage + ": \n[" +
+ format(new String((byte[])messageObject)) + "].");
+ } else {
+ if (messageObject!=null)
+ System.out.println(printlnMessage + ": \n[" +
+ 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().getContents()) + "].");
+ }
+ }
+ return message;
+ }
Modified: labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration2/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration2/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration2/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,68 +1,68 @@
-Overview:
-=========
- The purpose of the bpm_orchestration2 quickstart sample is to demonstrate the
- use of JMS-based endpoints/services where the flow of execution is controlled
- by the process definition. The process definition also includes a fork & join
- and makes each service invocation in a synchronous fashion.
-
-
-To Run :
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant deployProcess'.
- 3. In the command terminal window ("Window2"), type
- 'ant startProcess'
- 4. Switch back to Application Server console to see the output from the ESB
- 5. In this folder ("Window1"), type 'ant undeploy'.
-
-Extra Credit:
-=============
- 1. Modify the process definition using your favorite editor or the Grahpical
- Process Desginer (from jBPM 3.2.x). Remove the following transitions from
- the fork to Atlanta and Dallas:
-
- <transition name="tr2" to="Dallas WHSE"></transition>
- <transition name="tr3" to="Atlanta WHSE"></transition>
-
- This change means that the flow of execution will bypass Service6 and
- Service7.
-
- 2. ant refreshProcess - This step copies the newly changed process definition
- to its appropriate location in the deployed .esb archive and then invokes
- the deployProcess command.
-
- 3. ant startProcess - Service6 (Dallas) and 7 (Atlanta) are gone.
-
- Feel free to rewire the process definition in any order that you like to see
- the change in execution flow.
-
-Things to Consider:
-===================
- - BPM related quickstarts deploy as an exploded archive.
- - The service "logic" is coded in Groovy
- - Carefully review the jboss-esb.xml and the processdefinition.xml. One of
- the key things to understand is how the ESB action invokes or interacts with
- the process and how it moves ESB message data into process instance
- variables.
-
- <property name="esb-to-jbpm">
- <variables>
- <variable esb-name="esbMsgVar1" jbpm-name="processVar1" />
- <variable esb-name="BODY_CONTENT" jbpm-name="theBody" />
- </variables>
- </property>
-
- esb-name maps to Message.getBody().get("esbMsgVar1")
- "BODY_CONTENT" maps to Message.getBody()
+Overview:
+=========
+ The purpose of the bpm_orchestration2 quickstart sample is to demonstrate the
+ use of JMS-based endpoints/services where the flow of execution is controlled
+ by the process definition. The process definition also includes a fork & join
+ and makes each service invocation in a synchronous fashion.
+
+To Run :
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant deployProcess'.
+ 3. In the command terminal window ("Window2"), type
+ 'ant startProcess'
+ 4. Switch back to Application Server console to see the output from the ESB
+ 5. In this folder ("Window1"), type 'ant undeploy'.
+
+Extra Credit:
+=============
+ 1. Modify the process definition using your favorite editor or the Grahpical
+ Process Desginer (from jBPM 3.2.x). Remove the following transitions from
+ the fork to Atlanta and Dallas:
+
+ <transition name="tr2" to="Dallas WHSE"></transition>
+ <transition name="tr3" to="Atlanta WHSE"></transition>
+
+ This change means that the flow of execution will bypass Service6 and
+ Service7.
+
+ 2. ant refreshProcess - This step copies the newly changed process definition
+ to its appropriate location in the deployed .esb archive and then invokes
+ the deployProcess command.
+
+ 3. ant startProcess - Service6 (Dallas) and 7 (Atlanta) are gone.
+
+ Feel free to rewire the process definition in any order that you like to see
+ the change in execution flow.
+
+Things to Consider:
+===================
+ - BPM related quickstarts deploy as an exploded archive.
+ - The service "logic" is coded in Groovy
+ - Carefully review the jboss-esb.xml and the processdefinition.xml. One of
+ the key things to understand is how the ESB action invokes or interacts with
+ the process and how it moves ESB message data into process instance
+ variables.
+
+ <property name="esb-to-jbpm">
+ <variables>
+ <variable esb-name="esbMsgVar1" jbpm-name="processVar1" />
+ <variable esb-name="BODY_CONTENT" jbpm-name="theBody" />
+ </variables>
+ </property>
+
+ esb-name maps to Message.getBody().get("esbMsgVar1")
+ "BODY_CONTENT" maps to Message.getBody()
+
Sample Output from "ant deployProcess":
======================================
13:14:07,359 INFO [CommandExecutor] Process Definition 'bpm_orchestration2Process' is deployed.
13:14:07,396 INFO [STDOUT] Process Definition Deployed:
13:14:07,396 INFO [STDOUT] [Hello World: Deploy the process def].
-
-Sample Output from "ant startProcess":
+
+Sample Output from "ant startProcess":
======================================
13:18:38,451 INFO [STDOUT] ** Begin Receive Order - Service 1 **
13:18:38,451 INFO [STDOUT] In: Getting Started
Modified: labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration3/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration3/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration3/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -23,6 +23,10 @@
<fileset dir="${basedir}" includes="scripts/**/*"/>
</copy>
</target>
+
+ <target name="quickstart-specific-clean">
+ <delete file="${basedir}/${jbossesb.name}"/>
+ </target>
<target name="config">
<delete dir="${jbossesb.responsedir}" quiet="true"/>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration3/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration3/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration3/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -23,9 +23,10 @@
[STDOUT] Out: Hello start 'Service 1'
[STDOUT] ** End Service 1 **
- 4. Enter the jBPM console (http://localhost:8080/jbpm-console/app/processes.jsf), and
- login. Once logged in, examine each process that you see using the "Examine" link
- and find the "Instance ID" for the process that has a Key of "Demo1".
+ 4. Enter the jBPM console (http://localhost:8080/jbpm-console/app/processes.jsf),
+ and login (the username/password is admin/admin by default). Once logged in,
+ examine each process that you see using the "Examine" link and find the
+ "Instance ID" for the process that has a Key of "Demo1".
5. Using your favorite OSs File Explorer tool, look in the "bin" directory of your
ESB container (either the full Application Server + ESB or ESB Server). A file
Modified: labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration4/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration4/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/bpm_orchestration4/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,12 +1,12 @@
-Overview:
-=========
- Review the docs/Readme.pdf
-
-To Run '.esb' archive mode:
-===========================
- Note: If running this quickstart on the App Server, you will need to ensure
- that the App Server JVM is started with enough PermGen space e.g:
-
- JAVA_OPTS="-Xms128m -Xmx512m -XX:PermSize=200M -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
-
+Overview:
+=========
Review the docs/Readme.pdf
+
+To Run '.esb' archive mode:
+===========================
+ Note: If running this quickstart on the App Server, you will need to ensure
+ that the App Server JVM is started with enough PermGen space e.g:
+
+ JAVA_OPTS="-Xms128m -Xmx512m -XX:PermSize=200M -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
+
+ Review the docs/Readme.pdf
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_rules_service/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_rules_service/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_rules_service/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,38 +1,38 @@
-Overview:
-=========
- Demonstrates the use of the BusinessRulesProcessor which allows for
- modification of the POJOs attached to an ESB Message. The example uses Rules
- to calculate the priority associated with an inbound order for later routing,
- plus it calculates the discount percentage associated with an order.
-
- Make sure you have run simple_cbr, transformation_XML2POJO and fun_cbr
- quickstarts as their principles are used in this more complex example.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
- A comprehensive description of message transformation can be found in
- ServicesGuide.pdf, located in the docs/services folder.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
- Review the 3 different .drl files to see the distinction between business
- rules used for calculation/validation and rules used for routing.
-
- The customer status is actually set in the jboss-esb.xml via the UpdateCusutomerStatus
- action since it is not provided with the inbound XML. You don't want a
- customer to determine their status. In a real world situation, another
- system would be integrated via an action/service, that first calculates the
+Overview:
+=========
+ Demonstrates the use of the BusinessRulesProcessor which allows for
+ modification of the POJOs attached to an ESB Message. The example uses Rules
+ to calculate the priority associated with an inbound order for later routing,
+ plus it calculates the discount percentage associated with an order.
+
+ Make sure you have run simple_cbr, transformation_XML2POJO and fun_cbr
+ quickstarts as their principles are used in this more complex example.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+ A comprehensive description of message transformation can be found in
+ ServicesGuide.pdf, located in the docs/services folder.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+ Review the 3 different .drl files to see the distinction between business
+ rules used for calculation/validation and rules used for routing.
+
+ The customer status is actually set in the jboss-esb.xml via the UpdateCusutomerStatus
+ action since it is not provided with the inbound XML. You don't want a
+ customer to determine their status. In a real world situation, another
+ system would be integrated via an action/service, that first calculates the
customer's status (frequent flier, volume of previous purchases, etc.)
Try setting the "status" to different values and see how the customer
status is used in MyBusinessRules.drl.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -26,10 +26,6 @@
<copy file="log4j.xml" tofile="build/log4j.xml"/>
</target>
- <target name="quickstart-specific-clean">
- <delete file="${basedir}/listener.log"/>
- </target>
-
<target name="run">
<echo>standalone mode is not available for this quickstart.</echo>
</target>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/business_ruleservice_cep.drl
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/business_ruleservice_cep.drl 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/business_ruleservice_cep.drl 2010-07-30 23:01:09 UTC (rev 34428)
@@ -12,6 +12,7 @@
declare Event
@role(event)
+ @expires(45s)
end
function void info(Object msg) {
@@ -90,5 +91,6 @@
event : Event(type == Event.Type.INVENTORY, light == Event.Light.RED)
then
warn("inventory is RED for " + event.getSpokeLocation() + " :(");
+ insert(new Event(Event.Type.HEARTBEAT, Event.Light.GREEN, event.getSpokeLocation()));
channels["warehouse"].send(event);
end
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/deployment.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/deployment.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,6 +1,6 @@
<jbossesb-deployment>
<depends>jboss.esb:deployment=jbrules.esb</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=Quickstart_business_ruleservice_cep_GW</depends>
- <depends>jboss.esb.quickstart.destination:service=Queue,name=Quickstart_business_ruleservice_cep_ESB</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_business_ruleservice_cep_GW</depends>
+ <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_business_ruleservice_cep_ESB</depends>
</jbossesb-deployment>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/hornetq-jms.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/hornetq-jms.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/hornetq-jms.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="urn:hornetq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
- <queue name="Quickstart_business_ruleservice_cep_GW">
- <entry name="queue/Quickstart_business_ruleservice_cep_GW"/>
+ <queue name="quickstart_business_ruleservice_cep_GW">
+ <entry name="queue/quickstart_business_ruleservice_cep_GW"/>
</queue>
- <queue name="Quickstart_business_ruleservice_cep_ESB">
- <entry name="queue/Quickstart_business_ruleservice_cep_ESB"/>
+ <queue name="quickstart_business_ruleservice_cep_ESB">
+ <entry name="queue/quickstart_business_ruleservice_cep_ESB"/>
</queue>
</configuration>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jbm-queue-service.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jbm-queue-service.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<server>
- <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.esb.quickstart.destination:service=Queue,name=Quickstart_business_ruleservice_cep_GW" xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_business_ruleservice_cep_GW" xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
<depends>jboss.messaging:service=PostOffice</depends>
</mbean>
- <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.esb.quickstart.destination:service=Queue,name=Quickstart_business_ruleservice_cep_ESB" xmbean-dd="xmdesc/Queue-xmbean.xml">
+ <mbean code="org.jboss.jms.server.destination.QueueService" name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_business_ruleservice_cep_ESB" xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
<depends>jboss.messaging:service=PostOffice</depends>
</mbean>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jbmq-queue-service.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jbmq-queue-service.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<server>
- <mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.esb.quickstart.destination:service=Queue,name=Quickstart_business_ruleservice_cep_GW">
+ <mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_business_ruleservice_cep_GW">
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
- <mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.esb.quickstart.destination:service=Queue,name=Quickstart_business_ruleservice_cep_ESB">
+ <mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_business_ruleservice_cep_ESB">
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
</server>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jboss-esb.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/jboss-esb.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -4,10 +4,10 @@
<providers>
<jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
<jms-bus busid="bus_GW">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/Quickstart_business_ruleservice_cep_GW"/>
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_business_ruleservice_cep_GW"/>
</jms-bus>
<jms-bus busid="bus_ESB">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/Quickstart_business_ruleservice_cep_ESB"/>
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_business_ruleservice_cep_ESB"/>
</jms-bus>
</jms-provider>
</providers>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/src/org/jboss/soa/esb/samples/quickstart/business_ruleservice_cep/status/StatusSender.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/src/org/jboss/soa/esb/samples/quickstart/business_ruleservice_cep/status/StatusSender.java 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_cep/src/org/jboss/soa/esb/samples/quickstart/business_ruleservice_cep/status/StatusSender.java 2010-07-30 23:01:09 UTC (rev 34428)
@@ -68,7 +68,7 @@
InitialContext context = new InitialContext(properties);
QueueConnectionFactory factory = (QueueConnectionFactory)context.lookup("ConnectionFactory");
connection = factory.createQueueConnection();
- queue = (Queue)context.lookup("queue/Quickstart_business_ruleservice_cep_GW");
+ queue = (Queue)context.lookup("queue/quickstart_business_ruleservice_cep_GW");
session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
connection.start();
logger.info("connection started");
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_ruleAgent/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_ruleAgent/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_ruleAgent/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -24,8 +24,11 @@
<!-- Import the base Ant build script... -->
<import file="../conf/base-build.xml"/>
+
+ <target name="quickstart-specific-clean">
+ <delete file="${basedir}/ruleAgent/brmsdeployedrules.properties"/>
+ </target>
-
<target name="runtest" depends="compile"
description="will receive JMS message to trigger the actions in the ESB">
<echo>Runs Test JMS Sender</echo>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_ruleAgent/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_ruleAgent/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_ruleAgent/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,45 +1,45 @@
-Overview:
-=========
- Demonstrates the use of the BusinessRulesProcessor which uses facts that are
- POJOs attached to an ESB Message. The example uses Rules to calculate the price
- of an automobile insurance policy. In particular, this example gets the rules from
- a rule package that is contained in the file system through the Drools RuleAgent.
- This rule package can also be retrieved from a URL created by the Drools BRMS.
-
- Make sure you have run simple_cbr, transformation_XML2POJO and fun_cbr
- quickstarts as their principles are used in this more complex example.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
- A comprehensive description of message transformation can be found in
- ServicesGuide.pdf, located in the docs/services folder.
-
- Notice the brmsdeployedrules.properties in the ruleAgent folder. This points
- the location of the rule package. It can specify a fully qualified file name,
- or just the directory (if there is only one package file in it). Modify one
- of these to match the path of your ESB installation.
+Overview:
+=========
+ Demonstrates the use of the BusinessRulesProcessor which uses facts that are
+ POJOs attached to an ESB Message. The example uses Rules to calculate the price
+ of an automobile insurance policy. In particular, this example gets the rules from
+ a rule package that is contained in the file system through the Drools RuleAgent.
+ This rule package can also be retrieved from a URL created by the Drools BRMS.
+
+ Make sure you have run simple_cbr, transformation_XML2POJO and fun_cbr
+ quickstarts as their principles are used in this more complex example.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+ A comprehensive description of message transformation can be found in
+ ServicesGuide.pdf, located in the docs/services folder.
+
+ Notice the brmsdeployedrules.properties in the ruleAgent folder. This points
+ the location of the rule package. It can specify a fully qualified file name,
+ or just the directory (if there is only one package file in it). Modify one
+ of these to match the path of your ESB installation.
The original drl that is located in the ruleAgent folder and named Original.drl.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
-
- The SendJMSMessage will send a message with the SampleDriver.xml included as a string.
- A Transformation service will convert the XML to POJOs (Driver and Policy), and put
- these objects in the message. The message is then sent to the PolicyPricing service
- which uses the brmsdeployedrules.property to access the rule package, creates a new
- stateless session, inserts the Driver and Policy from the message, and executes the
- rules. The console will show the resulting price of the policy that is calculated
- from the rules.
-
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+ The SendJMSMessage will send a message with the SampleDriver.xml included as a string.
+ A Transformation service will convert the XML to POJOs (Driver and Policy), and put
+ these objects in the message. The message is then sent to the PolicyPricing service
+ which uses the brmsdeployedrules.property to access the rule package, creates a new
+ stateless session, inserts the Driver and Policy from the message, and executes the
+ rules. The console will show the resulting price of the policy that is calculated
+ from the rules.
+
+
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_stateful/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_stateful/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_ruleservice_stateful/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,36 +1,36 @@
-Overview:
-=========
- Demonstrates the use of the BusinessRulesProcessor which allows for
- modification of the POJOs attached to an ESB Message. The example uses Rules
+Overview:
+=========
+ Demonstrates the use of the BusinessRulesProcessor which allows for
+ modification of the POJOs attached to an ESB Message. The example uses Rules
to calculate the discount of an inbound order based on the customer's past
- history of orders. As such it is an example of a stateful rule service.
-
+ history of orders. As such it is an example of a stateful rule service.
+
Make sure you have run simple_cbr, transformation_XML2POJO, fun_cbr, and
business_rules_service quickstarts as their principles are used in this
- more complex example.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
- A comprehensive description of message transformation can be found in
- ServicesGuide.pdf, located in the docs/services folder.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
+ more complex example.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+ A comprehensive description of message transformation can be found in
+ ServicesGuide.pdf, located in the docs/services folder.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
Look at the jboss-esb.xml and notice how the stateful="true" is set on the
BusinessRulesProcessor action of the OrderDiscountService. Review the
- OrderDiscountOnMultipleOrders.drl file to see how accumulation works.
-
+ OrderDiscountOnMultipleOrders.drl file to see how accumulation works.
+
Stateful rule services must be told via message properties when to continue with
the current stateful session and when to dispose of it. This is accomplished via
the SetupMessage action based on the orderStatus provided with the inbound XML.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/business_service/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/business_service/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/business_service/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,25 +1,25 @@
-Overview:
-=========
- This example demonstrates the how to access an EJB3 Stateless Session Bean
- from within an ESB Action. ESB Actions are primarily custom mediation
- components which allow you to introduce different specialized transformations,
- routing behaviors, orchestration, etc. The EJB3 is a simple "Hello World"
- annotated POJO.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed description of the different ways to run the quickstarts.
-
- ********************************************************************************
- * IMPORTANT NOTE!: this quickstart requires an ESB embedded in JBoss AS 4.2.x. *
- * Installation instructions can be found in the install/readme.txt. *
- ********************************************************************************
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
+Overview:
+=========
+ This example demonstrates the how to access an EJB3 Stateless Session Bean
+ from within an ESB Action. ESB Actions are primarily custom mediation
+ components which allow you to introduce different specialized transformations,
+ routing behaviors, orchestration, etc. The EJB3 is a simple "Hello World"
+ annotated POJO.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed description of the different ways to run the quickstarts.
+
+ ********************************************************************************
+ * IMPORTANT NOTE!: this quickstart requires an ESB embedded in JBoss AS 4.2.x. *
+ * Installation instructions can be found in the install/readme.txt. *
+ ********************************************************************************
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/conf/base-build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/conf/base-build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/conf/base-build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -582,6 +582,7 @@
<fileset dir="${basedir}">
<include name="jbossesb-gateway.xml"/>
<include name="jbossesb-listener.xml"/>
+ <include name="listener.log"/>
</fileset>
</delete>
</target>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/custom_action/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/custom_action/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/custom_action/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,76 +1,76 @@
-Overview:
-=========
- The purpose of the custom_action quickstart example is to show different ways of
- using Action classes.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-Things to Consider:
-===================
- jbossesb.xml:
- <action class="org.jboss.soa.esb.samples.quickstart.customaction.MyBasicAction"
- process="displayMessage" exceptionMethod="exceptionHandler" />
- <action class="org.jboss.soa.esb.samples.quickstart.customaction.MyBasicAction"
- exceptionMethod="exceptionHandler" />
- <action class="org.jboss.soa.esb.samples.quickstart.customaction.StatefulAction"
- process="methodOne,methodTwo,displayCount"
- exceptionMethod="exceptionHandler" />
- <action class="org.jboss.soa.esb.samples.quickstart.customaction.CustomConfigAction"
- process="displayConfig" myStuff="rocks" moreStuff="rocks harder">
- <subElement1>Value of 1</subElement1>
- <subElement2>Value of 2</subElement2>
- <subElement3>Value of 3</subElement3>
- </action>
-
- The second MyBasicAction doesn't have a "process" attribute. That means
- JBoss ESB is looking for a method with the following signature:
- public Message process(Message message) {
-
- The StatefulAction declaration has a process attribute that has a command
- delimited list of method names. These methods will be called in the order in
- which they appear in the list. In addition, the StatefulAction class is only
- instantiated one time and all method calls are executed against the same
- instance. When you execute this example you'll be able to see that the cnt
- maintains its state between method calls.
- You should notice on the server console that the constructor is called when the .esb
- archive loads.
-
- The CustomConfigAction demonstrates how to access custom attributes on the
- main action tag and child elements of the action tag. As an action developer
- you have full access to these items as a means of configuration for your
- action thus making them more reusable between various projects.
-
- If you wish to see a "native" call where there is no gateway - "ant sendesb".
- Review the SendEsbMessage.java class in the "test" package.
-
- <action name="seventh" class="org.jboss.soa.esb.samples.quickstart.customaction.CustomBeanConfigAction">
- <property name="information" value="Hola Mundo" />
- <property name="repeatCount" value="5"/>
- </action>
-
- This demonstrates the use of the BeanConfiguredAction which takes properties defined in the jboss-esb.xml
- and calls the appropriate "setter" method.
-
- Add this line to the action chain in the jboss-esb.xml
- <action name="causesException" class="org.jboss.soa.esb.samples.quickstart.customaction.MyBasicAction"
- process="causesException"/>
-
- It will allow you to see how exceptions are propagated. For more indepth examples on exception handling
- please review the exceptions_faults quickstart.
-
-
-
-
-
-
+Overview:
+=========
+ The purpose of the custom_action quickstart example is to show different ways of
+ using Action classes.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+Things to Consider:
+===================
+ jbossesb.xml:
+ <action class="org.jboss.soa.esb.samples.quickstart.customaction.MyBasicAction"
+ process="displayMessage" exceptionMethod="exceptionHandler" />
+ <action class="org.jboss.soa.esb.samples.quickstart.customaction.MyBasicAction"
+ exceptionMethod="exceptionHandler" />
+ <action class="org.jboss.soa.esb.samples.quickstart.customaction.StatefulAction"
+ process="methodOne,methodTwo,displayCount"
+ exceptionMethod="exceptionHandler" />
+ <action class="org.jboss.soa.esb.samples.quickstart.customaction.CustomConfigAction"
+ process="displayConfig" myStuff="rocks" moreStuff="rocks harder">
+ <subElement1>Value of 1</subElement1>
+ <subElement2>Value of 2</subElement2>
+ <subElement3>Value of 3</subElement3>
+ </action>
+
+ The second MyBasicAction doesn't have a "process" attribute. That means
+ JBoss ESB is looking for a method with the following signature:
+ public Message process(Message message) {
+
+ The StatefulAction declaration has a process attribute that has a command
+ delimited list of method names. These methods will be called in the order in
+ which they appear in the list. In addition, the StatefulAction class is only
+ instantiated one time and all method calls are executed against the same
+ instance. When you execute this example you'll be able to see that the cnt
+ maintains its state between method calls.
+ You should notice on the server console that the constructor is called when the .esb
+ archive loads.
+
+ The CustomConfigAction demonstrates how to access custom attributes on the
+ main action tag and child elements of the action tag. As an action developer
+ you have full access to these items as a means of configuration for your
+ action thus making them more reusable between various projects.
+
+ If you wish to see a "native" call where there is no gateway - "ant sendesb".
+ Review the SendEsbMessage.java class in the "test" package.
+
+ <action name="seventh" class="org.jboss.soa.esb.samples.quickstart.customaction.CustomBeanConfigAction">
+ <property name="information" value="Hola Mundo" />
+ <property name="repeatCount" value="5"/>
+ </action>
+
+ This demonstrates the use of the BeanConfiguredAction which takes properties defined in the jboss-esb.xml
+ and calls the appropriate "setter" method.
+
+ Add this line to the action chain in the jboss-esb.xml
+ <action name="causesException" class="org.jboss.soa.esb.samples.quickstart.customaction.MyBasicAction"
+ process="causesException"/>
+
+ It will allow you to see how exceptions are propagated. For more indepth examples on exception handling
+ please review the exceptions_faults quickstart.
+
+
+
+
+
+
Modified: labs/jbossesb/trunk/product/samples/quickstarts/deadletter/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/deadletter/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/deadletter/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,62 +1,62 @@
-Overview:
-=========
- The purpose of the deatletter quickstart sample is to show how messages end up in
- the DeadLetter Service. The interesting piece of configuration
- is:
-
- <!-- Add a copy of the message to the message store under categorization
- 'test' -->
- <action name="PersistAction" class="org.jboss.soa.esb.actions.MessagePersister" >
- <property name="classfication" value="test"/>
- <property name="message-store-class"
- value="org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl"
- />
- </action>
-
- Which causes a message to be saved in the DB messageStore under the
- categorization 'test'. Tooling will be added to inspect the messageStore.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
-
- There are two actions.
-
- src\org\jboss\soa\esb\samples\quickstart\deadletter\MyFailingSyncAction
- This action attempts a asynchronous call. The attempt should
- fail and the message should end up getting send to the DeadLetterService. By default
- this service stores a copy of the message in the MessageStore under the classification
- 'RDLVR'. The message would have been redelivered at a later time (according to
- the redeliver schedule defined in the jbossesb.esb/META-INF/jboss-esb.xml), but
- it is removed from the store or else the quickstart would get too confusing.
- Look for
- Message in the RDLVR should be the same message: true
-
- src\org\jboss\soa\esb\samples\quickstart\deadletter\MyFailingAsyncAction
- This action attempts a synchronous call. The attempt should
- fail and the message should end up getting send to the DeadLetterService. By default
- this service stores a copy of the message in the MessageStore under the classification
- 'DLQ'. An exception is thrown to stop any futher processing of the pipeline.
- Look for:
- Message in the DLQ should be the same message: true
-
- src\quickstart\helloworld\test\SendJMSMessage.java:
- Shoots in the string passed in via the command line or in this case the arg
- attribute in the ant runtest task.
-
- src\quickstart\helloworld\test\SendEsbMessage.java:
- Shoots in the string passed in via the command line or in this case the arg
- atribute in the ant sendesb task. This demonstrates how to build an "ESB
- aware" client that can invoke an ESB service.
+Overview:
+=========
+ The purpose of the deatletter quickstart sample is to show how messages end up in
+ the DeadLetter Service. The interesting piece of configuration
+ is:
+
+ <!-- Add a copy of the message to the message store under categorization
+ 'test' -->
+ <action name="PersistAction" class="org.jboss.soa.esb.actions.MessagePersister" >
+ <property name="classfication" value="test"/>
+ <property name="message-store-class"
+ value="org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl"
+ />
+ </action>
+
+ Which causes a message to be saved in the DB messageStore under the
+ categorization 'test'. Tooling will be added to inspect the messageStore.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+
+ There are two actions.
+
+ src\org\jboss\soa\esb\samples\quickstart\deadletter\MyFailingSyncAction
+ This action attempts a asynchronous call. The attempt should
+ fail and the message should end up getting send to the DeadLetterService. By default
+ this service stores a copy of the message in the MessageStore under the classification
+ 'RDLVR'. The message would have been redelivered at a later time (according to
+ the redeliver schedule defined in the jbossesb.esb/META-INF/jboss-esb.xml), but
+ it is removed from the store or else the quickstart would get too confusing.
+ Look for
+ Message in the RDLVR should be the same message: true
+
+ src\org\jboss\soa\esb\samples\quickstart\deadletter\MyFailingAsyncAction
+ This action attempts a synchronous call. The attempt should
+ fail and the message should end up getting send to the DeadLetterService. By default
+ this service stores a copy of the message in the MessageStore under the classification
+ 'DLQ'. An exception is thrown to stop any futher processing of the pipeline.
+ Look for:
+ Message in the DLQ should be the same message: true
+
+ src\quickstart\helloworld\test\SendJMSMessage.java:
+ Shoots in the string passed in via the command line or in this case the arg
+ attribute in the ant runtest task.
+
+ src\quickstart\helloworld\test\SendEsbMessage.java:
+ Shoots in the string passed in via the command line or in this case the arg
+ atribute in the ant sendesb task. This demonstrates how to build an "ESB
+ aware" client that can invoke an ESB service.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -18,15 +18,6 @@
</java>
</target>
- <target name="receive-destination3" depends="compile">
- <echo>Runs Test destination message receiver</echo>
- <java fork="no" classname="org.jboss.soa.esb.samples.quickstart.dynamicRouter.test.ReceiveJMSMessage" failonerror="true">
- <arg value="queue/qsdynamicrouter_3_Request"/>
- <arg value=":OK"/>
- <classpath refid="exec-classpath"/>
- </java>
- </target>
-
<target name="receive-destination1" depends="compile">
<echo>Runs Test destination 1 message receiver</echo>
<java fork="no" classname="org.jboss.soa.esb.samples.quickstart.dynamicRouter.test.ReceiveJMSMessage" failonerror="true">
@@ -45,4 +36,13 @@
</java>
</target>
+ <target name="receive-destination3" depends="compile">
+ <echo>Runs Test destination message receiver</echo>
+ <java fork="no" classname="org.jboss.soa.esb.samples.quickstart.dynamicRouter.test.ReceiveJMSMessage" failonerror="true">
+ <arg value="queue/qsdynamicrouter_3_Request"/>
+ <arg value=":OK"/>
+ <classpath refid="exec-classpath"/>
+ </java>
+ </target>
+
</project>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/deployment.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/deployment.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<jbossesb-deployment>
+ <jmsQueue>qsdynamicrouter_A</jmsQueue>
<jmsQueue>qsdynamicrouter_B</jmsQueue>
- <jmsQueue>qsdynamicrouter_C</jmsQueue>
<jmsQueue>qsdynamicrouter_Input_Request</jmsQueue>
<jmsQueue>qsdynamicrouter_Control_Request</jmsQueue>
<jmsQueue>qsdynamicrouter_1_Request</jmsQueue>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/hornetq-jms.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/hornetq-jms.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/hornetq-jms.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,11 +1,11 @@
<?xml version="1.0"?>
<configuration xmlns="urn:hornetq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
+ <queue name="qsdynamicrouter_A">
+ <entry name="queue/qsdynamicrouter_A"/>
+ </queue>
<queue name="qsdynamicrouter_B">
<entry name="queue/qsdynamicrouter_B"/>
</queue>
- <queue name="qsdynamicrouter_C">
- <entry name="queue/qsdynamicrouter_C"/>
- </queue>
<queue name="qsdynamicrouter_Input_Request">
<entry name="queue/qsdynamicrouter_Input_Request"/>
</queue>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jbm-queue-service.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jbm-queue-service.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -2,13 +2,13 @@
<server>
<mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=qsdynamicrouter_B"
+ name="jboss.esb.quickstart.destination:service=Queue,name=qsdynamicrouter_A"
xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
</mbean>
<mbean code="org.jboss.jms.server.destination.QueueService"
- name="jboss.esb.quickstart.destination:service=Queue,name=qsdynamicrouter_C"
+ name="jboss.esb.quickstart.destination:service=Queue,name=qsdynamicrouter_B"
xmbean-dd="xmdesc/Queue-xmbean.xml">
<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
</mbean>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jbmq-queue-service.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jbmq-queue-service.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -2,12 +2,12 @@
<server>
<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=qsdynamicrouter_B">
+ name="jboss.esb.quickstart.destination:service=Queue,name=qsdynamicrouter_A">
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.quickstart.destination:service=Queue,name=qsdynamicrouter_C">
+ name="jboss.esb.quickstart.destination:service=Queue,name=qsdynamicrouter_B">
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jboss-esb.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/jboss-esb.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -5,11 +5,11 @@
<jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
<jms-bus busid="dynamicrouterChannel1">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_B" />
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_A" />
</jms-bus>
<jms-bus busid="dynamicrouterChannel2">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_C" />
+ <jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_B" />
</jms-bus>
<jms-bus busid="dynamicrouterInputChannel">
@@ -20,34 +20,6 @@
<jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_Control_Request" />
</jms-bus>
- <!-- Note that only queues that are listened to (input) require jms-provider
- definitions. jms-provider definitions are only required for the following
- queues to support running the quickstart as an automated test -->
-
- <jms-bus busid="dynamicrouterOutputChannel1">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_1_Request" />
- </jms-bus>
-
- <jms-bus busid="dynamicrouterOutputChannel2">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_2_Request" />
- </jms-bus>
-
- <jms-bus busid="dynamicrouterOutputChannel3">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_3_Request" />
- </jms-bus>
-
- <jms-bus busid="dynamicrouterOutputNative1">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_1_out" />
- </jms-bus>
-
- <jms-bus busid="dynamicrouterOutputNative2">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_2_out" />
- </jms-bus>
-
- <jms-bus busid="dynamicrouterOutputNative3">
- <jms-message-filter dest-type="QUEUE" dest-name="queue/qsdynamicrouter_3_out" />
- </jms-bus>
-
</jms-provider>
</providers>
@@ -77,39 +49,6 @@
</actions>
</service>
- <!-- Note that the following services are only required to support running
- the quickstart as an automated test -->
-
- <service category="outgoingCategory1" name="outgoingService1" description="outgoing service1">
- <listeners>
- <jms-listener name="out1" busidref="dynamicrouterOutputChannel1" is-gateway="true"/>
- <jms-listener name="nativeout1" busidref="dynamicrouterOutputNative1"/>
- </listeners>
- <actions mep="OneWay">
- <action name="outaction1" class="org.jboss.soa.esb.actions.SystemPrintln" />
- </actions>
- </service>
-
- <service category="outgoingCategory2" name="outgoingService2" description="outgoing service2">
- <listeners>
- <jms-listener name="out2" busidref="dynamicrouterOutputChannel2" is-gateway="true"/>
- <jms-listener name="nativeout2" busidref="dynamicrouterOutputNative2"/>
- </listeners>
- <actions mep="OneWay">
- <action name="outaction2" class="org.jboss.soa.esb.actions.SystemPrintln" />
- </actions>
- </service>
-
- <service category="outgoingCategory3" name="outgoingService3" description="outgoing service3">
- <listeners>
- <jms-listener name="out3" busidref="dynamicrouterOutputChannel3" is-gateway="true"/>
- <jms-listener name="nativeout3" busidref="dynamicrouterOutputNative3"/>
- </listeners>
- <actions mep="OneWay">
- <action name="outaction3" class="org.jboss.soa.esb.actions.SystemPrintln" />
- </actions>
- </service>
-
</services>
</jbossesb>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/dynamic_router/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,72 +1,72 @@
-Overview:
-=========
- The purpose of the dynamic router list quickstart sample is demonstrate
- the recipient list EIP pattern (as defined here:
- http://www.enterpriseintegrationpatterns.com/DynamicRouter.html
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. In a command terminal window in this folder ("Window2"), type
- 'ant receive-destination1'.
- 3. In a command terminal window in this folder ("Window3"), type
- 'ant receive-destination2'.
- 4. In a command terminal window in this folder ("Window4"), type
- 'ant receive-destination3'.
- 5. In "Window1", type 'ant runtest'.
- 6. Switch back to the Application Server console, "Window2", "Window3" and
- "Window4" to see the output from the ESB
- 7. When finished, interrupt the receivers using Ctrl-C.
- 8. Undpeloy the esb archive, type 'ant undeploy'.
-
-Things to Consider:
-===================
- You can modify the argument defined in build.xml to control which channels
- receive the messages. A value other than ":OK" will result in a destination
- instance not receiving messages through the router. Stopping and starting the
- destination app (for example: ant receive-destination1) instance will cause
- the dynamic router rule base to be updated.
-
- The contents of the Hashtable - this is persisted in a serialized object
- written to a file in the server's bin directory - that holds the dynamic
- router's rule base is displayed on the server's stdout when it is changed.
- For example:
-
- [STDOUT] Writing Hashtable to disk
- [STDOUT] Hashtable entry: key = queue/qsdynamicrouter_1_Request, value = OK
- [STDOUT] Hashtable entry: key = queue/qsdynamicrouter_2_Request, value = not_OK
- [STDOUT] Hashtable entry: key = queue/qsdynamicrouter_3_Request, value = OK
-
- The quickstart makes use of the queues illustrated (the queues are shown
- in boxes) in the following diagram. You might review the build.xml file to
- see how it is setup. More details on the build.xml can be found later in
- this document.
-
- application initiated
- |
- |
- V
- ------------------------------- ---------------------------
- |qsdynamicrouter_Input Request| |qsdynamicrouter_1_Request| -------> destination1 -> |
- ------------------------------- --------------------------- |
- | / |
- | | |
- | | --------------------------- |
- Message Router ---------------->| |qsdynamicrouter_2_Request| ------> destination2 -> |
- ^ | --------------------------- |
- | | |
- | \ |
- Dynamic Rules Base \ --------------------------- |
- ^ |qsdynamicrouter_2_Request| ------> destination3 -> |
- | --------------------------- |
- | |
- | |
- | ------------------------------- |
- |---------------------------- |dynamicrouter_Control_Request| <--------------------|
- -------------------------------
+Overview:
+=========
+ The purpose of the dynamic router list quickstart sample is demonstrate
+ the recipient list EIP pattern (as defined here:
+ http://www.enterpriseintegrationpatterns.com/DynamicRouter.html
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. In a command terminal window in this folder ("Window2"), type
+ 'ant receive-destination1'.
+ 3. In a command terminal window in this folder ("Window3"), type
+ 'ant receive-destination2'.
+ 4. In a command terminal window in this folder ("Window4"), type
+ 'ant receive-destination3'.
+ 5. In "Window1", type 'ant runtest'.
+ 6. Switch back to the Application Server console, "Window2", "Window3" and
+ "Window4" to see the output from the ESB
+ 7. When finished, interrupt the receivers using Ctrl-C.
+ 8. Undpeloy the esb archive, type 'ant undeploy'.
+
+Things to Consider:
+===================
+ You can modify the argument defined in build.xml to control which channels
+ receive the messages. A value other than ":OK" will result in a destination
+ instance not receiving messages through the router. Stopping and starting the
+ destination app (for example: ant receive-destination1) instance will cause
+ the dynamic router rule base to be updated.
+
+ The contents of the Hashtable - this is persisted in a serialized object
+ written to a file in the server's bin directory - that holds the dynamic
+ router's rule base is displayed on the server's stdout when it is changed.
+ For example:
+
+ [STDOUT] Writing Hashtable to disk
+ [STDOUT] Hashtable entry: key = queue/qsdynamicrouter_1_Request, value = OK
+ [STDOUT] Hashtable entry: key = queue/qsdynamicrouter_2_Request, value = not_OK
+ [STDOUT] Hashtable entry: key = queue/qsdynamicrouter_3_Request, value = OK
+
+ The quickstart makes use of the queues illustrated (the queues are shown
+ in boxes) in the following diagram. You might review the build.xml file to
+ see how it is setup. More details on the build.xml can be found later in
+ this document.
+
+ application initiated
+ |
+ |
+ V
+ ------------------------------- ---------------------------
+ |qsdynamicrouter_Input Request| |qsdynamicrouter_1_Request| -------> destination1 -> |
+ ------------------------------- --------------------------- |
+ | / |
+ | | |
+ | | --------------------------- |
+ Message Router ---------------->| |qsdynamicrouter_2_Request| ------> destination2 -> |
+ ^ | --------------------------- |
+ | | |
+ | \ |
+ Dynamic Rules Base \ --------------------------- |
+ ^ |qsdynamicrouter_2_Request| ------> destination3 -> |
+ | --------------------------- |
+ | |
+ | |
+ | ------------------------------- |
+ |---------------------------- |dynamicrouter_Control_Request| <--------------------|
+ -------------------------------
Modified: labs/jbossesb/trunk/product/samples/quickstarts/exceptions_faults/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/exceptions_faults/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/exceptions_faults/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,79 +1,79 @@
-Overview:
-=========
- The purpose of the exceptions_faults quickstart example is to demonstrate
- how to handle exceptions in your action chains and service invocations.
-
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-Things to Consider:
-===================
- This quickstart illustrates the use of JMS message selectors:
- <jms-bus busid="ExceptionCaughtServiceGW">
- <jms-message-filter
- dest-type="QUEUE"
- dest-name="queue/quickstart_exceptions_faults_GW"
- selector="serviceName='ExceptionCaughtService'"
- />
-
- </jms-bus>
- <jms-bus busid="ExceptionCaughtServiceESB">
- <jms-message-filter
- dest-type="QUEUE"
- dest-name="queue/quickstart_exceptions_faults_ESB"
- selector="serviceName='ExceptionCaughtService'"
- />
- </jms-bus>
-
- Note: the matching selector for the gateway + native listener pairing.
-
- You should carefully review the jboss-esb.xml. It has two services:
- LostMessageService and ExceptionCaughtService.
- The LostMessageService is aptly named because the user did not attempt to
- "catch" exceptions in the action chain therefore they are unaware that an
- error occurred.
- Also review the build.xml, it has runtest, runtest2, callAsync, callAsync2,
- callSync and callSync2 targets. The 2's are for the ExceptionCaughtService.
- The goal is to illustrate the differences in behavior depending on if you
- are making an asynchronous (gateways are always async) or
- synchronous invocation (ServiceInvoker allows both options).
-
- 1. ant runtest/callAsync: sends in a JMS message via the JMS gateway which in turn hands
- it off to a JMS listener (esb aware/native listener). The execution of the action chain
- causes an exception:
- <action name="Bad Action" class="org.jboss.soa.esb.samples.quickstart.exceptions.MyBasicAction"
- process="causesException" >
- </action>
-
- public Message causesException(Message message) throws ActionProcessingException {
- System.out.println("About to cause an exception");
- throw new ActionProcessingException("BAD STUFF HAPPENED");
- }
- You should note that JustAnotherAction is never reached:
- <action name="Final Good Action"
- class="org.jboss.soa.esb.samples.quickstart.exceptions.JustAnotherAction"
- process="displayMessage" >
- </action>
-
- 2. Your custom buiness logic exceptions will be wrapped by an ActionProcessingException but still
- be available on the client-side when using the
- ServiceInvoker.deliverSync(String myMessage,int timeout) option.
- SendEsbMessageSync.java demostrates ths when you run "ant callSync".
-
- 3. The ExceptionCaughtService service demonstrates how the action chain is "unwound" when an
- exception is thrown downstream. In this case, JustAnotherAction & MyExceptionHandlingAction will
- both have their exceptionMethod's triggered by the "Bad Action".
-
- 4. ant callSync2: demonstrates that an exception within the action chain, that is handled
- by the service is still propagated back to the client invoker.
+Overview:
+=========
+ The purpose of the exceptions_faults quickstart example is to demonstrate
+ how to handle exceptions in your action chains and service invocations.
+
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+Things to Consider:
+===================
+ This quickstart illustrates the use of JMS message selectors:
+ <jms-bus busid="ExceptionCaughtServiceGW">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/quickstart_exceptions_faults_GW"
+ selector="serviceName='ExceptionCaughtService'"
+ />
+
+ </jms-bus>
+ <jms-bus busid="ExceptionCaughtServiceESB">
+ <jms-message-filter
+ dest-type="QUEUE"
+ dest-name="queue/quickstart_exceptions_faults_ESB"
+ selector="serviceName='ExceptionCaughtService'"
+ />
+ </jms-bus>
+
+ Note: the matching selector for the gateway + native listener pairing.
+
+ You should carefully review the jboss-esb.xml. It has two services:
+ LostMessageService and ExceptionCaughtService.
+ The LostMessageService is aptly named because the user did not attempt to
+ "catch" exceptions in the action chain therefore they are unaware that an
+ error occurred.
+ Also review the build.xml, it has runtest, runtest2, callAsync, callAsync2,
+ callSync and callSync2 targets. The 2's are for the ExceptionCaughtService.
+ The goal is to illustrate the differences in behavior depending on if you
+ are making an asynchronous (gateways are always async) or
+ synchronous invocation (ServiceInvoker allows both options).
+
+ 1. ant runtest/callAsync: sends in a JMS message via the JMS gateway which in turn hands
+ it off to a JMS listener (esb aware/native listener). The execution of the action chain
+ causes an exception:
+ <action name="Bad Action" class="org.jboss.soa.esb.samples.quickstart.exceptions.MyBasicAction"
+ process="causesException" >
+ </action>
+
+ public Message causesException(Message message) throws ActionProcessingException {
+ System.out.println("About to cause an exception");
+ throw new ActionProcessingException("BAD STUFF HAPPENED");
+ }
+ You should note that JustAnotherAction is never reached:
+ <action name="Final Good Action"
+ class="org.jboss.soa.esb.samples.quickstart.exceptions.JustAnotherAction"
+ process="displayMessage" >
+ </action>
+
+ 2. Your custom buiness logic exceptions will be wrapped by an ActionProcessingException but still
+ be available on the client-side when using the
+ ServiceInvoker.deliverSync(String myMessage,int timeout) option.
+ SendEsbMessageSync.java demostrates ths when you run "ant callSync".
+
+ 3. The ExceptionCaughtService service demonstrates how the action chain is "unwound" when an
+ exception is thrown downstream. In this case, JustAnotherAction & MyExceptionHandlingAction will
+ both have their exceptionMethod's triggered by the "Bad Action".
+
+ 4. ant callSync2: demonstrates that an exception within the action chain, that is handled
+ by the service is still propagated back to the client invoker.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/fun_cbr/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,68 +1,68 @@
-Overview:
-=========
- This example has three "teams" of order processors. All new orders that flow
- into the system can be evaluated via the XPath or Drools rule processors.
- These routing rules will determine which team receives the order for actually
- processing. In the case of the green team, the order is first transformed to a
- different format prior to routing.
-
- This quickstart also show how namepaces can be used with xpath expressions.
-
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. In a command terminal window in this folder ("Window2"), type
- 'ant receiveBlue'.
- 3. In a command terminal window in this folder ("Window3"), type
- 'ant receiveRed'.
- 4. In a command terminal window in this folder ("Window4"), type
- 'ant receiveGreen'.
- 5. In "Window1", type 'ant runtestXPath' (or 'ant runtestDrools'). See the build.xml
- and jboss-esb.xml files.
- 6. Switch back to the Application Server console, "Window2", "Window3" and
- "Window4" to see the output from the ESB
- 7. When finished, interrupt the receivers using Ctrl-C.
- 8. Undpeloy the esb archive, type 'ant undeploy'.
-
-Things to Consider:
-===================
- The routing depends on the statusCode attribute in the SampleOrder.xml file.
- It would be relatively simple to modify this example to include a service
- (listener & action combination) to introduce "scoring" rules logic that sets
- the status code of the message prior to sending it on to the CBR.
-
- Change the statusCode to select another destination
- 0 - Blue
- 1 - Red
- 2 - Green
-
- Extra Credit: Open FunCBRRules-XPath.drl and change the routes to the following:
- Blue for statusCode="1"
- Red for statusCode="0"
- Green for statusCode="2"
- Then "ant runtest" again, the rule changes are picked up on-the-fly due to the
- <property name="ruleReload" value="true"/> on the CBR Action in the jboss-esb.xml
-
- Extra Credit 2: Open jboss-esb.xml and find the GreenService
- replace "<!-- Inject the transformer actions here -->"
- with:
- <action name="transform" class="org.jboss.soa.esb.actions.converters.SmooksTransformer">
- <property name="resource-config" value="/smooks-res.xml" />
- </action>
-
- <action name="convertPOJO2Message" class="org.jboss.soa.esb.dvdstore.DVDStoreAction" />
- <!-- this will send everything to the console -->
- <action name="dump" class="org.jboss.soa.esb.actions.SystemPrintln">
- <property name="printfull" value="true"/>
- </action>
-
- Then "ant runtest". The jboss-esb.xml changes will be picked up automatically assuming
- you are running with "bootstrapper" via "ant run". If you are running as a .esb archive
- then you'll need to edit the jboss-esb.xml in the deploy folder of your ESB Server or your
- Application Server.
+Overview:
+=========
+ This example has three "teams" of order processors. All new orders that flow
+ into the system can be evaluated via the XPath or Drools rule processors.
+ These routing rules will determine which team receives the order for actually
+ processing. In the case of the green team, the order is first transformed to a
+ different format prior to routing.
+
+ This quickstart also show how namepaces can be used with xpath expressions.
+
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. In a command terminal window in this folder ("Window2"), type
+ 'ant receiveBlue'.
+ 3. In a command terminal window in this folder ("Window3"), type
+ 'ant receiveRed'.
+ 4. In a command terminal window in this folder ("Window4"), type
+ 'ant receiveGreen'.
+ 5. In "Window1", type 'ant runtestXPath' (or 'ant runtestDrools'). See the build.xml
+ and jboss-esb.xml files.
+ 6. Switch back to the Application Server console, "Window2", "Window3" and
+ "Window4" to see the output from the ESB
+ 7. When finished, interrupt the receivers using Ctrl-C.
+ 8. Undpeloy the esb archive, type 'ant undeploy'.
+
+Things to Consider:
+===================
+ The routing depends on the statusCode attribute in the SampleOrder.xml file.
+ It would be relatively simple to modify this example to include a service
+ (listener & action combination) to introduce "scoring" rules logic that sets
+ the status code of the message prior to sending it on to the CBR.
+
+ Change the statusCode to select another destination
+ 0 - Blue
+ 1 - Red
+ 2 - Green
+
+ Extra Credit: Open FunCBRRules-XPath.drl and change the routes to the following:
+ Blue for statusCode="1"
+ Red for statusCode="0"
+ Green for statusCode="2"
+ Then "ant runtest" again, the rule changes are picked up on-the-fly due to the
+ <property name="ruleReload" value="true"/> on the CBR Action in the jboss-esb.xml
+
+ Extra Credit 2: Open jboss-esb.xml and find the GreenService
+ replace "<!-- Inject the transformer actions here -->"
+ with:
+ <action name="transform" class="org.jboss.soa.esb.actions.converters.SmooksTransformer">
+ <property name="resource-config" value="/smooks-res.xml" />
+ </action>
+
+ <action name="convertPOJO2Message" class="org.jboss.soa.esb.dvdstore.DVDStoreAction" />
+ <!-- this will send everything to the console -->
+ <action name="dump" class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull" value="true"/>
+ </action>
+
+ Then "ant runtest". The jboss-esb.xml changes will be picked up automatically assuming
+ you are running with "bootstrapper" via "ant run". If you are running as a .esb archive
+ then you'll need to edit the jboss-esb.xml in the deploy folder of your ESB Server or your
+ Application Server.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/groovy_gateway/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/groovy_gateway/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/groovy_gateway/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,33 +1,33 @@
-Overview:
-=========
- The purpose of the groovy_gateway quickstart example is to demonstrate
- a service that has its message fed to it via a GUI console. This example
- includes a simple Groovy-based console that is automatically invoked when
- the example executes. You can then send in messages sync or asych.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Switch back to Application Server console to see the output from the ESB
- 3. The Message Injection Console will pop up automatically, enter some text and hit Send.
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-Things to Consider:
-===================
- This is a fairly standard jboss-esb.xml with fairly basic Action classes. The
- trick is this line in jboss-esb.xml
- <groovy-listener name="groovy-client" script="/scripts/MessageInjectionConsole.groovy" is-gateway="true" />
- Note: the MessageInjectionConsole.groovy will likely move to an "internal" JBoss ESB jar and out of
- this particular project.
- The Groovy listener will execute any Groovy script upon service boot up. It is expected into inject a message
- into the action pipeline.
-
- This example is a nice tool for you to use to be able to interactive test your action chains.
-
- Note: if you accidently close the Message Injection Console window, you might need to restart the component,
+Overview:
+=========
+ The purpose of the groovy_gateway quickstart example is to demonstrate
+ a service that has its message fed to it via a GUI console. This example
+ includes a simple Groovy-based console that is automatically invoked when
+ the example executes. You can then send in messages sync or asych.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Switch back to Application Server console to see the output from the ESB
+ 3. The Message Injection Console will pop up automatically, enter some text and hit Send.
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+Things to Consider:
+===================
+ This is a fairly standard jboss-esb.xml with fairly basic Action classes. The
+ trick is this line in jboss-esb.xml
+ <groovy-listener name="groovy-client" script="/scripts/MessageInjectionConsole.groovy" is-gateway="true" />
+ Note: the MessageInjectionConsole.groovy will likely move to an "internal" JBoss ESB jar and out of
+ this particular project.
+ The Groovy listener will execute any Groovy script upon service boot up. It is expected into inject a message
+ into the action pipeline.
+
+ This example is a nice tool for you to use to be able to interactive test your action chains.
+
+ Note: if you accidently close the Message Injection Console window, you might need to restart the component,
not the entire ESB, just the .esb.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/helloworld/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,18 +1,18 @@
-Overview:
-=========
- The purpose of the helloworld quickstart sample is to prove that the ESB is
- is properly configured and happy. As well as to demonstrate the needed
- minimal files to make a basic ESB component execute.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
+Overview:
+=========
+ The purpose of the helloworld quickstart sample is to prove that the ESB is
+ is properly configured and happy. As well as to demonstrate the needed
+ minimal files to make a basic ESB component execute.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_action/oracle-aq/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_action/oracle-aq/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_action/oracle-aq/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,43 +1,43 @@
-To run with Oracle AQ as your JMS provider you will need to follow the following steps:
-
-1. Using the Oracle Enterprise Manager Console create 3 queues named:
- ACTION_REQUEST, B and HELLO_WORLD_ACTION, make sure to set
- the payload type to Object: SYS, AQ$_JMS_MESSAGE.
-
-2. Edit the jboss-esb.xml file to reflect your database connection settings
-
-3. Copy the jndi.properties and the jboss-esb.xml in the helloworld_action directory.
-
-4. Follow the instructions in the readme.txt within lib/ext/jms/oracleaq and place the following jars in the
- helloworld_action/lib directory
-
- asm.jar
- cglib-2.1_2jboss.jar
- mockejb.jar
- org.jboss.soa.esb.oracle.aq.<version>.jar
-
- and obtain the following jars from your Oracle DB install:
-
- aqapi13.jar (from oracle)
- ojdbc14.jar (from oracle)
-
-
-Note that
-
-1. Oracle AQ is using a database connection as it's JMS connection.
-2. Oracle AQ does not have a JNDI provider and it is common to register
- Queues in an LDAP. Here we chose to register the Queues to MockContext
- which is why you need the mockejb.jar, as well as the asm and cglib jars
- that it depends on. The org.jboss.soa.esb.oracle.aq.<version>.MR2.jar plugin
- does the actual work of registering. Registering to JNP proved not
- possible because of code in the Oracle API to support option 1, the LDAP
- registration.
-
-
-The following can be used to create the queue table, create the queue, and enable the queue:
-
-exec dbms_aqadm.CREATE_queue_table(queue_table => 'myqueue_table_name', multiple_consumers => FALSE, queue_payload_type => 'SYS.AQ$_JMS_MESSAGE');
-
-exec dbms_aqadm.CREATE_queue(queue_name => 'myqueue_name', queue_table => 'myqueue_table_name');
-
+To run with Oracle AQ as your JMS provider you will need to follow the following steps:
+
+1. Using the Oracle Enterprise Manager Console create 3 queues named:
+ ACTION_REQUEST, B and HELLO_WORLD_ACTION, make sure to set
+ the payload type to Object: SYS, AQ$_JMS_MESSAGE.
+
+2. Edit the jboss-esb.xml file to reflect your database connection settings
+
+3. Copy the jndi.properties and the jboss-esb.xml in the helloworld_action directory.
+
+4. Follow the instructions in the readme.txt within lib/ext/jms/oracleaq and place the following jars in the
+ helloworld_action/lib directory
+
+ asm.jar
+ cglib-2.1_2jboss.jar
+ mockejb.jar
+ org.jboss.soa.esb.oracle.aq.<version>.jar
+
+ and obtain the following jars from your Oracle DB install:
+
+ aqapi13.jar (from oracle)
+ ojdbc14.jar (from oracle)
+
+
+Note that
+
+1. Oracle AQ is using a database connection as it's JMS connection.
+2. Oracle AQ does not have a JNDI provider and it is common to register
+ Queues in an LDAP. Here we chose to register the Queues to MockContext
+ which is why you need the mockejb.jar, as well as the asm and cglib jars
+ that it depends on. The org.jboss.soa.esb.oracle.aq.<version>.MR2.jar plugin
+ does the actual work of registering. Registering to JNP proved not
+ possible because of code in the Oracle API to support option 1, the LDAP
+ registration.
+
+
+The following can be used to create the queue table, create the queue, and enable the queue:
+
+exec dbms_aqadm.CREATE_queue_table(queue_table => 'myqueue_table_name', multiple_consumers => FALSE, queue_payload_type => 'SYS.AQ$_JMS_MESSAGE');
+
+exec dbms_aqadm.CREATE_queue(queue_name => 'myqueue_name', queue_table => 'myqueue_table_name');
+
exec dbms_aqadm.start_queue( queue_name =>'myqueue_name' ,enqueue => true ,dequeue => true );
\ No newline at end of file
Modified: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_action/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_action/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_action/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,58 +1,58 @@
-Overview:
-=========
- The purpose of the helloworld_action quickstart sample is to show the use of
- multiple action invocations from a single configuration. You can use
- a single Action class and make multiple method calls or use multiple Action
- classes.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-Project file descriptions:
-==========================
- Review the helloworld quickstart as the majority of this is similiar to
- that example
-
- MyJMSListenerAction.java:
- Has methods to display the inbound message, modify the message and to handle
- any exceptions which might be thrown in the action processing.
-
- jboss-esb.xml:
- Includes a special action (from JBoss ESB core) that is used
- to send a message out of the ESB back to the non-"ESB aware" world. The
- gateway looks for inbound messages on "quickstart_helloworld_action_Request"
- which was configured by the "esb-quickstart-service.xml" file.
-
- The notifier sends the modified message to
- "quickstart_helloworld_action_Response":
-
- <action name="notificationAction" class="org.jboss.soa.esb.actions.Notifier">
- <property name="okMethod" value="notifyOK" />
- <property name="notification-details">
- <NotificationList type="OK">
- <target class="NotifyConsole" />
- <target class="NotifyQueues">
- <queue jndiName="queue/quickstart_helloworld_action_Response">
- <messageProp name="quickstart" value="hello_world_action" />
- </queue>
- </target>
- </NotificationList>
- </property>
- </action>
-
- An ESB action class must have a constructor that accepts a ConfigTree argument
- like the following:
- public MyJMSListenerAction(ConfigTree config) { _config = config; }
-
- A ConfigTree is an object holding any attributes associated with the action
- declaration in the jbossesb.xml
+Overview:
+=========
+ The purpose of the helloworld_action quickstart sample is to show the use of
+ multiple action invocations from a single configuration. You can use
+ a single Action class and make multiple method calls or use multiple Action
+ classes.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+Project file descriptions:
+==========================
+ Review the helloworld quickstart as the majority of this is similiar to
+ that example
+
+ MyJMSListenerAction.java:
+ Has methods to display the inbound message, modify the message and to handle
+ any exceptions which might be thrown in the action processing.
+
+ jboss-esb.xml:
+ Includes a special action (from JBoss ESB core) that is used
+ to send a message out of the ESB back to the non-"ESB aware" world. The
+ gateway looks for inbound messages on "quickstart_helloworld_action_Request"
+ which was configured by the "esb-quickstart-service.xml" file.
+
+ The notifier sends the modified message to
+ "quickstart_helloworld_action_Response":
+
+ <action name="notificationAction" class="org.jboss.soa.esb.actions.Notifier">
+ <property name="okMethod" value="notifyOK" />
+ <property name="notification-details">
+ <NotificationList type="OK">
+ <target class="NotifyConsole" />
+ <target class="NotifyQueues">
+ <queue jndiName="queue/quickstart_helloworld_action_Response">
+ <messageProp name="quickstart" value="hello_world_action" />
+ </queue>
+ </target>
+ </NotificationList>
+ </property>
+ </action>
+
+ An ESB action class must have a constructor that accepts a ConfigTree argument
+ like the following:
+ public MyJMSListenerAction(ConfigTree config) { _config = config; }
+
+ A ConfigTree is an object holding any attributes associated with the action
+ declaration in the jbossesb.xml
Modified: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_action/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_action/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_action/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,45 +1,45 @@
-Overview:
-=========
- This is a basic example of using the File gateway feature of the JBoss ESB.
- Files that are found in a particular directory with a particular extension
- are sent to a JMS queue with actions for processing.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
- This example demonstrates the use of a file gateway that by default loads the
- file and pushes into a JMS message queue. What follows is a more detailed
- discussion on the file gateway:
-
- * directory - the directory to be monitored for input file messages
- * input-suffix - the file extension to be monitored, other files will be
- ignored
- * work-suffix - the file extension that is used while the file is "in process"
- by the ESB. The file is considered to be "in process" while the gateway is
- passing it into the ESB listener/service (in this case JMS queue).
- * post-delete - "true" or "false". The file can be removed once has been
- successfully processed.
- * post-directory - The place where the "processed" file ends up assuming no
- errors and assuming post-delete="false"
- * post-suffix - The file extension that is used to mark the file as
- "completed".
- * error-delete - "true" or "false". If there is an internal error and the file
- fails to be loaded by the ESB, delete it.
- * error-directory - The place to drop any file that fails to be
- uploaded/processed.
- * error-suffix - The file extension that is used to mark a file has had an
- internal error.
- Note: Error processing in this case means the file failed to pass through
- the gateway and into the waiting queue.
+Overview:
+=========
+ This is a basic example of using the File gateway feature of the JBoss ESB.
+ Files that are found in a particular directory with a particular extension
+ are sent to a JMS queue with actions for processing.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+ This example demonstrates the use of a file gateway that by default loads the
+ file and pushes into a JMS message queue. What follows is a more detailed
+ discussion on the file gateway:
+
+ * directory - the directory to be monitored for input file messages
+ * input-suffix - the file extension to be monitored, other files will be
+ ignored
+ * work-suffix - the file extension that is used while the file is "in process"
+ by the ESB. The file is considered to be "in process" while the gateway is
+ passing it into the ESB listener/service (in this case JMS queue).
+ * post-delete - "true" or "false". The file can be removed once has been
+ successfully processed.
+ * post-directory - The place where the "processed" file ends up assuming no
+ errors and assuming post-delete="false"
+ * post-suffix - The file extension that is used to mark the file as
+ "completed".
+ * error-delete - "true" or "false". If there is an internal error and the file
+ fails to be loaded by the ESB, delete it.
+ * error-directory - The place to drop any file that fails to be
+ uploaded/processed.
+ * error-suffix - The file extension that is used to mark a file has had an
+ internal error.
+ Note: Error processing in this case means the file failed to pass through
+ the gateway and into the waiting queue.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_notifier/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_notifier/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_notifier/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -21,6 +21,11 @@
</copy>
</target>
+ <target name="quickstart-specific-clean">
+ <delete file="${basedir}/results.log"/>
+ <delete file="${basedir}/jboss-esb.xml"/>
+ </target>
+
<target name="runtest" depends="compile"
description="sends a JMS message to queue/quickstart_helloworld_file_notifier_Request_gw">
<echo>Runs Test JMS Sender</echo>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_notifier/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_notifier/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_file_notifier/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,19 +1,19 @@
-Overview:
-=========
- The purpose of the helloworld file notifier quickstart sample is to
- show how to save messages to the filesystem. This QuickStart splits
- a message off with a StaticRouter and both displays it in the console
- and saves it into this directory in a results.log file.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
+Overview:
+=========
+ The purpose of the helloworld file notifier quickstart sample is to
+ show how to save messages to the filesystem. This QuickStart splits
+ a message off with a StaticRouter and both displays it in the console
+ and saves it into this directory in a results.log file.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_topic_notifier/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_topic_notifier/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_topic_notifier/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -23,6 +23,11 @@
</filterset>
</copy>
</target>
+
+ <target name="quickstart-specific-clean">
+ <delete file="${basedir}/results.log"/>
+ <delete file="${basedir}/jboss-esb.xml"/>
+ </target>
<target name="runtest" depends="compile"
description="sends a JMS message to queue/quickstart_helloworld_topic_notifier_Request_gw">
Modified: labs/jbossesb/trunk/product/samples/quickstarts/helloworld_topic_notifier/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/helloworld_topic_notifier/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/helloworld_topic_notifier/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,25 +1,25 @@
-Overview:
-=========
- The purpose of the helloworld topic notifier quickstart sample is to
- show how to use the Notifier to pass messages to a topic. This QuickStart
- sends a message to a queue and the Notifier will pass it to the topic using
- NotifyTopics. A small utility is included that listens to the topic.
-
- If you wish to view the messages sent to the jmx-console, attach a durable
- subscriber by using the "ant receive-durable" target, and then find the
- subscription id by invoking the "listAllSubscriptionAsHTML()" method.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed description of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant receive'.
- 3. Open another command terminal window in this folder ("Window3"), type
- 'ant runtest'.
- 4. Switch back to Application Server console to see the output from the ESB
- 5. In this folder ("Window1"), type 'ant undeploy'.
+Overview:
+=========
+ The purpose of the helloworld topic notifier quickstart sample is to
+ show how to use the Notifier to pass messages to a topic. This QuickStart
+ sends a message to a queue and the Notifier will pass it to the topic using
+ NotifyTopics. A small utility is included that listens to the topic.
+
+ If you wish to view the messages sent to the jmx-console, attach a durable
+ subscriber by using the "ant receive-durable" target, and then find the
+ subscription id by invoking the "listAllSubscriptionAsHTML()" method.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed description of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant receive'.
+ 3. Open another command terminal window in this folder ("Window3"), type
+ 'ant runtest'.
+ 4. Switch back to Application Server console to see the output from the ESB
+ 5. In this folder ("Window1"), type 'ant undeploy'.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/http_gateway/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/http_gateway/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/http_gateway/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,40 +1,40 @@
-Overview:
-=========
- The purpose of the http_gateway quickstart sample is to demonstarte how to
- configue a http gateway to pass the http request into ESB service.
-
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run '.esb' archive mode:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open the web brower and send http requests to the following addresses. Be sure to
- check the Server console after executing each request:
- a) http://localhost:8080/Quickstart_http_gateway/http/sales/a/b/c - Will be routed to the Sales:List
- service. Will return some details about the request. This Service's <http-gateway> references a
- "secureFriends" bus, which contains login configurations. The login username is "kermit" and the
- password is "thefrog". It usee the "java:/jaas/JBossWS" security domain, which is already installed
- in your JBoss ESB/App Server.
- b) http://localhost:8080/Quickstart_http_gateway/http/index/XXXX/yyy?a=1,b=2 - Will be routed to the Index:List
- service. Will return some details about the request. This Service's <http-listener> does not refer
- to any bus and so simply uses the "default" http bus.
- c) http://localhost:8080/Quickstart_http_gateway/http/Exceptions/Exception1 - Will be routed to the
- Exceptions:Exception1 service. This service throws a "MyActionException", resulting in a
- 502 (Bad Gateway) status being returned in accordance with the Exception to HTTP status code
- mappings defined globally on the <http-provider>.
- d) http://localhost:8080/Quickstart_http_gateway/http/Exceptions/Exception2 - Will be routed to the
- Exceptions:Exception2 service. This service also throws a "MyActionException", but the <http-gateway>
- on this service overrides the globally defined Exception to HTTP status code mappings defined globally
- on the <http-provider> to return a 503 (Service Unavailable) status for the "MyActionException" exception.
- e) http://localhost:8080/Quickstart_http_gateway/http/Async/List - Will be routed to the
- Async:List service, which responds asynchronously with a 202 (Accepted) response code and a static
- payload of this readme.txt.
- f) http://localhost:8080/Quickstart_http_gateway/http/soap/ - Will be routed to the
- Soap:List service, which requires message level seurity. An 401 error will occur. Now
- switch to the command line and run "ant runtest". This POSTs a SOAP message, with login credentials
- to the gateway. The service should respond successfully this time!!
- 3. In this folder ("Window1"), type 'ant undeploy'.
+Overview:
+=========
+ The purpose of the http_gateway quickstart sample is to demonstarte how to
+ configue a http gateway to pass the http request into ESB service.
+
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run '.esb' archive mode:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open the web brower and send http requests to the following addresses. Be sure to
+ check the Server console after executing each request:
+ a) http://localhost:8080/Quickstart_http_gateway/http/sales/a/b/c - Will be routed to the Sales:List
+ service. Will return some details about the request. This Service's <http-gateway> references a
+ "secureFriends" bus, which contains login configurations. The login username is "kermit" and the
+ password is "thefrog". It usee the "java:/jaas/JBossWS" security domain, which is already installed
+ in your JBoss ESB/App Server.
+ b) http://localhost:8080/Quickstart_http_gateway/http/index/XXXX/yyy?a=1,b=2 - Will be routed to the Index:List
+ service. Will return some details about the request. This Service's <http-listener> does not refer
+ to any bus and so simply uses the "default" http bus.
+ c) http://localhost:8080/Quickstart_http_gateway/http/Exceptions/Exception1 - Will be routed to the
+ Exceptions:Exception1 service. This service throws a "MyActionException", resulting in a
+ 502 (Bad Gateway) status being returned in accordance with the Exception to HTTP status code
+ mappings defined globally on the <http-provider>.
+ d) http://localhost:8080/Quickstart_http_gateway/http/Exceptions/Exception2 - Will be routed to the
+ Exceptions:Exception2 service. This service also throws a "MyActionException", but the <http-gateway>
+ on this service overrides the globally defined Exception to HTTP status code mappings defined globally
+ on the <http-provider> to return a 503 (Service Unavailable) status for the "MyActionException" exception.
+ e) http://localhost:8080/Quickstart_http_gateway/http/Async/List - Will be routed to the
+ Async:List service, which responds asynchronously with a 202 (Accepted) response code and a static
+ payload of this readme.txt.
+ f) http://localhost:8080/Quickstart_http_gateway/http/soap/ - Will be routed to the
+ Soap:List service, which requires message level seurity. An 401 error will occur. Now
+ switch to the command line and run "ant runtest". This POSTs a SOAP message, with login credentials
+ to the gateway. The service should respond successfully this time!!
+ 3. In this folder ("Window1"), type 'ant undeploy'.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/https_2way_ssl/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/https_2way_ssl/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/https_2way_ssl/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,30 +1,30 @@
-Overview:
-=========
- This quickstart demonstrates how to:
- 1. Configure a HTTPS Endpoint.
- 2. Configure the HttpRouter for performing HTTPS invocations on ESB Unaware
- Endpoints.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
- On running the 'ant runtest' command (step #2 above), the Ant script executes
- the SendJMSMessage class, which sends a JMS message into the "RuntestClientService"
- Service gateway (busidref="runtestGateway"). This Service takes the message payload
- and, using the HttpRouter, makes a synchronous HTTPS invocation on the "MyHTTPSService"
- Service gateway (busidref="https_2way"), which simply replies with the HTTP data
- from the request.
-
+Overview:
+=========
+ This quickstart demonstrates how to:
+ 1. Configure a HTTPS Endpoint.
+ 2. Configure the HttpRouter for performing HTTPS invocations on ESB Unaware
+ Endpoints.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+ On running the 'ant runtest' command (step #2 above), the Ant script executes
+ the SendJMSMessage class, which sends a JMS message into the "RuntestClientService"
+ Service gateway (busidref="runtestGateway"). This Service takes the message payload
+ and, using the HttpRouter, makes a synchronous HTTPS invocation on the "MyHTTPSService"
+ Service gateway (busidref="https_2way"), which simply replies with the HTTP data
+ from the request.
+
All security artifacts are generated and deployed by the build.xml script.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/huge-split-enrich-transform-route/README.html
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/huge-split-enrich-transform-route/README.html 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/huge-split-enrich-transform-route/README.html 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,705 +1,705 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
- <title>JBossESB Quickstart - "Huge Split, Enrich, Transform and Route"</title>
- <style type="text/css">
- body {
- font-family: helvetica
- }
- pre {
- margin-left: 20px;
- background-color: lavender;
- }
- .rhighlight {
- color: red;
- }
- div.indent {
- margin-left: 20px;
- }
- h4 {
- font-style: italic;
- }
- .commentedcode {
- font-size: smaller; color: slategray;
- }
- </style>
-</head>
-<body>
-
-<img src="http://jboss.com/themes/jbosstheme/img/logo.gif"/><br/>
-<h2>JBossESB Quickstart - "Huge Split, Enrich, Transform and Route"</h2>
-<div class="indent">
-
- This Quickstart demonstrates how JBossESB can be used to:
-
- <ol>
- <li>split,</li>
- <li>enrich,</li>
- <li>transform, and</li>
- <li>route</li>
- </ol>
-
- messages of any size, including huge messages i.e. GB size messages.
- <p/>
- <b>Table of Contents:</b>
- <div class="indent">
- <a href="#overview">Overview</a><br/>
- <a href="#main-points">Main Points of Note</a><br/>
- <a href="#illustration">Illustration</a><br/>
- <a href="#running">Running the Quickstart</a><br/>
- <a href="#flash-demo">Flash Demonstration</a><br/>
- <a href="#how-it-works">How it Works</a><br/>
- <div class="indent">
- <a href="#high-level">High Level</a><br/>
- <a href="#splitting-routing">Splitting & Routing Details</a>
- </div>
- </div>
-
- <h3 id="overview">Overview</h3>
-
- Messages can often be received containing data of interest to multiple parties. Extracting and distributing this data
- is a non trivial process. Firstly you have the challenge of physically extracting the message data from the source message.
- Then you need to reassemble the extracted data in a format consumable by each of these parties. Each party may have different
- requirements (different formats etc) and it's the natural responsibility of the ESB to take care of these differing integration
- requirements. Things can get even more complex if the source message does not contain all the information required by the
- interested parties.
- <p/>
- JBossESB features tools that support solving these issues in a declaritive manner i.e. typically, there's no need to write reams of code.
- The ability to parse, split transform and route message fragments is very powerful. These capabilities are also key to solving another
- message processing related usecase encountered in the Enterprise i.e. that of <b>processing huge messages (GBs)</b>. JBossESB's abilty to perform
- complex splitting operations on messages of different formats provides one solution to processing huge messages.
- <p/>
- This quickstart demonstrates these capabilities and walks you through the components involved. The Quickstart is based on
- a usecase where JBossESB is used to process Order messages (EDI format) from the local file system.
- Each Order message contains order header information (orderId, date, customer userId etc), as well as a list of order items
- (productId, quantity etc). JBossESB is used to:
- <ol>
- <li>Split out and route order items whose "price" is less than "17.00" to the "02_Low_Price" Service. The "02_Low_Price"
- Service expects the order item data to:
- <ol type="a">
- <li>be in <b>XML format</b>,</li>
- <li>contain order header data, as well as the order item data, and</li>
- <li>contain additional customer and product data not provided in the source EDI message.</li>
- </ol>
- </li>
- <li>Split out and route order items whose "price" is greater than "190.00" to the "03_High_Price" Service. The "03_High_Price"
- Service expects the order item data to:
- <ol type="a">
- <li>be in a populated <b>Java Object model</b>,</li>
- <li>contain order header data, as well as the order item data, and</li>
- <li>contain additional customer and product data not provided in the source EDI message.</li>
- </ol>
- </li>
- <li>Split out and route order items whose "category" is "REPTILES" to the "04_Reptiles_notify_webservice_proxy" Service. The "04_Reptiles_notify_webservice_proxy"
- Service expects the order item data to:
- <ol type="a">
- <li>be in <b>SOAP format</b> complying with the ReptilesNotifyWS interface (to which the 04_Reptiles_notify_webservice_proxy
- routes the SOAP message using the HttpRouter),</li>
- <li>contain order header data, as well as the order item data, and</li>
- <li>contain additional customer and product data not provided in the source EDI message.</li>
- </ol>
- </li>
- <li>Split out and route all order items to the <b>"Orders" table in the database</b> ("05_Database").</li>
- </ol>
- <p/>
- See the <a href="http://milyn.codehaus.org/jbossesb/huge-split-route-qs/flash/huge-splitting-routing.html">Flash Demonstration of this Quickstart</a>.
-
- <h3 id="main-points">Main Points of Note</h3>
- The main points of note are:
- <ul>
- <li>The split messages don't just contain data from the order item in question, they also contain data
- from the message header (orderId, date etc). This means the split is <b>not just a dumb fragment extraction</b>.
- Data from different fragments (header and order item) needs to be merged together into the new messages.</li>
- <li>The routed messages need to be "<b>Enriched</b>" with additional customer and product data from the database.</li>
- <li>The routed messages are in <b>different formats</b> - XML, Java, SOAP, JDBC.</li>
- <li>Each order item may be sent to <b>multiple parties concurrently</b>.</li>
- <li>Each order item is routed based on content (<b>Content Based Routing</b>).</li>
- </ul>
-
- <h3 id="illustration">Illustration</h3>
- The Quickstart can be illustrated as follows:
- <p/>
- <a href="docs/Overview.png"><img src="docs/Overview.png" width="40%" height="40%" alt="Click to Enlarge..."/></a>
- <p/>
- See the <a href="http://milyn.codehaus.org/jbossesb/huge-split-route-qs/flash/huge-splitting-routing.html">Flash Demonstration of this Quickstart</a>.
-
- <h3 id="running">Running the Quickstart</h3>
- <ol>
- <li>Open 6 command shell windows in the root folder of this quickstart.</li>
- <li>In one of the command shell windows, start your JBoss ESB/Application Server instance.</li>
- <li>In one of the command shell windows, type "ant deploy-jms-dests" to deploy the JMS Queues.</li>
- <li>In one of the command shell windows, type "ant start-hsqldb-server".</li>
- <li>In the remaining command shell windows, type the following commands in seperate windows:
- <ul>
- <li>"ant 01_split_enrich_transform_route"</li>
- <li>"ant 02_Low_Price"</li>
- <li>"ant 03_High_Price"</li>
- <li>"ant 04_Reptiles_notify_webservice" (this just builds and deploys the Webservice)</li>
- </ul>
- </li>
- <li>In the 6th command shell window, type "ant createMessage" to execute the message creation
- script. This script will generate an EDI message in the Service input folder.</li>
- </ol>
- <p/>
- See the <a href="http://milyn.codehaus.org/jbossesb/huge-split-route-qs/flash/huge-splitting-routing.html">Flash Demonstration of this Quickstart</a>.
-
- <h3 id="flash-demo">Flash Demonstration</h3>
- See the <a href="http://milyn.codehaus.org/jbossesb/huge-split-route-qs/flash/huge-splitting-routing.html">Flash Demonstration of this Quickstart</a>.
-
- <h3 id="how-it-works">How it Works</h3>
- The main ESB components used in this quickstart (and how they depend on each other) are as follows:
- <ul>
- <li>FileGateway
- <ul>
- <li>FileStreamSplitter
- <ul>
- <li>Smooks
- <ul>
- <li>EdiParser</li>
- <li>FreeMarker</li>
- <li>FragmentRouter
- <ul>ServiceInvoker</ul>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- <li>HttpRouter</li>
- </ul>
-
- <div class="indent">
- <h4 id="high-level">High Level</h4>
- As can be seen from the <a href="#illustration">illustration above</a>, this quickstart revolves around the
- "01_split_enrich_transform_route" Service deployment. This .esb deployment defines the "SplitterService"
- and "04_Reptiles_notify_webservice_proxy" Services as follows:
-
- <p/>
- <pre>
-<service category="HugeQS" name="SplitterService" description="Splits out the order items and routes them.">
- <listeners>
- <span class="rhighlight"><fs-listener name="FileGateway" busidref="ediFileMessageBus" is-gateway="true" poll-frequency-seconds="2">
- <property name="composer-class" value="org.jboss.soa.esb.smooks.splitting.FileStreamSplitter"/>
- <property name="splitterConfig" value="/smooks_configs/main.xml"/>
- <!-- property name="reportPath" value="/zap/report.html"/ -->
- </fs-listener></span>
- </listeners>
- <actions mep="OneWay">
- <action name="print" class="org.jboss.soa.esb.example.PrintMessage">
- <property name="delay" value="500" />
- </action>
- </actions>
-</service>
-
-<service category="HugeQS" name="04_Reptiles_notify_webservice_proxy" description="Routes the SOAP requests to the 'Reptiles Notification' Webservice">
- <actions mep="OneWay">
- <action name="httprouter" class="org.jboss.soa.esb.actions.routing.http.HttpRouter">
- <property name="endpointUrl" value="http://127.0.0.1:8080/Quickstart_Huge_Enrich_Split_Transform_Route/ReptilesNotifyWS" />
- <property name="method" value="POST" />
- <property name="responseType" value="STRING" />
- </action>
- </actions>
-</service></pre>
- <p/>
-
- The "SplitterService" is of most interest since this is the Service that performs the Splitting & Routing of the Order Items contained in the
- source EDI Order message. The FileGateway is configured with the <code>FileStreamSplitter</code>, which is a specialised MessageComposer implementation.
- The <code>FileStreamSplitter</code> uses <a href="http://milyn.codehaus.org">Smooks</a> to perform the Splitting & Routing of the Order Items.
- <a href="#splitting-routing">We will look at this in more detail later</a>.
- <p/>
- The "04_Reptiles_notify_webservice_proxy" Service is also interesting. It acts as a Webservice proxy service to the "ReptilesNotifyWS" Webservice (<a href="#illustration">see illustration</a>),
- using the <code>HttpRouter</code> to route SOAP payloads received from "SplitterService".
- <p/>
- The "SplitterService" Service also routes split Order Item messages to a number of other Services based on content (Content Based Routing). The "02_Low_Price" and "03_High_Price"
- Services are very simple and effectively the same. The only difference is that the "02_Low_Price" Service receives low priced Order Items as XML, while the
- "03_High_Price" Service receives high priced Order Items as Java Objects. The configuration of the "02_Low_Price" Service is as follows:
-
- <p/>
- <pre>
-<service category="HugeQS" name="02_Low_Price" description="02_Low_Price Service">
- <listeners>
- <jms-listener name="XMLjms" busidref="02XMLBus" />
- </listeners>
- <actions mep="OneWay">
- <action name="print" class="org.jboss.soa.esb.example.PrintMessage" />
- </actions>
-</service></pre>
- <p/>
-
- As can be seen, this Service (and the "03_High_Price" Service) is very simple. It just prints the ESB Message payload to the console.
- <p/>
- The "SplitterService" Service also routes split Order Item messages to the Database. <a href="#splitting-routing">We will look at this in more detail later</a>.
- <p/>
- In all cases where the "SplitterService" Service routes split Order Item messages, the messages are enriched with additional Customer and Product data, which
- it gets from the Database.
-
- <h4 id="splitting-routing">Splitting & Routing Details</h4>
- The incomming EDI messages are in the following format:
-<pre>
-HDR*1213529618453*0*Wed Nov 15 13:45:28 EST 2006
-CUS*ACID
-ORD*0*4*AV-CB-01
-ORD*1*5*FL-DLH-02
-ORD*2*5*AV-CB-01
-... <i>(more ORD segments, 1 per Order Item)</i>...</pre>
- The top level <a href="http://milyn.codehaus.org/Smooks">Smooks</a> configuration for Splitting & Routing this message is:
-<pre>
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
- xmlns:edi="http://www.milyn.org/xsd/smooks/edi-1.1.xsd">
-
- <!--
- Filter the message using the SAX Filter (i.e. not DOM, so no
- intermediate DOM, so we can process huge messages...
- -->
- <params>
- <param name="stream.filter.type">SAX</param>
- </params>
-
- <!-- Configure the reader for the EDI message... -->
- <edi:reader mappingModel="<a href="#edi-parsing">/smooks_configs/parse/edi-to-xml-order-mapping.xml</a>" />
-
- <!-- Import datasource configs... -->
- <import file="<a href="#datasources">database/datasources.xml</a>" />
-
- <!-- Import reference/enrichment data configs - products, accounts etc... -->
- <import file="<a href="#refdata">database/ref-data.xml</a>" />
-
- <!-- Import config for binding order and order-item data into memory... -->
- <import file="<a href="#bindings">bindings.xml</a>" />
-
- <!-- Import config for routing order item XML to the "02_Low_Price" Service... -->
- <import file="<a href="#routing-02_Low_Price">routing/route-to-02_Low_Price_Service.xml</a>" />
-
- <!-- Import config for routing order item Java Objects to the "03_High_Price" Service... -->
- <import file="<a href="#routing-03_High_Price">routing/route-to-03_High_Price_Service.xml</a>" />
-
- <!-- Import config for routing order item Java Objects to the "04_Reptiles_notify_webservice_proxy" Service... -->
- <import file="<a href="#routing-04_Reptiles_notify_webservice_proxy">routing/route-to-04_Reptiles_notify_webservice_proxy.xml</a>" />
-
- <!-- Import config for routing order items to the database... -->
- <import file="<a href="#routing-05_Database">routing/route-to-05_Database.xml</a>" />
-
-</smooks-resource-list></pre>
-
- Detailed explanations for each of the imported resource configuration files are hyperlinked.
-
- <h5 id="edi-parsing">EDI Parsing</h5>
- As its name suggests, the <edi:reader> configuration configures the reader for the Smooks instance.
-
-<pre>
-<!-- Configure the reader for the EDI message... -->
-<edi:reader mappingModel="<a href="#edi-parsing">/smooks_configs/parse/edi-to-xml-order-mapping.xml</a>" /></pre>
-
- The "mappingModel" attribute defines the EDI to SAX Event mapping model configuration for the parser. After
- configuring this resource and turning on the Smooks Execution Report we can see the message event stream as produced
- by the EDI Parser:
- <p/>
- <a href="docs/source-model.gif"><img src="docs/source-model.gif" width="40%" height="40%" alt="Click to Enlarge..."/></a>
- <p/>
-
- <h5 id="datasources">database/datasources.xml</h5>
- This Quickstart interfaces to the database for a number of reasons:
- <ol>
- <li>Reading Customer and Product information not presented in the source EDI message. This information is used to enrich
- the split order item messages before routing.</li>
- <li>Persisting Order Item details (Routing to the Database).</li>
- </ol>
- The "database/datasources.xml" Smooks resource configuration file defines the Datasource details for accessing the Database:
-<pre>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
- xmlns:ds="http://www.milyn.org/xsd/smooks/datasource-1.1.xsd">
-
- <!--
- Configure the "OrderManagement" DB access datasource...
- -->
- <ds:direct bindOnElement="$document" datasource="OrderManagement" autoCommit="false"
- driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:9002"
- username="sa" password="" />
-
-</smooks-resource-list></pre>
-
- This Datasource is bound to the Smooks ExecutionContext at the start of message processing (bindOnElement="$document" - selects the message root/document event as the lifecycle event).
- Any JDBC Connection created for the ExecutionContext is committed/rolledback and cleaned up at the end of the message processing (bindOnElement="$document"). The <b>HtmlReportGenerator</b>
- (Smooks Execution Report Generator) is very useful for visualising this e.g. The "visitBefore" event shows the binding of the Datasource to the ExecutionContext:
- <p/>
- <a href="docs/datasource-vbefore.gif"><img src="docs/datasource-vbefore.gif" width="40%" height="40%" alt="Click to Enlarge..."/></a>
- <p/>
- And the "visitAfter" event shows the cleanup:
- <p/>
- <a href="docs/datasource-vafter.gif"><img src="docs/datasource-vafter.gif" width="40%" height="40%" alt="Click to Enlarge..."/></a>
- <p/>
-
- <h5 id="refdata">database/ref-data.xml</h5>
- The "database/ref-data.xml" resource file configures resource for reading reference/enhancement data from the
- Database. Each resource is commented inline:
-<pre>
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
- xmlns:db="http://www.milyn.org/xsd/smooks/db-routing-1.1.xsd">
-
- <!--
- The "OrderManagement" datasource is configured in the <a href="#datasources">database/datasources.xml</a> config file.
- -->
-
- <!--
- At the start of the message, select the list of products and bind it into the bean context
- under the beanId of "products". We only want to do this lookup once Smooks instance i.e. not for
- every message, otherwise we'd kill memory performance. To control this, we set the "resultSetScope"
- param to "APPLICATION". The actual order item product row will be selected from the resultset by
- the ResultsetRowSelector config (below)...
- -->
- <db:executor executeOnElement="$document" datasource="OrderManagement" executeBefore="true">
- <db:statement>select productid, name, attr1, listprice, category from product p, item i where p.productid = i.productid</db:statement>
- <db:resultSet name="products" scope="APPLICATION" />
- </db:executor>
-
- <!--
- For every order-item, select the appropriate product row from the in-mem "products" reference data
- resultset, using the ResultsetRowSelector. Bind the selected product row back into the
- bean context under a beanId of "product"...
- -->
- <db:resultSetRowSelector selectRowOnElement="order-item/product-id" resultSetName="products" beanId="product" executeBefore="false">
- <db:where>row.PRODUCTID == orderItem.productId</db:where>
- <db:failedSelectError>Unknown Order Item product ID '${orderItem.productId}' on order '${orderDetail.orderNum?c}'.</db:failedSelectError>
- </db:resultSetRowSelector>
-
- <!--
- At the end of the customer-details/username, select the user account and bind it into the bean context
- under the beanId of "accounts". The users account should be the only entry in this list....
- -->
- <db:executor executeOnElement="customer-details" datasource="OrderManagement">
- <db:statement>select * from ACCOUNT where userid = ${orderDetail.uname}</db:statement>
- <db:resultSet name="accounts" />
- </db:executor>
-
-</smooks-resource-list></pre>
- The data read from the Database by the above resources is bound into the bean context and so is available
- to other resources executing under the same ExecutionContext e.g. templating resources, BeanPopulator
- resources etc. The full Products list Resultset is available under the beanId "<b>products</b>", with the
- product for the current Order Item being processed being available under the beanId "<b>product</b>" (see the
- <db:resultSetRowSelector> resource above). The customer account info for the message being processed under the
- ExecutionContext is captured and made available under the beanId of "<b>accounts</b>". We don't select the
- customer account row from the Resultset (using the <db:resultSetRowSelector> - as done with the products Resultset).
- It would be a good idea to add this <db:resultSetRowSelector> because we could then configure a "<db:failedSelectError>".
- It would also mean that the expressions used in other resources to reference the account info (e.g. in templates) wouldn't
- contain the Resultset row indexing characters i.e. "accounts[0]". Instead, we would reference the account
- info using "account" based expressions, which is possibly a little clearer.
-
- <h5 id="bindings">bindings.xml</h5>
- At the heart of nearly all Smooks based message processing is the concept of "binding" data from the Source
- message event stream into memory (into the bean context). Once the data is bound into memory in a Physical or
- Virtual Object Model, it can be used by other Smooks resources such as:
- <ul>
- <li>Templating resources (FreeMarker, XSLT, StringTemplate),</li>
- <li>BeanPopulator resources (Expression Based Bindings),</li>
- <li>Routing resources (Database, File, JMS),</li>
- <li>Resource <condition> expressions,</li>
- <li>Custom Smooks Visitor implementations</li>
- <li>etc, etc, etc...</li>
- </ul>
-
- The populated Object Model may itself be the Result output by the Smooks.filter operation. Basically, the
- data binding functionality provided by the Javabean Cartridge is a very fundamental part of practically
- all Smooks based filtering operations. Without it, you are quite limited in what you can do.
- <p/>
- The "bindings.xml" resource defines the core bindings used in this quickstart. It extracts the Order header
- and Order Item data from the message event stream and binds it into a Virtual Object Model (i.e. a HashMap):
-<pre>
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
- xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd">
-
- <!--
- Virtual Model Binding Configurations for the order message elements...
-
- Just capturing the order and order-item element details into 2
- Maps, overwriting each order-item as we iterate through the message i.e. not
- accumulating them in memory => low memory footprint because we only
- have details of the current order + current order-item in memory
- at any given time (i.e. we never have a full order in memory)...
- -->
-
- <!--
- Bind the main order details....
- -->
- <jb:bindings beanId="orderDetail" class="java.util.HashMap" createOnElement="order">
- <jb:value property="orderNum" data="header/order-id" decoder="Long" />
- <jb:value property="uname" data="customer-details/username" />
- <jb:value property="date" data="header/date" decoder="Date">
- <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
- </jb:value>
- </jb:bindings>
-
- <!--
- Bind each order-item. Not building a list of order items because we only want to have
- one order-item in memory at any one time. This way, we can handle a huge orders with many
- many order items..
- -->
- <jb:bindings beanId="orderItem" class="java.util.HashMap" createOnElement="order-item">
- <jb:value property="position" data="order-item/position" decoder="Integer" />
- <jb:value property="quantity" data="order-item/quantity" decoder="Integer" />
- <jb:value property="productId" data="order-item/product-id" />
- </jb:bindings>
-
-</smooks-resource-list></pre>
-
- Once this data is bound into the bean context (under the beanIds of "orderDetail" and "orderItem"),
- it is available to all other resources executing under the same Smooks ExecutionContext. The key to
- processing huge messages is the fact that we can keep the memory footprint associated with the
- ExecutionContext to a minimum. We do this by only maintaining the current Order Item in memory at
- at any one time i.e. we don't accumulate a list of the Order Items. This also means that
- we need to be able to use the Order Item data (for splitting, routing etc) while we have it in
- memory and before we throw it away in place of the next Order Item in the message event stream.
- In other words, we can't wait for the whole message to be processed before processing the Order Item data;
- everything is done while we are processing the message event stream i.e. binding, templating/transforming,
- routing etc. We do this by targeting these other resources at the same events in the message event stream
- i.e. the <order-item> events.
- <p/>
- This is the most difficult part of Smooks to get your head around i.e. the idea that multiple things are
- conceptually happening in parallel. On the other side, this is where the power of Smooks lies. For this
- reason, Smooks provides a HtmlReportGenerator class to help you visualise Smooks processes. It generates
- a Smooks Execution Report and is the nearest thing to a debugging tool that Smooks currently has. See
- the Smooks User Guide for details.
-
- <h5 id="routing-02_Low_Price">routing/route-to-02_Low_Price_Service.xml</h5>
- This resource configuration file defines the routing resources for the "02_Low_Price"
- Service:
-<pre>
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
- xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd"
- xmlns:esbr="http://www.jboss.org/xsd/jbossesb/smooks/routing-1.0.xsd">
-
- <!--
- At the end of every order-item, route the order item XML ("02_XML_OrderItem") to the
- "02_Low_Price" Service, if the total is 20 or less...
- -->
- <esbr:routeBean beanIdRef="02_XML_OrderItem" toServiceCategory="HugeQS" toServiceName="02_Low_Price" routeOnElement="order-item">
- <condition>
- <!--<i class="commentedcode">
- product.LISTPRICE * orderItem.quantity <= 17.00
- </i>-->
- </condition>
- </esbr:routeBean>
-
- <!--
- At the end of every order-item, generate an <ord> split message for the "02_XML" Service
- and bind it back into the bean context under a bean ID of "02_XML_OrderItem". 02_XML_OrderItem
- will be router by the FragmentRouter (configured above)..
- -->
- <ftl:freemarker applyOnElement="order-item">
- <ftl:template><!--<i class="commentedcode"><ord id="${orderDetail.orderNum?c}" date="${orderDetail.date?string("yyyy-MM-dd")}">
- <customer>
- <name>${accounts[0].LASTNAME}, ${accounts[0].FIRSTNAME}</name>
- <addr1>${accounts[0].ADDR1}</addr1>
- <addr2>${accounts[0].ADDR2}</addr2>
- <city>${accounts[0].CITY}</city>
- <state>${accounts[0].STATE}</state>
- <zip>${accounts[0].ZIP}</zip>
- </customer>
- <productid>${orderItem.productId}</productid>
- <quantity>${orderItem.quantity?c}</quantity>
- <price>${product.LISTPRICE?c}</price>
- <title>${product.NAME} (${product.ATTR1})</title>
-</ord></i>--></ftl:template>
- <ftl:use>
- <ftl:bindTo id="<span style="color: crimson;">02_XML_OrderItem</span>" />
- </ftl:use>
- </ftl:freemarker>
-
-</smooks-resource-list>
-</pre>
- So the first resource listed in this configuration simply routes the XML data (generated by the second resource)
- to the "02_Low_Price" Service. The resource is only applied if the specified condition is met. The second resource
- generates the XML message to be routed by applying a FreeMarker template to the data in the bean context. As can be
- seen above, the template sucks in Customer and Product data bound to the bean context <a href="#refdata">from the
- database ("accounts[0]" and "product")</a>, as well as data bound into the bean context <a href="#bindings">from the
- source message itself ("orderDetail" and "orderItem")</a>.
- <p/>
- Both of these resource fire on the visitAfter event of the <order-item>
- element. The order in which they fire depends on the order in which they appear in the resource configs, with the
- visitBefore events firing "first-to-last" and the visitAfter events firing "last-to-first". This is why the templating
- resource is positioned after the routing resource i.e. because we want it's visitAfter to be applied before the
- FragmentRouter visitAfter (uses the ServiceInvoker to route the messages). This all seems a bit complex, but is
- actually intuitive enough if you use the Smooks Execution Report during development because you can see the resources
- and the order in which they are being applied.
- <p/>
- The following illustration shows the resources applied on the visitAfter event for the <order-item> element.
- It shows the FreeMarker template resource being applied before the <code>FragmentRouter</code> resource.
- <p/>
- <a href="docs/02_Low_Price.gif"><img src="docs/02_Low_Price.gif" width="40%" height="40%" alt="Click to Enlarge..." /></a>
- <p/>
-
- <h5 id="routing-03_High_Price">routing/route-to-03_High_Price_Service.xml</h5>
- This resource configuration file defines the routing resources for the "03_High_Price"
- Service:
-<pre>
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
- xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd"
- xmlns:esbr="http://www.jboss.org/xsd/jbossesb/smooks/routing-1.0.xsd">
- <!--
- At the end of every order-item, route the order item Java Objects ("03_order") to the
- "03_High_Price" Service, if the price per item is 190 or more...
- -->
- <esbr:routeBean beanIdRef="03_order" toServiceCategory="HugeQS" toServiceName="03_High_Price" routeOnElement="order-item">
- <condition>
- <!--<i class="commentedcode">
- product.LISTPRICE > 190.00
- </i>-->
- </condition>
- </esbr:routeBean>
-
- <!--
- At the end of every order-item, bind together the orderDetail with the current
- order item in a new HashMap and asign it under the beanId "03_order" in the bean
- context. The data is pulled into the "highprice" Java object model using java
- binding configs that pull the data from the bean context, which contains data from
- the database, as well as data bound in for the input message. We use MVEL
- expressions to access this info (expression bindings).
-
- 03_order gets routed by the above config..
- -->
- <jb:bindings beanId="<span style="color: crimson;">03_order</span>" class="org.jboss.soa.esb.example.highprice.Order" createOnElement="order-item">
- <jb:wiring property="address" beanIdRef="03_address" />
- <jb:wiring property="product" beanIdRef="03_product" />
- <jb:expression property="firstName">accounts[0].FIRSTNAME</jb:expression>
- <jb:expression property="lastName">accounts[0].LASTNAME</jb:expression>
- <jb:expression property="date">orderDetail.date</jb:expression>
- <jb:expression property="quantity">orderItem.quantity</jb:expression>
- </jb:bindings>
-
- <jb:bindings beanId="03_address" class="org.jboss.soa.esb.example.highprice.Address" createOnElement="order-item">
- <jb:expression property="email">accounts[0].EMAIL</jb:expression>
- <jb:expression property="address1">accounts[0].ADDR1</jb:expression>
- <jb:expression property="address2">accounts[0].ADDR2</jb:expression>
- <jb:expression property="city">accounts[0].CITY</jb:expression>
- <jb:expression property="state">accounts[0].STATE</jb:expression>
- </jb:bindings>
-
- <jb:bindings beanId="03_product" class="org.jboss.soa.esb.example.highprice.Product" createOnElement="order-item">
- <jb:expression property="id">product.PRODUCTID</jb:expression>
- <jb:expression property="title">product.NAME</jb:expression>
- <jb:expression property="category">product.CATEGORY</jb:expression>
- <jb:expression property="price">product.LISTPRICE</jb:expression>
- </jb:bindings>
-
-</smooks-resource-list></pre>
-
- The first resource specifies the <code>FragmentRouter</code> resource for routing the contents of the "03_order" bean to
- the "03_High_Price" Service, where the product price is greater than 190.00. The other resources specify the <code>BeanPopulator</code>
- resources required for creating and populating the the "03_order" bean Object Model.
- <p/>
- This configuration differs from the <a href="#routing-02_Low_Price">routing/route-to-02_Low_Price_Service.xml</a> configuration
- in that this configuration is routing a Java Object Model as opposed to an XML blob. Also, the binding configurations defined
- in this configuration are different to those defined in the <a href="#bindings">bindings.xml</a> configuration because:
- <ol>
- <li>The data is being bound to a "Physical Object Model" Vs a "Virtual Object Model" i.e.
- <a href="03_High_Price/src/org/jboss/soa/esb/example/highprice/Order.java">the Order class</a> Vs a simple HashMap.</li>
- <li>They are "Expression Based Bindings" i.e. the values being bound into the Object Model are coming from expression evaluations defined
- as the child text of the <binding> elements. The bindings defined in <a href="#bindings">bindings.xml</a> are pulling
- their values from the source message. In the case of the expressions defined in this configuration, they are selecting values from
- the bean context. The values being selected were bound to the context by the <a href="#refdata">database/ref-data.xml</a>
- resources.</li>
- </ol>
-
- <h5 id="routing-04_Reptiles_notify_webservice_proxy">routing/route-to-04_Reptiles_notify_webservice_proxy.xml</h5>
- This resource configuration file defines the routing resources for the "04_Reptiles_notify_webservice_proxy"
- Service where the product category is "REPTILES":
-<pre>
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
- xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd"
- xmlns:esbr="http://www.jboss.org/xsd/jbossesb/smooks/routing-1.0.xsd">
-
- <!--
- At the end of every order-item, route the "Reptiles Notification" SOAP message ("04_SOAP_OrderItem") to the
- "04_Reptiles_notify_webservice_proxy" Service, if the order item product.CATEGORY is "REPTILES"...
- -->
- <esbr:routeBean beanIdRef="04_SOAP_OrderItem" toServiceCategory="HugeQS" toServiceName="04_Reptiles_notify_webservice_proxy" routeOnElement="order-item">
- <condition>
- <!--
- product.CATEGORY == "REPTILES"
- -->
- </condition>
- </esbr:routeBean>
-
- <!--
- At the end of every order-item, generate an <ord> split message for the "02_XML" Service
- and bind it back into the bean context under a bean ID of "02_XML_OrderItem"...
- -->
- <ftl:freemarker applyOnElement="order-item">
- <ftl:template><!--<i class="commentedcode"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ord="http://ordermanagement/ReptilesNotifyWS">
- <soapenv:Header/>
- <soapenv:Body>
- <ord:notify>
- <notification>
- <date>${orderDetail.date?string("yyyy-MM-dd'T'HH:mm:ss")}</date>
- <email>${accounts[0].EMAIL}</email>
- <firstName>${accounts[0].FIRSTNAME}</firstName>
- <lastName>${accounts[0].LASTNAME}</lastName>
- <product>${product.NAME} (${product.ATTR1})</product>
- <quantity>${orderItem.quantity}</quantity>
- <totalPrice>${product.LISTPRICE?c}</totalPrice>
- </notification>
- </ord:notify>
- </soapenv:Body>
-</soapenv:Envelope></i>--></ftl:template>
- <ftl:use>
- <ftl:bindTo id="<span style="color: crimson;">04_SOAP_OrderItem</span>" />
- </ftl:use>
- </ftl:freemarker>
-
-</smooks-resource-list></pre>
-
- This routing configuration is nearly identical to that defined in <a href="#routing-02_Low_Price">routing/route-to-02_Low_Price_Service.xml</a>.
- The only difference is the format of the XML, the destination Service and the condition under which the message is to be routed.
- <p/>
- As can be seen in the <a href="#high-level">04_Reptiles_notify_webservice_proxy Service configuration</a>, these SOAP messages are routed to the
- ReptilesNotifyWS Webservice using the <code>HttpRouter</code>.
-
- <h5 id="routing-05_Database">routing/route-to-05_Database.xml</h5>
- This resource configuration file defines the routing resources for routing Order Item data to the Database:
-<pre>
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
- xmlns:db="http://www.milyn.org/xsd/smooks/db-routing-1.1.xsd">
-
- <!--
- The "OrderManagement" datasource is configured in the database/datasources.xml config file.
- -->
-
- <!--
- This resource is needed because we only want to limit the number or orders inserted into the database,
- so we need to count them...
- -->
- <db:executor executeOnElement="order-item" datasource="OrderManagement" executeBefore="true">
- <db:statement><i class="commentedcode">select count(*) as "numOrders" from orders</i></db:statement>
- <db:resultSet name="<span style="color: crimson;">orderCountRS</span>" />
- </db:executor>
-
- <!--
- At the end of every order-item, insert the order details for that order item...
- -->
- <db:executor executeOnElement="order-item" datasource="OrderManagement" executeBefore="false">
- <condition>
- <!--
- <span style="color: crimson;">orderCountRS</span>[0].numOrders < 10
- -->
- </condition>
- <db:statement><i class="commentedcode">INSERT INTO ORDERS VALUES(${orderDetail.orderNum + "-" + product.PRODUCTID}, ${accounts[0].USERID}, ${orderDetail.date}, ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA', ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA','UPS',22.23, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME}, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME},'999 9999 9999 9999','12/03','Visa','CA')</i></db:statement>
- </db:executor>
-
-</smooks-resource-list></pre>
-
- The first resource simply queries the Orders table in the database to get a row count. It binds the result to the bean context
- under the resultSetName (beanId) of "orderCountRS". This row count is then used as the condition on the second <code>SQLExecutor</code> resource,
- which performs the inserts on the orders table.
-
- </div>
-</div>
-
-</body>
-</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title>JBossESB Quickstart - "Huge Split, Enrich, Transform and Route"</title>
+ <style type="text/css">
+ body {
+ font-family: helvetica
+ }
+ pre {
+ margin-left: 20px;
+ background-color: lavender;
+ }
+ .rhighlight {
+ color: red;
+ }
+ div.indent {
+ margin-left: 20px;
+ }
+ h4 {
+ font-style: italic;
+ }
+ .commentedcode {
+ font-size: smaller; color: slategray;
+ }
+ </style>
+</head>
+<body>
+
+<img src="http://jboss.com/themes/jbosstheme/img/logo.gif"/><br/>
+<h2>JBossESB Quickstart - "Huge Split, Enrich, Transform and Route"</h2>
+<div class="indent">
+
+ This Quickstart demonstrates how JBossESB can be used to:
+
+ <ol>
+ <li>split,</li>
+ <li>enrich,</li>
+ <li>transform, and</li>
+ <li>route</li>
+ </ol>
+
+ messages of any size, including huge messages i.e. GB size messages.
+ <p/>
+ <b>Table of Contents:</b>
+ <div class="indent">
+ <a href="#overview">Overview</a><br/>
+ <a href="#main-points">Main Points of Note</a><br/>
+ <a href="#illustration">Illustration</a><br/>
+ <a href="#running">Running the Quickstart</a><br/>
+ <a href="#flash-demo">Flash Demonstration</a><br/>
+ <a href="#how-it-works">How it Works</a><br/>
+ <div class="indent">
+ <a href="#high-level">High Level</a><br/>
+ <a href="#splitting-routing">Splitting & Routing Details</a>
+ </div>
+ </div>
+
+ <h3 id="overview">Overview</h3>
+
+ Messages can often be received containing data of interest to multiple parties. Extracting and distributing this data
+ is a non trivial process. Firstly you have the challenge of physically extracting the message data from the source message.
+ Then you need to reassemble the extracted data in a format consumable by each of these parties. Each party may have different
+ requirements (different formats etc) and it's the natural responsibility of the ESB to take care of these differing integration
+ requirements. Things can get even more complex if the source message does not contain all the information required by the
+ interested parties.
+ <p/>
+ JBossESB features tools that support solving these issues in a declaritive manner i.e. typically, there's no need to write reams of code.
+ The ability to parse, split transform and route message fragments is very powerful. These capabilities are also key to solving another
+ message processing related usecase encountered in the Enterprise i.e. that of <b>processing huge messages (GBs)</b>. JBossESB's abilty to perform
+ complex splitting operations on messages of different formats provides one solution to processing huge messages.
+ <p/>
+ This quickstart demonstrates these capabilities and walks you through the components involved. The Quickstart is based on
+ a usecase where JBossESB is used to process Order messages (EDI format) from the local file system.
+ Each Order message contains order header information (orderId, date, customer userId etc), as well as a list of order items
+ (productId, quantity etc). JBossESB is used to:
+ <ol>
+ <li>Split out and route order items whose "price" is less than "17.00" to the "02_Low_Price" Service. The "02_Low_Price"
+ Service expects the order item data to:
+ <ol type="a">
+ <li>be in <b>XML format</b>,</li>
+ <li>contain order header data, as well as the order item data, and</li>
+ <li>contain additional customer and product data not provided in the source EDI message.</li>
+ </ol>
+ </li>
+ <li>Split out and route order items whose "price" is greater than "190.00" to the "03_High_Price" Service. The "03_High_Price"
+ Service expects the order item data to:
+ <ol type="a">
+ <li>be in a populated <b>Java Object model</b>,</li>
+ <li>contain order header data, as well as the order item data, and</li>
+ <li>contain additional customer and product data not provided in the source EDI message.</li>
+ </ol>
+ </li>
+ <li>Split out and route order items whose "category" is "REPTILES" to the "04_Reptiles_notify_webservice_proxy" Service. The "04_Reptiles_notify_webservice_proxy"
+ Service expects the order item data to:
+ <ol type="a">
+ <li>be in <b>SOAP format</b> complying with the ReptilesNotifyWS interface (to which the 04_Reptiles_notify_webservice_proxy
+ routes the SOAP message using the HttpRouter),</li>
+ <li>contain order header data, as well as the order item data, and</li>
+ <li>contain additional customer and product data not provided in the source EDI message.</li>
+ </ol>
+ </li>
+ <li>Split out and route all order items to the <b>"Orders" table in the database</b> ("05_Database").</li>
+ </ol>
+ <p/>
+ See the <a href="http://milyn.codehaus.org/jbossesb/huge-split-route-qs/flash/huge-splitting-routing.html">Flash Demonstration of this Quickstart</a>.
+
+ <h3 id="main-points">Main Points of Note</h3>
+ The main points of note are:
+ <ul>
+ <li>The split messages don't just contain data from the order item in question, they also contain data
+ from the message header (orderId, date etc). This means the split is <b>not just a dumb fragment extraction</b>.
+ Data from different fragments (header and order item) needs to be merged together into the new messages.</li>
+ <li>The routed messages need to be "<b>Enriched</b>" with additional customer and product data from the database.</li>
+ <li>The routed messages are in <b>different formats</b> - XML, Java, SOAP, JDBC.</li>
+ <li>Each order item may be sent to <b>multiple parties concurrently</b>.</li>
+ <li>Each order item is routed based on content (<b>Content Based Routing</b>).</li>
+ </ul>
+
+ <h3 id="illustration">Illustration</h3>
+ The Quickstart can be illustrated as follows:
+ <p/>
+ <a href="docs/Overview.png"><img src="docs/Overview.png" width="40%" height="40%" alt="Click to Enlarge..."/></a>
+ <p/>
+ See the <a href="http://milyn.codehaus.org/jbossesb/huge-split-route-qs/flash/huge-splitting-routing.html">Flash Demonstration of this Quickstart</a>.
+
+ <h3 id="running">Running the Quickstart</h3>
+ <ol>
+ <li>Open 6 command shell windows in the root folder of this quickstart.</li>
+ <li>In one of the command shell windows, start your JBoss ESB/Application Server instance.</li>
+ <li>In one of the command shell windows, type "ant deploy-jms-dests" to deploy the JMS Queues.</li>
+ <li>In one of the command shell windows, type "ant start-hsqldb-server".</li>
+ <li>In the remaining command shell windows, type the following commands in seperate windows:
+ <ul>
+ <li>"ant 01_split_enrich_transform_route"</li>
+ <li>"ant 02_Low_Price"</li>
+ <li>"ant 03_High_Price"</li>
+ <li>"ant 04_Reptiles_notify_webservice" (this just builds and deploys the Webservice)</li>
+ </ul>
+ </li>
+ <li>In the 6th command shell window, type "ant createMessage" to execute the message creation
+ script. This script will generate an EDI message in the Service input folder.</li>
+ </ol>
+ <p/>
+ See the <a href="http://milyn.codehaus.org/jbossesb/huge-split-route-qs/flash/huge-splitting-routing.html">Flash Demonstration of this Quickstart</a>.
+
+ <h3 id="flash-demo">Flash Demonstration</h3>
+ See the <a href="http://milyn.codehaus.org/jbossesb/huge-split-route-qs/flash/huge-splitting-routing.html">Flash Demonstration of this Quickstart</a>.
+
+ <h3 id="how-it-works">How it Works</h3>
+ The main ESB components used in this quickstart (and how they depend on each other) are as follows:
+ <ul>
+ <li>FileGateway
+ <ul>
+ <li>FileStreamSplitter
+ <ul>
+ <li>Smooks
+ <ul>
+ <li>EdiParser</li>
+ <li>FreeMarker</li>
+ <li>FragmentRouter
+ <ul>ServiceInvoker</ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>HttpRouter</li>
+ </ul>
+
+ <div class="indent">
+ <h4 id="high-level">High Level</h4>
+ As can be seen from the <a href="#illustration">illustration above</a>, this quickstart revolves around the
+ "01_split_enrich_transform_route" Service deployment. This .esb deployment defines the "SplitterService"
+ and "04_Reptiles_notify_webservice_proxy" Services as follows:
+
+ <p/>
+ <pre>
+<service category="HugeQS" name="SplitterService" description="Splits out the order items and routes them.">
+ <listeners>
+ <span class="rhighlight"><fs-listener name="FileGateway" busidref="ediFileMessageBus" is-gateway="true" poll-frequency-seconds="2">
+ <property name="composer-class" value="org.jboss.soa.esb.smooks.splitting.FileStreamSplitter"/>
+ <property name="splitterConfig" value="/smooks_configs/main.xml"/>
+ <!-- property name="reportPath" value="/zap/report.html"/ -->
+ </fs-listener></span>
+ </listeners>
+ <actions mep="OneWay">
+ <action name="print" class="org.jboss.soa.esb.example.PrintMessage">
+ <property name="delay" value="500" />
+ </action>
+ </actions>
+</service>
+
+<service category="HugeQS" name="04_Reptiles_notify_webservice_proxy" description="Routes the SOAP requests to the 'Reptiles Notification' Webservice">
+ <actions mep="OneWay">
+ <action name="httprouter" class="org.jboss.soa.esb.actions.routing.http.HttpRouter">
+ <property name="endpointUrl" value="http://127.0.0.1:8080/Quickstart_Huge_Enrich_Split_Transform_Route/ReptilesNotifyWS" />
+ <property name="method" value="POST" />
+ <property name="responseType" value="STRING" />
+ </action>
+ </actions>
+</service></pre>
+ <p/>
+
+ The "SplitterService" is of most interest since this is the Service that performs the Splitting & Routing of the Order Items contained in the
+ source EDI Order message. The FileGateway is configured with the <code>FileStreamSplitter</code>, which is a specialised MessageComposer implementation.
+ The <code>FileStreamSplitter</code> uses <a href="http://milyn.codehaus.org">Smooks</a> to perform the Splitting & Routing of the Order Items.
+ <a href="#splitting-routing">We will look at this in more detail later</a>.
+ <p/>
+ The "04_Reptiles_notify_webservice_proxy" Service is also interesting. It acts as a Webservice proxy service to the "ReptilesNotifyWS" Webservice (<a href="#illustration">see illustration</a>),
+ using the <code>HttpRouter</code> to route SOAP payloads received from "SplitterService".
+ <p/>
+ The "SplitterService" Service also routes split Order Item messages to a number of other Services based on content (Content Based Routing). The "02_Low_Price" and "03_High_Price"
+ Services are very simple and effectively the same. The only difference is that the "02_Low_Price" Service receives low priced Order Items as XML, while the
+ "03_High_Price" Service receives high priced Order Items as Java Objects. The configuration of the "02_Low_Price" Service is as follows:
+
+ <p/>
+ <pre>
+<service category="HugeQS" name="02_Low_Price" description="02_Low_Price Service">
+ <listeners>
+ <jms-listener name="XMLjms" busidref="02XMLBus" />
+ </listeners>
+ <actions mep="OneWay">
+ <action name="print" class="org.jboss.soa.esb.example.PrintMessage" />
+ </actions>
+</service></pre>
+ <p/>
+
+ As can be seen, this Service (and the "03_High_Price" Service) is very simple. It just prints the ESB Message payload to the console.
+ <p/>
+ The "SplitterService" Service also routes split Order Item messages to the Database. <a href="#splitting-routing">We will look at this in more detail later</a>.
+ <p/>
+ In all cases where the "SplitterService" Service routes split Order Item messages, the messages are enriched with additional Customer and Product data, which
+ it gets from the Database.
+
+ <h4 id="splitting-routing">Splitting & Routing Details</h4>
+ The incomming EDI messages are in the following format:
+<pre>
+HDR*1213529618453*0*Wed Nov 15 13:45:28 EST 2006
+CUS*ACID
+ORD*0*4*AV-CB-01
+ORD*1*5*FL-DLH-02
+ORD*2*5*AV-CB-01
+... <i>(more ORD segments, 1 per Order Item)</i>...</pre>
+ The top level <a href="http://milyn.codehaus.org/Smooks">Smooks</a> configuration for Splitting & Routing this message is:
+<pre>
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+ xmlns:edi="http://www.milyn.org/xsd/smooks/edi-1.1.xsd">
+
+ <!--
+ Filter the message using the SAX Filter (i.e. not DOM, so no
+ intermediate DOM, so we can process huge messages...
+ -->
+ <params>
+ <param name="stream.filter.type">SAX</param>
+ </params>
+
+ <!-- Configure the reader for the EDI message... -->
+ <edi:reader mappingModel="<a href="#edi-parsing">/smooks_configs/parse/edi-to-xml-order-mapping.xml</a>" />
+
+ <!-- Import datasource configs... -->
+ <import file="<a href="#datasources">database/datasources.xml</a>" />
+
+ <!-- Import reference/enrichment data configs - products, accounts etc... -->
+ <import file="<a href="#refdata">database/ref-data.xml</a>" />
+
+ <!-- Import config for binding order and order-item data into memory... -->
+ <import file="<a href="#bindings">bindings.xml</a>" />
+
+ <!-- Import config for routing order item XML to the "02_Low_Price" Service... -->
+ <import file="<a href="#routing-02_Low_Price">routing/route-to-02_Low_Price_Service.xml</a>" />
+
+ <!-- Import config for routing order item Java Objects to the "03_High_Price" Service... -->
+ <import file="<a href="#routing-03_High_Price">routing/route-to-03_High_Price_Service.xml</a>" />
+
+ <!-- Import config for routing order item Java Objects to the "04_Reptiles_notify_webservice_proxy" Service... -->
+ <import file="<a href="#routing-04_Reptiles_notify_webservice_proxy">routing/route-to-04_Reptiles_notify_webservice_proxy.xml</a>" />
+
+ <!-- Import config for routing order items to the database... -->
+ <import file="<a href="#routing-05_Database">routing/route-to-05_Database.xml</a>" />
+
+</smooks-resource-list></pre>
+
+ Detailed explanations for each of the imported resource configuration files are hyperlinked.
+
+ <h5 id="edi-parsing">EDI Parsing</h5>
+ As its name suggests, the <edi:reader> configuration configures the reader for the Smooks instance.
+
+<pre>
+<!-- Configure the reader for the EDI message... -->
+<edi:reader mappingModel="<a href="#edi-parsing">/smooks_configs/parse/edi-to-xml-order-mapping.xml</a>" /></pre>
+
+ The "mappingModel" attribute defines the EDI to SAX Event mapping model configuration for the parser. After
+ configuring this resource and turning on the Smooks Execution Report we can see the message event stream as produced
+ by the EDI Parser:
+ <p/>
+ <a href="docs/source-model.gif"><img src="docs/source-model.gif" width="40%" height="40%" alt="Click to Enlarge..."/></a>
+ <p/>
+
+ <h5 id="datasources">database/datasources.xml</h5>
+ This Quickstart interfaces to the database for a number of reasons:
+ <ol>
+ <li>Reading Customer and Product information not presented in the source EDI message. This information is used to enrich
+ the split order item messages before routing.</li>
+ <li>Persisting Order Item details (Routing to the Database).</li>
+ </ol>
+ The "database/datasources.xml" Smooks resource configuration file defines the Datasource details for accessing the Database:
+<pre>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+ xmlns:ds="http://www.milyn.org/xsd/smooks/datasource-1.1.xsd">
+
+ <!--
+ Configure the "OrderManagement" DB access datasource...
+ -->
+ <ds:direct bindOnElement="$document" datasource="OrderManagement" autoCommit="false"
+ driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:9002"
+ username="sa" password="" />
+
+</smooks-resource-list></pre>
+
+ This Datasource is bound to the Smooks ExecutionContext at the start of message processing (bindOnElement="$document" - selects the message root/document event as the lifecycle event).
+ Any JDBC Connection created for the ExecutionContext is committed/rolledback and cleaned up at the end of the message processing (bindOnElement="$document"). The <b>HtmlReportGenerator</b>
+ (Smooks Execution Report Generator) is very useful for visualising this e.g. The "visitBefore" event shows the binding of the Datasource to the ExecutionContext:
+ <p/>
+ <a href="docs/datasource-vbefore.gif"><img src="docs/datasource-vbefore.gif" width="40%" height="40%" alt="Click to Enlarge..."/></a>
+ <p/>
+ And the "visitAfter" event shows the cleanup:
+ <p/>
+ <a href="docs/datasource-vafter.gif"><img src="docs/datasource-vafter.gif" width="40%" height="40%" alt="Click to Enlarge..."/></a>
+ <p/>
+
+ <h5 id="refdata">database/ref-data.xml</h5>
+ The "database/ref-data.xml" resource file configures resource for reading reference/enhancement data from the
+ Database. Each resource is commented inline:
+<pre>
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+ xmlns:db="http://www.milyn.org/xsd/smooks/db-routing-1.1.xsd">
+
+ <!--
+ The "OrderManagement" datasource is configured in the <a href="#datasources">database/datasources.xml</a> config file.
+ -->
+
+ <!--
+ At the start of the message, select the list of products and bind it into the bean context
+ under the beanId of "products". We only want to do this lookup once Smooks instance i.e. not for
+ every message, otherwise we'd kill memory performance. To control this, we set the "resultSetScope"
+ param to "APPLICATION". The actual order item product row will be selected from the resultset by
+ the ResultsetRowSelector config (below)...
+ -->
+ <db:executor executeOnElement="$document" datasource="OrderManagement" executeBefore="true">
+ <db:statement>select productid, name, attr1, listprice, category from product p, item i where p.productid = i.productid</db:statement>
+ <db:resultSet name="products" scope="APPLICATION" />
+ </db:executor>
+
+ <!--
+ For every order-item, select the appropriate product row from the in-mem "products" reference data
+ resultset, using the ResultsetRowSelector. Bind the selected product row back into the
+ bean context under a beanId of "product"...
+ -->
+ <db:resultSetRowSelector selectRowOnElement="order-item/product-id" resultSetName="products" beanId="product" executeBefore="false">
+ <db:where>row.PRODUCTID == orderItem.productId</db:where>
+ <db:failedSelectError>Unknown Order Item product ID '${orderItem.productId}' on order '${orderDetail.orderNum?c}'.</db:failedSelectError>
+ </db:resultSetRowSelector>
+
+ <!--
+ At the end of the customer-details/username, select the user account and bind it into the bean context
+ under the beanId of "accounts". The users account should be the only entry in this list....
+ -->
+ <db:executor executeOnElement="customer-details" datasource="OrderManagement">
+ <db:statement>select * from ACCOUNT where userid = ${orderDetail.uname}</db:statement>
+ <db:resultSet name="accounts" />
+ </db:executor>
+
+</smooks-resource-list></pre>
+ The data read from the Database by the above resources is bound into the bean context and so is available
+ to other resources executing under the same ExecutionContext e.g. templating resources, BeanPopulator
+ resources etc. The full Products list Resultset is available under the beanId "<b>products</b>", with the
+ product for the current Order Item being processed being available under the beanId "<b>product</b>" (see the
+ <db:resultSetRowSelector> resource above). The customer account info for the message being processed under the
+ ExecutionContext is captured and made available under the beanId of "<b>accounts</b>". We don't select the
+ customer account row from the Resultset (using the <db:resultSetRowSelector> - as done with the products Resultset).
+ It would be a good idea to add this <db:resultSetRowSelector> because we could then configure a "<db:failedSelectError>".
+ It would also mean that the expressions used in other resources to reference the account info (e.g. in templates) wouldn't
+ contain the Resultset row indexing characters i.e. "accounts[0]". Instead, we would reference the account
+ info using "account" based expressions, which is possibly a little clearer.
+
+ <h5 id="bindings">bindings.xml</h5>
+ At the heart of nearly all Smooks based message processing is the concept of "binding" data from the Source
+ message event stream into memory (into the bean context). Once the data is bound into memory in a Physical or
+ Virtual Object Model, it can be used by other Smooks resources such as:
+ <ul>
+ <li>Templating resources (FreeMarker, XSLT, StringTemplate),</li>
+ <li>BeanPopulator resources (Expression Based Bindings),</li>
+ <li>Routing resources (Database, File, JMS),</li>
+ <li>Resource <condition> expressions,</li>
+ <li>Custom Smooks Visitor implementations</li>
+ <li>etc, etc, etc...</li>
+ </ul>
+
+ The populated Object Model may itself be the Result output by the Smooks.filter operation. Basically, the
+ data binding functionality provided by the Javabean Cartridge is a very fundamental part of practically
+ all Smooks based filtering operations. Without it, you are quite limited in what you can do.
+ <p/>
+ The "bindings.xml" resource defines the core bindings used in this quickstart. It extracts the Order header
+ and Order Item data from the message event stream and binds it into a Virtual Object Model (i.e. a HashMap):
+<pre>
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+ xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd">
+
+ <!--
+ Virtual Model Binding Configurations for the order message elements...
+
+ Just capturing the order and order-item element details into 2
+ Maps, overwriting each order-item as we iterate through the message i.e. not
+ accumulating them in memory => low memory footprint because we only
+ have details of the current order + current order-item in memory
+ at any given time (i.e. we never have a full order in memory)...
+ -->
+
+ <!--
+ Bind the main order details....
+ -->
+ <jb:bindings beanId="orderDetail" class="java.util.HashMap" createOnElement="order">
+ <jb:value property="orderNum" data="header/order-id" decoder="Long" />
+ <jb:value property="uname" data="customer-details/username" />
+ <jb:value property="date" data="header/date" decoder="Date">
+ <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
+ </jb:value>
+ </jb:bindings>
+
+ <!--
+ Bind each order-item. Not building a list of order items because we only want to have
+ one order-item in memory at any one time. This way, we can handle a huge orders with many
+ many order items..
+ -->
+ <jb:bindings beanId="orderItem" class="java.util.HashMap" createOnElement="order-item">
+ <jb:value property="position" data="order-item/position" decoder="Integer" />
+ <jb:value property="quantity" data="order-item/quantity" decoder="Integer" />
+ <jb:value property="productId" data="order-item/product-id" />
+ </jb:bindings>
+
+</smooks-resource-list></pre>
+
+ Once this data is bound into the bean context (under the beanIds of "orderDetail" and "orderItem"),
+ it is available to all other resources executing under the same Smooks ExecutionContext. The key to
+ processing huge messages is the fact that we can keep the memory footprint associated with the
+ ExecutionContext to a minimum. We do this by only maintaining the current Order Item in memory at
+ at any one time i.e. we don't accumulate a list of the Order Items. This also means that
+ we need to be able to use the Order Item data (for splitting, routing etc) while we have it in
+ memory and before we throw it away in place of the next Order Item in the message event stream.
+ In other words, we can't wait for the whole message to be processed before processing the Order Item data;
+ everything is done while we are processing the message event stream i.e. binding, templating/transforming,
+ routing etc. We do this by targeting these other resources at the same events in the message event stream
+ i.e. the <order-item> events.
+ <p/>
+ This is the most difficult part of Smooks to get your head around i.e. the idea that multiple things are
+ conceptually happening in parallel. On the other side, this is where the power of Smooks lies. For this
+ reason, Smooks provides a HtmlReportGenerator class to help you visualise Smooks processes. It generates
+ a Smooks Execution Report and is the nearest thing to a debugging tool that Smooks currently has. See
+ the Smooks User Guide for details.
+
+ <h5 id="routing-02_Low_Price">routing/route-to-02_Low_Price_Service.xml</h5>
+ This resource configuration file defines the routing resources for the "02_Low_Price"
+ Service:
+<pre>
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+ xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd"
+ xmlns:esbr="http://www.jboss.org/xsd/jbossesb/smooks/routing-1.0.xsd">
+
+ <!--
+ At the end of every order-item, route the order item XML ("02_XML_OrderItem") to the
+ "02_Low_Price" Service, if the total is 20 or less...
+ -->
+ <esbr:routeBean beanIdRef="02_XML_OrderItem" toServiceCategory="HugeQS" toServiceName="02_Low_Price" routeOnElement="order-item">
+ <condition>
+ <!--<i class="commentedcode">
+ product.LISTPRICE * orderItem.quantity <= 17.00
+ </i>-->
+ </condition>
+ </esbr:routeBean>
+
+ <!--
+ At the end of every order-item, generate an <ord> split message for the "02_XML" Service
+ and bind it back into the bean context under a bean ID of "02_XML_OrderItem". 02_XML_OrderItem
+ will be router by the FragmentRouter (configured above)..
+ -->
+ <ftl:freemarker applyOnElement="order-item">
+ <ftl:template><!--<i class="commentedcode"><ord id="${orderDetail.orderNum?c}" date="${orderDetail.date?string("yyyy-MM-dd")}">
+ <customer>
+ <name>${accounts[0].LASTNAME}, ${accounts[0].FIRSTNAME}</name>
+ <addr1>${accounts[0].ADDR1}</addr1>
+ <addr2>${accounts[0].ADDR2}</addr2>
+ <city>${accounts[0].CITY}</city>
+ <state>${accounts[0].STATE}</state>
+ <zip>${accounts[0].ZIP}</zip>
+ </customer>
+ <productid>${orderItem.productId}</productid>
+ <quantity>${orderItem.quantity?c}</quantity>
+ <price>${product.LISTPRICE?c}</price>
+ <title>${product.NAME} (${product.ATTR1})</title>
+</ord></i>--></ftl:template>
+ <ftl:use>
+ <ftl:bindTo id="<span style="color: crimson;">02_XML_OrderItem</span>" />
+ </ftl:use>
+ </ftl:freemarker>
+
+</smooks-resource-list>
+</pre>
+ So the first resource listed in this configuration simply routes the XML data (generated by the second resource)
+ to the "02_Low_Price" Service. The resource is only applied if the specified condition is met. The second resource
+ generates the XML message to be routed by applying a FreeMarker template to the data in the bean context. As can be
+ seen above, the template sucks in Customer and Product data bound to the bean context <a href="#refdata">from the
+ database ("accounts[0]" and "product")</a>, as well as data bound into the bean context <a href="#bindings">from the
+ source message itself ("orderDetail" and "orderItem")</a>.
+ <p/>
+ Both of these resource fire on the visitAfter event of the <order-item>
+ element. The order in which they fire depends on the order in which they appear in the resource configs, with the
+ visitBefore events firing "first-to-last" and the visitAfter events firing "last-to-first". This is why the templating
+ resource is positioned after the routing resource i.e. because we want it's visitAfter to be applied before the
+ FragmentRouter visitAfter (uses the ServiceInvoker to route the messages). This all seems a bit complex, but is
+ actually intuitive enough if you use the Smooks Execution Report during development because you can see the resources
+ and the order in which they are being applied.
+ <p/>
+ The following illustration shows the resources applied on the visitAfter event for the <order-item> element.
+ It shows the FreeMarker template resource being applied before the <code>FragmentRouter</code> resource.
+ <p/>
+ <a href="docs/02_Low_Price.gif"><img src="docs/02_Low_Price.gif" width="40%" height="40%" alt="Click to Enlarge..." /></a>
+ <p/>
+
+ <h5 id="routing-03_High_Price">routing/route-to-03_High_Price_Service.xml</h5>
+ This resource configuration file defines the routing resources for the "03_High_Price"
+ Service:
+<pre>
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+ xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd"
+ xmlns:esbr="http://www.jboss.org/xsd/jbossesb/smooks/routing-1.0.xsd">
+ <!--
+ At the end of every order-item, route the order item Java Objects ("03_order") to the
+ "03_High_Price" Service, if the price per item is 190 or more...
+ -->
+ <esbr:routeBean beanIdRef="03_order" toServiceCategory="HugeQS" toServiceName="03_High_Price" routeOnElement="order-item">
+ <condition>
+ <!--<i class="commentedcode">
+ product.LISTPRICE > 190.00
+ </i>-->
+ </condition>
+ </esbr:routeBean>
+
+ <!--
+ At the end of every order-item, bind together the orderDetail with the current
+ order item in a new HashMap and asign it under the beanId "03_order" in the bean
+ context. The data is pulled into the "highprice" Java object model using java
+ binding configs that pull the data from the bean context, which contains data from
+ the database, as well as data bound in for the input message. We use MVEL
+ expressions to access this info (expression bindings).
+
+ 03_order gets routed by the above config..
+ -->
+ <jb:bindings beanId="<span style="color: crimson;">03_order</span>" class="org.jboss.soa.esb.example.highprice.Order" createOnElement="order-item">
+ <jb:wiring property="address" beanIdRef="03_address" />
+ <jb:wiring property="product" beanIdRef="03_product" />
+ <jb:expression property="firstName">accounts[0].FIRSTNAME</jb:expression>
+ <jb:expression property="lastName">accounts[0].LASTNAME</jb:expression>
+ <jb:expression property="date">orderDetail.date</jb:expression>
+ <jb:expression property="quantity">orderItem.quantity</jb:expression>
+ </jb:bindings>
+
+ <jb:bindings beanId="03_address" class="org.jboss.soa.esb.example.highprice.Address" createOnElement="order-item">
+ <jb:expression property="email">accounts[0].EMAIL</jb:expression>
+ <jb:expression property="address1">accounts[0].ADDR1</jb:expression>
+ <jb:expression property="address2">accounts[0].ADDR2</jb:expression>
+ <jb:expression property="city">accounts[0].CITY</jb:expression>
+ <jb:expression property="state">accounts[0].STATE</jb:expression>
+ </jb:bindings>
+
+ <jb:bindings beanId="03_product" class="org.jboss.soa.esb.example.highprice.Product" createOnElement="order-item">
+ <jb:expression property="id">product.PRODUCTID</jb:expression>
+ <jb:expression property="title">product.NAME</jb:expression>
+ <jb:expression property="category">product.CATEGORY</jb:expression>
+ <jb:expression property="price">product.LISTPRICE</jb:expression>
+ </jb:bindings>
+
+</smooks-resource-list></pre>
+
+ The first resource specifies the <code>FragmentRouter</code> resource for routing the contents of the "03_order" bean to
+ the "03_High_Price" Service, where the product price is greater than 190.00. The other resources specify the <code>BeanPopulator</code>
+ resources required for creating and populating the the "03_order" bean Object Model.
+ <p/>
+ This configuration differs from the <a href="#routing-02_Low_Price">routing/route-to-02_Low_Price_Service.xml</a> configuration
+ in that this configuration is routing a Java Object Model as opposed to an XML blob. Also, the binding configurations defined
+ in this configuration are different to those defined in the <a href="#bindings">bindings.xml</a> configuration because:
+ <ol>
+ <li>The data is being bound to a "Physical Object Model" Vs a "Virtual Object Model" i.e.
+ <a href="03_High_Price/src/org/jboss/soa/esb/example/highprice/Order.java">the Order class</a> Vs a simple HashMap.</li>
+ <li>They are "Expression Based Bindings" i.e. the values being bound into the Object Model are coming from expression evaluations defined
+ as the child text of the <binding> elements. The bindings defined in <a href="#bindings">bindings.xml</a> are pulling
+ their values from the source message. In the case of the expressions defined in this configuration, they are selecting values from
+ the bean context. The values being selected were bound to the context by the <a href="#refdata">database/ref-data.xml</a>
+ resources.</li>
+ </ol>
+
+ <h5 id="routing-04_Reptiles_notify_webservice_proxy">routing/route-to-04_Reptiles_notify_webservice_proxy.xml</h5>
+ This resource configuration file defines the routing resources for the "04_Reptiles_notify_webservice_proxy"
+ Service where the product category is "REPTILES":
+<pre>
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+ xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd"
+ xmlns:esbr="http://www.jboss.org/xsd/jbossesb/smooks/routing-1.0.xsd">
+
+ <!--
+ At the end of every order-item, route the "Reptiles Notification" SOAP message ("04_SOAP_OrderItem") to the
+ "04_Reptiles_notify_webservice_proxy" Service, if the order item product.CATEGORY is "REPTILES"...
+ -->
+ <esbr:routeBean beanIdRef="04_SOAP_OrderItem" toServiceCategory="HugeQS" toServiceName="04_Reptiles_notify_webservice_proxy" routeOnElement="order-item">
+ <condition>
+ <!--
+ product.CATEGORY == "REPTILES"
+ -->
+ </condition>
+ </esbr:routeBean>
+
+ <!--
+ At the end of every order-item, generate an <ord> split message for the "02_XML" Service
+ and bind it back into the bean context under a bean ID of "02_XML_OrderItem"...
+ -->
+ <ftl:freemarker applyOnElement="order-item">
+ <ftl:template><!--<i class="commentedcode"><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ord="http://ordermanagement/ReptilesNotifyWS">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <ord:notify>
+ <notification>
+ <date>${orderDetail.date?string("yyyy-MM-dd'T'HH:mm:ss")}</date>
+ <email>${accounts[0].EMAIL}</email>
+ <firstName>${accounts[0].FIRSTNAME}</firstName>
+ <lastName>${accounts[0].LASTNAME}</lastName>
+ <product>${product.NAME} (${product.ATTR1})</product>
+ <quantity>${orderItem.quantity}</quantity>
+ <totalPrice>${product.LISTPRICE?c}</totalPrice>
+ </notification>
+ </ord:notify>
+ </soapenv:Body>
+</soapenv:Envelope></i>--></ftl:template>
+ <ftl:use>
+ <ftl:bindTo id="<span style="color: crimson;">04_SOAP_OrderItem</span>" />
+ </ftl:use>
+ </ftl:freemarker>
+
+</smooks-resource-list></pre>
+
+ This routing configuration is nearly identical to that defined in <a href="#routing-02_Low_Price">routing/route-to-02_Low_Price_Service.xml</a>.
+ The only difference is the format of the XML, the destination Service and the condition under which the message is to be routed.
+ <p/>
+ As can be seen in the <a href="#high-level">04_Reptiles_notify_webservice_proxy Service configuration</a>, these SOAP messages are routed to the
+ ReptilesNotifyWS Webservice using the <code>HttpRouter</code>.
+
+ <h5 id="routing-05_Database">routing/route-to-05_Database.xml</h5>
+ This resource configuration file defines the routing resources for routing Order Item data to the Database:
+<pre>
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+ xmlns:db="http://www.milyn.org/xsd/smooks/db-routing-1.1.xsd">
+
+ <!--
+ The "OrderManagement" datasource is configured in the database/datasources.xml config file.
+ -->
+
+ <!--
+ This resource is needed because we only want to limit the number or orders inserted into the database,
+ so we need to count them...
+ -->
+ <db:executor executeOnElement="order-item" datasource="OrderManagement" executeBefore="true">
+ <db:statement><i class="commentedcode">select count(*) as "numOrders" from orders</i></db:statement>
+ <db:resultSet name="<span style="color: crimson;">orderCountRS</span>" />
+ </db:executor>
+
+ <!--
+ At the end of every order-item, insert the order details for that order item...
+ -->
+ <db:executor executeOnElement="order-item" datasource="OrderManagement" executeBefore="false">
+ <condition>
+ <!--
+ <span style="color: crimson;">orderCountRS</span>[0].numOrders < 10
+ -->
+ </condition>
+ <db:statement><i class="commentedcode">INSERT INTO ORDERS VALUES(${orderDetail.orderNum + "-" + product.PRODUCTID}, ${accounts[0].USERID}, ${orderDetail.date}, ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA', ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA','UPS',22.23, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME}, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME},'999 9999 9999 9999','12/03','Visa','CA')</i></db:statement>
+ </db:executor>
+
+</smooks-resource-list></pre>
+
+ The first resource simply queries the Orders table in the database to get a row count. It binds the result to the bean context
+ under the resultSetName (beanId) of "orderCountRS". This row count is then used as the condition on the second <code>SQLExecutor</code> resource,
+ which performs the inserts on the orders table.
+
+ </div>
+</div>
+
+</body>
+</html>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/invm_transport1/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/invm_transport1/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/invm_transport1/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,16 +1,16 @@
-Overview:
-=========
- This Quickstart Demonstrates the InVM Transport.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
+Overview:
+=========
+ This Quickstart Demonstrates the InVM Transport.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
4. In this folder ("Window1"), type 'ant undeploy'.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/jms_router/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/jms_router/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/jms_router/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,29 +1,29 @@
-Overview:
-=========
- The purpose of the jms_router quickstart is to show how the JMSRouter
- action can be configured.
- This quickstart also shows how a JMSCorrelationID can be used with the ESB.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
- 1. src/org/jboss/soa/esb/samples/quickstart/jmsrouter/test/SendJMSMessage
- Notice how the JMS Message is set with a correlationID.
- Notice how the receive from the response destination uses the
- correlation id.
-
- 2. jboss-esb.xml
- Take a look at how the JMSRouter can be configured.
-
+Overview:
+=========
+ The purpose of the jms_router quickstart is to show how the JMSRouter
+ action can be configured.
+ This quickstart also shows how a JMSCorrelationID can be used with the ESB.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+ 1. src/org/jboss/soa/esb/samples/quickstart/jmsrouter/test/SendJMSMessage
+ Notice how the JMS Message is set with a correlationID.
+ Notice how the receive from the response destination uses the
+ correlation id.
+
+ 2. jboss-esb.xml
+ Take a look at how the JMSRouter can be configured.
+
Modified: labs/jbossesb/trunk/product/samples/quickstarts/jms_secured/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/jms_secured/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/jms_secured/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,43 +1,43 @@
-Overview:
-=========
- The purpose of the jms_secured quickstart is to show how JMS destinations
- can be configured with security properties.
-
- This quickstart is exactly like the basic helloworld quickstart except that
- 'jms-security-principal' and 'jms-security-credential' properties are
- specified for the jms-bus elements.
-
- NOTE: this quickstart copies message-roles.properties and message-users.properties
- to ${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/conf/props,
+Overview:
+=========
+ The purpose of the jms_secured quickstart is to show how JMS destinations
+ can be configured with security properties.
+
+ This quickstart is exactly like the basic helloworld quickstart except that
+ 'jms-security-principal' and 'jms-security-credential' properties are
+ specified for the jms-bus elements.
+
+ NOTE: this quickstart copies message-roles.properties and message-users.properties
+ to ${org.jboss.esb.server.home}/server/${org.jboss.esb.server.config}/conf/props,
and this will require a server restart to function correctly.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
- 1. src/org/jboss/soa/esb/samples/quickstart/jmssecured/test/SendJMSMessage
- Notice how the username(gatewayuser) and password for the destination
- queue/quickstart_jms_secured_Request_gw is specified during the creation of
- the QueueConnection.
- 2. jbm-queue-service.xml (JBM) or jbmq-queue-service.xml
- Notice how quickstart_jmssecured_Request_gw is defined with a SecurityConfig
- attribute and specifies two roles. One is a gatewayrole, which is used by the
- SendJMSMessage class to publish messages to the destination. The 'gatewayrole'
- can only write to the destination and not read.
- 3. jboss-esb.xml
- The message-filter for the jms-bus now specifies 'jms-security-principal' and
- 'jms-security-credential'
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+ 1. src/org/jboss/soa/esb/samples/quickstart/jmssecured/test/SendJMSMessage
+ Notice how the username(gatewayuser) and password for the destination
+ queue/quickstart_jms_secured_Request_gw is specified during the creation of
+ the QueueConnection.
+ 2. jbm-queue-service.xml (JBM) or jbmq-queue-service.xml
+ Notice how quickstart_jmssecured_Request_gw is defined with a SecurityConfig
+ attribute and specifies two roles. One is a gatewayrole, which is used by the
+ SendJMSMessage class to publish messages to the destination. The 'gatewayrole'
+ can only write to the destination and not read.
+ 3. jboss-esb.xml
+ The message-filter for the jms-bus now specifies 'jms-security-principal' and
+ 'jms-security-credential'
4. messaging-users.properties and messaging-roles.properties
Simple properties files which are used when JBoss Messaging is configured for property file
based authentication. These files are copied to the conf/props directory of the jbossesb server
Modified: labs/jbossesb/trunk/product/samples/quickstarts/jms_topic/README.html
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/jms_topic/README.html 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/jms_topic/README.html 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,46 +1,46 @@
-<html>
- <head>
- <title>JBossESB - JMS Topic Quickstart</title>
- </head>
- <body>
- <h2>Overview</h2>
- This sample demonstrates how to configure a pair of Services to receive a message
- from the same JMS Topic via configurations of the <jms-listener> as a
- "topic" based gateway.
- <p/>
- This quickstart simply sends a message to a JMS topic, on which service "MyService1"
- and "MyService2" are listening. Both of these services then send a message to
- "MyService3".
-<pre>
- - -> MyService1 -> - |
- | |
- -> - "quickstart-topic" -| |- - - MyService3
- | |
- - -> MyService2 -> - |
-</pre>
-
- <h2>Prerequisits</h2>
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
- <h2>To Run</h2>
- <ol>
- <li>In a command terminal window in this folder ("Window1"), type 'ant deploy'.</li>
- <li>Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- </li>
- <li>Check "Window1" and "Window2" for output.</li>
- <li>To undeploy, type 'ant undeploy' in "Window1".</li>
- </ol>
-
- "Window1" should contain ESB Server side logging from the quickstart. The last 4 logs are the
- logs of interest, showing the message being "processed" by MyService1 and MyService2, which forward
- the messages on to MyService3.
- <p/>
- <img src="images/esb-console.png" />
- <p/>
- "Window2" should contain Client side logging from the quickstart.
- <p/>
- <img src="images/client-console.png" />
- </body>
-</html>
+<html>
+ <head>
+ <title>JBossESB - JMS Topic Quickstart</title>
+ </head>
+ <body>
+ <h2>Overview</h2>
+ This sample demonstrates how to configure a pair of Services to receive a message
+ from the same JMS Topic via configurations of the <jms-listener> as a
+ "topic" based gateway.
+ <p/>
+ This quickstart simply sends a message to a JMS topic, on which service "MyService1"
+ and "MyService2" are listening. Both of these services then send a message to
+ "MyService3".
+<pre>
+ - -> MyService1 -> - |
+ | |
+ -> - "quickstart-topic" -| |- - - MyService3
+ | |
+ - -> MyService2 -> - |
+</pre>
+
+ <h2>Prerequisits</h2>
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+ <h2>To Run</h2>
+ <ol>
+ <li>In a command terminal window in this folder ("Window1"), type 'ant deploy'.</li>
+ <li>Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ </li>
+ <li>Check "Window1" and "Window2" for output.</li>
+ <li>To undeploy, type 'ant undeploy' in "Window1".</li>
+ </ol>
+
+ "Window1" should contain ESB Server side logging from the quickstart. The last 4 logs are the
+ logs of interest, showing the message being "processed" by MyService1 and MyService2, which forward
+ the messages on to MyService3.
+ <p/>
+ <img src="images/esb-console.png" />
+ <p/>
+ "Window2" should contain Client side logging from the quickstart.
+ <p/>
+ <img src="images/client-console.png" />
+ </body>
+</html>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/load_generator/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/load_generator/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/load_generator/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,65 +1,65 @@
-Overview:
-=========
- The purpose of the load generator quickstart to provide a good load testing
- framework for ESB services. The files in this quickstart provide good TPS, Average TPS
- and load simulation for ESB services.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-Protected JMX
-=======================
- If access to JMX is secured on your server, after deploying this quickstart
- you will need to run the "ant runtest-secure" target, which takes a username
- and a password, instead of the "ant runtest" target.
-
-To Run '.esb' archive mode:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest' or 'ant runtest-secure'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy' and then 'ant undeploy-jms-dests'.
-
-Load Test Targets
-===========================
-runtest - Runs the load agent to simulate load and the load reporter to report on load
-runtest-secure - Runs the load agent to simulate load, and the load reporter authenticates to secure http
-load-agent - Simulates load only
-load-report - Report on load only
-
-NOTE: "runtest" will run the agent in a daemon thread, then start the reporter. This is
-a good target for running tests, but if there's a problem with JMSLoadAgent.groovy, you will
-not see it. Use the "load-agent" target to troubleshoot the agent script/properties.
-
-Key Files
-===========================
-./scripts/load.xml
-This is where you specify the properties of the load script and reporter. Things like
-the number of messages, throttling of load, services to report and more are listed here
-so you don't have to edit the groovy scripts.
-
-./scripts/JmsLoadAgent.groovy
-Simulates load by popping messages to a JMS Queue. Use load.properties to specify the JMS
-queue and the throttling of messages. This script is only good for JMS load simulation,
-but it can be used as a template for other types of simulation, like file drops.
-
-./scripts/LoadReport.groovy
-Reports load on services specified in load.xml. It will write output to the console and
-to the file system. The output is CSV based for now, but it's very easy to customize it in the
-groovy script.
-
-./scripts/payload.xml
-Payload that the load agent will use for JMS messages. If testing CBR or other payload sensitive services
-make sure that the message content is valid. You can specify any payload file in load.properties.
-
-./jboss-esb.xml
-This file has 2 services, DummyJMSLoad and DummyJMSLoad2. DummyJMSLoad processes faster than DummyJMSLoad2
-and it has a router to the DummyJMSLoad2 ESB listener queue. The use of the router is meant to demonstrate
-how one can monitor TPS of a service chain, not just a single service.
-
-
-
-
+Overview:
+=========
+ The purpose of the load generator quickstart to provide a good load testing
+ framework for ESB services. The files in this quickstart provide good TPS, Average TPS
+ and load simulation for ESB services.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+Protected JMX
+=======================
+ If access to JMX is secured on your server, after deploying this quickstart
+ you will need to run the "ant runtest-secure" target, which takes a username
+ and a password, instead of the "ant runtest" target.
+
+To Run '.esb' archive mode:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest' or 'ant runtest-secure'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+Load Test Targets
+===========================
+runtest - Runs the load agent to simulate load and the load reporter to report on load
+runtest-secure - Runs the load agent to simulate load, and the load reporter authenticates to secure http
+load-agent - Simulates load only
+load-report - Report on load only
+
+NOTE: "runtest" will run the agent in a daemon thread, then start the reporter. This is
+a good target for running tests, but if there's a problem with JMSLoadAgent.groovy, you will
+not see it. Use the "load-agent" target to troubleshoot the agent script/properties.
+
+Key Files
+===========================
+./scripts/load.xml
+This is where you specify the properties of the load script and reporter. Things like
+the number of messages, throttling of load, services to report and more are listed here
+so you don't have to edit the groovy scripts.
+
+./scripts/JmsLoadAgent.groovy
+Simulates load by popping messages to a JMS Queue. Use load.properties to specify the JMS
+queue and the throttling of messages. This script is only good for JMS load simulation,
+but it can be used as a template for other types of simulation, like file drops.
+
+./scripts/LoadReport.groovy
+Reports load on services specified in load.xml. It will write output to the console and
+to the file system. The output is CSV based for now, but it's very easy to customize it in the
+groovy script.
+
+./scripts/payload.xml
+Payload that the load agent will use for JMS messages. If testing CBR or other payload sensitive services
+make sure that the message content is valid. You can specify any payload file in load.properties.
+
+./jboss-esb.xml
+This file has 2 services, DummyJMSLoad and DummyJMSLoad2. DummyJMSLoad processes faster than DummyJMSLoad2
+and it has a router to the DummyJMSLoad2 ESB listener queue. The use of the router is meant to demonstrate
+how one can monitor TPS of a service chain, not just a single service.
+
+
+
+
Modified: labs/jbossesb/trunk/product/samples/quickstarts/messagealerts/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/messagealerts/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/messagealerts/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,22 +1,22 @@
-Overview:
-=========
- The purpose of the messagealert quickstart sample is to show how the ESB is
- can set off warnings when a message exceeds size or processing time limits.
- The ESB can monitor either services or actions for these message attributes.
-
- The threshold can be set on the jboss-esb.xml and can be changed later
- within the jmx-console.
-
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
+Overview:
+=========
+ The purpose of the messagealert quickstart sample is to show how the ESB is
+ can set off warnings when a message exceeds size or processing time limits.
+ The ESB can monitor either services or actions for these message attributes.
+
+ The threshold can be set on the jboss-esb.xml and can be changed later
+ within the jmx-console.
+
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/messagefilter/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/messagefilter/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/messagefilter/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,30 +1,30 @@
-Overview:
-=========
- The purpose of the messagefilter quickstart sample is to show how to filter
- a message based on content. Here we pass in an Order object and the FilterRules
- parse this object to looks for the quantity. If the quantity does not meet
- the threshold of 10, then the message is filter out. On the console you should
- see:
-
- [STDOUT] 9 Does not make the threshold
-
- In the build.xml you can change the default argument from '9' to '10' to see
-
- [STDOUT] 10 Makes the threshold
-
- In this case the message will get forwarded to the DemoService
- (service-category="Test" service-name="NextService") which prints out the
- message to the console.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
+Overview:
+=========
+ The purpose of the messagefilter quickstart sample is to show how to filter
+ a message based on content. Here we pass in an Order object and the FilterRules
+ parse this object to looks for the quantity. If the quantity does not meet
+ the threshold of 10, then the message is filter out. On the console you should
+ see:
+
+ [STDOUT] 9 Does not make the threshold
+
+ In the build.xml you can change the default argument from '9' to '10' to see
+
+ [STDOUT] 10 Makes the threshold
+
+ In this case the message will get forwarded to the DemoService
+ (service-category="Test" service-name="NextService") which prints out the
+ message to the console.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/messagestore/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/messagestore/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/messagestore/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,46 +1,46 @@
-Overview:
-=========
- The purpose of the messagestore quickstart sample is to show how to store
- a message in the MessageStore. The only interesting piece of configuration
- is:
-
- <!-- Add a copy of the message to the message store under categorization
- 'test' -->
- <action name="PersistAction" class="org.jboss.soa.esb.actions.MessagePersister" >
- <property name="classfication" value="test"/>
- <property name="message-store-class"
- value="org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl"
- />
- </action>
-
- Which causes a message to be saved in the DB messageStore under the
- categorization 'test'. Tooling will be added to inspect the messageStore.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
-
- src\quickstart\CheckMessageStoreAction.java:
- The action class that is identified in the esb-config.xml file and is called
- whenever a message is received.
-
- src\quickstart\helloworld\test\SendJMSMessage.java:
- Shoots in the string passed in via the command line or in this case the arg
- attribute in the ant runtest task.
-
- src\quickstart\helloworld\test\SendEsbMessage.java:
- Shoots in the string passed in via the command line or in this case the arg
- attribute in the ant sendesb task. This demonstrates how to build an "ESB
- aware" client that can invoke an ESB service.
+Overview:
+=========
+ The purpose of the messagestore quickstart sample is to show how to store
+ a message in the MessageStore. The only interesting piece of configuration
+ is:
+
+ <!-- Add a copy of the message to the message store under categorization
+ 'test' -->
+ <action name="PersistAction" class="org.jboss.soa.esb.actions.MessagePersister" >
+ <property name="classfication" value="test"/>
+ <property name="message-store-class"
+ value="org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl"
+ />
+ </action>
+
+ Which causes a message to be saved in the DB messageStore under the
+ categorization 'test'. Tooling will be added to inspect the messageStore.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+
+ src\quickstart\CheckMessageStoreAction.java:
+ The action class that is identified in the esb-config.xml file and is called
+ whenever a message is received.
+
+ src\quickstart\helloworld\test\SendJMSMessage.java:
+ Shoots in the string passed in via the command line or in this case the arg
+ attribute in the ant runtest task.
+
+ src\quickstart\helloworld\test\SendEsbMessage.java:
+ Shoots in the string passed in via the command line or in this case the arg
+ attribute in the ant sendesb task. This demonstrates how to build an "ESB
+ aware" client that can invoke an ESB service.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/monitoring_action/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,27 +1,27 @@
-Overview:
-=========
- The purpose of the monitoring_action quickstart sample is to show
- the use of the MVELMonitoringAction. This action will allow you to use
- MVEL patterns and expressions parsed through beanshell in order to store
- information from your messages.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
- NOTE:
- After running the quickstart, (ant runtest), go to jmx-console. You
- should be able to find the object :
-
- jboss.esb:category=MVELMonitor,deployment=Quickstart_monitoring_action.esb,service-name=SimpleListener
-
- Two of the messages should meet the expression and will be stored in the bean.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
+Overview:
+=========
+ The purpose of the monitoring_action quickstart sample is to show
+ the use of the MVELMonitoringAction. This action will allow you to use
+ MVEL patterns and expressions parsed through beanshell in order to store
+ information from your messages.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+ NOTE:
+ After running the quickstart, (ant runtest), go to jmx-console: http://localhost:8080/jmx-console/
+ You should be able to find the object :
+
+ jboss.esb:category=MVELMonitor,deployment=Quickstart_monitoring_action.esb,service-name=SimpleListener
+
+ Two of the messages should meet the expression and will be stored in the bean.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/native_client/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/native_client/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/native_client/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -53,4 +53,6 @@
<echo>3. Check your ESB Server console again. The Quickstart should have produced some output.</echo>
<echo message='******************' />
</target>
+
+ <target name="runtest" depends="display-instructions"/>
</project>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -37,22 +37,4 @@
<classpath refid="exec-classpath"/>
</java>
</target>
-
- <target name="sendesb" depends="compile" description="send esb Message to esb service">
- <echo>Send esb message to esb service and get response</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
- <arg value="ESBServiceSample"/> <!-- service category -->
- <arg value="HelloWorldPubService"/> <!-- service name -->
- <arg value="HelloWorld"/> <!-- Message text -->
- <classpath refid="exec-classpath"/>
- </java>
- <echo>Send esb message to esb service and get error</echo>
- <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
- <arg value="ESBServiceSample"/> <!-- service category -->
- <arg value="HelloWorldPubService"/> <!-- service name -->
- <arg value="Error"/> <!-- Message text -->
- <classpath refid="exec-classpath"/>
- </java>
-
- </target>
</project>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,58 +1,52 @@
-Overview:
-=========
- The purpose of the publish_as_webservice quickstart sample is to demonstrate how to
- publish a esb service as a web service.
-
- This quickstart also demonstrates how messages can be validate by JBossESB by configuring
- a service for validation and how schemas imports are used.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Open another command terminal window in this folder ("Window2"), type
- 'ant sendesb'.
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-To Run from Soapui:
-===========================
- 1. Use the following URL: 'http://127.0.0.1:8080/Quickstart_publish_as_webservice/ebws/ESBServiceSample/HelloWorldPubService?wsdl'.
- 2. Copy the contents of soap-userpass-message.xml.
- 3. Exceute the web service call from soapui.
-
-======================================
- 1. runtest ant target
- This target will call the SOAPTest client twice, first call will be with a valid SOAP message
- and the second call will generate a SOAPFault to be retured.
-
- 2. sendesb ant target
- This target will call the SendEsbMessage twice. The first call will be with a valid message body content
- and the second will generate a FaultMessageException.
-
-What to look for in this quickstart
-===================================
- 1. Message validation
- Validation of request and response messages can be enabled by setting the 'validate' attribute to true.
- For example:
- <actions inXsd="/request.xsd" outXsd="/response.xsd" faultXsd="/fault.xsd" validate="true">
- ...
- </actions>
-
- 2. Schema imports
- Schema import elements are used to add multiple schemas with different target namespaces to a document.
- All schemas are packaged in a lib/schemas.jar.
-
- a) Take a look the import element in request.xsd:
- <xs:import namespace="http://www.jboss.org/custom-request" schemaLocation="custom-request-type.xsd"/>
- This custom-request-type.xsd should in this case be packaged in the root of the schemas.jar
-
- b) Another example can be found in response.xsd:
- <xs:import namespace="http://www.jboss.org/custom-response" schemaLocation="imports/custom-response-type.xsd"/>
- In this case the xsd has is located in a directory named 'imports' in the schemas.jar
-
+Overview:
+=========
+ The purpose of the publish_as_webservice quickstart sample is to demonstrate how to
+ publish a esb service as a web service.
+
+ This quickstart also demonstrates how messages can be validate by JBossESB by configuring
+ a service for validation and how schemas imports are used.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. In this folder ("Window1"), type 'ant undeploy'.
+
+To Run from Soapui:
+===========================
+ 1. Use the following URL: 'http://127.0.0.1:8080/Quickstart_publish_as_webservice/ebws/ESBServiceSample/HelloWorldPubService?wsdl'.
+ 2. Copy the contents of soap-userpass-message.xml.
+ 3. Exceute the web service call from soapui.
+
+======================================
+ 1. runtest ant target
+ This target will call the SOAPTest client twice, first call will be with a valid SOAP message
+ and the second call will generate a SOAPFault to be retured.
+
+What to look for in this quickstart
+===================================
+ 1. Message validation
+ Validation of request and response messages can be enabled by setting the 'validate' attribute to true.
+ For example:
+ <actions inXsd="/request.xsd" outXsd="/response.xsd" faultXsd="/fault.xsd" validate="true">
+ ...
+ </actions>
+
+ 2. Schema imports
+ Schema import elements are used to add multiple schemas with different target namespaces to a document.
+ All schemas are packaged in a lib/schemas.jar.
+
+ a) Take a look the import element in request.xsd:
+ <xs:import namespace="http://www.jboss.org/custom-request" schemaLocation="custom-request-type.xsd"/>
+ This custom-request-type.xsd should in this case be packaged in the root of the schemas.jar
+
+ b) Another example can be found in response.xsd:
+ <xs:import namespace="http://www.jboss.org/custom-response" schemaLocation="imports/custom-response-type.xsd"/>
+ In this case the xsd has is located in a directory named 'imports' in the schemas.jar
+
Deleted: labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,82 +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.
- */
-
-package org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test;
-
-import java.util.Set;
-import java.io.Serializable;
-import java.util.HashSet;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.services.security.SecurityService;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.principals.User;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.couriers.FaultMessageException;
-import org.jboss.soa.esb.services.security.PublicCryptoUtil;
-
-/**
- * Standalone class with to send ESB messages to a 'known' [category,name].
- * <p/> arg0 - service category
- * <br/>arg1 - service name
- * <br/>arg2 - Text of message to send
- *
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
- * @since Version 4.0
- *
- */
-public class SendEsbMessage
-{
- public static void main(String args[]) throws Exception
- {
-// Setting the ConnectionFactory such that it will use scout
- System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
-
- if (args.length < 3)
- {
- System.out.println("Usage SendEsbMessage <category> <name> <text to send>");
- }
- Message esbMessage = MessageFactory.getInstance().getMessage();
-
- final String message = "<say:sayHi xmlns:say=\"http://www.jboss.org/sayHi\"><say:arg0>" + args[2] + "</say:arg0></say:sayHi>" ;
- esbMessage.getBody().add(message);
-
- ServiceInvoker invoker = new ServiceInvoker(args[0], args[1]);
-
- Message response = null;
- try {
- response= invoker.deliverSync(esbMessage, 3000);
- System.out.println(response.getBody().get());
- } catch (final FaultMessageException fme) {
- final Message returnedMessage = fme.getReturnedMessage() ;
- System.out.println("Received a fault message exception") ;
- System.out.println("\tMessage: " + fme.getMessage()) ;
- System.out.println("\tCode: " + fme.getCode()) ;
- System.out.println("\tCause: " + fme.getCause()) ;
- System.out.println("\tReturned message: " + returnedMessage) ;
- }catch(Exception ex) {
- ex.printStackTrace();
- }
- System.exit(0);
- }
-}
Modified: labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -16,20 +16,25 @@
<arg value="soap-userpass-message.xml"/>
<classpath refid="exec-classpath"/>
</java>
+ <echo>Send soap message to published web service and receive reponse</echo>
+ <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SOAPTest" failonerror="true">
+ <arg value="error-soap-message.xml"/>
+ <classpath refid="exec-classpath"/>
+ </java>
</target>
<target name="sendesb" depends="compile" description="send esb Message to esb service">
<echo>Send esb message to esb service and get response</echo>
<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
<arg value="ESBServiceSample"/> <!-- service category -->
- <arg value="HelloWorldPubService"/> <!-- service name -->
+ <arg value="HelloWorldPubServiceInOnly"/> <!-- service name -->
<arg value="HelloWorld"/> <!-- Message text -->
<classpath refid="exec-classpath"/>
</java>
<echo>Send esb message to esb service and get error</echo>
<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
<arg value="ESBServiceSample"/> <!-- service category -->
- <arg value="HelloWorldPubService"/> <!-- service name -->
+ <arg value="HelloWorldPubServiceInOnly"/> <!-- service name -->
<arg value="Error"/> <!-- Message text -->
<classpath refid="exec-classpath"/>
</java>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -30,7 +30,11 @@
</actions>
</service>
- <service category="ESBServiceSample" name="FaultService" description="Hello world ESB Service" invmScope="GLOBAL">
+ <service
+ category="ESBServiceSample"
+ name="FaultService"
+ description="Hello world ESB Fault Service"
+ invmScope="GLOBAL">
<actions mep="OneWay">
<action name="action" class="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.FaultHandlerAction" />
</actions>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,33 +1,33 @@
-Overview:
-=========
- The purpose of the publish_as_webservice_inonly quickstart sample is to demonstrate how to
- publish an OneWay (In-Only) esb service as a web service.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Open another command terminal window in this folder ("Window2"), type
- 'ant sendesb'.
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-To Run from Soapui:
-===========================
- 1. Use the following URL: 'http://127.0.0.1:8080/Quickstart_publish_as_webservice_inonly/ebws/ESBServiceSample/HelloWorldPubServiceInOnly?wsdl'.
- 2. Copy the contents of soap-userpass-message.xml.
- 3. Exceute the web service call from soapui.
-
-======================================
- 1. runtest ant target
- This target will call the SOAPTest client twice, first call will be with a valid SOAP message
- and the second call will generate a SOAPFault to be retured.
-
- 2. sendesb ant target
- This target will call the SendEsbMessage twice. The first call will be with a valid message body content
- and the second will generate a FaultMessageException.
+Overview:
+=========
+ The purpose of the publish_as_webservice_inonly quickstart sample is to demonstrate how to
+ publish an OneWay (In-Only) esb service as a web service.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Open another command terminal window in this folder ("Window2"), type
+ 'ant sendesb'.
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+To Run from Soapui:
+===========================
+ 1. Use the following URL: 'http://127.0.0.1:8080/Quickstart_publish_as_webservice_inonly/ebws/ESBServiceSample/HelloWorldPubServiceInOnly?wsdl'.
+ 2. Copy the contents of soap-userpass-message.xml.
+ 3. Exceute the web service call from soapui.
+
+======================================
+ 1. runtest ant target
+ This target will call the SOAPTest client twice, first call will be with a valid SOAP message
+ and the second call will generate a fault.
+
+ 2. sendesb ant target
+ This target will call the SendEsbMessage twice. The first call will be with a valid message body content
+ and the second will generate a FaultMessageException.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -5,7 +5,6 @@
<soap:Body>
<say:sayHi>
<say:arg0>HelloWorld</say:arg0>
- </say:sayHi>"
+ </say:sayHi>
</soap:Body>
-
</soap:Envelope>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java 2010-07-30 23:01:09 UTC (rev 34428)
@@ -42,7 +42,7 @@
postMethod.setRequestEntity(requestEntity);
try {
client.executeMethod(postMethod);
- System.out.println("Response from web service");
+ System.out.println("Response from web service (should be empty since this is \"inonly\")");
System.out.println("[" + postMethod.getResponseBodyAsString() + "]");
} catch (HttpException e) {
// TODO Auto-generated catch block
Modified: labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java 2010-07-30 23:01:09 UTC (rev 34428)
@@ -60,6 +60,7 @@
Message esbMessage = MessageFactory.getInstance().getMessage();
final String message = "<say:sayHi xmlns:say=\"http://www.jboss.org/sayHi\"><say:arg0>" + args[2] + "</say:arg0></say:sayHi>" ;
+
esbMessage.getBody().add(message);
ServiceInvoker invoker = new ServiceInvoker(args[0], args[1]);
Modified: labs/jbossesb/trunk/product/samples/quickstarts/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,84 +1,84 @@
-Please run 'ant help-quickstarts' from any quickstart project or read
-conf/readme.txt for information about running the quickstarts
-
-The purpose of the quickstart samples is to illustrate various JBoss ESB product
-features and general "how tos".
-
-If you have any suggestions for future samples or simply have a suggestion for
-improving on the ones contained here simply post on the JBoss ESB User Forum
-with "quickstart" in the subject line and a description of your thoughts.
-
-Each quickstart has its own readme.txt file that should be reviewed carefully.
-This can also be displayed by running 'ant help'.
-Run 'ant -p' to see which targets are available for each quickstart.
-
-If you wish to run the quickstarts against a different server then the one that
-you deployed to when you ran 'ant deploy' in the product/install directory then
-you can modify this file to point to your specific version of JBoss AS.
-org.jboss.esb.server.home=/opt/jboss/jboss405-GA
-jboss.server=quickstarts
-
-
-Prerequisites:
-- Assumes you are comfortable working at the command line with Ant
-- Assumes you are running JBossMQ or JBossMessaging on JBoss Application Server.
- Other JMS solutions should work as well but the configuration files contained
- in the quickstarts are focused on those.
-- Assumes you have properly configured the JBoss ESB. If you are using JBoss
- Application Server 4.2 simply go into the "install" folder for the JBoss ESB,
- modify the deployment.properties file and run "ant". Make sure to have the
- App Server turned "off" while this process is occuring.
- This process will add the JBoss ESB artifacts to your JBoss Application
- Server.
-- All of these examples use RMI-based registration.
-
-The following is a brief outline of some of the various quickstarts. If this is
-your first time working with the JBoss ESB we recommend at least trying
-"helloworld", "helloworld_action" and "more_action".
-
-* helloworld - Uses a JMS Gateway combined with a Listener. If this is your
- first time using the JBoss ESB then start by exercising this simple
- "Hello World" example.
-
-* helloworld_action - Builds on the concepts of the helloworld example but also
- show the use of multiple methods in a given action, how to "chain" action
- invocations into a particular sequence for a listener and how to respond
- (request/reply). This example uses the notification feature.
-
-* custom_action - demonstrates numerous tips & tricks to using the JBoss ESB
- actions. The first option shows what happens if you don't specify a "process"
- attribute. The second option illustrates how to make multiple method calls of
- a since action class instance. The third option shows you how to create your
- own custom attributes and child elements for the action tag.
-
-* transform_XML2POJO - Shows you how to setup a basic Smooks-based
- transformation to convert an XML document into Java POJOs.
-
-* simple_cbr - demonstrates how to use JBoss Rules and the Content-based Router
- Action for determining how a particular message should follow through the
- various services. This example also shows you that you can setup multiple
- services in a single esb-config.xml.
-
-* fun_cbr - demonstrates the JBoss ESB's capability for hot deployment both of
- the CBR rules and the jbossesb.xml configuration file.
-
-* business_service - JBoss ESB actions are custom mediators. Their not
- specifically focused on business logic. This example demonstrates how to
- invoke an EJB3 stateless session bean (plus how to build a deploy an EJB3
- SLSB on the JBoss AS). The SLSB is where your business logic can go. Feel
- free to use your favorite middle-tier component for handling business logic
- (e.g. business validation, persistence).
-
-* native_client - demonstrates how to create a 181 Web Service and use it as
- the front-end to the ESB. This also demonstrates a synchronous call into the
- bus service.
-
-* static_router - is primarily interesting because it is completely JMS-less.
- It uses FTP and File drop monitoring to move a message and send it out to
- multiple endpoints.
-
-* aggregator - demonstrations how to use the Splitter/Aggregator capabilities of
- JBoss ESB. It uses the Transformation engine as well as the static-routing
- feature. It also demonstrations the use of multiple JVMs running different
- services.
- This is a fairly advanced demonstration.
+Please run 'ant help-quickstarts' from any quickstart project or read
+conf/readme.txt for information about running the quickstarts
+
+The purpose of the quickstart samples is to illustrate various JBoss ESB product
+features and general "how tos".
+
+If you have any suggestions for future samples or simply have a suggestion for
+improving on the ones contained here simply post on the JBoss ESB User Forum
+with "quickstart" in the subject line and a description of your thoughts.
+
+Each quickstart has its own readme.txt file that should be reviewed carefully.
+This can also be displayed by running 'ant help'.
+Run 'ant -p' to see which targets are available for each quickstart.
+
+If you wish to run the quickstarts against a different server then the one that
+you deployed to when you ran 'ant deploy' in the product/install directory then
+you can modify this file to point to your specific version of JBoss AS.
+org.jboss.esb.server.home=/opt/jboss/jboss405-GA
+jboss.server=quickstarts
+
+
+Prerequisites:
+- Assumes you are comfortable working at the command line with Ant
+- Assumes you are running JBossMQ or JBossMessaging on JBoss Application Server.
+ Other JMS solutions should work as well but the configuration files contained
+ in the quickstarts are focused on those.
+- Assumes you have properly configured the JBoss ESB. If you are using JBoss
+ Application Server 4.2 simply go into the "install" folder for the JBoss ESB,
+ modify the deployment.properties file and run "ant". Make sure to have the
+ App Server turned "off" while this process is occuring.
+ This process will add the JBoss ESB artifacts to your JBoss Application
+ Server.
+- All of these examples use RMI-based registration.
+
+The following is a brief outline of some of the various quickstarts. If this is
+your first time working with the JBoss ESB we recommend at least trying
+"helloworld", "helloworld_action" and "more_action".
+
+* helloworld - Uses a JMS Gateway combined with a Listener. If this is your
+ first time using the JBoss ESB then start by exercising this simple
+ "Hello World" example.
+
+* helloworld_action - Builds on the concepts of the helloworld example but also
+ show the use of multiple methods in a given action, how to "chain" action
+ invocations into a particular sequence for a listener and how to respond
+ (request/reply). This example uses the notification feature.
+
+* custom_action - demonstrates numerous tips & tricks to using the JBoss ESB
+ actions. The first option shows what happens if you don't specify a "process"
+ attribute. The second option illustrates how to make multiple method calls of
+ a since action class instance. The third option shows you how to create your
+ own custom attributes and child elements for the action tag.
+
+* transform_XML2POJO - Shows you how to setup a basic Smooks-based
+ transformation to convert an XML document into Java POJOs.
+
+* simple_cbr - demonstrates how to use JBoss Rules and the Content-based Router
+ Action for determining how a particular message should follow through the
+ various services. This example also shows you that you can setup multiple
+ services in a single esb-config.xml.
+
+* fun_cbr - demonstrates the JBoss ESB's capability for hot deployment both of
+ the CBR rules and the jbossesb.xml configuration file.
+
+* business_service - JBoss ESB actions are custom mediators. Their not
+ specifically focused on business logic. This example demonstrates how to
+ invoke an EJB3 stateless session bean (plus how to build a deploy an EJB3
+ SLSB on the JBoss AS). The SLSB is where your business logic can go. Feel
+ free to use your favorite middle-tier component for handling business logic
+ (e.g. business validation, persistence).
+
+* native_client - demonstrates how to create a 181 Web Service and use it as
+ the front-end to the ESB. This also demonstrates a synchronous call into the
+ bus service.
+
+* static_router - is primarily interesting because it is completely JMS-less.
+ It uses FTP and File drop monitoring to move a message and send it out to
+ multiple endpoints.
+
+* aggregator - demonstrations how to use the Splitter/Aggregator capabilities of
+ JBoss ESB. It uses the Transformation engine as well as the static-routing
+ feature. It also demonstrations the use of multiple JVMs running different
+ services.
+ This is a fairly advanced demonstration.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/recipient_list/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,72 +1,72 @@
-Overview:
-=========
- The purpose of the recipient list quickstart sample is demonstrate the
- recipient list EIP pattern (as defined here:
- http://www.enterpriseintegrationpatterns.com/RecipientList.html) using a
- static router as implemented in org.jboss.soa.esb.actions.StaticRouter and a
- content based router (CBR) as implemented in
- org.jboss.soa.esb.actions.ContentBasedRouter
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. In a command terminal window in this folder ("Window2"), type
- 'ant receive-destination'.
- 3. In a command terminal window in this folder ("Window3"), type
- 'ant receive-destination1'.
- 4. In a command terminal window in this folder ("Window4"), type
- 'ant receive-destination2'.
- 5. Open another command terminal window in this folder ("Window5"), type
- 'ant runtest-cbr'.
- 6. Switch back to Application Server and receiver consoles to see the output
- from the ESB
- 7. When finished, interrupt the receivers using Ctrl-C and, in folder
- "Window1", type 'ant undeploy'.
-
-Things to Consider:
-===================
- You can modify the "totalAmount" element value in SampleOrder.xml to control
- the path that is followed thru the CBR. The valid ranges of values are less
- than 100 or greater than 99.99 - the behavior modeled is suggested in the
- EIP pattern definition, that being a credit account monitor where purchases
- below a certain cost are reviewed by a single credit agency while purchases
- above a certain cost are reviewed by that same credit agency and two
- additional credit agencies.
-
- The quickstart makes use of the queues illustrated (the queues are shown
- in boxes) in the following diagram. You might review the build.xml file to
- see how it is setup. More details on the build.xml can be found later in
- this document.
-
- application initiated
- |
- |
- V
- ----------------------------- ---------------------------------
- |qsrecipientlist_cbr_Request| -----------> |qsrecipientlist_regular_Request|---> output below 100.00
- ----------------------------- ---------------------------------
- | /
- | /
- V |
---------------------------------------- | ---------------------------
-|qsrecipientlist_static_router_Request| ---> |qsrecipientlist_1_Request|---> output above 99.99
---------------------------------------- | ---------------------------
- |
- \
- \ ---------------------------
- |qsrecipientlist_2_Request|---> output above 99.99
- ---------------------------
-
-
- * build.xml - This quickstart implements the following additional targets:
- * runtest - send message thru gateway listener in MyJMSListener directly to
- destination queue
- * static-router - send message thru static router gateway in
- org.jboss.soa.esb.actions.StaticRouter
- * runtest-cbr - send message thru CBR router gateway in
- org.jboss.soa.esb.actions.ContentBasedRouter
+Overview:
+=========
+ The purpose of the recipient list quickstart sample is demonstrate the
+ recipient list EIP pattern (as defined here:
+ http://www.enterpriseintegrationpatterns.com/RecipientList.html) using a
+ static router as implemented in org.jboss.soa.esb.actions.StaticRouter and a
+ content based router (CBR) as implemented in
+ org.jboss.soa.esb.actions.ContentBasedRouter
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. In a command terminal window in this folder ("Window2"), type
+ 'ant receive-destination'.
+ 3. In a command terminal window in this folder ("Window3"), type
+ 'ant receive-destination1'.
+ 4. In a command terminal window in this folder ("Window4"), type
+ 'ant receive-destination2'.
+ 5. Open another command terminal window in this folder ("Window5"), type
+ 'ant runtest-cbr'.
+ 6. Switch back to Application Server and receiver consoles to see the output
+ from the ESB
+ 7. When finished, interrupt the receivers using Ctrl-C and, in folder
+ "Window1", type 'ant undeploy'.
+
+Things to Consider:
+===================
+ You can modify the "totalAmount" element value in SampleOrder.xml to control
+ the path that is followed thru the CBR. The valid ranges of values are less
+ than 100 or greater than 99.99 - the behavior modeled is suggested in the
+ EIP pattern definition, that being a credit account monitor where purchases
+ below a certain cost are reviewed by a single credit agency while purchases
+ above a certain cost are reviewed by that same credit agency and two
+ additional credit agencies.
+
+ The quickstart makes use of the queues illustrated (the queues are shown
+ in boxes) in the following diagram. You might review the build.xml file to
+ see how it is setup. More details on the build.xml can be found later in
+ this document.
+
+ application initiated
+ |
+ |
+ V
+ ----------------------------- ---------------------------------
+ |qsrecipientlist_cbr_Request| -----------> |qsrecipientlist_regular_Request|---> output below 100.00
+ ----------------------------- ---------------------------------
+ | /
+ | /
+ V |
+--------------------------------------- | ---------------------------
+|qsrecipientlist_static_router_Request| ---> |qsrecipientlist_1_Request|---> output above 99.99
+--------------------------------------- | ---------------------------
+ |
+ \
+ \ ---------------------------
+ |qsrecipientlist_2_Request|---> output above 99.99
+ ---------------------------
+
+
+ * build.xml - This quickstart implements the following additional targets:
+ * runtest - send message thru gateway listener in MyJMSListener directly to
+ destination queue
+ * static-router - send message thru static router gateway in
+ org.jboss.soa.esb.actions.StaticRouter
+ * runtest-cbr - send message thru CBR router gateway in
+ org.jboss.soa.esb.actions.ContentBasedRouter
Modified: labs/jbossesb/trunk/product/samples/quickstarts/scheduled_services/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/scheduled_services/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/scheduled_services/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,27 +1,27 @@
-Overview:
-=========
- The purpose of the scheduled_services quickstart example is to demonstrate
- a service that is time triggered.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Switch back to Application Server console to see the output from the ESB
- 3. In this folder ("Window1"), type 'ant undeploy'.
-
-Things to Consider:
-===================
- In jboss-esb.xml
- <scheduled-listener name="my_scheduled_listener"
- scheduleidref="3-sec-trigger"
- event-processor="org.jboss.soa.esb.samples.quickstart.scheduler.MyScheduledActionMsgComposer" />
-
- MyScheduledActionMsgComposer is a class that you develop that allows you to
- create an ESB Message for the action pipeline. Your composer might pull data
- in from an RSS feed, an email account or particularly any resource and then convert
- that data into an ESB Message.
+Overview:
+=========
+ The purpose of the scheduled_services quickstart example is to demonstrate
+ a service that is time triggered.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Switch back to Application Server console to see the output from the ESB
+ 3. In this folder ("Window1"), type 'ant undeploy'.
+
+Things to Consider:
+===================
+ In jboss-esb.xml
+ <scheduled-listener name="my_scheduled_listener"
+ scheduleidref="3-sec-trigger"
+ event-processor="org.jboss.soa.esb.samples.quickstart.scheduler.MyScheduledActionMsgComposer" />
+
+ MyScheduledActionMsgComposer is a class that you develop that allows you to
+ create an ESB Message for the action pipeline. Your composer might pull data
+ in from an RSS feed, an email account or particularly any resource and then convert
+ that data into an ESB Message.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -17,7 +17,7 @@
<import file="../conf/base-build.xml"/>
<target name="runtest" depends="compile" description="send esb Message to esb service">
- <echo>Send esb message to esb service and get response</echo>
+ <echo>Send esb message to esb service</echo>
<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securityjbpm.test.SendEsbMessage" failonerror="true">
<arg value="ESBServiceSample"/> <!-- service category -->
<arg value="HelloWorldStartServiceProcess"/> <!-- service name -->
Modified: labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,57 +1,57 @@
-Overview:
-=========
- The purpose of the security_jbpm quickstart demonstrate security integration with jBPM and JBossESB.
- There are three services in this quickstart and a jBPM process to orchestrate these services.
-
- All of the services print the Subject instance information to show the security Principals.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. Type 'ant deploy' -- Will deploy the ESB process archive(.esb). And copy esb-users.properties and esb-roles.properties to <serverName>config/props
+Overview:
+=========
+ The purpose of the security_jbpm quickstart demonstrate security integration with jBPM and JBossESB.
+ There are three services in this quickstart and a jBPM process to orchestrate these services.
+
+ All of the services print the Subject instance information to show the security Principals.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. Type 'ant deploy' -- Will deploy the ESB process archive(.esb). And copy esb-users.properties and esb-roles.properties to <serverName>config/props
2. Copy the contents of login-config.xml to <serverName>/conf/login-config.xml -- This adds the login module.
3. Start server -- Required so that the properties files will be picked up.
- 4. Type 'ant deployProcess' -- Will deploy the jBPM HelloWorld processdefinition.
- 5. Type 'ant runtest' -- Will invoke the service by using the ServiceInvoker.
-
-
-What to look for in this quickstart
-===================================
- Flow of events:
- 1. 'ant runtest' invokes the ESB using the ServiceInoker and calls the Service 'HelloWorldStartServiceProcess'.
- This ESB service prints the following to the server console window:
- INFO [STDOUT] 'ServiceName 'HelloWorldStartServiceProcess'. Subject:Subject:
- Principal: esbuser
- Principal: Roles(members:esbrole)
- Principal: [groupName=Roles, members=[[roleName=adminRole]]]
-
- 2. HelloWorldStartServiceProcess start the jBPM process. The process-definition-name is 'helloworld' and
- can be found in processDefinitions/processdefinition.xml.
-
- 3. The jBPM process will call out to the ESB service named 'HelloWorldService1'.
- This ESB service prints the following to the server console window:
- INFO [STDOUT] 'ServiceName 'HelloWorldService1'. Subject:Subject:
- Principal: esbuser
- Principal: Roles(members:esbrole)
- Principal: [groupName=Roles, members=[[roleName=adminRole]]]
- Next this service will route to 'HelloWorldService2'
-
- 4. This ESB service prints the following to the server console window:
- INFO [STDOUT] 'ServiceName 'HelloWorldService2'. Subject:Subject:
- Principal: esbuser
- Principal: Roles(members:esbrole)
- Principal: [groupName=Roles, members=[[roleName=adminRole]]]
-
- Things to try:
- * Try commenting out the security configuration for 'HelloWorldService1'. Notice how the subject is not set for
- the service in this case, but the following service still works as expected.
-
-
-
-
-
-
+ 4. Type 'ant deployProcess' -- Will deploy the jBPM HelloWorld processdefinition.
+ 5. Type 'ant runtest' -- Will invoke the service by using the ServiceInvoker.
+
+
+What to look for in this quickstart
+===================================
+ Flow of events:
+ 1. 'ant runtest' invokes the ESB using the ServiceInoker and calls the Service 'HelloWorldStartServiceProcess'.
+ This ESB service prints the following to the server console window:
+ INFO [STDOUT] 'ServiceName 'HelloWorldStartServiceProcess'. Subject:Subject:
+ Principal: esbuser
+ Principal: Roles(members:esbrole)
+ Principal: [groupName=Roles, members=[[roleName=adminRole]]]
+
+ 2. HelloWorldStartServiceProcess start the jBPM process. The process-definition-name is 'helloworld' and
+ can be found in processDefinitions/processdefinition.xml.
+
+ 3. The jBPM process will call out to the ESB service named 'HelloWorldService1'.
+ This ESB service prints the following to the server console window:
+ INFO [STDOUT] 'ServiceName 'HelloWorldService1'. Subject:Subject:
+ Principal: esbuser
+ Principal: Roles(members:esbrole)
+ Principal: [groupName=Roles, members=[[roleName=adminRole]]]
+ Next this service will route to 'HelloWorldService2'
+
+ 4. This ESB service prints the following to the server console window:
+ INFO [STDOUT] 'ServiceName 'HelloWorldService2'. Subject:Subject:
+ Principal: esbuser
+ Principal: Roles(members:esbrole)
+ Principal: [groupName=Roles, members=[[roleName=adminRole]]]
+
+ Things to try:
+ * Try commenting out the security configuration for 'HelloWorldService1'. Notice how the subject is not set for
+ the service in this case, but the following service still works as expected.
+
+
+
+
+
+
Modified: labs/jbossesb/trunk/product/samples/quickstarts/security_saml/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_saml/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/security_saml/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -46,6 +46,10 @@
</copy>
</target>
+ <target name="quickstart-specific-clean">
+ <delete file="${basedir}/login-config.xml"/>
+ </target>
+
<target name="runtest" depends="compile"
description="sends a HTTP request to the JBossRemoting gateway">
<echo>Http Client</echo>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/simple_cbr/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/simple_cbr/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/simple_cbr/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,36 +1,36 @@
-Overview:
-=========
- The purpose of the simple_cbr quickstart is to demonstrate the Content Based
- Router in JBoss ESB.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. In a command terminal window in this folder ("Window2"), type
- 'ant receiveExpress'.
- 3. In a command terminal window in this folder ("Window3"), type
- 'ant receiveNormal'.
- 4. Open another command terminal window in this folder ("Window4"), type
- 'ant runtest'.
- 5. Switch back to Application Server console, "Window2" and "Window3" to see
- the output from the ESB
- 6. When finished, interrupt the receivers using Ctrl-C and, in folder
- "Window1", type 'ant undeploy'.
-
-Things to Consider:
-===================
- - Use a text editor to change the "totalAmount" in the order above/below $50
- and re-execute ant runtest to see the order flash up in the different
- receivers.
-
- <Order orderId="1" orderDate="Wed Nov 15 13:45:28 EST 2006" statusCode="0"
- netAmount="59.97" totalAmount="64.92" tax="4.95">
-
- - SimpleCBRRules-XPath.drl is a JBoss Rules ruleset that has simple logic that
- evaluates the totalAmount attribute of the SampleOrder.xml. Over $50 means
- Free Express shipping, Under $50 means Normal shipping.
+Overview:
+=========
+ The purpose of the simple_cbr quickstart is to demonstrate the Content Based
+ Router in JBoss ESB.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. In a command terminal window in this folder ("Window2"), type
+ 'ant receiveExpress'.
+ 3. In a command terminal window in this folder ("Window3"), type
+ 'ant receiveNormal'.
+ 4. Open another command terminal window in this folder ("Window4"), type
+ 'ant runtest'.
+ 5. Switch back to Application Server console, "Window2" and "Window3" to see
+ the output from the ESB
+ 6. When finished, interrupt the receivers using Ctrl-C and, in folder
+ "Window1", type 'ant undeploy'.
+
+Things to Consider:
+===================
+ - Use a text editor to change the "totalAmount" in the order above/below $50
+ and re-execute ant runtest to see the order flash up in the different
+ receivers.
+
+ <Order orderId="1" orderDate="Wed Nov 15 13:45:28 EST 2006" statusCode="0"
+ netAmount="59.97" totalAmount="64.92" tax="4.95">
+
+ - SimpleCBRRules-XPath.drl is a JBoss Rules ruleset that has simple logic that
+ evaluates the totalAmount attribute of the SampleOrder.xml. Over $50 means
+ Free Express shipping, Under $50 means Normal shipping.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/smooks_file_splitter_router/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/smooks_file_splitter_router/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/smooks_file_splitter_router/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -34,6 +34,10 @@
</target>
+ <target name="quickstart-specific-clean">
+ <delete file="${basedir}/${jbossesb.name}"/>
+ </target>
+
<target name="config">
<delete dir="${jbossesb.rootdir}" quiet="true"/>
<mkdir dir="${jbossesb.rootdir}"/>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/smooks_file_splitter_router/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/smooks_file_splitter_router/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/smooks_file_splitter_router/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,56 +1,56 @@
-Overview:
-=========
- This quickstart demonstrates JBossESB ability to process large files.
-
- The quickstart works as follows:
- 1. There are 2 Services:
- a) Splitter Service
- b) Receiver Service
- 2. The Splitter Service picks up an XML order message via the File Gateway (<fs-listener>).
- The <fs-listener> is configured with the FileStreamSplitter, which applies a Smooks
- message splitting process (defined in smooks-config.xml). This process splits the
- XML message, routing XML message fragments to the Receiver Service.
- 3. The Smooks splitting process works by streaming the XML message and while doing so:
- a) Extracts data from the order header details and places it in a "header" bean.
- b) Extracts data from the order item and places it in a "orderItem" bean. It only
- ever has the details of a single order item in memory at any given time. This
- is what allows it to process a huge message stream.
- c) As it passes each order item, applys a FreeMarker template to the data in the bean
- context ("header" and "orderItem) to generate the split fragment for the order item.
- d) As it passes each order item, routes the generated split fragment for that order item,
- as generated by the FreeMarker template, to the Receiver Service.
-
-Note here that the split fragments being generated and routed to the Receiver Service are not
-just dumb block copies of fragments from the source message. They are formatted differently
-and contain data not just from the individual order item, but also from the order header.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
- Make sure that the quickstarts.properties file contains the configuration
- information for the FTP hostname, user, password and base directory.
-
- Make sure that you have write access to the FTP server.
-
-To Run:
-===========================
- 1. 'ant deploy'
- 2. 'ant runtest' - you will be asked how many order-items that the sample SampleOrder.xml should contain.
- 3. Switch to the Application Server console to see the output from the ESB. Here you will see
- each of the split message fragments as received by the "Receiver" service.
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
- File sizes:
- When generating the SampleOrder.xml the following nr of order-items can be entered(
- really any number can be entered but this is to give an idea of the how many rows
- create a file or a certain size) :
- order-items Size
- 50000 4 MB
- 100000 9 MB
- 1000000 91 MB
- 7000000 646 MB
- 10000000 924 MB
- 25000000 2325 MB
- 40000000 3727 MB
+Overview:
+=========
+ This quickstart demonstrates JBossESB ability to process large files.
+
+ The quickstart works as follows:
+ 1. There are 2 Services:
+ a) Splitter Service
+ b) Receiver Service
+ 2. The Splitter Service picks up an XML order message via the File Gateway (<fs-listener>).
+ The <fs-listener> is configured with the FileStreamSplitter, which applies a Smooks
+ message splitting process (defined in smooks-config.xml). This process splits the
+ XML message, routing XML message fragments to the Receiver Service.
+ 3. The Smooks splitting process works by streaming the XML message and while doing so:
+ a) Extracts data from the order header details and places it in a "header" bean.
+ b) Extracts data from the order item and places it in a "orderItem" bean. It only
+ ever has the details of a single order item in memory at any given time. This
+ is what allows it to process a huge message stream.
+ c) As it passes each order item, applys a FreeMarker template to the data in the bean
+ context ("header" and "orderItem) to generate the split fragment for the order item.
+ d) As it passes each order item, routes the generated split fragment for that order item,
+ as generated by the FreeMarker template, to the Receiver Service.
+
+Note here that the split fragments being generated and routed to the Receiver Service are not
+just dumb block copies of fragments from the source message. They are formatted differently
+and contain data not just from the individual order item, but also from the order header.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+ Make sure that the quickstarts.properties file contains the configuration
+ information for the FTP hostname, user, password and base directory.
+
+ Make sure that you have write access to the FTP server.
+
+To Run:
+===========================
+ 1. 'ant deploy'
+ 2. 'ant runtest' - you will be asked how many order-items that the sample SampleOrder.xml should contain.
+ 3. Switch to the Application Server console to see the output from the ESB. Here you will see
+ each of the split message fragments as received by the "Receiver" service.
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+ File sizes:
+ When generating the SampleOrder.xml the following nr of order-items can be entered(
+ really any number can be entered but this is to give an idea of the how many rows
+ create a file or a certain size) :
+ order-items Size
+ 50000 4 MB
+ 100000 9 MB
+ 1000000 91 MB
+ 7000000 646 MB
+ 10000000 924 MB
+ 25000000 2325 MB
+ 40000000 3727 MB
Modified: labs/jbossesb/trunk/product/samples/quickstarts/spring_aop/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/spring_aop/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/spring_aop/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,55 +1,55 @@
-Overview:
-=========
- The purpose of the spring_aop quickstart sample is to show the use of Spring
- AOP. You can specify Spring bean XML definitions in jboss-esb.xml and lookup
- the beans in your Action class. Each Action loads a single Spring IoC
- container upon first spring bean invocation. Subsequent invocations will not
- load a new IoC container. Also, none of the Spring dependencies are included.
- You must manually add additional Spring dependency JARs to the classpath to
- create Spring beans that have special dependencies, like a DB connection pool.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-Things to Consider:
-===================
- Review the helloworld quickstart as the majority of this is similiar to
- that example
-
- MySpringEnabledAction.java:
- There is one action method called "sayHelloAopStyle". The method gets
- triggered when a JMS message is sent. "sayHelloAopStyle" actually uses the
- message payload to get the greeting, but the interceptor will change the
- greeting.
-
- jboss-esb.xml
- The method, "sayHelloAopStyle" uses a spring interceptor to change the
- greeting message. Notice that the action does not have any println
- statements, "MyInterceptor" is doing all of the console output work. The
- interceptor is configured in spring-context.xml, not annotation style. You
- can change the greeting in build.xml. The greeting is sent to the ESB via
- JMS.
-
- <action name="sayHelloAopStyle"
- class="org.jboss.soa.esb.samples.quickstart.helloworldaction.MySpringEnabledAction"
- process="sayHelloAopStyle">
- <property name="exceptionMethod" value="exceptionHandler"/>
- <property name="springContextXml" value="spring-context.xml"/>
- </action>
-
- An ESB action class must have a constructor that accepts a ConfigTree
- argument like the following:
- public MyJMSListenerAction(ConfigTree config) { _config = config; }
-
- A ConfigTree is an object holding any attributes associated with the action
- declaration in the jbossesb.xml
+Overview:
+=========
+ The purpose of the spring_aop quickstart sample is to show the use of Spring
+ AOP. You can specify Spring bean XML definitions in jboss-esb.xml and lookup
+ the beans in your Action class. Each Action loads a single Spring IoC
+ container upon first spring bean invocation. Subsequent invocations will not
+ load a new IoC container. Also, none of the Spring dependencies are included.
+ You must manually add additional Spring dependency JARs to the classpath to
+ create Spring beans that have special dependencies, like a DB connection pool.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+Things to Consider:
+===================
+ Review the helloworld quickstart as the majority of this is similiar to
+ that example
+
+ MySpringEnabledAction.java:
+ There is one action method called "sayHelloAopStyle". The method gets
+ triggered when a JMS message is sent. "sayHelloAopStyle" actually uses the
+ message payload to get the greeting, but the interceptor will change the
+ greeting.
+
+ jboss-esb.xml
+ The method, "sayHelloAopStyle" uses a spring interceptor to change the
+ greeting message. Notice that the action does not have any println
+ statements, "MyInterceptor" is doing all of the console output work. The
+ interceptor is configured in spring-context.xml, not annotation style. You
+ can change the greeting in build.xml. The greeting is sent to the ESB via
+ JMS.
+
+ <action name="sayHelloAopStyle"
+ class="org.jboss.soa.esb.samples.quickstart.helloworldaction.MySpringEnabledAction"
+ process="sayHelloAopStyle">
+ <property name="exceptionMethod" value="exceptionHandler"/>
+ <property name="springContextXml" value="spring-context.xml"/>
+ </action>
+
+ An ESB action class must have a constructor that accepts a ConfigTree
+ argument like the following:
+ public MyJMSListenerAction(ConfigTree config) { _config = config; }
+
+ A ConfigTree is an object holding any attributes associated with the action
+ declaration in the jbossesb.xml
Modified: labs/jbossesb/trunk/product/samples/quickstarts/spring_helloworld/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/spring_helloworld/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/spring_helloworld/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,80 +1,80 @@
-Overview:
-=========
- The purpose of the spring_helloworld quickstart sample is to show the use of
- Spring based action invocations. You can use a single Action class and make
- multiple method calls or use multiple Action classes.
- You can specify Spring bean XML definitions in jboss-esb.xml and lookup the
- beans in your Action class. Each Action loads a single Spring IoC container
- upon first spring bean invocation. Subsequent invocations will not load a new
- IoC container. Also, none of the Spring dependencies are included. You must
- manually add additional Spring dependency JARs to the classpath to create
- Spring beans that have special dependencies, like a DB connection pool.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
-Things to Consider:
-===================
- Review the helloworld quickstart as the majority of this is similiar to
- that example
-
- MySpringEnabledAction.java:
- Has methods to display the inbound message, modify the message and to handle
- any exceptions which might be thrown in the action processing.
- MySpringEnabledAction will also lookup 2 different Spring beans located in 2
- different Spring config files and append the "greeting" to the message.
- Lastly, this action extends AbstractSpringAction. If you extend
- AbstractSpringAction, you can define spring configuration files in
- jboss-esb.xml and lookup Spring beans with
- "getSpringBeanFactory().getBean("someObject")".
-
- jbossesb.xml:
- There are 3 different actions. The first loads up a spring context, does a
- Spring bean lookup for "helloObject" and displays the JMS message payload
- plus the "helloObject.getGreeting()" value that is set in
- spring-context-hello.xml.
-
- The second action will Spring lookup the "goodbyeObject" and append the
- "goodbyeObject.getGreeting()" value to the message.
-
- The third action will Spring lookup the "helloObject" and "goodbyeObject"
- and append the "helloObject.getGreeting()" and "goodbyeObject.getGreeting()"
- value to the message. This last action demonstrates that a single action can
- lookup Spring beans that are in different Spring config files, so long as
- both config files are a comma separated list value for "springContextXml".
-
- <action name="sayHello"
- class="org.jboss.soa.esb.samples.quickstart.helloworldaction.MyJMSListenerAction"
- process="sayHelloSpring,displayMessage">
- <property name="exceptionMethod" value="exceptionHandler"/>
- <property name="springContextXml" value="spring-context-hello.xml"/>
- </action>
- <action name="addGoodbye"
- class="org.jboss.soa.esb.samples.quickstart.helloworldaction.MyJMSListenerAction"
- process="sayGoodbyeSpring,displayMessage">
- <property name="exceptionMethod" value="exceptionHandler"/>
- <property name="springContextXml" value="spring-context-goodbye.xml"/>
- </action>
- <action name="addHelloGoodbye"
- class="org.jboss.soa.esb.samples.quickstart.helloworldaction.MyJMSListenerAction"
- process="sayHelloSpring,sayGoodbyeSpring,displayMessage">
- <property name="exceptionMethod" value="exceptionHandler"/>
- <property name="springContextXml" value="spring-context-goodbye.xml,spring-context-hello.xml"/>
- </action>
-
- An ESB action class must have a constructor that accepts a ConfigTree
- argument like the following:
- public MySpringEnabledAction(ConfigTree config) { _config = config; }
-
- A ConfigTree is an object holding any attributes associated with the action
- declaration in the jbossesb.xml
+Overview:
+=========
+ The purpose of the spring_helloworld quickstart sample is to show the use of
+ Spring based action invocations. You can use a single Action class and make
+ multiple method calls or use multiple Action classes.
+ You can specify Spring bean XML definitions in jboss-esb.xml and lookup the
+ beans in your Action class. Each Action loads a single Spring IoC container
+ upon first spring bean invocation. Subsequent invocations will not load a new
+ IoC container. Also, none of the Spring dependencies are included. You must
+ manually add additional Spring dependency JARs to the classpath to create
+ Spring beans that have special dependencies, like a DB connection pool.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
+Things to Consider:
+===================
+ Review the helloworld quickstart as the majority of this is similiar to
+ that example
+
+ MySpringEnabledAction.java:
+ Has methods to display the inbound message, modify the message and to handle
+ any exceptions which might be thrown in the action processing.
+ MySpringEnabledAction will also lookup 2 different Spring beans located in 2
+ different Spring config files and append the "greeting" to the message.
+ Lastly, this action extends AbstractSpringAction. If you extend
+ AbstractSpringAction, you can define spring configuration files in
+ jboss-esb.xml and lookup Spring beans with
+ "getSpringBeanFactory().getBean("someObject")".
+
+ jbossesb.xml:
+ There are 3 different actions. The first loads up a spring context, does a
+ Spring bean lookup for "helloObject" and displays the JMS message payload
+ plus the "helloObject.getGreeting()" value that is set in
+ spring-context-hello.xml.
+
+ The second action will Spring lookup the "goodbyeObject" and append the
+ "goodbyeObject.getGreeting()" value to the message.
+
+ The third action will Spring lookup the "helloObject" and "goodbyeObject"
+ and append the "helloObject.getGreeting()" and "goodbyeObject.getGreeting()"
+ value to the message. This last action demonstrates that a single action can
+ lookup Spring beans that are in different Spring config files, so long as
+ both config files are a comma separated list value for "springContextXml".
+
+ <action name="sayHello"
+ class="org.jboss.soa.esb.samples.quickstart.helloworldaction.MyJMSListenerAction"
+ process="sayHelloSpring,displayMessage">
+ <property name="exceptionMethod" value="exceptionHandler"/>
+ <property name="springContextXml" value="spring-context-hello.xml"/>
+ </action>
+ <action name="addGoodbye"
+ class="org.jboss.soa.esb.samples.quickstart.helloworldaction.MyJMSListenerAction"
+ process="sayGoodbyeSpring,displayMessage">
+ <property name="exceptionMethod" value="exceptionHandler"/>
+ <property name="springContextXml" value="spring-context-goodbye.xml"/>
+ </action>
+ <action name="addHelloGoodbye"
+ class="org.jboss.soa.esb.samples.quickstart.helloworldaction.MyJMSListenerAction"
+ process="sayHelloSpring,sayGoodbyeSpring,displayMessage">
+ <property name="exceptionMethod" value="exceptionHandler"/>
+ <property name="springContextXml" value="spring-context-goodbye.xml,spring-context-hello.xml"/>
+ </action>
+
+ An ESB action class must have a constructor that accepts a ConfigTree
+ argument like the following:
+ public MySpringEnabledAction(ConfigTree config) { _config = config; }
+
+ A ConfigTree is an object holding any attributes associated with the action
+ declaration in the jbossesb.xml
Modified: labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -26,6 +26,11 @@
</java>
</target>
+ <target name="quickstart-specific-clean">
+ <delete file="${basedir}/hsqldb/jpetstore.log"/>
+ <delete file="${basedir}/hsqldb/jpetstore.properties"/>
+ </target>
+
<target name="start-hsqldb-server" depends="classpath-dependencies-as4, classpath-dependencies-as5">
<java classname="org.hsqldb.Server" dir="hsqldb" fork="true">
<arg value="-database" />
Deleted: labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/hsqldb/jpetstore.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/hsqldb/jpetstore.properties 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/hsqldb/jpetstore.properties 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,17 +0,0 @@
-#HSQL Database Engine 1.8.0.8
-#Tue Jul 06 14:02:39 IST 2010
-hsqldb.script_format=0
-runtime.gc_interval=0
-sql.enforce_strict_size=false
-hsqldb.cache_size_scale=8
-readonly=false
-hsqldb.nio_data_file=true
-hsqldb.cache_scale=14
-version=1.8.0
-hsqldb.default_table_type=memory
-hsqldb.cache_file_scale=1
-hsqldb.log_size=200
-modified=yes
-hsqldb.cache_version=1.7.0
-hsqldb.original_version=1.8.0
-hsqldb.compatible_version=1.8.0
Modified: labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/spring_jpetstore/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,60 +1,60 @@
-Overview:
-=========
- The purpose of the spring_jpetstore quickstart sample is to show advanced use
- of Spring based action invocations. You can leverage any application logic,
- like the business logic tier of a spring based web application by looking up
- the business service bean and executing a method. This is a complex usage of
- Spring that includes AOP, iBatis, a datasource and transaction management.
-
- You can specify Spring bean XML definitions in jboss-esb.xml and lookup the
- beans in your Action class. Each Action loads a single Spring IoC container
- upon first spring bean invocation. Subsequent invocations will not load a new
- IoC container. In this example many Spring dependencies are included and used.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. Open a command terminal window in this folder ("Window1").
- 2. In "Window1", type 'ant start-hsqldb-server'.
- 3. Open another command terminal window in this folder ("Window2").
- 4. In "Window2", type 'ant clean deploy'.
- 5. In "Window2", type 'ant runtest'.
- 6. Switch back to Application Server console to see the output from the ESB
- 7. Interrupt the database ("Window1") using Ctrl-C.
- 8. In this folder ("Window1"), type 'ant undeploy'.
-
-Project file descriptions:
-==========================
-
- InsertOrderAction.java:
- Takes the sample order XML from the ESB message then converts it into an
- Order POJO. The order POJO is then inserted into the Spring JPetstore
- database by calling the "PetStoreFacade.insertOrder()" method. The
- "PestoreFacade.insertOrder()" method uses a SpringAOP transaction advice.
-
- After successful insert, the InsertOrderAction will query the database, by
- using "PetStoreFacade.getOrdersByUsername()". and display the Orderd details
- in the console.
-
- jbossesb.xml:
- Make sure that the Spring application context files are defined via the
- "springContextXml" property.
-
- <action name="insertOrderAction"
- class="org.jboss.soa.esb.samples.quickstart.spring.InsertOrderAction"
- process="insertOrder">
- <property name="exceptionMethod" value="exceptionHandler"/>
- <property name="springContextXml"
- value="applicationContext.xml,dataAccessContext-local.xml"/>
- </action>
-
- An ESB action class must have a constructor that accepts a ConfigTree
- argument like the following:
- public MyJMSListenerAction(ConfigTree config) { _config = config; }
-
- A ConfigTree is an object holding any attributes associated with the action
- declaration in the jbossesb.xml
+Overview:
+=========
+ The purpose of the spring_jpetstore quickstart sample is to show advanced use
+ of Spring based action invocations. You can leverage any application logic,
+ like the business logic tier of a spring based web application by looking up
+ the business service bean and executing a method. This is a complex usage of
+ Spring that includes AOP, iBatis, a datasource and transaction management.
+
+ You can specify Spring bean XML definitions in jboss-esb.xml and lookup the
+ beans in your Action class. Each Action loads a single Spring IoC container
+ upon first spring bean invocation. Subsequent invocations will not load a new
+ IoC container. In this example many Spring dependencies are included and used.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. Open a command terminal window in this folder ("Window1").
+ 2. In "Window1", type 'ant start-hsqldb-server'.
+ 3. Open another command terminal window in this folder ("Window2").
+ 4. In "Window2", type 'ant clean deploy'.
+ 5. In "Window2", type 'ant runtest'.
+ 6. Switch back to Application Server console to see the output from the ESB
+ 7. Interrupt the database ("Window1") using Ctrl-C.
+ 8. In this folder ("Window1"), type 'ant undeploy'.
+
+Project file descriptions:
+==========================
+
+ InsertOrderAction.java:
+ Takes the sample order XML from the ESB message then converts it into an
+ Order POJO. The order POJO is then inserted into the Spring JPetstore
+ database by calling the "PetStoreFacade.insertOrder()" method. The
+ "PestoreFacade.insertOrder()" method uses a SpringAOP transaction advice.
+
+ After successful insert, the InsertOrderAction will query the database, by
+ using "PetStoreFacade.getOrdersByUsername()". and display the Orderd details
+ in the console.
+
+ jbossesb.xml:
+ Make sure that the Spring application context files are defined via the
+ "springContextXml" property.
+
+ <action name="insertOrderAction"
+ class="org.jboss.soa.esb.samples.quickstart.spring.InsertOrderAction"
+ process="insertOrder">
+ <property name="exceptionMethod" value="exceptionHandler"/>
+ <property name="springContextXml"
+ value="applicationContext.xml,dataAccessContext-local.xml"/>
+ </action>
+
+ An ESB action class must have a constructor that accepts a ConfigTree
+ argument like the following:
+ public MyJMSListenerAction(ConfigTree config) { _config = config; }
+
+ A ConfigTree is an object holding any attributes associated with the action
+ declaration in the jbossesb.xml
Modified: labs/jbossesb/trunk/product/samples/quickstarts/transform_XML2POJO/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/transform_XML2POJO/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/transform_XML2POJO/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,44 +1,44 @@
-Overview:
-=========
-The purpose of the simple_transformation quickstart sample is to illustrate the
-use of Smooks performing a simple transformation by converting a XML file into
-Java POJOs.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
- A comprehensive description of message transformation can be found in
- the "Message Transformation" chapter in the ServicesGuide, located in the docs folder.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant receive'.
- 3. Open another command terminal window in this folder ("Window3"), type
- 'ant runtest'.
- 4. Switch back to Application Server console to see the output from the ESB
- 5. When finished, interrupt the receiver ("Window2") using Ctrl-C.
- 6. Undeploy the esb archive ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
- As stated above, reading the "Message Transformation" chapter in the ServicesGuide.pdf would
- be of great benefit in understanding JBoss ESB Transformations.
-
- * jboss-esb.xml - uses the SmooksTransformerAction which is shipped with the
- JBoss ESB.
- * smooks-res.xml - handles the mappings from XML to the POJO/Bean
- * SampleOrder.xml - is the inbound test order. Feel free to modify the data
- (not the structure) and send it into the transformer multiple times (ant
- runtest) to see the results.
- * src\org\jboss\soa\esb\dvdstore\DVDStoreAction.java - converts the beans into
- a concatenated string.
- * src\org\jboss\soa\esb\dvdstore\OrderHeader.java - holds the header portion
- of the Order.
- * src\org\jboss\soa\esb\dvdstore\OrderItem.java - holds a line item for the
- Order.
- * src\org\jboss\soa\esb\dvdstore\Customer.java - holds the Customer associated
+Overview:
+=========
+The purpose of the simple_transformation quickstart sample is to illustrate the
+use of Smooks performing a simple transformation by converting a XML file into
+Java POJOs.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+ A comprehensive description of message transformation can be found in
+ the "Message Transformation" chapter in the ServicesGuide, located in the docs folder.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant receive'.
+ 3. Open another command terminal window in this folder ("Window3"), type
+ 'ant runtest'.
+ 4. Switch back to Application Server console to see the output from the ESB
+ 5. When finished, interrupt the receiver ("Window2") using Ctrl-C.
+ 6. Undeploy the esb archive ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+ As stated above, reading the "Message Transformation" chapter in the ServicesGuide.pdf would
+ be of great benefit in understanding JBoss ESB Transformations.
+
+ * jboss-esb.xml - uses the SmooksTransformerAction which is shipped with the
+ JBoss ESB.
+ * smooks-res.xml - handles the mappings from XML to the POJO/Bean
+ * SampleOrder.xml - is the inbound test order. Feel free to modify the data
+ (not the structure) and send it into the transformer multiple times (ant
+ runtest) to see the results.
+ * src\org\jboss\soa\esb\dvdstore\DVDStoreAction.java - converts the beans into
+ a concatenated string.
+ * src\org\jboss\soa\esb\dvdstore\OrderHeader.java - holds the header portion
+ of the Order.
+ * src\org\jboss\soa\esb\dvdstore\OrderItem.java - holds a line item for the
+ Order.
+ * src\org\jboss\soa\esb\dvdstore\Customer.java - holds the Customer associated
with the Order.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/transform_XML2POJO2/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/transform_XML2POJO2/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/transform_XML2POJO2/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,57 +1,57 @@
-Overview:
-=========
-The purpose of the simple_transformation quickstart sample is to illustrate the
-use of Smooks performing a simple transformation by converting a XML file into
-Java POJOs, in this case it uses 2 different but similiar XML files to transform
-to a common set of POJOs.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
- A comprehensive description of message transformation can be found in
- the "Message Transformation" chapter in the ServicesGuide, located in the docs folder.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 3. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 4. Switch back to Application Server console to see the output from the ESB
- 5. Undeploy the esb archive ("Window1"), type 'ant undeploy'.
-
-What to look at in this Quickstart:
-===================================
- As stated above, reading the "Message Transformation" chapter in the ServicesGuide.pdf would
- be of great benefit in understanding JBoss ESB Transformations.
-
- * jboss-esb.xml - uses the SmooksTransformerAction which is shipped with the
- JBoss ESB.
- * smooks-config.xml - imports two unique smooks resource files: from-dvdstore.xml
- and from-petstore.xml from the transforms directory.
- * from-dvdstore.xml - default-target-profile="from:dvdstore" is the key element
- that determines when this set of mappings is applied.
- * from-petstore.xml - default-target-profile="from:petstore" is the key element
- that determines when this set of mappings is applied. This element is setup
- as a property on the esb Message via check-origin.groovy
- * check-origin.groovy - evaluates the inbound XML, looking for the either an
- OrderLines or LineItems tag in the XML. OrderLines means this is DVDStore
- related and LineItems means it is Petstore related.
- * SampleOrder.xml - is the inbound test order. Feel free to modify the data
- (not the structure) and send it into the transformer multiple times (ant
- runtest) to see the results.
- * SamplePetsOrder.xml - is the inbound test order. Feel free to modify the data
- (not the structure) and send it into the transformer multiple times (ant
- runtest) to see the results.
- * src\org\jboss\soa\esb\store\StoreAction.java - converts the beans into
- a concatenated string and places it back into the default location of the
- message body. This is useful for seeing the converted string come back as a
- reply.
- * src\org\jboss\soa\esb\store\OrderHeader.java - holds the header portion
- of the Order.
- * src\org\jboss\soa\esb\store\OrderItem.java - holds a line item for the
- Order.
- * src\org\jboss\soa\esb\store\Customer.java - holds the Customer associated
- with the Order.
+Overview:
+=========
+The purpose of the simple_transformation quickstart sample is to illustrate the
+use of Smooks performing a simple transformation by converting a XML file into
+Java POJOs, in this case it uses 2 different but similiar XML files to transform
+to a common set of POJOs.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+ A comprehensive description of message transformation can be found in
+ the "Message Transformation" chapter in the ServicesGuide, located in the docs folder.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 3. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 4. Switch back to Application Server console to see the output from the ESB
+ 5. Undeploy the esb archive ("Window1"), type 'ant undeploy'.
+
+What to look at in this Quickstart:
+===================================
+ As stated above, reading the "Message Transformation" chapter in the ServicesGuide.pdf would
+ be of great benefit in understanding JBoss ESB Transformations.
+ * jboss-esb.xml - uses the SmooksTransformerAction which is shipped with the
+ JBoss ESB.
+ * smooks-config.xml - imports two unique smooks resource files: from-dvdstore.xml
+ and from-petstore.xml from the transforms directory.
+ * from-dvdstore.xml - default-target-profile="from:dvdstore" is the key element
+ that determines when this set of mappings is applied.
+ * from-petstore.xml - default-target-profile="from:petstore" is the key element
+ that determines when this set of mappings is applied. This element is setup
+ as a property on the esb Message via check-origin.groovy
+ * check-origin.groovy - evaluates the inbound XML, looking for the either an
+ OrderLines or LineItems tag in the XML. OrderLines means this is DVDStore
+ related and LineItems means it is Petstore related.
+ * SampleOrder.xml - is the inbound test order. Feel free to modify the data
+ (not the structure) and send it into the transformer multiple times (ant
+ runtest) to see the results.
+ * SamplePetsOrder.xml - is the inbound test order. Feel free to modify the data
+ (not the structure) and send it into the transformer multiple times (ant
+ runtest) to see the results.
+ * src\org\jboss\soa\esb\store\StoreAction.java - converts the beans into
+ a concatenated string and places it back into the default location of the
+ message body. This is useful for seeing the converted string come back as a
+ reply.
+ * src\org\jboss\soa\esb\store\OrderHeader.java - holds the header portion
+ of the Order.
+ * src\org\jboss\soa\esb\store\OrderItem.java - holds a line item for the
+ Order.
+ * src\org\jboss\soa\esb\store\Customer.java - holds the Customer associated
+ with the Order.
+
Modified: labs/jbossesb/trunk/product/samples/quickstarts/two_servers/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/two_servers/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/two_servers/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,47 +1,47 @@
-Requirements :
-========
- Ant 1.7 is required to run this quickstart.
-
- You will also have to edit server.properties to point it at your application
- server.
-
-Overview:
-=========
- The purpose of the two_servers quickstart sample is to demonstrate
- running two versions of the ESB server (or the JBoss AS).
-
- The sample bindings depend on a sample-bindings.xml, which spells out
- which ports are used for different services. Each binding depends on a port
- profile (in this example, ports-01 and ports-02), which is then referenced
- in the server's jboss-service.xml (see $JBOSS_HOME/server/first/conf/jboss-service.xml
- and $JBOSS_HOME/server/second/conf/jboss-service.xml).
-
- This quickstart is a bit different than others in that it will not deploy .esb
- packages to the config specified in your deployment.properties file, but will
- create two configs based on the server.properties file in this directory.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-Important
-=========
- This quickstart is intended to be run with embedded databases. If you have altered
- the default configuration to use a remote database then this setup will be duplicated,
- and therefore shared, by both of the generated configurations. It may be necessary to
- make additional changes to the configuration of those components which are sharing
- a database, for example if JBoss Messaging is the current JMS provider then a unique
- ServerPeerID must be configured within the messaging-service.xml configuration file.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"),
- Type 'ant setup-servers'.
- (Note that this will remove both the SERVER_HOME/server/first and SERVER_HOME/server/second directories, and will make a copy of the default directory in each of these locations. This target requires Ant 1.7 or higher)
- 2. In Window 1, ant deploy
- 3. In Window 2, if AS 4.x: start the first application server (./run.sh -c first)
- if AS 5.x: start the first application server (./run.sh -c first -Djboss.service.binding.set=ports-01)
- 4. In Window 3, if AS 4.x: start the second application server (./run.sh -c second)
- if AS 5.x: start the second application server (./run.sh -c second -Djboss.service.binding.set=ports-02)
- 5. In Window 1, ant runtest
+Requirements :
+========
+ Ant 1.7 is required to run this quickstart.
+
+ You will also have to edit server.properties to point it at your application
+ server.
+
+Overview:
+=========
+ The purpose of the two_servers quickstart sample is to demonstrate
+ running two versions of the ESB server (or the JBoss AS).
+
+ The sample bindings depend on a sample-bindings.xml, which spells out
+ which ports are used for different services. Each binding depends on a port
+ profile (in this example, ports-01 and ports-02), which is then referenced
+ in the server's jboss-service.xml (see $JBOSS_HOME/server/first/conf/jboss-service.xml
+ and $JBOSS_HOME/server/second/conf/jboss-service.xml).
+
+ This quickstart is a bit different than others in that it will not deploy .esb
+ packages to the config specified in your deployment.properties file, but will
+ create two configs based on the server.properties file in this directory.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+Important
+=========
+ This quickstart is intended to be run with embedded databases. If you have altered
+ the default configuration to use a remote database then this setup will be duplicated,
+ and therefore shared, by both of the generated configurations. It may be necessary to
+ make additional changes to the configuration of those components which are sharing
+ a database, for example if JBoss Messaging is the current JMS provider then a unique
+ ServerPeerID must be configured within the messaging-service.xml configuration file.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"),
+ Type 'ant setup-servers'.
+ (Note that this will remove both the SERVER_HOME/server/first and SERVER_HOME/server/second directories, and will make a copy of the default directory in each of these locations. This target requires Ant 1.7 or higher)
+ 2. In Window 1, ant deploy
+ 3. In Window 2, if AS 4.x: start the first application server (./run.sh -c first)
+ if AS 5.x: start the first application server (./run.sh -c first -Djboss.service.binding.set=ports-01)
+ 4. In Window 3, if AS 4.x: start the second application server (./run.sh -c second)
+ if AS 5.x: start the second application server (./run.sh -c second -Djboss.service.binding.set=ports-02)
+ 5. In Window 1, ant runtest
Modified: labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,17 +1,17 @@
-Overview:
-=========
- The purpose of the udp_gateway quickstart example is to demonstrate
- how a message sent with UDP can be passed to JBossESB.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. In a command terminal window in this folder ("Window1"), type 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB.
- 4. In this folder ("Window1"), type 'ant undeploy'.
-
+Overview:
+=========
+ The purpose of the udp_gateway quickstart example is to demonstrate
+ how a message sent with UDP can be passed to JBossESB.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. In a command terminal window in this folder ("Window1"), type 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB.
+ 4. In this folder ("Window1"), type 'ant undeploy'.
+
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer1/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer1/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_consumer1/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,88 +1,88 @@
-Overview:
-=========
- This example demonstrates how to consume a 181 Web Service in an ESB action.
- This ESB will make a webservice request that requires a single "toWhom" string parameter.
- The webservice will return a greeting response. The ESB simply dislays the response on the
- console.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
- more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant undeploy-jms-dests'.
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
-
- 'runtest' target description:
- In a separate command prompt window, run "ant runtest" to shoot a JMS message
- into the listener which will then invoke the MyJMSListenerAction and display
- it to the console. You can modify the build.xml to change the phrase
- "Hello World" to something else and re-run "ant runtest".
-
- You should output that looks like this, after running "ant runtest":
- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,975 INFO [STDOUT] Request map is: {sayHello.toWhom=Jimbo}
- 12:35:47,975 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,990 WARN [HttpMethodBase] Going to buffer response body of large or unknown size. Using
- getResponseBodyAsStream instead is recommended.
- 12:35:47,991 INFO [STDOUT]
- &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
- 12:35:47,991 INFO [STDOUT] Response Map is:
- <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
- <env:Header></env:Header>
- <env:Body>
- <hel:sayHelloResponse xmlns:hel='http://webservice_consumer1/helloworld'>
- <return>Hello World Greeting for 'Jimbo' on Sat Jul 14 12:35:47 EDT 2007</return>
- </hel:sayHelloResponse></env:Body></env:Envelope>
- 12:35:47,991 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
-
-Project file descriptions:
-==========================
-
- jboss-esb.xml:
- There is no JMS gateway in this quickstart. A java client talks directly to the ESB
- listener queue called "queue/quickstart_webservice_consumer1_esb". The actions in
- jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
- to the HelloWorldWS webservice, then print the response on the console. The
- jbossesb-properties.xml is used when the service first boots up for self-registration
- based upon the category and name found in the jboss-esb.xml file.
-
- jndi.properties:
- Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer1.test.SendESBMessage that is fired by ant runtest.
-
- log4j.xml:
- Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
-
- src/../SendEsbMessage.java:
- Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
- gateway and speak directly to an ESB service.
-
- src/../MyRequestAction.java
- Convert the message body into a webservice request parameter Map that only has one paramater called
- "sayHello.toWhom" for the web service call. The request parameter map is named
- "helloworld-request-parameters".
-
- org.jboss.soa.esb.actions.soap.SOAPClient
- This class is used to make the call to the webservice. It will take the
- parameters that MyRequestAction set in "paramsLocation", call the webservice, then place
- the response in "responseLocation". This is zero Java code ESB wiring in jboss-esb.xml.
-
- src/../MyResponseAction.java
- Retrieve the webservice response and display it on the console. The response location name
- is "helloworld-response".
-
- build.xml:
- Targets and structure description:
- * the classpath property pulls the jbossesb-properties.xml file and the juddi configuration to the
- front of the list
- * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
- Usage is: ant echoCP > myclasspath.txt
- This generates a file called myclasspath.txt which can be reviewed in a text editor
- * the run task calls the Launcher passing in 3 arguments the most important are the esb-config.xml and
- esb-config-gateway.xml files
- * the runtest task calls the org.jboss.soa.esb.samples.quickstart.helloworld.test.SendEsbMessage class and passes in an argument representing
+Overview:
+=========
+ This example demonstrates how to consume a 181 Web Service in an ESB action.
+ This ESB will make a webservice request that requires a single "toWhom" string parameter.
+ The webservice will return a greeting response. The ESB simply dislays the response on the
+ console.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts and a
+ more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant undeploy-jms-dests'.
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+
+ 'runtest' target description:
+ In a separate command prompt window, run "ant runtest" to shoot a JMS message
+ into the listener which will then invoke the MyJMSListenerAction and display
+ it to the console. You can modify the build.xml to change the phrase
+ "Hello World" to something else and re-run "ant runtest".
+
+ You should output that looks like this, after running "ant runtest":
+ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 12:35:47,975 INFO [STDOUT] Request map is: {sayHello.toWhom=Jimbo}
+ 12:35:47,975 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 12:35:47,990 WARN [HttpMethodBase] Going to buffer response body of large or unknown size. Using
+ getResponseBodyAsStream instead is recommended.
+ 12:35:47,991 INFO [STDOUT]
+ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+ 12:35:47,991 INFO [STDOUT] Response Map is:
+ <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
+ <env:Header></env:Header>
+ <env:Body>
+ <hel:sayHelloResponse xmlns:hel='http://webservice_consumer1/helloworld'>
+ <return>Hello World Greeting for 'Jimbo' on Sat Jul 14 12:35:47 EDT 2007</return>
+ </hel:sayHelloResponse></env:Body></env:Envelope>
+ 12:35:47,991 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+
+Project file descriptions:
+==========================
+
+ jboss-esb.xml:
+ There is no JMS gateway in this quickstart. A java client talks directly to the ESB
+ listener queue called "queue/quickstart_webservice_consumer1_esb". The actions in
+ jboss-esb.xml convert the ESB message into to a webservice parameter Map, make a call
+ to the HelloWorldWS webservice, then print the response on the console. The
+ jbossesb-properties.xml is used when the service first boots up for self-registration
+ based upon the category and name found in the jboss-esb.xml file.
+
+ jndi.properties:
+ Needed primarily for org.jboss.soa.esb.samples.quickstart.webservice_consumer1.test.SendESBMessage that is fired by ant runtest.
+
+ log4j.xml:
+ Needed to configure log4J used by both the quickstart and the ESB itself. A listener needs a place to log.
+
+ src/../SendEsbMessage.java:
+ Send a message directly the the ESB internal JMS listener. Demonstrates how one can bypass the
+ gateway and speak directly to an ESB service.
+
+ src/../MyRequestAction.java
+ Convert the message body into a webservice request parameter Map that only has one paramater called
+ "sayHello.toWhom" for the web service call. The request parameter map is named
+ "helloworld-request-parameters".
+
+ org.jboss.soa.esb.actions.soap.SOAPClient
+ This class is used to make the call to the webservice. It will take the
+ parameters that MyRequestAction set in "paramsLocation", call the webservice, then place
+ the response in "responseLocation". This is zero Java code ESB wiring in jboss-esb.xml.
+
+ src/../MyResponseAction.java
+ Retrieve the webservice response and display it on the console. The response location name
+ is "helloworld-response".
+
+ build.xml:
+ Targets and structure description:
+ * the classpath property pulls the jbossesb-properties.xml file and the juddi configuration to the
+ front of the list
+ * the echoCP task is useful for making sure what you think is in your classpath is actually in your classpath
+ Usage is: ant echoCP > myclasspath.txt
+ This generates a file called myclasspath.txt which can be reviewed in a text editor
+ * the run task calls the Launcher passing in 3 arguments the most important are the esb-config.xml and
+ esb-config-gateway.xml files
+ * the runtest task calls the org.jboss.soa.esb.samples.quickstart.helloworld.test.SendEsbMessage class and passes in an argument representing
the string-based message to be pused into the queue the gateway is listening on.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_mtom/README.html
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_mtom/README.html 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_mtom/README.html 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,45 +1,45 @@
-<html>
- <head>
- <title>JBossESB - MTOM/XOP Quickstart</title>
- </head>
- <body>
- <h2>Overview</h2>
- This sample demonstrates how to exchange binary data between a Webservice client and ESB aware
- Webservice Service, using MTOM/XOP. JBossESB relies of JBossWS for MTOM/XOP support.
- <a href="http://jbws.dyndns.org/mediawiki/index.php?title=User_Guide#MTOM.2FXOP">See more here</a>.
- <p/>
- This quickstart simply sends an image (binary data) from a webservice client to a JBossESB aware
- Webservice, using MTOM/XOP.
-
- <h2>Prerequisits</h2>
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
- <p/>
- <b style="text-decoration: blink; color: red">NOTE:</b> This Quickstart requires the JBossRemoting 2.2.2SP2 or higher patch to be applied.
- If you are running on the JBoss App Server (and not the JBoss ESB Server), then you may need to apply a patch. This simply involves downloading
- <a href="http://repository.jboss.org/jboss/remoting/2.2.2.SP2/lib/jboss-remoting.jar">jboss-remoting.jar</a>
- and copying it into your "server/<server>/lib" folder. Be sure to restart your JBoss
- Application/ESB Server instance.
-
- <h2>To Run</h2>
- <ol>
- <li>In a command terminal window in this folder ("Window1"), type 'ant deploy'.</li>
- <li>Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- </li>
- <li>Check "Window1" and "Window2" for output.</li>
- <li>To undeploy, type 'ant undeploy' in "Window1".</li>
- </ol>
-
- "Window1" should contain ESB Server side logging from the quickstart, showing the message before and
- after execution through the SOAPProcessor.
- <p/>
- <img src="images/esb-console.png" />
- <p/>
- "Window2" should contain Client side logging from the quickstart, showing the the image (binary data)
- was successfully transmitted from client to server and back. See
- <a type="text/plain" href="src/org/jboss/soa/esb/samples/quickstart/webservicemtom/webservice/client/MTOMClient.java">MTOMClient.java</a>.
- <p/>
- <img src="images/client-console.png" />
- </body>
-</html>
+<html>
+ <head>
+ <title>JBossESB - MTOM/XOP Quickstart</title>
+ </head>
+ <body>
+ <h2>Overview</h2>
+ This sample demonstrates how to exchange binary data between a Webservice client and ESB aware
+ Webservice Service, using MTOM/XOP. JBossESB relies of JBossWS for MTOM/XOP support.
+ <a href="http://jbws.dyndns.org/mediawiki/index.php?title=User_Guide#MTOM.2FXOP">See more here</a>.
+ <p/>
+ This quickstart simply sends an image (binary data) from a webservice client to a JBossESB aware
+ Webservice, using MTOM/XOP.
+
+ <h2>Prerequisits</h2>
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+ <p/>
+ <b style="text-decoration: blink; color: red">NOTE:</b> This Quickstart requires the JBossRemoting 2.2.2SP2 or higher patch to be applied.
+ If you are running on the JBoss App Server (and not the JBoss ESB Server), then you may need to apply a patch. This simply involves downloading
+ <a href="http://repository.jboss.org/jboss/remoting/2.2.2.SP2/lib/jboss-remoting.jar">jboss-remoting.jar</a>
+ and copying it into your "server/<server>/lib" folder. Be sure to restart your JBoss
+ Application/ESB Server instance.
+
+ <h2>To Run</h2>
+ <ol>
+ <li>In a command terminal window in this folder ("Window1"), type 'ant deploy'.</li>
+ <li>Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ </li>
+ <li>Check "Window1" and "Window2" for output.</li>
+ <li>To undeploy, type 'ant undeploy' in "Window1".</li>
+ </ol>
+
+ "Window1" should contain ESB Server side logging from the quickstart, showing the message before and
+ after execution through the SOAPProcessor.
+ <p/>
+ <img src="images/esb-console.png" />
+ <p/>
+ "Window2" should contain Client side logging from the quickstart, showing the the image (binary data)
+ was successfully transmitted from client to server and back. See
+ <a type="text/plain" href="src/org/jboss/soa/esb/samples/quickstart/webservicemtom/webservice/client/MTOMClient.java">MTOMClient.java</a>.
+ <p/>
+ <img src="images/client-console.png" />
+ </body>
+</html>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_producer/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,17 +1,17 @@
-Overview:
-=========
- This sample demonstrates how to deploy a JSR181 Webservice endpoint on
- JBossESB using the SOAPProcessor action.
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run:
-=======
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- 3. Switch back to Application Server console to see the output from the ESB
- 4. In this folder ("Window1"), type 'ant undeploy'.
+Overview:
+=========
+ This sample demonstrates how to deploy a JSR181 Webservice endpoint on
+ JBossESB using the SOAPProcessor action.
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run:
+=======
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ 3. Switch back to Application Server console to see the output from the ESB
+ 4. In this folder ("Window1"), type 'ant undeploy'.
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_basic/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_basic/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_basic/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -50,10 +50,6 @@
</war>
</target>
- <target name="quickstart-specific-clean">
- <delete file="${basedir}/listener.log"/>
- </target>
-
<target name="run">
<echo>standalone mode is not available for this quickstart.</echo>
</target>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_routed/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_routed/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_routed/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -50,10 +50,6 @@
</war>
</target>
- <target name="quickstart-specific-clean">
- <delete file="${basedir}/listener.log"/>
- </target>
-
<target name="run">
<echo>standalone mode is not available for this quickstart.</echo>
</target>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_security/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_security/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_security/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -103,10 +103,6 @@
</war>
</target>
- <target name="quickstart-specific-clean">
- <delete file="${basedir}/listener.log"/>
- </target>
-
<target name="run">
<echo>standalone mode is not available for this quickstart.</echo>
</target>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_versioning/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_versioning/build.xml 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_proxy_versioning/build.xml 2010-07-30 23:01:09 UTC (rev 34428)
@@ -50,10 +50,6 @@
</war>
</target>
- <target name="quickstart-specific-clean">
- <delete file="${basedir}/listener.log"/>
- </target>
-
<target name="run">
<echo>standalone mode is not available for this quickstart.</echo>
</target>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_wsaddressing/README.html
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_wsaddressing/README.html 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_wsaddressing/README.html 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,49 +1,49 @@
-<html>
- <head>
- <title>JBossESB - WS-Addressing Quickstart</title>
- </head>
- <body>
- <h2>Overview</h2>
- This sample demonstrates how to implement a stateful webservice using WS-Addressing and access it through
- an ESB endpoint. JBossESB relies of JBossWS for WS-Addressing support.
- <a href="http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html#d0e882">See more here</a>.
- <p/>
- The sample is a really simple standalone shopping cart. The webservice client class uses JAX-WS client
- code and creates 2 client port instances to perform add, get and checkout operations on the sample
- cart.
- <p/>
- As an excercise, you could attempt to implement the cart functionality as a Stateful Session Bean that gets
- invoked via this webservice interface. This would mimic the usecase where the cart is a legacy service
- implemented in EJB and you're using the ESB to expose a Webservice interface on that service.
-
- <h2>Prerequisits</h2>
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
- <p/>
- <b style="text-decoration: blink; color: red">NOTE:</b> This Quickstart requires the JBossRemoting 2.2.2SP2 or higher patch to be applied.
- This simply involves downloading <a href="http://repository.jboss.org/jboss/remoting/2.2.2.SP2/lib/jboss-remoting.jar">jboss-remoting.jar</a>
- and copying it into your "server/<server>/lib" folder. Be sure to restart your JBoss
- Application/ESB Server instance.
-
- <h2>To Run</h2>
- <ol>
- <li>In a command terminal window in this folder ("Window1"), type 'ant deploy'.</li>
- <li>Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- </li>
- <li>Check "Window1" and "Window2" for output.</li>
- <li>To undeploy, type 'ant undeploy' in "Window1".</li>
- </ol>
-
- "Window1" should contain ESB Server side logging from the quickstart, showing the message before and
- after execution through the SOAPProcessor.
- <p/>
- <img src="images/esb-console.png" />
- <p/>
- "Window2" should contain Client side logging from the quickstart, showing the view of the shopping
- carts for both client port instances as the cart transitions through its different states. See
- <a type="text/plain" href="src/org/jboss/soa/esb/samples/quickstart/webservicewsa/client/WSAClient.java">WSAClient.java</a>.
- <p/>
- <img src="images/client-console.png" />
- </body>
-</html>
+<html>
+ <head>
+ <title>JBossESB - WS-Addressing Quickstart</title>
+ </head>
+ <body>
+ <h2>Overview</h2>
+ This sample demonstrates how to implement a stateful webservice using WS-Addressing and access it through
+ an ESB endpoint. JBossESB relies of JBossWS for WS-Addressing support.
+ <a href="http://labs.jboss.com/jbossws/docs/jaxws_userguide-2.0/index.html#d0e882">See more here</a>.
+ <p/>
+ The sample is a really simple standalone shopping cart. The webservice client class uses JAX-WS client
+ code and creates 2 client port instances to perform add, get and checkout operations on the sample
+ cart.
+ <p/>
+ As an excercise, you could attempt to implement the cart functionality as a Stateful Session Bean that gets
+ invoked via this webservice interface. This would mimic the usecase where the cart is a legacy service
+ implemented in EJB and you're using the ESB to expose a Webservice interface on that service.
+
+ <h2>Prerequisits</h2>
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+ <p/>
+ <b style="text-decoration: blink; color: red">NOTE:</b> This Quickstart requires the JBossRemoting 2.2.2SP2 or higher patch to be applied.
+ This simply involves downloading <a href="http://repository.jboss.org/jboss/remoting/2.2.2.SP2/lib/jboss-remoting.jar">jboss-remoting.jar</a>
+ and copying it into your "server/<server>/lib" folder. Be sure to restart your JBoss
+ Application/ESB Server instance.
+
+ <h2>To Run</h2>
+ <ol>
+ <li>In a command terminal window in this folder ("Window1"), type 'ant deploy'.</li>
+ <li>Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ </li>
+ <li>Check "Window1" and "Window2" for output.</li>
+ <li>To undeploy, type 'ant undeploy' in "Window1".</li>
+ </ol>
+
+ "Window1" should contain ESB Server side logging from the quickstart, showing the message before and
+ after execution through the SOAPProcessor.
+ <p/>
+ <img src="images/esb-console.png" />
+ <p/>
+ "Window2" should contain Client side logging from the quickstart, showing the view of the shopping
+ carts for both client port instances as the cart transitions through its different states. See
+ <a type="text/plain" href="src/org/jboss/soa/esb/samples/quickstart/webservicewsa/client/WSAClient.java">WSAClient.java</a>.
+ <p/>
+ <img src="images/client-console.png" />
+ </body>
+</html>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/webservice_wssecurity/README.html
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/webservice_wssecurity/README.html 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/webservice_wssecurity/README.html 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,44 +1,44 @@
-<html>
- <head>
- <title>JBossESB - WS-Security Quickstart</title>
- </head>
- <body>
- <h2>Overview</h2>
- This sample demonstrates how to implement a secure webservice using WS-Security and access it through
- an ESB endpoint. JBossESB relies of JBossWS for WS-Security support.
- <a href="http://jbws.dyndns.org/mediawiki/index.php?title=User_Guide#WS-Security">See more here</a>.
- <p/>
- This quickstart simply sends a signed and encrypted "Hello" message from a webservice client to
- a JBossESB aware Webservice.
-
- <h2>Prerequisits</h2>
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
- <p/>
- <b style="text-decoration: blink; color: red">NOTE:</b> This Quickstart requires the JBossRemoting 2.2.2SP2 or higher patch to be applied.
- This simply involves downloading <a href="http://repository.jboss.org/jboss/remoting/2.2.2.SP2/lib/jboss-remoting.jar">jboss-remoting.jar</a>
- and copying it into your "server/<server>/lib" folder. Be sure to restart your JBoss
- Application/ESB Server instance.
-
- <h2>To Run</h2>
- <ol>
- <li>In a command terminal window in this folder ("Window1"), type 'ant deploy'.</li>
- <li>Open another command terminal window in this folder ("Window2"), type
- 'ant runtest'.
- </li>
- <li>Check "Window1" and "Window2" for output.</li>
- <li>To undeploy, type 'ant undeploy' in "Window1".</li>
- </ol>
-
- "Window1" should contain ESB Server side logging from the quickstart, showing the message before and
- after execution through the SOAPProcessor.
- <p/>
- <img src="images/esb-console.png" />
- <p/>
- "Window2" should contain Client side logging from the quickstart, showing that the secure "Hello" message
- was successully echoed back from the Server. See
- <a type="text/plain" href="src/org/jboss/test/ws/jaxws/samples/wssecurity/client/WSSClient.java">WSSClient.java</a>.
- <p/>
- <img src="images/client-console.png" />
- </body>
-</html>
+<html>
+ <head>
+ <title>JBossESB - WS-Security Quickstart</title>
+ </head>
+ <body>
+ <h2>Overview</h2>
+ This sample demonstrates how to implement a secure webservice using WS-Security and access it through
+ an ESB endpoint. JBossESB relies of JBossWS for WS-Security support.
+ <a href="http://jbws.dyndns.org/mediawiki/index.php?title=User_Guide#WS-Security">See more here</a>.
+ <p/>
+ This quickstart simply sends a signed and encrypted "Hello" message from a webservice client to
+ a JBossESB aware Webservice.
+
+ <h2>Prerequisits</h2>
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+ <p/>
+ <b style="text-decoration: blink; color: red">NOTE:</b> This Quickstart requires the JBossRemoting 2.2.2SP2 or higher patch to be applied.
+ This simply involves downloading <a href="http://repository.jboss.org/jboss/remoting/2.2.2.SP2/lib/jboss-remoting.jar">jboss-remoting.jar</a>
+ and copying it into your "server/<server>/lib" folder. Be sure to restart your JBoss
+ Application/ESB Server instance.
+
+ <h2>To Run</h2>
+ <ol>
+ <li>In a command terminal window in this folder ("Window1"), type 'ant deploy'.</li>
+ <li>Open another command terminal window in this folder ("Window2"), type
+ 'ant runtest'.
+ </li>
+ <li>Check "Window1" and "Window2" for output.</li>
+ <li>To undeploy, type 'ant undeploy' in "Window1".</li>
+ </ol>
+
+ "Window1" should contain ESB Server side logging from the quickstart, showing the message before and
+ after execution through the SOAPProcessor.
+ <p/>
+ <img src="images/esb-console.png" />
+ <p/>
+ "Window2" should contain Client side logging from the quickstart, showing that the secure "Hello" message
+ was successully echoed back from the Server. See
+ <a type="text/plain" href="src/org/jboss/test/ws/jaxws/samples/wssecurity/client/WSSClient.java">WSSClient.java</a>.
+ <p/>
+ <img src="images/client-console.png" />
+ </body>
+</html>
Modified: labs/jbossesb/trunk/product/samples/quickstarts/wiretap/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/wiretap/readme.txt 2010-07-30 18:46:04 UTC (rev 34427)
+++ labs/jbossesb/trunk/product/samples/quickstarts/wiretap/readme.txt 2010-07-30 23:01:09 UTC (rev 34428)
@@ -1,73 +1,73 @@
-Overview:
-=========
- The purpose of the wiretap quickstart sample is demonstrate the wiretap J2EE
- pattern (http://www.enterpriseintegrationpatterns.com/WireTap.html) using a
- static router as implemented in org.jboss.soa.esb.actions.StaticRouter and a
- content based router (CBR) as implemented in
- org.jboss.soa.esb.actions.ContentBasedRouter
-
-Running this quickstart:
-========================
- Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
- and a more detailed descripton of the different ways to run the quickstarts.
-
-
-To Run:
-===========================
- 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
- 2. Open another command terminal window in this folder ("Window2"), type
- 'ant receive-destination'.
- 3. Open another command terminal window in this folder ("Window3"), type
- 'ant receive-wiretap'.
- 4. run the test ("Window1"), type 'ant runtest-cbr'.
- 5. Switch back to Application Server, "Window2" and "Window3" to see the output from
- the ESB
- 6. When finished, interrupt the receivers using Ctrl-C.
- 7. Undeploy the esb archive, type 'ant undeploy'.
-
-Things to Consider:
-===================
- The quickstart makes use of the queues illustrated (the queues are shown
- in boxes) in the following diagram. You might review the build.xml file to
- see how it is setup. More details on the build.xml can be found later in
- this document. You can modify the build.xmlto change the phrase sent in the
- messages.
-
- application initiated
- |
- |
- V
- -------------------------- ----------------------------
- |qswiretap_wire_GWRequest| --> |qswiretap_wire_out_Request|--> wiretap output
- -------------------------- ----------------------------
- |
- |
- V
- ---------------------------
- |qswiretap_regular_Request|
- ---------------------------
- |
- |
- V
- destination output
-
-Project File Descriptions
-=========================
- You can modify the "routeToFollow" element value in SampleOrder.xml to control
- the path that is followed thru the CBR. The valid values are: "regular,",
- "wiretap," and "both."
-
- * build.xml - The following targets are also supported
- * runtest - send message through the gateway listener in MyJMSListener
- directly to destination queue, bypasses wiretap completely.
-
- * wiretap - send message through the gateway listener MyJMSWiretapListener
- to wiretap output queue
-
- * static-router - send message through the static router gateway in
- org.jboss.soa.esb.actions.StaticRouter to both wiretap output queue and
- destination queue
-
- * runtest-cbr - send message throught the CBR router gateway in
- org.jboss.soa.esb.actions.ContentBasedRouter to both wiretap output queue
- and destination queue
+Overview:
+=========
+ The purpose of the wiretap quickstart sample is demonstrate the wiretap J2EE
+ pattern (http://www.enterpriseintegrationpatterns.com/WireTap.html) using a
+ static router as implemented in org.jboss.soa.esb.actions.StaticRouter and a
+ content based router (CBR) as implemented in
+ org.jboss.soa.esb.actions.ContentBasedRouter
+
+Running this quickstart:
+========================
+ Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+ and a more detailed descripton of the different ways to run the quickstarts.
+
+
+To Run:
+===========================
+ 1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+ 2. Open another command terminal window in this folder ("Window2"), type
+ 'ant receive-destination'.
+ 3. Open another command terminal window in this folder ("Window3"), type
+ 'ant receive-wiretap'.
+ 4. run the test ("Window1"), type 'ant runtest-cbr'.
+ 5. Switch back to Application Server, "Window2" and "Window3" to see the output from
+ the ESB
+ 6. When finished, interrupt the receivers using Ctrl-C.
+ 7. Undeploy the esb archive, type 'ant undeploy'.
+
+Things to Consider:
+===================
+ The quickstart makes use of the queues illustrated (the queues are shown
+ in boxes) in the following diagram. You might review the build.xml file to
+ see how it is setup. More details on the build.xml can be found later in
+ this document. You can modify the build.xmlto change the phrase sent in the
+ messages.
+
+ application initiated
+ |
+ |
+ V
+ -------------------------- ----------------------------
+ |qswiretap_wire_GWRequest| --> |qswiretap_wire_out_Request|--> wiretap output
+ -------------------------- ----------------------------
+ |
+ |
+ V
+ ---------------------------
+ |qswiretap_regular_Request|
+ ---------------------------
+ |
+ |
+ V
+ destination output
+
+Project File Descriptions
+=========================
+ You can modify the "routeToFollow" element value in SampleOrder.xml to control
+ the path that is followed thru the CBR. The valid values are: "regular,",
+ "wiretap," and "both."
+
+ * build.xml - The following targets are also supported
+ * runtest - send message through the gateway listener in MyJMSListener
+ directly to destination queue, bypasses wiretap completely.
+
+ * wiretap - send message through the gateway listener MyJMSWiretapListener
+ to wiretap output queue
+
+ * static-router - send message through the static router gateway in
+ org.jboss.soa.esb.actions.StaticRouter to both wiretap output queue and
+ destination queue
+
+ * runtest-cbr - send message throught the CBR router gateway in
+ org.jboss.soa.esb.actions.ContentBasedRouter to both wiretap output queue
+ and destination queue
More information about the jboss-svn-commits
mailing list