Overlord SVN: r368 - in cdl/trunk/distribution/eclipse: features and 1 other directories.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-10-08 06:56:14 -0400 (Wed, 08 Oct 2008)
New Revision: 368
Added:
cdl/trunk/distribution/eclipse/features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810081151.jar
cdl/trunk/distribution/eclipse/features/org.scribble.conversation.feature_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/features/org.scribble.experimental.feature_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/features/org.scribble.feature_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/features/org.scribble.protocol.feature_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.jboss.tools.overlord.cdl.jbossesb_1.0.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conformance_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.comparator_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.export.text_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.model_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.parser_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.projector_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.validation_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.core_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.designer_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.comparator_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.java.parser_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.model_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.osgi_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.comparator_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.export.text_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.model_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.parser_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.projector_0.1.0.200810081151.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.validation_0.1.0.200810081151.jar
Removed:
cdl/trunk/distribution/eclipse/features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810071417.jar
cdl/trunk/distribution/eclipse/features/org.scribble.conversation.feature_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/features/org.scribble.experimental.feature_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/features/org.scribble.feature_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/features/org.scribble.protocol.feature_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.jboss.tools.overlord.cdl.jbossesb_1.0.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conformance_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.comparator_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.export.text_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.model_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.parser_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.projector_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.validation_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.core_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.designer_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.comparator_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.java.parser_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.model_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.osgi_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.comparator_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.export.text_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.model_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.parser_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.projector_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.validation_0.1.0.200810071417.jar
Modified:
cdl/trunk/distribution/eclipse/site.xml
Log:
Update to fix conformance issues.
Deleted: cdl/trunk/distribution/eclipse/features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/features/org.scribble.conversation.feature_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/features/org.scribble.conversation.feature_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/features/org.scribble.conversation.feature_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/features/org.scribble.experimental.feature_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/features/org.scribble.experimental.feature_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/features/org.scribble.experimental.feature_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/features/org.scribble.feature_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/features/org.scribble.feature_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/features/org.scribble.feature_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/features/org.scribble.protocol.feature_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/features/org.scribble.protocol.feature_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/features/org.scribble.protocol.feature_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.jboss.tools.overlord.cdl.jbossesb_1.0.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.jboss.tools.overlord.cdl.jbossesb_1.0.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.jboss.tools.overlord.cdl.jbossesb_1.0.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conformance_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conformance_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conformance_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.comparator_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.comparator_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.comparator_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.export.text_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.export.text_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.export.text_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.model_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.model_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.model_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.parser_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.parser_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.parser_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.projector_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.projector_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.projector_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.validation_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.validation_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.validation_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.core_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.core_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.core_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.designer_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.designer_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.designer_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.comparator_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.comparator_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.comparator_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.java.parser_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.java.parser_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.java.parser_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.model_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.model_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.model_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.osgi_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.osgi_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.osgi_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.comparator_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.comparator_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.comparator_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.export.text_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.export.text_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.export.text_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.model_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.model_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.model_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.parser_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.parser_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.parser_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.projector_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.projector_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.projector_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.validation_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.validation_0.1.0.200810081151.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.validation_0.1.0.200810081151.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: cdl/trunk/distribution/eclipse/site.xml
===================================================================
--- cdl/trunk/distribution/eclipse/site.xml 2008-10-08 06:34:33 UTC (rev 367)
+++ cdl/trunk/distribution/eclipse/site.xml 2008-10-08 10:56:14 UTC (rev 368)
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<site>
- <feature url="features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810071417.jar" id="org.jboss.tools.overlord.cdl.jbossesb.feature" version="1.0.0.200810071417">
+ <feature url="features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810081151.jar" id="org.jboss.tools.overlord.cdl.jbossesb.feature" version="1.0.0.200810081151">
<category name="JBossESB"/>
</feature>
- <feature url="features/org.scribble.conversation.feature_0.1.0.200810071417.jar" id="org.scribble.conversation.feature" version="0.1.0.200810071417">
+ <feature url="features/org.scribble.conversation.feature_0.1.0.200810081151.jar" id="org.scribble.conversation.feature" version="0.1.0.200810081151">
<category name="Common"/>
</feature>
- <feature url="features/org.scribble.experimental.feature_0.1.0.200810071417.jar" id="org.scribble.experimental.feature" version="0.1.0.200810071417">
+ <feature url="features/org.scribble.experimental.feature_0.1.0.200810081151.jar" id="org.scribble.experimental.feature" version="0.1.0.200810081151">
<category name="Common"/>
</feature>
- <feature url="features/org.scribble.feature_0.1.0.200810071417.jar" id="org.scribble.feature" version="0.1.0.200810071417">
+ <feature url="features/org.scribble.feature_0.1.0.200810081151.jar" id="org.scribble.feature" version="0.1.0.200810081151">
<category name="Common"/>
</feature>
- <feature url="features/org.scribble.protocol.feature_0.1.0.200810071417.jar" id="org.scribble.protocol.feature" version="0.1.0.200810071417">
+ <feature url="features/org.scribble.protocol.feature_0.1.0.200810081151.jar" id="org.scribble.protocol.feature" version="0.1.0.200810081151">
<category name="Common"/>
</feature>
<category-def name="JBossESB" label="JBossESB">
15 years, 7 months
Overlord SVN: r367 - in cdl/trunk: docs/docbook/samplesguide and 7 other directories.
by overlord-commits@lists.jboss.org
Author: jeff.yuchang
Date: 2008-10-08 02:34:33 -0400 (Wed, 08 Oct 2008)
New Revision: 367
Added:
cdl/trunk/docs/docbook/samplesguide/
cdl/trunk/docs/docbook/samplesguide/pom.xml
cdl/trunk/docs/docbook/samplesguide/src/
cdl/trunk/docs/docbook/samplesguide/src/main/
cdl/trunk/docs/docbook/samplesguide/src/main/images/
cdl/trunk/docs/docbook/samplesguide/src/main/master.xml
cdl/trunk/docs/docbook/samplesguide/src/main/module/
cdl/trunk/docs/docbook/samplesguide/src/main/module/author_group.xml
cdl/trunk/docs/docbook/samplesguide/src/main/module/overview.xml
cdl/trunk/docs/docbook/samplesguide/src/main/module/template.xml
Modified:
cdl/trunk/docs/docbook/pom.xml
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ParallelAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/RetrieveSessionAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SendMessageAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetMessageAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java
cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/Request4QuoteMain.java
cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml
Log:
* Refactor the 'parentReference' work, it works now.
* Add samples guide docbook module.
* Refactor the Action code, move the Action specific constants into Action class itself.
Modified: cdl/trunk/docs/docbook/pom.xml
===================================================================
--- cdl/trunk/docs/docbook/pom.xml 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/docs/docbook/pom.xml 2008-10-08 06:34:33 UTC (rev 367)
@@ -12,6 +12,7 @@
<modules>
<module>userguide</module>
+ <module>samplesguide</module>
</modules>
<repositories>
Added: cdl/trunk/docs/docbook/samplesguide/pom.xml
===================================================================
--- cdl/trunk/docs/docbook/samplesguide/pom.xml (rev 0)
+++ cdl/trunk/docs/docbook/samplesguide/pom.xml 2008-10-08 06:34:33 UTC (rev 367)
@@ -0,0 +1,87 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.jboss.soa.overlord.cdl.docs</groupId>
+ <artifactId>samplesguide</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>jdocbook</packaging>
+ <name>Overlord::CDL::Docs::samplesguide</name>
+
+ <parent>
+ <groupId>org.jboss.soa.overlord.cdl</groupId>
+ <artifactId>docs</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </parent>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.jboss.maven.plugins</groupId>
+ <artifactId>maven-jdocbook-plugin</artifactId>
+ <version>2.1.2</version>
+ <extensions>true</extensions>
+ <executions>
+ <execution>
+ <id>generate-docbook</id>
+ <phase>package</phase>
+ <goals>
+ <goal>resources</goal>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-docbook-xslt</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-jdocbook-style</artifactId>
+ <version>1.1.0</version>
+ <type>jdocbook-style</type>
+ </dependency>
+ </dependencies>
+ <configuration>
+ <sourceDocumentName>master.xml</sourceDocumentName>
+ <sourceDirectory>${basedir}/src/main</sourceDirectory>
+ <imageResource>
+ <directory>${basedir}/src/main</directory>
+ <includes>
+ <include>images/**/*</include>
+ </includes>
+ </imageResource>
+ <formats>
+ <format>
+ <formatName>pdf</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+ <finalName>SamplesGuide.pdf</finalName>
+ </format>
+ <format>
+ <formatName>html</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ <format>
+ <formatName>html_single</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+ <finalName>index.html</finalName>
+ </format>
+ </formats>
+ <options>
+ <xincludeSupported>true</xincludeSupported>
+ <xmlTransformerType>saxon</xmlTransformerType>
+ <docbookVersion>1.72.0</docbookVersion>
+ </options>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+</project>
Added: cdl/trunk/docs/docbook/samplesguide/src/main/master.xml
===================================================================
--- cdl/trunk/docs/docbook/samplesguide/src/main/master.xml (rev 0)
+++ cdl/trunk/docs/docbook/samplesguide/src/main/master.xml 2008-10-08 06:34:33 UTC (rev 367)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % RH-ENTITIES SYSTEM "Common_Config/rh-entities.ent">
+]>
+
+<book lang="en">
+ <bookinfo>
+ <title>JBoss Overlord CDL 1.0</title>
+ <subtitle>Samples Guide</subtitle>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="module/author_group.xml"/>
+ </bookinfo>
+
+ <toc/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="module/overview.xml"/>
+
+</book>
Added: cdl/trunk/docs/docbook/samplesguide/src/main/module/author_group.xml
===================================================================
--- cdl/trunk/docs/docbook/samplesguide/src/main/module/author_group.xml (rev 0)
+++ cdl/trunk/docs/docbook/samplesguide/src/main/module/author_group.xml 2008-10-08 06:34:33 UTC (rev 367)
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<authorgroup>
+ <corpauthor>Gary Brown</corpauthor>
+ <corpauthor>Jeff Yu</corpauthor>
+</authorgroup>
Added: cdl/trunk/docs/docbook/samplesguide/src/main/module/overview.xml
===================================================================
--- cdl/trunk/docs/docbook/samplesguide/src/main/module/overview.xml (rev 0)
+++ cdl/trunk/docs/docbook/samplesguide/src/main/module/overview.xml 2008-10-08 06:34:33 UTC (rev 367)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<chapter id="overview">
+ <title>Overview</title>
+ <para>The Overlord CDL distribution contains two main types of functionality:</para>
+ <orderedlist>
+ <listitem>
+ the ability to validate executing services against a choreography description (an example of runtime governance).
+ </listitem>
+ <listitem>
+ the ability to build an ESB using 'conversation aware' actions which can be checked for conformance against a choreography description (an example of design time governance).
+ </listitem>
+ </orderedlist>
+
+ <para>
+ This document will describe the samples available to demonstrate each aspect of the functionality.
+ </para>
+ <para>
+ Further information about configuring the runtime validation of services against a choreography can be found in the <emphasis role="bold">UserGuide</emphasis>.
+ Information regarding the conversation aware ESB actions, and how to use them in conjunction with conformance checking against a choreography description, can also be found in the <emphasis role="bold">UserGuide</emphasis>.
+ </para>
+
+ <note>
+ <para>
+ Before attempting to install and run these examples, you must follow the instructions in the <emphasis role="bold">"Getting Started" Chapter</emphasis> of <emphasis role="bold">User Guide</emphasis> regarding installing Overlord CDL into a JBossAS environment.
+ </para>
+ </note>
+
+</chapter>
Added: cdl/trunk/docs/docbook/samplesguide/src/main/module/template.xml
===================================================================
--- cdl/trunk/docs/docbook/samplesguide/src/main/module/template.xml (rev 0)
+++ cdl/trunk/docs/docbook/samplesguide/src/main/module/template.xml 2008-10-08 06:34:33 UTC (rev 367)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<chapter id="chapter-id">
+ <title>Chapter title</title>
+ <para>To be written...</para>
+</chapter>
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -116,6 +116,7 @@
if (sessionKey != null) {
org.hibernate.Session hibernateSession = HibernateUtil.currentSession();
Session session = (Session) hibernateSession.load(Session.class, Long.valueOf(sessionKey));
+ injectParentReference(session);
return session;
}
@@ -189,10 +190,18 @@
}
Session session = theID.getSession();
+ injectParentReference(session);
+
logger.debug("Get Session of " + session + " by using identity of " + id);
return session;
}
-
+ private static void injectParentReference(Session session) {
+ String parentProperty = session.getProperties().get(Session.PARENT_REFERENCE_KEY);
+ if (parentProperty!= null && session.getParent() != null) {
+ Object parentBizObj = session.getParent().getBusinessObject();
+ MVEL.setProperty(session.getBusinessObject(), parentProperty, parentBizObj);
+ }
+ }
}
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -43,28 +43,9 @@
public static final String CLIENT_EPR = "clientEPR";
- public static final String CATEGORY = "category"; // request, response, notification
-
public static final String SERVICE_NAME_PROPERTY = "serviceName";
public static final String SERVICE_CATEGORY_PROPERTY = "serviceCategory";
public static final String SERVICE_DESCRIPTION_NAME = "serviceDescriptionName";
- public static final String PARENT_PROPERTY = "parentProperty";
-
- public static final String PARENT_REFERENCE_PROPERTY = "parentReference";
-
- public static final String RESPONSE_SERVICE_NAME = "responseServiceName";
- public static final String RESPONSE_SERVICE_CATEGORY = "responseServiceCategory";
-
- public static final String RETURN_SERVICE_NAME = "returnServiceName";
- public static final String RETURN_SERVICE_CATEGORY = "returnServiceCategory";
-
- public static final String SERVICE_NAME_EXPRESSION = "serviceNameExpression";
- public static final String SERVICE_CATEGORY_EXPRESSION = "serviceCategoryExpression";
-
- public static final String IMMEDIATE = "immediate";
-
public static final String IDENTITIES = "identities";
-
- public static final String INITIATE = "initiate" ;
}
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -41,9 +41,10 @@
import org.jboss.soa.overlord.jbossesb.util.HibernateUtil;
import org.jboss.soa.overlord.jbossesb.util.MessageUtil;
import org.jboss.soa.overlord.jbossesb.util.XMLUtils;
+import org.mvel.MVEL;
/**
- * Base activity, all the ESB aware actions extends from this one.
+ * Base activity, all the ESB aware actions extend from this one.
*
* @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
* @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
@@ -58,6 +59,8 @@
protected boolean unscheduledServiceItem = false;
+ protected Session session;
+
public ConversationAction(ConfigTree config) {
this.config = config;
}
@@ -118,7 +121,7 @@
Identity id = new Identity();
id.setType(IdentityType.toIdentityType(type));
id.setProperties(properties);
- id.setSession(getSession(message));
+ id.setSession(session);
if (serviceDescriptionName != null) {
id.setServiceName(serviceDescriptionName);
}
@@ -145,8 +148,7 @@
protected String getMessageType(Message message) throws Exception {
String mesgType=(String)message.getProperties().getProperty( MessageProperties.MESSAGE_TYPE);
- // NOTE: Only deals with XML at present
-
+ // NOTE: Only deals with XML at present
if (mesgType == null) {
Object value=message.getBody().get();
@@ -160,7 +162,7 @@
return(mesgType);
}
- protected Session getSession(Message message) throws Exception {
+ private Session getSession(Message message) throws Exception {
return getSession(message, null);
}
@@ -170,7 +172,6 @@
if (ret == null) {
ret = SessionManager.retrieveSession(sessionKey, ids);
if (ret != null) {
- //message.getProperties().setProperty(MessageProperties.SESSION, ret);
message.getProperties().setProperty(MessageProperties.SESSION_KEY, String.valueOf(ret.getId()));
} else {
logger.debug("Can not get session by using neither session key of [" + sessionKey +"] nor" +
@@ -187,13 +188,11 @@
* @throws Exception
*/
public Message process(Message message) throws Exception {
- String sessionKey=(String)message.getProperties().getProperty(MessageProperties.SESSION_KEY);
- logger.debug("Session Key is [" + sessionKey + "] Body is: [" + message.getBody().get() + "]");
org.hibernate.Session hibernateSession = HibernateUtil.currentSession();
Transaction transaction = hibernateSession.beginTransaction();
try {
- Session session = getSession(message);
+ session = getSession(message);
if (session != null && isFirstOrLastConversationAction(message, true)) {
logger.debug("This is first conversation action to unschedule the item.");
unschedule(message);
@@ -202,13 +201,15 @@
handle(message);
- session = getSession(message);
+ SessionManager.updateObject(session);
+ updateParentSessionBizObject();
+
if (session != null && isFirstOrLastConversationAction(message, false)) {
logger.debug("This is the last conversation action.");
if (session.getScheduleItems().size() <= 0) {
session.setStatus(SessionStatus.Completed);
SessionManager.updateObject(session);
- logger.info("Completed the session of " + session);
+ logger.debug("Completed the session of " + session);
if (session.getParent() != null) {
invokeSubsessionExitService(message, session);
}
@@ -227,6 +228,16 @@
return message;
}
+
+ private void updateParentSessionBizObject() {
+ String parentProperty = session.getProperties().get(Session.PARENT_REFERENCE_KEY);
+ if (parentProperty != null && session.getParent() != null) {
+ Object parentBizObj = MVEL.eval(parentProperty, session.getBusinessObject());
+ Session parentSession = session.getParent();
+ parentSession.setBusinessObject(parentBizObj);
+ SessionManager.updateObject(parentSession);
+ }
+ }
private void invokeSubsessionExitService(Message message, Session session)
@@ -293,7 +304,6 @@
protected void unschedule(Message message) throws Exception {
String serviceCategory=getConfig().getParent().getAttribute(ActionProperties.SERVICE_CATEGORY);
String serviceName=getConfig().getParent().getAttribute(ActionProperties.SERVICE_NAME);
- Session session = getSession(message);
session.unschedule(serviceCategory, serviceName);
}
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/IfAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -22,7 +22,6 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.overlord.jbossesb.Session;
import org.mvel.MVEL;
/**
@@ -34,6 +33,9 @@
*/
public class IfAction extends ConversationAction {
+ public static final String IF_STATEMENT = "if";
+ public static final String ELSE_STATEMENT = "else";
+
private static Logger logger = Logger.getLogger(IfAction.class);
public IfAction(ConfigTree config) {
@@ -41,7 +43,6 @@
}
public Message handle(Message message) throws Exception{
- Session session=getSession(message);
ConfigTree ifConfig = null;
ConfigTree elseConfig = null;
@@ -49,9 +50,9 @@
ConfigTree[] children=getConfig().getAllChildren();
for (ConfigTree ct : children) {
- if ("if".equals(ct.getName())) {
+ if (IF_STATEMENT.equals(ct.getName())) {
ifConfig = ct;
- } else if ("else".equals(ct.getName())){
+ } else if (ELSE_STATEMENT.equals(ct.getName())){
elseConfig = ct;
} else {
throw new Exception("Unrecognized configuration Node in IfAction.");
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageRouterAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -28,7 +28,6 @@
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.overlord.jbossesb.Identity;
import org.jboss.soa.overlord.jbossesb.ScheduleItem;
-import org.jboss.soa.overlord.jbossesb.Session;
/**
* Route message to different services according to the 'MessageType'.
@@ -37,6 +36,8 @@
*/
public class MessageRouterAction extends ConversationAction {
+ public static final String INITIATE = "initiate" ;
+
private static Logger logger = Logger.getLogger(MessageRouterAction.class);
public MessageRouterAction(ConfigTree config) {
@@ -64,10 +65,10 @@
if (routerFlag == false && (selectedMsgConfig != null)) {
List<Identity> ids = getIdentities(message, svcDesc, selectedMsgConfig);
- Session session = getSession(message, ids);
+ session = getSession(message, ids);
String serviceCategory = ct.getAttribute(ActionProperties.SERVICE_CATEGORY);
String serviceName = ct.getAttribute(ActionProperties.SERVICE_NAME);
- String initiate = ct.getAttribute(ActionProperties.INITIATE);
+ String initiate = ct.getAttribute(INITIATE);
if ("true".equals(initiate) && session == null) {
logger.info("This is an initiate process of " + serviceCategory + "/" + serviceName);
routerFlag = true;
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ParallelAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ParallelAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ParallelAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -22,7 +22,6 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.overlord.jbossesb.Session;
/**
* This action represents a parallel construct.
@@ -32,6 +31,9 @@
*/
public class ParallelAction extends ConversationAction {
+ public static final String PATH_BRANCH = "path";
+ public static final String JOIN_BRANCH = "join";
+
private static Logger logger = Logger.getLogger(ParallelAction.class);
public ParallelAction(ConfigTree config) {
@@ -39,7 +41,7 @@
}
public Message handle(Message message) throws Exception{
- Session session=getSession(message);
+
int pathCount=0;
String joinCategory=null;
String joinName=null;
@@ -47,9 +49,9 @@
ConfigTree[] children=getConfig().getAllChildren();
for (int i=0; i < children.length; i++) {
- if (children[i].getName().equals("path")) {
+ if (PATH_BRANCH.equals(children[i].getName())) {
pathCount++;
- } else if (children[i].getName().equals("join")) {
+ } else if (JOIN_BRANCH.equals(children[i].getName())) {
// Check if join already defined
if (joinName != null) {
@@ -74,8 +76,7 @@
// Schedule the paths
for (int i=0; i < children.length; i++) {
-
- if (children[i].getName().equals("path")) {
+ if (PATH_BRANCH.equals(children[i].getName())) {
String category=children[i].getAttribute("service-category");
String name=children[i].getAttribute("service-name");
String immediate=children[i].getAttribute("immediate","false");
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -35,6 +35,12 @@
*/
public class PerformAction extends ConversationAction {
+ public static final String RETURN_SERVICE_CATEGORY = "returnServiceCategory";
+ public static final String RETURN_SERVICE_NAME = "returnServiceName";
+ public static final String PARENT_REFERENCE_PROPERTY = "parentReference";
+ public static final String FROM_EXPRESSION = "from-expression";
+ public static final String TO_VARIABLE = "to-variable";
+
private Logger logger = Logger.getLogger(PerformAction.class);
public PerformAction(ConfigTree config) {
@@ -46,7 +52,6 @@
public Message handle(Message message) throws Exception {
String serviceCategory = getConfig().getAttribute(ActionProperties.SERVICE_CATEGORY_PROPERTY);
String serviceName = getConfig().getAttribute(ActionProperties.SERVICE_NAME_PROPERTY);
- Session session = getSession(message);
ConfigTree[] configs = getConfig().getAllChildren();
@@ -54,8 +59,8 @@
for(ConfigTree ct : configs) {
if ("bind".equals(ct.getName())) {
- String fromExpression = ct.getAttribute("from-expression");
- String toVariable = ct.getAttribute("to-variable");
+ String fromExpression = ct.getAttribute(FROM_EXPRESSION);
+ String toVariable = ct.getAttribute(TO_VARIABLE);
Object o = MVEL.eval(fromExpression, session.getBusinessObject());
bindingVal.put(toVariable, o);
@@ -64,7 +69,7 @@
}
message.getProperties().setProperty(MessageProperties.BOUND_VARIABLE_KEY, bindingVal);
- String parentProperty = getConfig().getAttribute(ActionProperties.PARENT_REFERENCE_PROPERTY);
+ String parentProperty = getConfig().getAttribute(PARENT_REFERENCE_PROPERTY);
if (parentProperty != null) {
Map<String, String> properties = new HashMap<String, String>();
properties.put(Session.PARENT_REFERENCE_KEY, parentProperty);
@@ -74,8 +79,8 @@
session.schedule(serviceCategory, serviceName, message);
addScheduleItemToDeliver(serviceCategory, serviceName);
- String returnServiceCategory = getConfig().getAttribute(ActionProperties.RETURN_SERVICE_CATEGORY);
- String returnServiceName = getConfig().getAttribute(ActionProperties.RETURN_SERVICE_NAME);
+ String returnServiceCategory = getConfig().getAttribute(RETURN_SERVICE_CATEGORY);
+ String returnServiceName = getConfig().getAttribute(RETURN_SERVICE_NAME);
if (returnServiceCategory != null && returnServiceName != null) {
session.schedule(returnServiceCategory, returnServiceName, message);
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ReceiveMessageAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -24,7 +24,6 @@
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.overlord.jbossesb.Identity;
-import org.jboss.soa.overlord.jbossesb.Session;
/**
* Receive activity.
@@ -55,7 +54,7 @@
if (requiredMType.equals(mesgMType)) {
java.util.List<Identity> ids=getIdentities(message, serviceName);
- Session session=getSession(message, ids);
+ session=getSession(message, ids);
session.assimulateIdentities(ids);
logger.info("MESSAGE TYPE ["+mesgMType+"] RECEIVED.");
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/RetrieveSessionAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/RetrieveSessionAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/RetrieveSessionAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -25,7 +25,6 @@
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.overlord.jbossesb.Identity;
-import org.jboss.soa.overlord.jbossesb.Session;
/**
* This action gets an existed session.
@@ -45,7 +44,7 @@
String serviceDescriptionName = getConfig().getAttribute(ActionProperties.SERVICE_DESCRIPTION_NAME);
List<Identity> ids = getIdentities(message, serviceDescriptionName);
- Session session= getSession(message, ids);
+ session= getSession(message, ids);
String serviceName=getConfig().getParent().getAttribute(ActionProperties.SERVICE_NAME);
String serviceCategory=getConfig().getParent().getAttribute(ActionProperties.SERVICE_CATEGORY);
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -22,7 +22,6 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.overlord.jbossesb.Session;
/**
* Schedule state activity.
@@ -32,6 +31,8 @@
*/
public class ScheduleStateAction extends ConversationAction {
+ public static final String IMMEDIATE = "immediate";
+
private static Logger logger = Logger.getLogger(ScheduleStateAction.class);
public ScheduleStateAction(ConfigTree config) {
@@ -41,9 +42,8 @@
public Message handle(Message message) throws Exception {
String serviceName=getConfig().getAttribute(ActionProperties.SERVICE_NAME_PROPERTY);
String serviceCategory=getConfig().getAttribute(ActionProperties.SERVICE_CATEGORY_PROPERTY);
- String immediate=getConfig().getAttribute(ActionProperties.IMMEDIATE);
-
- Session session=getSession(message);
+ String immediate=getConfig().getAttribute(IMMEDIATE);
+
session.schedule(serviceCategory, serviceName, message);
if ("true".equalsIgnoreCase(immediate)) {
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SendMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SendMessageAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SendMessageAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -33,7 +33,6 @@
import org.jboss.soa.esb.message.format.MessageType;
import org.jboss.soa.overlord.jbossesb.Identity;
import org.jboss.soa.overlord.jbossesb.LogicalCourier;
-import org.jboss.soa.overlord.jbossesb.Session;
import org.mvel.MVEL;
@@ -45,8 +44,14 @@
*/
public class SendMessageAction extends ConversationAction {
+ public static final String RESPONSE_SERVICE_CATEGORY = "responseServiceCategory";
+ public static final String RESPONSE_SERVICE_NAME = "responseServiceName";
+ public static final String SERVICE_NAME_EXPRESSION = "serviceNameExpression";
+ public static final String SERVICE_CATEGORY_EXPRESSION = "serviceCategoryExpression";
+
private Logger logger = Logger.getLogger(SendMessageAction.class);
+
public SendMessageAction(ConfigTree config) {
super(config);
}
@@ -64,13 +69,11 @@
if (requiredMType.equals(mesgMType)) {
String serviceName=getConfig().getAttribute(ActionProperties.SERVICE_NAME_PROPERTY);
String serviceCategory=getConfig().getAttribute(ActionProperties.SERVICE_CATEGORY_PROPERTY);
- String respServiceName=getConfig().getAttribute(ActionProperties.RESPONSE_SERVICE_NAME);
- String respServiceCategory=getConfig().getAttribute(ActionProperties.RESPONSE_SERVICE_CATEGORY);
+ String respServiceName=getConfig().getAttribute(RESPONSE_SERVICE_NAME);
+ String respServiceCategory=getConfig().getAttribute(RESPONSE_SERVICE_CATEGORY);
String clientEPR=getConfig().getAttribute(ActionProperties.CLIENT_EPR);
- String nameExpression = getConfig().getAttribute(ActionProperties.SERVICE_NAME_EXPRESSION);
- String categoryExpression = getConfig().getAttribute(ActionProperties.SERVICE_CATEGORY_EXPRESSION);
-
- Session session=getSession(message);
+ String nameExpression = getConfig().getAttribute(SERVICE_NAME_EXPRESSION);
+ String categoryExpression = getConfig().getAttribute(SendMessageAction.SERVICE_CATEGORY_EXPRESSION);
List<Identity> ids=getIdentities(message, null);
session.assimulateIdentities(ids);
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetMessageAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetMessageAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetMessageAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -22,7 +22,6 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.overlord.jbossesb.Session;
import org.mvel.MVEL;
/**
@@ -33,6 +32,10 @@
*/
public class SetMessageAction extends ConversationAction {
+ public static final String STATE_EXPRESSION = "stateExpression";
+
+ public static final String HEADER_PROPERTY = "headerProperty";
+
private Logger logger = Logger.getLogger(SetMessageAction.class);
public SetMessageAction(ConfigTree config) {
@@ -42,13 +45,13 @@
@Override
public Message handle(Message message) throws Exception {
- String expression = getConfig().getAttribute("stateExpression");
- String headerProperty = getConfig().getAttribute("headerProperty");
- Session session = getSession(message);
+ String expression = getConfig().getAttribute(STATE_EXPRESSION);
+ String headerProperty = getConfig().getAttribute(HEADER_PROPERTY);
+
Object obj = MVEL.eval(expression, session.getBusinessObject());
if (headerProperty != null) {
message.getProperties().setProperty(headerProperty, obj);
- logger.info("Set object of " + obj + " to header property of " + headerProperty);
+ logger.info("Set object of " + obj + " to header property: " + headerProperty);
}
return message;
}
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -22,8 +22,6 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.overlord.jbossesb.Session;
-import org.jboss.soa.overlord.jbossesb.SessionManager;
import org.jboss.soa.overlord.jbossesb.util.XMLUtils;
import org.mvel.MVEL;
import org.w3c.dom.Element;
@@ -34,6 +32,9 @@
*/
public class SetStateAction extends ConversationAction {
+ public static final String STATE_EXPRESSION = "stateExpression";
+ public static final String MESSAGE_EXPRESSION = "messageExpression";
+
private Logger logger = Logger.getLogger(SetStateAction.class);
public SetStateAction(ConfigTree config) {
@@ -44,30 +45,14 @@
@Override
public Message handle(Message message) throws Exception {
String variable = getConfig().getAttribute("variable");
- String stateExpression = getConfig().getAttribute("stateExpression");
- String messageExpression = getConfig().getAttribute("messageExpression");
+ String stateExpression = getConfig().getAttribute(STATE_EXPRESSION);
+ String messageExpression = getConfig().getAttribute(MESSAGE_EXPRESSION);
if (variable == null) {
throw new NullPointerException("variable can not be null");
}
- boolean need2UpdateParentState = false;
-
- Session session = getSession(message);
- Object bstate = session.getBusinessObject();
-
- if (session.getParent() != null) {
- Session parentSession = session.getParent();
- String parentReference = session.getProperties().get(Session.PARENT_REFERENCE_KEY);
- logger.debug("parentReference is : " + parentReference);
- if (parentReference != null) {
- Object parentState = parentSession.getBusinessObject();
- MVEL.setProperty(bstate, parentReference, parentState);
- need2UpdateParentState = true;
- }
- }
-
-
+ Object bstate = session.getBusinessObject();
if (stateExpression != null) {
Object result = MVEL.eval(stateExpression, bstate);
MVEL.setProperty(bstate, variable, result);
@@ -79,21 +64,10 @@
MVEL.setProperty(bstate, variable, result);
logger.info("populated from messageExpression of: " + messageExpression);
} else {
- MVEL.eval(variable, bstate);
+ throw new Exception ("Neither stateExpression nor messageExpression has been specified.");
}
- if (need2UpdateParentState) {
- Session parentSession = session.getParent();
- String parentReference = session.getProperties().get(Session.PARENT_REFERENCE_KEY);
- Object updatedObject = MVEL.eval(parentReference, bstate);
- parentSession.setBusinessObject(updatedObject);
- SessionManager.updateObject(parentSession);
- logger.info("populated to parentProperty of: " + parentReference);
- }
- session.setBusinessObject(bstate);
- SessionManager.updateObject(session);
-
return message;
}
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -22,7 +22,6 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.overlord.jbossesb.Session;
/**
* This action represents a choice between a set of specified paths
@@ -33,6 +32,8 @@
*/
public class SwitchAction extends ConversationAction {
+ public static final String CASE_STATEMENT = "case";
+
private static Logger logger = Logger.getLogger(SwitchAction.class);
public SwitchAction(ConfigTree config) {
@@ -40,7 +41,6 @@
}
public Message handle(Message message) throws Exception{
- Session session=getSession(message);
// Get the message type
String mesgMType=getMessageType(message);
@@ -52,7 +52,7 @@
for (int i=0; i < children.length; i++) {
- if (children[i].getName().equals("case")) {
+ if (children[i].getName().equals(CASE_STATEMENT)) {
String category=children[i].getAttribute("service-category");
String name=children[i].getAttribute("service-name");
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhenAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -22,7 +22,6 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.overlord.jbossesb.Session;
import org.mvel.MVEL;
/**
@@ -32,6 +31,9 @@
*/
public class WhenAction extends ConversationAction {
+ public static final String EXPRESSION = "expression";
+ public static final String WHEN_STATEMENT = "when";
+
private static Logger logger = Logger.getLogger(WhenAction.class);
public WhenAction(ConfigTree config) {
@@ -42,12 +44,10 @@
@Override
public Message handle(Message message) throws Exception {
- Session session = getSession(message);
-
for(ConfigTree ct : getConfig().getAllChildren()) {
- if ("when".equals(ct.getName())) {
+ if (WHEN_STATEMENT.equals(ct.getName())) {
//TODO: make the expression as an method name temporarily
- String decision = ct.getAttribute("expression");
+ String decision = ct.getAttribute(EXPRESSION);
String category = ct.getAttribute(ActionProperties.SERVICE_CATEGORY);
String name = ct.getAttribute(ActionProperties.SERVICE_NAME);
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/WhileAction.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -22,16 +22,18 @@
import org.apache.log4j.Logger;
import org.jboss.soa.esb.helpers.ConfigTree;
import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.overlord.jbossesb.Session;
import org.mvel.MVEL;
/**
*
- *
* @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class WhileAction extends ConversationAction {
+ public static final String WHILE_BRANCH = "while";
+ public static final String EXIT_BRANCH = "exit";
+ public static final String DECISION_METHOD = "decision-method";
+
private Logger logger = Logger.getLogger(WhileAction.class);
public WhileAction(ConfigTree config) {
@@ -40,15 +42,15 @@
@Override
public Message handle(Message message) throws Exception {
- Session session = getSession(message);
+
ConfigTree whileConfig = null;
ConfigTree exitConfig = null;
ConfigTree[] configTrees = getConfig().getAllChildren();
for (ConfigTree ct : configTrees) {
- if ("while".equals(ct.getName())) {
+ if (WHILE_BRANCH.equals(ct.getName())) {
whileConfig = ct;
- } else if ("exit".equals(ct.getName())){
+ } else if (EXIT_BRANCH.equals(ct.getName())){
exitConfig = ct;
} else {
throw new Exception("Unrecognized configuration Node in WhileAction");
@@ -56,7 +58,7 @@
}
//TODO: Need to think about the expression.
- String decisionMethod = whileConfig.getAttribute("decision-method");
+ String decisionMethod = whileConfig.getAttribute(DECISION_METHOD);
logger.debug("decision method is : " + decisionMethod);
if (decisionMethod != null) {
Object response = MVEL.eval(getMvelMethodName(decisionMethod), session.getBusinessObject());
Modified: cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/Request4QuoteMain.java
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/Request4QuoteMain.java 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/Request4QuoteMain.java 2008-10-08 06:34:33 UTC (rev 367)
@@ -49,11 +49,9 @@
public void setQuote(Quote quote) {
this.quote = quote;
+ quoteManager.getQuotes().add(this.quote);
}
- public void addToQuoteManager() {
- quoteManager.getQuotes().add(quote);
- }
public QuoteManager getQuoteManager() {
return quoteManager;
Modified: cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml 2008-10-07 13:22:59 UTC (rev 366)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml 2008-10-08 06:34:33 UTC (rev 367)
@@ -435,11 +435,7 @@
process="process" name="s9-3">
<property name="variable" value="quote.value" />
<property name="messageExpression" value="/quote" />
- </action>
- <action class="org.jboss.soa.overlord.jbossesb.actions.SetStateAction"
- process="process" name="s9-4">
- <property name="variable" value="addToQuoteManager()" />
- </action>
+ </action>
</actions>
</service>
15 years, 7 months
Overlord SVN: r366 - in cdl/trunk/distribution/eclipse: features and 1 other directories.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-10-07 09:22:59 -0400 (Tue, 07 Oct 2008)
New Revision: 366
Added:
cdl/trunk/distribution/eclipse/features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810071417.jar
cdl/trunk/distribution/eclipse/features/org.scribble.conversation.feature_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/features/org.scribble.experimental.feature_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/features/org.scribble.feature_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/features/org.scribble.protocol.feature_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.jboss.tools.overlord.cdl.jbossesb_1.0.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conformance_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.comparator_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.export.text_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.model_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.parser_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.projector_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.validation_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.core_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.designer_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.comparator_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.java.parser_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.model_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.osgi_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.comparator_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.export.text_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.model_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.parser_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.projector_0.1.0.200810071417.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.validation_0.1.0.200810071417.jar
Removed:
cdl/trunk/distribution/eclipse/features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200809221625.jar
cdl/trunk/distribution/eclipse/features/org.scribble.conversation.feature_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/features/org.scribble.experimental.feature_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/features/org.scribble.feature_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/features/org.scribble.protocol.feature_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.jboss.tools.overlord.cdl.jbossesb_1.0.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conformance_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.comparator_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.export.text_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.model_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.parser_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.projector_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.validation_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.core_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.designer_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.comparator_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.java.parser_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.model_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.osgi_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.comparator_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.export.text_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.model_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.parser_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.projector_0.1.0.200809221625.jar
cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.validation_0.1.0.200809221625.jar
Modified:
cdl/trunk/distribution/eclipse/site.xml
Log:
Update to latest plugins within the distribution.
Deleted: cdl/trunk/distribution/eclipse/features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/features/org.scribble.conversation.feature_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/features/org.scribble.conversation.feature_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/features/org.scribble.conversation.feature_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/features/org.scribble.experimental.feature_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/features/org.scribble.experimental.feature_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/features/org.scribble.experimental.feature_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/features/org.scribble.feature_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/features/org.scribble.feature_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/features/org.scribble.feature_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/features/org.scribble.protocol.feature_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/features/org.scribble.protocol.feature_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/features/org.scribble.protocol.feature_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.jboss.tools.overlord.cdl.jbossesb_1.0.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.jboss.tools.overlord.cdl.jbossesb_1.0.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.jboss.tools.overlord.cdl.jbossesb_1.0.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conformance_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conformance_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conformance_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.comparator_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.comparator_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.comparator_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.export.text_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.export.text_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.export.text_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.model_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.model_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.model_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.parser_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.parser_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.parser_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.projector_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.projector_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.projector_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.validation_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.validation_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.conversation.validation_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.core_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.core_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.core_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.designer_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.designer_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.designer_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.comparator_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.comparator_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.comparator_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.java.parser_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.java.parser_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.java.parser_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.model_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.model_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.lang.model_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.osgi_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.osgi_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.osgi_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.comparator_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.comparator_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.comparator_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.export.text_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.export.text_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.export.text_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.model_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.model_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.model_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.parser_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.parser_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.parser_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.projector_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.projector_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.projector_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.validation_0.1.0.200809221625.jar
===================================================================
(Binary files differ)
Added: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.validation_0.1.0.200810071417.jar
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/distribution/eclipse/plugins/org.scribble.protocol.validation_0.1.0.200810071417.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: cdl/trunk/distribution/eclipse/site.xml
===================================================================
--- cdl/trunk/distribution/eclipse/site.xml 2008-10-06 12:48:35 UTC (rev 365)
+++ cdl/trunk/distribution/eclipse/site.xml 2008-10-07 13:22:59 UTC (rev 366)
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<site>
- <feature url="features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200809221625.jar" id="org.jboss.tools.overlord.cdl.jbossesb.feature" version="1.0.0.200809221625">
+ <feature url="features/org.jboss.tools.overlord.cdl.jbossesb.feature_1.0.0.200810071417.jar" id="org.jboss.tools.overlord.cdl.jbossesb.feature" version="1.0.0.200810071417">
<category name="JBossESB"/>
</feature>
- <feature url="features/org.scribble.conversation.feature_0.1.0.200809221625.jar" id="org.scribble.conversation.feature" version="0.1.0.200809221625">
+ <feature url="features/org.scribble.conversation.feature_0.1.0.200810071417.jar" id="org.scribble.conversation.feature" version="0.1.0.200810071417">
<category name="Common"/>
</feature>
- <feature url="features/org.scribble.experimental.feature_0.1.0.200809221625.jar" id="org.scribble.experimental.feature" version="0.1.0.200809221625">
+ <feature url="features/org.scribble.experimental.feature_0.1.0.200810071417.jar" id="org.scribble.experimental.feature" version="0.1.0.200810071417">
<category name="Common"/>
</feature>
- <feature url="features/org.scribble.feature_0.1.0.200809221625.jar" id="org.scribble.feature" version="0.1.0.200809221625">
+ <feature url="features/org.scribble.feature_0.1.0.200810071417.jar" id="org.scribble.feature" version="0.1.0.200810071417">
<category name="Common"/>
</feature>
- <feature url="features/org.scribble.protocol.feature_0.1.0.200809221625.jar" id="org.scribble.protocol.feature" version="0.1.0.200809221625">
+ <feature url="features/org.scribble.protocol.feature_0.1.0.200810071417.jar" id="org.scribble.protocol.feature" version="0.1.0.200810071417">
<category name="Common"/>
</feature>
<category-def name="JBossESB" label="JBossESB">
15 years, 7 months
Overlord SVN: r365 - in cdl/trunk/distribution/src/main/release/samples/jbossesb: brokerage/supplier and 1 other directories.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-10-06 08:48:35 -0400 (Mon, 06 Oct 2008)
New Revision: 365
Modified:
cdl/trunk/distribution/src/main/release/samples/jbossesb/brokerage/broker/.classpath
cdl/trunk/distribution/src/main/release/samples/jbossesb/brokerage/supplier/.classpath
cdl/trunk/distribution/src/main/release/samples/jbossesb/common/creditAgency/.classpath
Log:
Fixed Eclipse project classpath for sample projects.
Modified: cdl/trunk/distribution/src/main/release/samples/jbossesb/brokerage/broker/.classpath
===================================================================
--- cdl/trunk/distribution/src/main/release/samples/jbossesb/brokerage/broker/.classpath 2008-10-06 11:26:36 UTC (rev 364)
+++ cdl/trunk/distribution/src/main/release/samples/jbossesb/brokerage/broker/.classpath 2008-10-06 12:48:35 UTC (rev 365)
@@ -4,6 +4,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/rosetta.jar"/>
<classpathentry kind="lib" path="lib/log4j.jar"/>
- <classpathentry kind="lib" path="lib/jbossesb.jar"/>
+ <classpathentry kind="lib" path="lib/cdl-jbossesb.jar"/>
<classpathentry kind="output" path="classes"/>
</classpath>
Modified: cdl/trunk/distribution/src/main/release/samples/jbossesb/brokerage/supplier/.classpath
===================================================================
--- cdl/trunk/distribution/src/main/release/samples/jbossesb/brokerage/supplier/.classpath 2008-10-06 11:26:36 UTC (rev 364)
+++ cdl/trunk/distribution/src/main/release/samples/jbossesb/brokerage/supplier/.classpath 2008-10-06 12:48:35 UTC (rev 365)
@@ -4,6 +4,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/rosetta.jar"/>
<classpathentry kind="lib" path="lib/log4j.jar"/>
- <classpathentry kind="lib" path="lib/jbossesb.jar"/>
+ <classpathentry kind="lib" path="lib/cdl-jbossesb.jar"/>
<classpathentry kind="output" path="classes"/>
</classpath>
Modified: cdl/trunk/distribution/src/main/release/samples/jbossesb/common/creditAgency/.classpath
===================================================================
--- cdl/trunk/distribution/src/main/release/samples/jbossesb/common/creditAgency/.classpath 2008-10-06 11:26:36 UTC (rev 364)
+++ cdl/trunk/distribution/src/main/release/samples/jbossesb/common/creditAgency/.classpath 2008-10-06 12:48:35 UTC (rev 365)
@@ -4,6 +4,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/rosetta.jar"/>
<classpathentry kind="lib" path="lib/log4j.jar"/>
- <classpathentry kind="lib" path="lib/jbossesb.jar"/>
+ <classpathentry kind="lib" path="lib/cdl-jbossesb.jar"/>
<classpathentry kind="output" path="classes"/>
</classpath>
15 years, 7 months
Overlord SVN: r364 - in cdl/trunk: samples/jbossesb/client/src/com/acme/services/buyer and 1 other directories.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-10-06 07:26:36 -0400 (Mon, 06 Oct 2008)
New Revision: 364
Modified:
cdl/trunk/distribution/src/main/release/samples/jbossesb/purchasing/store/.classpath
cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BuyerClient.java
cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/jbmq-queue-service.xml
Log:
Updates to reflect change from the 'broker' to 'store' in purchasing sample, and change of jbossesb CDL jar name in classpath for Eclipse project.
Modified: cdl/trunk/distribution/src/main/release/samples/jbossesb/purchasing/store/.classpath
===================================================================
--- cdl/trunk/distribution/src/main/release/samples/jbossesb/purchasing/store/.classpath 2008-10-06 09:38:38 UTC (rev 363)
+++ cdl/trunk/distribution/src/main/release/samples/jbossesb/purchasing/store/.classpath 2008-10-06 11:26:36 UTC (rev 364)
@@ -4,6 +4,6 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/rosetta.jar"/>
<classpathentry kind="lib" path="lib/log4j.jar"/>
- <classpathentry kind="lib" path="lib/jbossesb.jar"/>
+ <classpathentry kind="lib" path="lib/cdl-jbossesb.jar"/>
<classpathentry kind="output" path="classes"/>
</classpath>
Modified: cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BuyerClient.java
===================================================================
--- cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BuyerClient.java 2008-10-06 09:38:38 UTC (rev 363)
+++ cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BuyerClient.java 2008-10-06 11:26:36 UTC (rev 364)
@@ -1,82 +1,82 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2008,
- */
-package com.acme.services.buyer;
-
-import org.apache.log4j.Logger;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.message.format.MessageType;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.common.Configuration;
-
-/**
- * @author gary
- */
-public class BuyerClient {
-
- private static Logger logger = Logger.getLogger(BuyerClient.class);
-
- private ServiceInvoker brokerInvoker;
-
- public BuyerClient() {
-
- String regClass = Configuration.getRegistryFactoryClass();
- System.setProperty("javax.xml.registry.ConnectionFactoryClass", regClass);
-
- try {
- brokerInvoker = new ServiceInvoker("PurchaseGoods.Broker", "Broker.main");
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException("Failed to create ServiceInvoker", e);
- }
- }
-
- public void run() {
-
- String buyReq="<BuyRequest id=\"5\" ></BuyRequest>";
-
- Message mesg = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
- mesg.getBody().add(buyReq);
- mesg.getProperties().setProperty("org.jboss.soa.esb.exceptionOnDeliverFailure", "true");
-
- try {
- System.out.println("=========================================");
- System.out.println("Request: "+mesg.getBody().get());
- Message reply=brokerInvoker.deliverSync(mesg, 20000);
-
- if (reply != null) {
- System.out.println("Reply: "+reply.getBody().get());
- } else {
- System.err.println("NO REPLY");
- }
- System.out.println("=========================================");
- } catch (Exception e) {
- logger.error(e);
- e.printStackTrace();
- }
- }
-
- public static void main(String[] args) {
- BuyerClient client=new BuyerClient();
-
- client.run();
- }
-
-}
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2008,
+ */
+package com.acme.services.buyer;
+
+import org.apache.log4j.Logger;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.common.Configuration;
+
+/**
+ * @author gary
+ */
+public class BuyerClient {
+
+ private static Logger logger = Logger.getLogger(BuyerClient.class);
+
+ private ServiceInvoker storeInvoker;
+
+ public BuyerClient() {
+
+ String regClass = Configuration.getRegistryFactoryClass();
+ System.setProperty("javax.xml.registry.ConnectionFactoryClass", regClass);
+
+ try {
+ storeInvoker = new ServiceInvoker("PurchaseGoods.Store", "Store.main");
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("Failed to create ServiceInvoker", e);
+ }
+ }
+
+ public void run() {
+
+ String buyReq="<BuyRequest id=\"5\" ></BuyRequest>";
+
+ Message mesg = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
+ mesg.getBody().add(buyReq);
+ mesg.getProperties().setProperty("org.jboss.soa.esb.exceptionOnDeliverFailure", "true");
+
+ try {
+ System.out.println("=========================================");
+ System.out.println("Request: "+mesg.getBody().get());
+ Message reply=storeInvoker.deliverSync(mesg, 20000);
+
+ if (reply != null) {
+ System.out.println("Reply: "+reply.getBody().get());
+ } else {
+ System.err.println("NO REPLY");
+ }
+ System.out.println("=========================================");
+ } catch (Exception e) {
+ logger.error(e);
+ e.printStackTrace();
+ }
+ }
+
+ public static void main(String[] args) {
+ BuyerClient client=new BuyerClient();
+
+ client.run();
+ }
+
+}
Modified: cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/jbmq-queue-service.xml
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/jbmq-queue-service.xml 2008-10-06 09:38:38 UTC (rev 363)
+++ cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/jbmq-queue-service.xml 2008-10-06 11:26:36 UTC (rev 364)
@@ -1,59 +1,59 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-broker">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-broker_reply">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-broker1">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-broker2">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-broker3">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-broker4">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-broker5">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-broker6">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-<mbean code="org.jboss.mq.server.jmx.Queue"
- name="jboss.esb.gen.destination:service=Queue,name=esb-broker7">
- <depends optional-attribute-name="DestinationManager">
- jboss.mq:service=DestinationManager
- </depends>
-</mbean>
-
-</server>
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-store">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-store_reply">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-store1">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-store2">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-store3">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-store4">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-store5">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-store6">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+<mbean code="org.jboss.mq.server.jmx.Queue"
+ name="jboss.esb.gen.destination:service=Queue,name=esb-store7">
+ <depends optional-attribute-name="DestinationManager">
+ jboss.mq:service=DestinationManager
+ </depends>
+</mbean>
+
+</server>
15 years, 7 months
Overlord SVN: r363 - in cdl/trunk: runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions and 15 other directories.
by overlord-commits@lists.jboss.org
Author: jeff.yuchang
Date: 2008-10-06 05:38:38 -0400 (Mon, 06 Oct 2008)
New Revision: 363
Added:
cdl/trunk/runtime/jbossesb-assembly/src/test/
cdl/trunk/runtime/jbossesb-assembly/src/test/java/
cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/
cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/
cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/
cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/
cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/jbossesb/
cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/jbossesb/HibernateTest.java
cdl/trunk/runtime/jbossesb-assembly/src/test/resources/
cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb-test.cfg.xml
Modified:
cdl/trunk/runtime/jbossesb-assembly/pom.xml
cdl/trunk/runtime/jbossesb-assembly/src/main/resources/cdl-sql/cdl.hsqldb.sql
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java
cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java
cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetCreditCheckRequestMessageAction.java
cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml
cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java
Log:
* Finished parentReference property.
* Update Session class and database script to have 'CDL_Session_property' to store the properties.
* Update PerformAction and SetStateAction accordingly.
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/IdentityType.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -19,6 +19,12 @@
*/
package org.jboss.soa.overlord.jbossesb;
+/**
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ *
+ */
+
public enum IdentityType {
Primary,
Association,
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/Session.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -24,7 +24,9 @@
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -34,6 +36,7 @@
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
@@ -41,6 +44,8 @@
import javax.persistence.Transient;
import org.apache.log4j.Logger;
+import org.hibernate.annotations.CollectionOfElements;
+import org.hibernate.annotations.MapKey;
import org.jboss.internal.soa.esb.addressing.helpers.EPRHelper;
import org.jboss.soa.esb.addressing.EPR;
import org.jboss.soa.esb.client.ServiceInvoker;
@@ -58,8 +63,11 @@
private static final long serialVersionUID = 1115L;
+ public static final String PARENT_REFERENCE_KEY = "parentReferenceKey";
+
private static Logger logger = Logger.getLogger(Session.class);
+
@Id @GeneratedValue
@Column(name="SESSION_ID")
private long id;
@@ -104,6 +112,12 @@
@Column(name="Business_OBJECT")
private byte[] serializedObject;
+ @CollectionOfElements(fetch = FetchType.LAZY)
+ @JoinTable(name="CDL_SESSION_PROPERTY", joinColumns=@JoinColumn(name="SESSION_ID"))
+ @MapKey(columns={@Column(name="property_key")})
+ @Column(name="property_value")
+ private Map<String, String> properties = new HashMap<String, String>();
+
public Session() {
}
@@ -204,7 +218,9 @@
synchronized(joinStates) {
if (isScheduleItemInJoinState(category, name)) {
- throw new Exception("Unable to enact join state, converging paths have still not completed");
+ //FIXME, it should throw exception, but need to use the pemissitic lock in database.
+ logger.error("Unable to enact join state, coverging paths have still not completed");
+ //throw new Exception("Unable to enact join state, converging paths have still not completed");
}
}
@@ -402,7 +418,15 @@
public void setSerializedObject(byte[] serializedObject) {
this.serializedObject = serializedObject;
}
+
+ public Map<String, String> getProperties() {
+ return this.properties;
+ }
+ public void setProperties(Map<String, String> properties) {
+ this.properties = properties;
+ }
+
public String toString() {
StringBuffer sbuffer = new StringBuffer();
sbuffer.append("[ Session id: " + id);
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/SessionManager.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -77,15 +77,22 @@
getProperty(MessageProperties.BOUND_VARIABLE_KEY);
for(String key : boundVariables.keySet()) {
MVEL.setProperty(businessState, key, boundVariables.get(key));
- logger.info("bound to " + key);
+ logger.debug("bound to " + key);
}
Session conversationSession = new Session();
conversationSession.setPojoClass(sessionName);
conversationSession.setStatus(SessionStatus.Active);
conversationSession.setBusinessObject(businessState);
- conversationSession.setParent(parentSession);
+ conversationSession.setParent(parentSession);
+ Map<String, String> properties = (Map<String, String>)message.getProperties().
+ getProperty(MessageProperties.SESSION_PROPERTIES);
+ if (properties != null) {
+ conversationSession.setProperties(properties);
+ logger.debug("Inject properties of " + properties);
+ }
+
Service service = pojoclass.getAnnotation(Service.class);
if (service != null) {
conversationSession.setServiceName(service.name());
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ActionProperties.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -48,8 +48,11 @@
public static final String SERVICE_NAME_PROPERTY = "serviceName";
public static final String SERVICE_CATEGORY_PROPERTY = "serviceCategory";
public static final String SERVICE_DESCRIPTION_NAME = "serviceDescriptionName";
+
public static final String PARENT_PROPERTY = "parentProperty";
+ public static final String PARENT_REFERENCE_PROPERTY = "parentReference";
+
public static final String RESPONSE_SERVICE_NAME = "responseServiceName";
public static final String RESPONSE_SERVICE_CATEGORY = "responseServiceCategory";
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ConversationAction.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -173,7 +173,7 @@
//message.getProperties().setProperty(MessageProperties.SESSION, ret);
message.getProperties().setProperty(MessageProperties.SESSION_KEY, String.valueOf(ret.getId()));
} else {
- logger.error("Can not get session by using neither session key of [" + sessionKey +"] nor" +
+ logger.debug("Can not get session by using neither session key of [" + sessionKey +"] nor" +
" ids [" + ids + "]");
}
}
@@ -188,7 +188,7 @@
*/
public Message process(Message message) throws Exception {
String sessionKey=(String)message.getProperties().getProperty(MessageProperties.SESSION_KEY);
- logger.info("Session Key is [" + sessionKey + "] Body is: [" + message.getBody().get() + "]");
+ logger.debug("Session Key is [" + sessionKey + "] Body is: [" + message.getBody().get() + "]");
org.hibernate.Session hibernateSession = HibernateUtil.currentSession();
Transaction transaction = hibernateSession.beginTransaction();
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/MessageProperties.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -29,11 +29,15 @@
public class MessageProperties {
public static final String SESSION="session";
+
public static final String SESSION_KEY="sessionKey";
public static final String OPERATION="operation";
+
public static final String MESSAGE_TYPE="messageType";
public static final String BOUND_VARIABLE_KEY = "bound_variable_key";
+ public static final String SESSION_PROPERTIES = "session_properties";
+
}
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/PerformAction.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -59,26 +59,26 @@
Object o = MVEL.eval(fromExpression, session.getBusinessObject());
bindingVal.put(toVariable, o);
- logger.info("bind from :" + fromExpression + " to :" + toVariable);
+ logger.debug("bind from :" + fromExpression + " to :" + toVariable);
}
}
+ message.getProperties().setProperty(MessageProperties.BOUND_VARIABLE_KEY, bindingVal);
-/* String parentProperty = getConfig().getAttribute(ActionProperties.PARENT_PROPERTY);
- if (parentProperty != null && !"".equals(parentProperty.trim())) {
- bindingVal.put(parentProperty, session.getBusinessObject());
- logger.info("Setting parent business state class to sub-session thru property of " + parentProperty);
- }*/
+ String parentProperty = getConfig().getAttribute(ActionProperties.PARENT_REFERENCE_PROPERTY);
+ if (parentProperty != null) {
+ Map<String, String> properties = new HashMap<String, String>();
+ properties.put(Session.PARENT_REFERENCE_KEY, parentProperty);
+ message.getProperties().setProperty(MessageProperties.SESSION_PROPERTIES, properties);
+ }
- message.getProperties().setProperty(MessageProperties.BOUND_VARIABLE_KEY, bindingVal);
-
session.schedule(serviceCategory, serviceName, message);
addScheduleItemToDeliver(serviceCategory, serviceName);
- String responseCategory = getConfig().getAttribute(ActionProperties.RETURN_SERVICE_CATEGORY);
- String responseName = getConfig().getAttribute(ActionProperties.RETURN_SERVICE_NAME);
+ String returnServiceCategory = getConfig().getAttribute(ActionProperties.RETURN_SERVICE_CATEGORY);
+ String returnServiceName = getConfig().getAttribute(ActionProperties.RETURN_SERVICE_NAME);
- if (responseCategory != null && responseName != null) {
- session.schedule(responseCategory, responseName, message);
+ if (returnServiceCategory != null && returnServiceName != null) {
+ session.schedule(returnServiceCategory, returnServiceName, message);
}
return message;
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/ScheduleStateAction.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -26,6 +26,9 @@
/**
* Schedule state activity.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class ScheduleStateAction extends ConversationAction {
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SetStateAction.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -46,12 +46,28 @@
String variable = getConfig().getAttribute("variable");
String stateExpression = getConfig().getAttribute("stateExpression");
String messageExpression = getConfig().getAttribute("messageExpression");
- String parentProperty = getConfig().getAttribute(ActionProperties.PARENT_PROPERTY);
+ if (variable == null) {
+ throw new NullPointerException("variable can not be null");
+ }
+
+ boolean need2UpdateParentState = false;
+
Session session = getSession(message);
Object bstate = session.getBusinessObject();
- logger.info("Set value to the variable of " + variable);
+ if (session.getParent() != null) {
+ Session parentSession = session.getParent();
+ String parentReference = session.getProperties().get(Session.PARENT_REFERENCE_KEY);
+ logger.debug("parentReference is : " + parentReference);
+ if (parentReference != null) {
+ Object parentState = parentSession.getBusinessObject();
+ MVEL.setProperty(bstate, parentReference, parentState);
+ need2UpdateParentState = true;
+ }
+ }
+
+
if (stateExpression != null) {
Object result = MVEL.eval(stateExpression, bstate);
MVEL.setProperty(bstate, variable, result);
@@ -62,14 +78,17 @@
String result = XMLUtils.executeXpath(element, messageExpression);
MVEL.setProperty(bstate, variable, result);
logger.info("populated from messageExpression of: " + messageExpression);
- } else if (parentProperty != null){
+ } else {
+ MVEL.eval(variable, bstate);
+ }
+
+ if (need2UpdateParentState) {
Session parentSession = session.getParent();
- MVEL.setProperty(bstate, parentProperty, parentSession.getBusinessObject());
- MVEL.eval(variable, bstate);
- Object updatedObject = MVEL.eval(parentProperty, bstate);
+ String parentReference = session.getProperties().get(Session.PARENT_REFERENCE_KEY);
+ Object updatedObject = MVEL.eval(parentReference, bstate);
parentSession.setBusinessObject(updatedObject);
SessionManager.updateObject(parentSession);
- logger.info("populated to parentProperty of: " + parentProperty);
+ logger.info("populated to parentProperty of: " + parentReference);
}
session.setBusinessObject(bstate);
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/actions/SwitchAction.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -27,6 +27,9 @@
/**
* This action represents a choice between a set of specified paths
* based on the message that has occurred.
+ *
+ * @author <a href="mailto:gary.brown@hattricksoftware.com">Gary Brown</a>
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
*/
public class SwitchAction extends ConversationAction {
Modified: cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java
===================================================================
--- cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb/src/main/java/org/jboss/soa/overlord/jbossesb/util/HibernateUtil.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -35,28 +35,36 @@
private static final ThreadLocal<Session> session = new ThreadLocal<Session>();
- static {
+ private static final String defaultConfigurationFile = "/overlord-cdl-jbossesb.cfg.xml";
+
+
+ public static SessionFactory getSessionFactory(String configurationFile) {
+ if (sessionFactory != null) {
+ return sessionFactory;
+ }
try {
- sessionFactory = new AnnotationConfiguration().configure("/overlord-cdl-jbossesb.cfg.xml").buildSessionFactory();
+ sessionFactory = new AnnotationConfiguration().configure(configurationFile).buildSessionFactory();
} catch (Throwable t) {
throw new ExceptionInInitializerError(t);
}
- }
-
- public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
- if (getSessionFactory() != null) {
- getSessionFactory().close();
+ if (sessionFactory != null) {
+ sessionFactory.close();
}
}
public static synchronized Session currentSession() throws HibernateException {
+ return currentSession(defaultConfigurationFile);
+ }
+
+
+ public static synchronized Session currentSession(String configurationFile) throws HibernateException {
Session s = session.get();
if (s == null) {
- s = sessionFactory.openSession();
+ s = getSessionFactory(configurationFile).openSession();
session.set(s);
}
return s;
Modified: cdl/trunk/runtime/jbossesb-assembly/pom.xml
===================================================================
--- cdl/trunk/runtime/jbossesb-assembly/pom.xml 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb-assembly/pom.xml 2008-10-06 09:38:38 UTC (rev 363)
@@ -47,6 +47,13 @@
<version>${hsqldb-version}</version>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.4</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<build>
@@ -68,7 +75,7 @@
<classpath>
<pathelement path="maven.compile.classpath" />
</classpath>
- <annotationconfiguration configurationfile="target/classes/hibernate.cfg.xml" />
+ <annotationconfiguration configurationfile="target/classes/overlord-cdl-jbossesb.cfg.xml" />
<hbm2ddl
create="true"
drop="false"
Modified: cdl/trunk/runtime/jbossesb-assembly/src/main/resources/cdl-sql/cdl.hsqldb.sql
===================================================================
--- cdl/trunk/runtime/jbossesb-assembly/src/main/resources/cdl-sql/cdl.hsqldb.sql 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/runtime/jbossesb-assembly/src/main/resources/cdl-sql/cdl.hsqldb.sql 2008-10-06 09:38:38 UTC (rev 363)
@@ -7,7 +7,9 @@
create table CDL_SCHEDULE_ITEM (ID bigint generated by default as identity (start with 1),CATEGORY varchar(255) not null,NAME varchar(255) not null,SESSION_ID bigint,primary key (ID));
create table CDL_SESSION (SESSION_ID bigint generated by default as identity (start with 1),STATUS varchar(255),POJO_CLASS varchar(255),SERVICE_NAME varchar(255),CONVERSATION_TYPE varchar(255),Business_OBJECT longvarbinary,PARENT_ID bigint,primary key (SESSION_ID));
-
+
+ create table CDL_SESSION_PROPERTY(SESSION_ID bigint not null, property_key varchar(255), property_value varchar(255), primary key (SESSION_ID, property_key));
+
alter table CDL_EPRS add constraint FKC42217E088C85D6A foreign key (SESSION_ID)references CDL_SESSION;
alter table CDL_IDENTITY add constraint FK41FEEA7288C85D6A foreign key (SESSION_ID) references CDL_SESSION;
@@ -17,3 +19,6 @@
alter table CDL_SCHEDULE_ITEM add constraint FKA523168788C85D6A foreign key (SESSION_ID) references CDL_SESSION;
alter table CDL_SESSION add constraint FKD597E42A1212ED6 foreign key (PARENT_ID) references CDL_SESSION;
+
+ alter table CDL_SESSION_PROPERTY add constraint FKE2CE33504BA6EBA4 foreign key (SESSION_ID) references CDL_SESSION;
+
Added: cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/jbossesb/HibernateTest.java
===================================================================
--- cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/jbossesb/HibernateTest.java (rev 0)
+++ cdl/trunk/runtime/jbossesb-assembly/src/test/java/org/jboss/soa/overlord/jbossesb/HibernateTest.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2008,
+ */
+package org.jboss.soa.overlord.jbossesb;
+
+import junit.framework.Assert;
+
+import org.jboss.soa.overlord.jbossesb.util.HibernateUtil;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * @author <a href="mailto:cyu@redhat.com>Jeff Yu</a>
+ *
+ */
+public class HibernateTest extends Assert {
+
+ @Test
+ @Ignore
+ public void testGetData() throws Exception {
+ org.hibernate.Session hibernateSession = HibernateUtil.currentSession("/overlord-cdl-jbossesb-test.cfg.xml");
+ Session session = (Session) hibernateSession.load(Session.class, Long.valueOf(1));
+ System.out.println(session.getProperties().get(Session.PARENT_REFERENCE_KEY));
+ System.out.println(session.getServiceName());
+ }
+
+}
Added: cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb-test.cfg.xml
===================================================================
--- cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb-test.cfg.xml (rev 0)
+++ cdl/trunk/runtime/jbossesb-assembly/src/test/resources/overlord-cdl-jbossesb-test.cfg.xml 2008-10-06 09:38:38 UTC (rev 363)
@@ -0,0 +1,64 @@
+<!DOCTYPE hibernate-configuration SYSTEM
+"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2008, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2008,
+ @author JBoss Inc.
+-->
+<hibernate-configuration>
+ <session-factory>
+ <property name="hibernate.connection.driver_class">
+ org.hsqldb.jdbcDriver
+ </property>
+ <property name="hibernate.connection.url">
+ jdbc:hsqldb:hsql://localhost
+ </property>
+ <property name="hibernate.connection.username">
+ sa
+ </property>
+
+ <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
+
+ <!-- DataSource properties (begin) === -->
+ <!--property name="hibernate.connection.datasource">java:/cdlDS</property-->
+ <!-- ==== DataSource properties (end) -->
+
+
+ <!-- Use the C3P0 connection pool provider -->
+ <property name="hibernate.c3p0.min_size">5</property>
+ <property name="hibernate.c3p0.max_size">20</property>
+ <property name="hibernate.c3p0.timeout">300</property>
+ <property name="hibernate.c3p0.max_statements">50</property>
+ <property name="hibernate.c3p0.idle_test_period">3000</property>
+
+ <property name="current_session_context_class">thread</property>
+ <property name="hibernate.connection.isolation">4</property>
+
+ <!-- Show and print nice SQL on stdout -->
+ <property name="show_sql">false</property>
+ <property name="format_sql">true</property>
+
+ <!-- List of annotationed classes (Internal conversation class)-->
+ <mapping class="org.jboss.soa.overlord.jbossesb.Session" />
+ <mapping class="org.jboss.soa.overlord.jbossesb.ScheduleItem"/>
+ <mapping class="org.jboss.soa.overlord.jbossesb.JoinState"/>
+ <mapping class="org.jboss.soa.overlord.jbossesb.Identity"/>
+ <mapping class="org.jboss.soa.overlord.jbossesb.EPRWrapper"/>
+
+ </session-factory>
+</hibernate-configuration>
Modified: cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetCreditCheckRequestMessageAction.java
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetCreditCheckRequestMessageAction.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/src/main/java/org/jboss/soa/overlord/samples/jbossesb/loan/broker/SetCreditCheckRequestMessageAction.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -40,7 +40,7 @@
Node node = XMLUtils.getNode((String)message.getBody().get());
String idValue = node.getAttributes().getNamedItem("id").getNodeValue();
- message.getBody().add("<creditInformation id=\"" + idValue +"\"></creditInformation>");
+ message.getBody().add("<CreditCheckRequest id=\"" + idValue +"\"></CreditCheckRequest>");
logger.info("Updated credit check request message: "+message.getBody().get());
Modified: cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/samples/jbossesb/brokerage/broker/src/main/resources/META-INF/jboss-esb.xml 2008-10-06 09:38:38 UTC (rev 363)
@@ -173,6 +173,7 @@
<property name="serviceName" value="RequestForQuote.main" />
<property name="returnServiceCategory" value="ESBBroker.BrokerParticipant" />
<property name="returnServiceName" value="ESBBrokerProcess.main.9" />
+ <property name="parentReference" value="quoteManager"/>
<property name="bindDetails" >
<bind from-expression="getCurrentSupplier()"
to-variable="supplier" />
@@ -438,7 +439,6 @@
<action class="org.jboss.soa.overlord.jbossesb.actions.SetStateAction"
process="process" name="s9-4">
<property name="variable" value="addToQuoteManager()" />
- <property name="parentProperty" value="quoteManager" />
</action>
</actions>
</service>
@@ -471,7 +471,7 @@
<action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
process="process" name="s10-4">
<property name="operation" value="checkCredit" />
- <property name="messageType" value="creditInformation" />
+ <property name="messageType" value="CreditCheckRequest" />
<property name="serviceName" value="CreditAgency.main" />
<property name="serviceCategory" value="PurchaseGoods.CreditAgency" />
<property name="responseServiceName" value="CompleteTransaction.main.1" />
@@ -507,11 +507,11 @@
<property name="paths">
<case service-category="ESBBroker.BrokerParticipant"
service-name="CompleteTransaction.main.2" >
- <message type="creditValid" />
+ <message type="CreditCheckOk" />
</case>
<case service-category="ESBBroker.BrokerParticipant"
service-name="CompleteTransaction.main.4" >
- <message type="creditInvalid" />
+ <message type="CreditCheckInvalid" />
</case>
</property>
</action>
@@ -529,7 +529,7 @@
process="process" name="s12-1">
<property name="session" value="org.jboss.soa.overlord.samples.jbossesb.loan.broker.CompleteTransactionMain" />
<property name="operation" value="checkCredit" />
- <property name="messageType" value="creditValid" />
+ <property name="messageType" value="CreditCheckOk" />
<property name="identities" >
<identity type="primary" >
<token name="id" locator="//@id" />
Modified: cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java
===================================================================
--- cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java 2008-10-06 08:43:41 UTC (rev 362)
+++ cdl/trunk/samples/jbossesb/client/src/com/acme/services/buyer/BrokerClient.java 2008-10-06 09:38:38 UTC (rev 363)
@@ -49,8 +49,10 @@
}
public void run() {
-
- String quoteReq="<enquiry id=\"20\" ></enquiry>";
+
+ String id = "20";
+
+ String quoteReq="<enquiry id=\"" + id +"\" ></enquiry>";
Message mesg = MessageFactory.getInstance().getMessage(MessageType.JBOSS_XML);
mesg.getBody().add(quoteReq);
@@ -65,7 +67,7 @@
Thread.sleep(5000);//Waiting...
System.out.println("Sending Buy request to Broker...");
- String buyReq = "<buy id=\"20\" supplierDesc=\"{http://www.jboss.org/overlord/loanBroker}Supplier1\" quoteValue=\"10\"></buy>";
+ String buyReq = "<buy id=\"" + id + "\" supplierDesc=\"{http://www.jboss.org/overlord/loanBroker}Supplier1\" quoteValue=\"10\"></buy>";
mesg.getBody().add(buyReq);
System.out.println("Request: " + mesg.getBody().get());
15 years, 7 months
Overlord SVN: r362 - cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-10-06 04:43:41 -0400 (Mon, 06 Oct 2008)
New Revision: 362
Modified:
cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/deployment.xml
cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/jboss-esb.xml
Log:
Changed 'broker' to 'store' to reflect change in role name in the purchasing example, so it does not clash with the brokerage example.
Modified: cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/deployment.xml
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/deployment.xml 2008-10-06 08:37:07 UTC (rev 361)
+++ cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/deployment.xml 2008-10-06 08:43:41 UTC (rev 362)
@@ -1,12 +1,12 @@
-<jbossesb-deployment>
- <depends>jboss.esb:deployment=overlord-cdl-runtime.esb</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-broker</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-broker_reply</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-broker1</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-broker2</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-broker3</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-broker4</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-broker5</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-broker6</depends>
- <depends>jboss.esb.gen.destination:service=Queue,name=esb-broker7</depends>
-</jbossesb-deployment>
+<jbossesb-deployment>
+ <depends>jboss.esb:deployment=overlord-cdl-runtime.esb</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-store</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-store_reply</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-store1</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-store2</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-store3</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-store4</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-store5</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-store6</depends>
+ <depends>jboss.esb.gen.destination:service=Queue,name=esb-store7</depends>
+</jbossesb-deployment>
Modified: cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/jboss-esb.xml
===================================================================
--- cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/jboss-esb.xml 2008-10-06 08:37:07 UTC (rev 361)
+++ cdl/trunk/samples/jbossesb/purchasing/store/src/main/resources/META-INF/jboss-esb.xml 2008-10-06 08:43:41 UTC (rev 362)
@@ -1,36 +1,36 @@
<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml..." parameterReloadSecs="5000">
<providers>
<jms-provider connection-factory="ConnectionFactory" jndi-URL="localhost" jndi-context-factory="org.jnp.interfaces.NamingContextFactory" name="JBossMQ">
- <jms-bus busid="BrokerService">
- <jms-message-filter dest-name="queue/esb-broker" dest-type="QUEUE"/>
+ <jms-bus busid="StoreService">
+ <jms-message-filter dest-name="queue/esb-store" dest-type="QUEUE"/>
</jms-bus>
- <jms-bus busid="BrokerService1">
- <jms-message-filter dest-name="queue/esb-broker1" dest-type="QUEUE"/>
+ <jms-bus busid="StoreService1">
+ <jms-message-filter dest-name="queue/esb-store1" dest-type="QUEUE"/>
</jms-bus>
- <jms-bus busid="BrokerService2">
- <jms-message-filter dest-name="queue/esb-broker2" dest-type="QUEUE"/>
+ <jms-bus busid="StoreService2">
+ <jms-message-filter dest-name="queue/esb-store2" dest-type="QUEUE"/>
</jms-bus>
- <jms-bus busid="BrokerService3">
- <jms-message-filter dest-name="queue/esb-broker3" dest-type="QUEUE"/>
+ <jms-bus busid="StoreService3">
+ <jms-message-filter dest-name="queue/esb-store3" dest-type="QUEUE"/>
</jms-bus>
- <jms-bus busid="BrokerService4">
- <jms-message-filter dest-name="queue/esb-broker4" dest-type="QUEUE"/>
+ <jms-bus busid="StoreService4">
+ <jms-message-filter dest-name="queue/esb-store4" dest-type="QUEUE"/>
</jms-bus>
- <jms-bus busid="BrokerService5">
- <jms-message-filter dest-name="queue/esb-broker5" dest-type="QUEUE"/>
+ <jms-bus busid="StoreService5">
+ <jms-message-filter dest-name="queue/esb-store5" dest-type="QUEUE"/>
</jms-bus>
- <jms-bus busid="BrokerService6">
- <jms-message-filter dest-name="queue/esb-broker6" dest-type="QUEUE"/>
+ <jms-bus busid="StoreService6">
+ <jms-message-filter dest-name="queue/esb-store6" dest-type="QUEUE"/>
</jms-bus>
- <jms-bus busid="BrokerService7">
- <jms-message-filter dest-name="queue/esb-broker7" dest-type="QUEUE"/>
+ <jms-bus busid="StoreService7">
+ <jms-message-filter dest-name="queue/esb-store7" dest-type="QUEUE"/>
</jms-bus>
</jms-provider>
</providers>
<services>
- <service category="PurchaseGoods.Broker" description="" name="Broker.main">
+ <service category="PurchaseGoods.Store" description="" name="Store.main">
<listeners>
- <jms-listener busidref="BrokerService" maxThreads="1" name="BrokerServiceListener"/>
+ <jms-listener busidref="StoreService" maxThreads="1" name="StoreServiceListener"/>
</listeners>
<actions mep="OneWay">
<action class="org.jboss.soa.overlord.jbossesb.actions.CreateSessionAction" name="a1" process="process">
@@ -54,7 +54,7 @@
<property name="serviceName" value="CreditAgency.main"/>
<property name="serviceCategory" value="PurchaseGoods.CreditAgency"/>
<property name="responseServiceName" value="CreditResponse"/>
- <property name="responseServiceCategory" value="PurchaseGoods.Broker"/>
+ <property name="responseServiceCategory" value="PurchaseGoods.Store"/>
<property name="identities">
<identity type="primary">
<token locator="//@id" name="id"/>
@@ -63,9 +63,9 @@
</action>
</actions>
</service>
- <service category="PurchaseGoods.Broker" description="" name="CreditResponse">
+ <service category="PurchaseGoods.Store" description="" name="CreditResponse">
<listeners>
- <jms-listener busidref="BrokerService2" maxThreads="1" name="BrokerServiceListener"/>
+ <jms-listener busidref="StoreService2" maxThreads="1" name="StoreServiceListener"/>
</listeners>
<actions mep="OneWay">
<action class="org.jboss.soa.overlord.jbossesb.actions.RetrieveSessionAction" name="b1" process="process">
@@ -79,26 +79,26 @@
</action>
<action class="org.jboss.soa.overlord.jbossesb.actions.SwitchAction" name="b2" process="process">
<property name="paths">
- <case service-category="PurchaseGoods.Broker" service-name="CreditResponse1">
+ <case service-category="PurchaseGoods.Store" service-name="CreditResponse1">
<message type="CreditCheckOk"/>
</case>
- <case service-category="PurchaseGoods.Broker" service-name="CreditResponse2">
+ <case service-category="PurchaseGoods.Store" service-name="CreditResponse2">
<message type="CreditCheckInvalid"/>
</case>
</property>
</action>
</actions>
</service>
- <service category="PurchaseGoods.Broker" description="" name="CreditResponse1">
+ <service category="PurchaseGoods.Store" description="" name="CreditResponse1">
<listeners>
- <jms-listener busidref="BrokerService3" maxThreads="1" name="BrokerServiceListener"/>
+ <jms-listener busidref="StoreService3" maxThreads="1" name="StoreServiceListener"/>
</listeners>
<actions mep="OneWay">
<action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction" name="b4" process="process">
<property name="session" value="com.acme.services.broker.PurchaseGoods"/>
<property name="operation" value="checkCredit"/>
<property name="messageType" value="CreditCheckOk"/>
- <property name="serviceDescriptionName" value="{http://www.jboss.org/overlord/purchase}Broker"/>
+ <property name="serviceDescriptionName" value="{http://www.jboss.org/overlord/purchase}Store"/>
<property name="identities">
<identity type="primary">
<token locator="//@id" name="id"/>
@@ -107,42 +107,42 @@
</action>
<action class="org.jboss.soa.overlord.jbossesb.actions.ParallelAction" name="b5" process="process">
<property name="paths">
- <path immediate="true" service-category="PurchaseGoods.Broker" service-name="BrokerBranch1"/>
- <path immediate="true" service-category="PurchaseGoods.Broker" service-name="BrokerBranch2"/>
- <join service-category="PurchaseGoods.Broker" service-name="ReturnBuyerResponse"/>
+ <path immediate="true" service-category="PurchaseGoods.Store" service-name="StoreBranch1"/>
+ <path immediate="true" service-category="PurchaseGoods.Store" service-name="StoreBranch2"/>
+ <join service-category="PurchaseGoods.Store" service-name="ReturnBuyerResponse"/>
</property>
</action>
</actions>
</service>
- <service category="PurchaseGoods.Broker" description="" name="BrokerBranch1">
+ <service category="PurchaseGoods.Store" description="" name="StoreBranch1">
<listeners>
- <jms-listener busidref="BrokerService4" maxThreads="1" name="BrokerServiceListener"/>
+ <jms-listener busidref="StoreService4" maxThreads="1" name="StoreServiceListener"/>
</listeners>
<actions mep="OneWay">
<action class="org.jboss.soa.overlord.jbossesb.actions.ScheduleStateAction" name="b7" process="process">
<property name="session" value="com.acme.services.broker.PurchaseGoods"/>
<property name="serviceName" value="ReturnBuyerResponse"/>
- <property name="serviceCategory" value="PurchaseGoods.Broker"/>
+ <property name="serviceCategory" value="PurchaseGoods.Store"/>
<property name="immediate" value="false"/>
</action>
</actions>
</service>
- <service category="PurchaseGoods.Broker" description="" name="BrokerBranch2">
+ <service category="PurchaseGoods.Store" description="" name="StoreBranch2">
<listeners>
- <jms-listener busidref="BrokerService5" maxThreads="1" name="BrokerServiceListener"/>
+ <jms-listener busidref="StoreService5" maxThreads="1" name="StoreServiceListener"/>
</listeners>
<actions mep="OneWay">
<action class="org.jboss.soa.overlord.jbossesb.actions.ScheduleStateAction" name="b9" process="process">
<property name="session" value="com.acme.services.broker.PurchaseGoods"/>
<property name="serviceName" value="ReturnBuyerResponse"/>
- <property name="serviceCategory" value="PurchaseGoods.Broker"/>
+ <property name="serviceCategory" value="PurchaseGoods.Store"/>
<property name="immediate" value="false"/>
</action>
</actions>
</service>
- <service category="PurchaseGoods.Broker" description="" name="ReturnBuyerResponse">
+ <service category="PurchaseGoods.Store" description="" name="ReturnBuyerResponse">
<listeners>
- <jms-listener busidref="BrokerService6" maxThreads="1" name="BrokerServiceListener"/>
+ <jms-listener busidref="StoreService6" maxThreads="1" name="StoreServiceListener"/>
</listeners>
<actions mep="OneWay">
<action class="com.acme.services.broker.SetBuyResponseMessageAction" name="b11" process="process">
@@ -160,16 +160,16 @@
</action>
</actions>
</service>
- <service category="PurchaseGoods.Broker" description="" name="CreditResponse2">
+ <service category="PurchaseGoods.Store" description="" name="CreditResponse2">
<listeners>
- <jms-listener busidref="BrokerService7" maxThreads="1" name="BrokerServiceListener"/>
+ <jms-listener busidref="StoreService7" maxThreads="1" name="StoreServiceListener"/>
</listeners>
<actions mep="OneWay">
<action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction" name="b14" process="process">
<property name="session" value="com.acme.services.broker.PurchaseGoods"/>
<property name="operation" value="checkCredit"/>
<property name="messageType" value="CreditCheckInvalid"/>
- <property name="serviceDescriptionName" value="{http://www.jboss.org/overlord/purchase}Broker"/>
+ <property name="serviceDescriptionName" value="{http://www.jboss.org/overlord/purchase}Store"/>
<property name="identities">
<identity type="primary">
<token locator="//@id" name="id"/>
15 years, 7 months
Overlord SVN: r361 - cdl/trunk/docs/docbook/userguide/src/main/module.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-10-06 04:37:07 -0400 (Mon, 06 Oct 2008)
New Revision: 361
Modified:
cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml
Log:
Minor addition to doc.
Modified: cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml
===================================================================
--- cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml 2008-10-03 16:29:14 UTC (rev 360)
+++ cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml 2008-10-06 08:37:07 UTC (rev 361)
@@ -478,7 +478,7 @@
The <emphasis>ReceiveMessageAction</emphasis> is used to explicitly define the message type that should be received. If an RPC style has been used, then the optional operation name can also be defined.
</para>
<para>
-Unlike the <emphasis>SendMessageAction</emphasis>, which will actually send a message to the specified service category/name, the <emphasis>ReceiveMessageAction</emphasis> primarily serves to provide explicit details about the expected message and to perform any relevant validation of the message content, including conforming that the extracted identity details correlate correctly with the session (or sub-session).
+Unlike the <emphasis>SendMessageAction</emphasis>, which will actually send a message to the specified service category/name, the <emphasis>ReceiveMessageAction</emphasis> primarily serves to provide explicit details about the expected message and to perform any relevant validation of the message content, including conforming that the extracted identity details correlate correctly with the session (or sub-session). If an incorrect message type is received, or an appropriate session cannot be located, then an error will be logged.
</para>
<para>
The optional 'clientEPR' property is used to store any specific "reply to" EPR (associated with the message) against the specified name. This makes the EPR accessible to any subsequent <emphasis>SendMessageAction</emphasis> activities that need to return a response or send a notification.
15 years, 7 months
Overlord SVN: r360 - in cdl/trunk/docs/docbook/userguide/src/main: module and 1 other directory.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-10-03 12:29:14 -0400 (Fri, 03 Oct 2008)
New Revision: 360
Added:
cdl/trunk/docs/docbook/userguide/src/main/images/genesbconfig1.png
cdl/trunk/docs/docbook/userguide/src/main/images/genesbconfig2.png
cdl/trunk/docs/docbook/userguide/src/main/images/genesbconfig3.png
Modified:
cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml
Log:
Finished initial draft of user guide, converting from previous open office docs into docbook format. Added new section on dealing with conformance issues.
Added: cdl/trunk/docs/docbook/userguide/src/main/images/genesbconfig1.png
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/docs/docbook/userguide/src/main/images/genesbconfig1.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: cdl/trunk/docs/docbook/userguide/src/main/images/genesbconfig2.png
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/docs/docbook/userguide/src/main/images/genesbconfig2.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: cdl/trunk/docs/docbook/userguide/src/main/images/genesbconfig3.png
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/docs/docbook/userguide/src/main/images/genesbconfig3.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml
===================================================================
--- cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml 2008-10-02 14:56:11 UTC (rev 359)
+++ cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml 2008-10-03 16:29:14 UTC (rev 360)
@@ -259,28 +259,495 @@
</section>
<section>
<title>Instantiating top level and child sessions</title>
+ <para>
+A session, whether top level or a child sub-session, will be instantiated by defining a service descriptor that starts with a <emphasis>CreateSessionAction</emphasis>. For example,
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+ <action class="org.jboss.soa.overlord.jbossesb.actions.CreateSessionAction"
+ process="process" name="...">
+ <property name="session"
+ value="org.jboss.soa.overlord.samples.jbossesb.loan.broker.BrokerMain" />
+ </action>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+where the 'session' property references the pojo defined previously. What distinguishes whether the session is a top level or child sub-session is the value of the 'root' attribute on the pojo annotation (or property on the <emphasis>CreateSessionAction</emphasis> if no annotation is defined on the pojo), i.e. if root is true, then the service descriptor will represent the top level session.
+ </para>
+ <para>
+Only a single top level (root) session can be defined per service description.
+ </para>
</section>
<section>
<title>Retrieving an existing session</title>
- </section>
+ <para>
+Certain service descriptors, and actions within those service descriptors, will need to be able to access the session in which they are executing. In many situations the session will automatically be available due to prior activities that may have occurred, causing the session reference to be cached and retrieved when required.
+ </para>
+ <para>
+However, in some situations (such as receiving a response message from another service) there may not be enough context information to understand which session should be retrieved from the database to handle the incoming message.
+ </para>
+ <para>
+The solution to this problem is to ensure that the first "conversation aware" ESB action in the receiving service descriptor has the additional information required to resolve the context. This information will include:
+ </para>
+ <itemizedlist>
+ <listitem>
+Message identities
+ <para>
+Message identities refer to the extraction of information from the message content to be used to uniquely identify a session instance. This information can be associated with any "conversation aware" ESB action, and has the following format:
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+
+ <property name="identities" >
+ <identity type="primary" >
+ <token name="<name>" locator="<xpath expression>" />
+ </identity>
+ </property>
+ ]]></programlisting>
+ </informalexample>
+
+ <para>
+Multiple identities can be derived from an incoming message. Each identity will have a type, either <emphasis>primary</emphasis>, <emphasis>alternate</emphasis>, <emphasis>derived</emphasis> or <emphasis>association</emphasis>.
+ </para>
+ <para>
+Each identity can have one or more tokens defined. If more than one is defined, then it will represent a composite identity.
+ </para>
+ <para>
+The name of the token is not relevant, just used for information purposes. The main purpose of the token is to locate a value from the message content.
+ </para>
+ </listitem>
+ <listitem>
+Session pojo
+ <para>
+The session pojo class can be used to narrow down the specific sub-session, within a service instance, that the message should be routed to.
+ </para>
+ </listitem>
+ <listitem>
+Service description name (which may be available on a <emphasis>Service</emphasis> annotation on the Session pojo).
+ </listitem>
+ </itemizedlist>
</section>
+
+ </section>
<section>
<title>Interacting</title>
<para>
+Services interact by sending and receiving messages, whether synchronously or asynchronously.
+ </para>
+ <para>
+JBossESB is designed to anonymously handle inbound messages (possibly requests), without explicitly defining restrictions on message type, and then optionally returning responses (again without explicitly defining the response message type).
+ </para>
+ <para>
+Although this is sufficient for a runtime mechanism, where issues related to unexpected message types can be handled with suitable exceptions/faults, it does not enable the communication type structure to be understood by examination of the JBossESB configuration.
+ </para>
+ <para>
+Therefore, the set of "conversation aware" ESB actions include actions for sending and receiving messages. Although these actions are not strictly necessary for the ESB to process messages, they make the communication behaviour of the ESB service explicit, which enables it to be statically checked (validated) against a description of the expected behaviour.
</para>
+
+ <section>
+ <title>Sending a message</title>
+ <para>
+When sending a message, the first thing to consider is the type of the message. This can be declared as a property on the <emphasis>SendMessageAction</emphasis>. If dealing with RPC style interactions, then we may also want to optionally specify an operation name.
+ </para>
+
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+ <action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
+ process="process" name="...">
+ <property name="operation" value="getQuote" />
+ <property name="messageType" value="requestForQuote" />
+ ....
+ </action>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+In this example, the message type has no 'namespace'. If a namespace is appropriate, it can be defined inside {} curly braces (e.g. "{http://www.jboss.org/examples}requestForQuote" for an XML type, or "{java:org.jboss.example}Quote" for a Java type).
+ </para>
+ <para>
+The next important aspect is to define the destination of the message. This will be dependent upon whether the message being sent is a request or a response/notification.
+ </para>
+ <itemizedlist>
+ <listitem>
+Sending a request
+ <para>
+When sending a request, we need to identify the destination service category/name. This is done by either specifying the category and name explicitly, using the <emphasis>serviceCategory</emphasis> and <emphasis>serviceName</emphasis> properties:
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+
+ <action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
+ process="process" name="...">
+ ....
+ <property name="serviceName" value="RequestForQuote.main" />
+ <property name="serviceCategory" value="ESBBroker.SupplierParticipant" />
+ ....
+ </action>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+or based on expressions using the <emphasis>serviceCategoryExpression</emphasis> and <emphasis>serviceNameExpression</emphasis> properties:
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+
+ <action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
+ process="process" name="...">
+ ....
+ <property name="serviceNameExpression" value="supplier.serviceName" />
+ <property name="serviceCategoryExpression" value="supplier.serviceCategory" />
+ ....
+ </action>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+The second approach enables the category/name details to be obtained from the session pojo, using an expression (see later for details of specifying expressions).
+ </para>
+ <para>
+If a response is expected from the request, then the optional <emphasis>responseServiceName</emphasis> and <emphasis>responseServiceCategory</emphasis> can be used to specify the service descriptor that should receive the response message.
+ </para>
+ </listitem>
+ <listitem>
+Sending a response
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+
+ <action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
+ process="process" name="...">
+ ....
+ <property name="clientEPR" value="buyer" />
+ ....
+ </action>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+When sending a response, the destination will not be directly available. The destination would have been received as a 'reply to' EPR (Endpoint Reference) in a previously received request (see <emphasis>ReceiveMessageAction</emphasis> for details of how to store the 'reply to' EPR).
+ </para>
+ <para>
+Therefore, to indicate which EPR to respond to, a property called 'clientEPR' is specified with the name of the stored EPR. This must match up to a previously stored EPR name within a <emphasis>ReceiveMessageAction</emphasis>.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+The final part of the <emphasis>SendMessageAction</emphasis> is the identity declaration. See discussion on Message Identities early in this chapter.
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+
+ <action class="org.jboss.soa.overlord.jbossesb.actions.SendMessageAction"
+ process="process" name="...">
+ ....
+ <property name="identities" >
+ <identity type="primary" >
+ <token name="id" locator="//@id" />
+ <token name="supplierId" locator="//@supplierId" />
+ </identity>
+ </property>
+ </action>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+The identity information extracts values from the message content being sent, and determines whether it correlates with the identity already associated with the session (or sub-session). If the message is correctly correlated to the session, then it will be sent. Otherwise an exception will be generated.
+ </para>
+ <para>
+It is possible that multiple identities can be defined, associating new 'alternate' or 'derived' identities with the session (or sub-session). These can be used to link subsequent messages (send or received) to the same session.
+ </para>
+ </section>
+
+ <section>
+ <title>Receiving a message</title>
+
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+ <action class="org.jboss.soa.overlord.jbossesb.actions.ReceiveMessageAction"
+ process="process" name="s1-2">
+ <property name="operation" value="makeEnquiry" />
+ <property name="messageType" value="enquiry" />
+ <property name="clientEPR" value="buyer" />
+ <property name="identities" >
+ <identity type="primary" >
+ <token name="id" locator="//@id" />
+ </identity>
+ </property>
+ </action>
+ ]]></programlisting>
+ </informalexample>
+
+ <para>
+The <emphasis>ReceiveMessageAction</emphasis> is used to explicitly define the message type that should be received. If an RPC style has been used, then the optional operation name can also be defined.
+ </para>
+ <para>
+Unlike the <emphasis>SendMessageAction</emphasis>, which will actually send a message to the specified service category/name, the <emphasis>ReceiveMessageAction</emphasis> primarily serves to provide explicit details about the expected message and to perform any relevant validation of the message content, including conforming that the extracted identity details correlate correctly with the session (or sub-session).
+ </para>
+ <para>
+The optional 'clientEPR' property is used to store any specific "reply to" EPR (associated with the message) against the specified name. This makes the EPR accessible to any subsequent <emphasis>SendMessageAction</emphasis> activities that need to return a response or send a notification.
+ </para>
+ </section>
+
</section>
<section>
<title>Managing Information</title>
<para>
</para>
+
+ <section>
+ <title>Manipulating State Information</title>
+ <para>
+As previously mentioned, each session or sub-session is associated with a business state pojo which contains the information required by the session. The relevant class is identified by the 'session' property on appropriate "conversation aware" ESB actions.
+ </para>
+ <para>
+When an action needs to access (read) information defined on this business state pojo, it will simply define an expression that can access (and navigate) the properties and invoke methods on the object where appropriate.
+ </para>
+ <para>
+However we also need to have the ability to modify the state information. This is achieved using the <emphasis>SetStateAction</emphasis>. For example,
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+ <action class="org.jboss.soa.overlord.jbossesb.actions.SetStateAction" name="...">
+ <property name="variable" value="supplierIndex" />
+ <property name="stateExpression" value="nextSupplier()" />
+ </action>
+ ]]></programlisting>
+ </informalexample>
+
+ <para>
+With this action, it is possible to specify a target 'variable' on the pojo business object, associated with the session (or sub-session), and have the value associated with an expression assigned to that variable.
+ </para>
+ <para>
+In the example above, the expression is defined using the 'stateExpression' property. This expression will be applied to the pojo business object associated with the session (or sub-session), to extract information from variables, or invoke methods on the object.
+ </para>
+ <para>
+The other type of expression that can be used is defined in the 'messageExpression' property. This will apply the expression to the content of the current message on the ESB action pipeline.
+ </para>
+
+ </section>
+
+ <section>
+ <title>Manipulating Message Information</title>
+ <para>
+The other action that can be used to manipulate information is <emphasis>SetMessageAction</emphasis>. This action can be used to set the contents or a header property of the message on the ESB action pipeline. For example,
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+ <action class="org.jboss.soa.overlord.jbossesb.actions.SetMessageAction"
+ process="process" name="...">
+ <property name="headerProperty" value="quoteList" />
+ <property name="stateExpression" value="quotes" />
+ </action>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+This example shows how information from the session's associated business pojo state can be placed in a header property of the current message passing through the action pipeline.
+ </para>
+ <para>
+If the 'headerProperty' property is not specified, then the value extracted from the state object will be placed in the default entry within the message contents, replacing any existing value.
+ </para>
+ </section>
</section>
<section>
<title>Controlling Flow</title>
<para>
+This section describes the various control flow mechanisms that are supported by the "conversation aware" ESB actions.
+ </para>
+ <para>
+The default control flow, supported natively by the ESB action pipeline design, is a sequence. As the name implies, the actions are performed one at a time in the order they defined in the action pipeline, i.e. in a sequence.
</para>
+
+ <section>
+ <title>Selecting paths based on a decision</title>
+ <para>
+The action associated with the 'selection of a path based on a decision' is the <emphasis>IfAction</emphasis>. An example of this construct is:
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+ <action class="org.jboss.soa.overlord.jbossesb.actions.IfAction" process="process" name="...">
+ <property name="paths">
+ <if expression="isCreditHistoryAvailable()"
+ service-category="ESBBroker.CreditAgency"
+ service-name="CreditAgency.decision1"
+ immediate="true" />
+ <elseif expression="isBadCreditHistory()"
+ service-category="ESBBroker.CreditAgency"
+ service-name="CreditAgency.decision2"
+ immediate="true" />
+ <else service-category="ESBBroker.CreditAgency"
+ service-name="CreditAgency.decision3"
+ immediate="true" />
+ </property>
+ </action>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+This construct defines a 'path' property with one or more elements, representing the <emphasis>if</emphasis>, <emphasis>elseif</emphasis> and <emphasis>else</emphasis> aspects of the traditional if/else construct. Only the <emphasis>if</emphasis> element is mandatory, and can be followed by zero or more <emphasis>elseif</emphasis> elements before ending with the optional <emphasis>else</emphasis> element.
+ </para>
+ <para>
+The <emphasis>if</emphasis> and <emphasis>elseif</emphasis> elements can define an 'expression' attribute to be evaluated at runtime, to determine if the associated 'service-category' and 'service-name' should be invoked.
+ </para>
+ <para>
+If the 'immediate' boolean attribute is defined as true on any of the elements, it means that the associated service category/name should be invoked immediately (i.e. it represents a control link). However, if this attribute is false, or not specified, then the associated service category/name is expected to be triggered upon the receipt of a message from an external source.
+ </para>
+ </section>
+
+ <section>
+ <title>Selecting paths based on the type of a received message</title>
+ <para>
+The action used to select paths based on a received message type is <emphasis>SwitchAction</emphasis>. For example,
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+ <action class="org.jboss.soa.overlord.jbossesb.actions.SwitchAction"
+ process="process" name="...">
+ <property name="paths">
+ <case service-category="ESBBroker.BrokerParticipant"
+ service-name="ESBBrokerProcess.main.7" >
+ <message type="buy" />
+ </case>
+ <case service-category="ESBBroker.BrokerParticipant"
+ service-name="ESBBrokerProcess.main.6" >
+ <message type="cancel" />
+ </case>
+ </property>
+ </action>
+ ]]></programlisting>
+ </informalexample>
+
+ <para>
+The 'paths' property defines one or more 'case' elements. These elements identify a service category and name that should be invoked upon receipt of one or more message types, as specified by 'message' elements contained within the 'case' elements.
+ </para>
+ <para>
+The 'type' attribute on the 'message' element defines the type of message that can be routed to the specified service category/name. In the example above, the message types have no namespace. However if they have a namespace, this can be defined in curly braces, e.g. "{http://www.jboss.org/samples}buy".
+ </para>
+ <para>
+Once a path has been selected, the associated service category/name will be invoked immediately. If none of the paths specified within this action are relevant to the received message, then a runtime exception will be thrown.
+ </para>
+ </section>
+
+ <section>
+ <title>Executing multiple paths concurrently</title>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+ <action class="org.jboss.soa.overlord.jbossesb.actions.ParallelAction"
+ process="process" name="...">
+ <property name="paths">
+ <path service-category="ESBBroker.BrokerParticipant"
+ service-name="ESBBrokerProcess.main.2"
+ immediate="true" />
+ <path service-category="ESBBroker.BrokerParticipant"
+ service-name="ESBBrokerProcess.main.3"
+ immediate="true" />
+ <join service-category="ESBBroker.BrokerParticipant"
+ service-name="ESBBrokerProcess.main.4" />
+ </property>
+ </action>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+The <emphasis>ParallelAction</emphasis> is used to initiate multiple concurrent threads of activity. These are represented by the 'path' elements within the 'paths' property. Each path identifies its service category/name and also whether it should be invoked immediately (i.e. 'immediate' attribute set to 'true'), or will be triggered by a message from an external source.
+ </para>
+ <para>
+The other element contained within the 'paths' property is the 'join' element, which represents the service category/name that acts as a convergence point across all of the concurrent threads. When all of the initiated threads have completed, the service category/name associated with the 'join' element will be invoked.
+ </para>
+ </section>
+
+ <section>
+ <title>Repetition</title>
+ <para>
+The mechanism for performing repetition is through the use of two actions, <emphasis>WhileAction</emphasis> and <emphasis>ScheduleStateAction</emphasis>. The <emphasis>WhileAction</emphasis> defines the condition to be evaluated, and the two relevant paths, i.e. one that enters the loop body and one that represents the activities that occur after the while loop, when the conditions have not been met. The <emphasis>ScheduleStateAction</emphasis> is used within the loop body to return back to the service descriptor containing the <emphasis>WhileAction</emphasis>, to cause the loop to be re-evaluated.
+ </para>
+ <para>
+For example,
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+
+ <service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess.main.1" description="">
+ ......
+ <actions mep="OneWay">
+ <action class="org.jboss.soa.overlord.jbossesb.actions.WhileAction"
+ process="process" name="...">
+ <property name="paths">
+ <while expression="hasNextSupplier()"
+ service-category="ESBBroker.BrokerParticipant"
+ service-name="ESBBrokerProcess.main.2"
+ immediate="true" />
+ <exit service-category="ESBBroker.BrokerParticipant"
+ service-name="ESBBrokerProcess.main.3"
+ immediate="true" />
+ </property>
+ </action>
+ </actions>
+ </service>
+ ]]></programlisting>
+ </informalexample>
+
+ <para>
+The <emphasis>WhileAction</emphasis> defines a 'paths' property which contains two elements, a 'while' and an 'exit' element. Both elements define the service category and name they will invoke, and whether the service descriptors will be triggered immediately or based on an incoming message from an external source.
+ </para>
+ <para>
+Additionally, the 'while' path defines the condition that will decide whether to enter or skip the loop.
+ </para>
+ <para>
+Then at some point in the activities directly or indirectly associated with the service descriptor "ESBBroker.BrokerParticipant/ESBBrokerProcess.main.2", there would be,
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+
+ <action class="org.jboss.soa.overlord.jbossesb.actions.ScheduleStateAction"
+ process="process" name="...">
+ <property name="serviceCategory" value="ESBBroker.BrokerParticipant" />
+ <property name="serviceName" value="ESBBrokerProcess.main.1" />
+ <property name="immediate" value="true" />
+ </action>
+ ]]></programlisting>
+ </informalexample>
+
+ <para>
+while results in the service descriptor associated with the <emphasis>WhileAction</emphasis> being re-evaluated (i.e. executed again). The <emphasis>ScheduleStateAction</emphasis> will define the service category and name to invoke, and whether to invoke them immediately, or whether the service descriptor will be triggered via an incoming message from an external source.
+ </para>
+ </section>
+
+ <section>
+ <title>Composing reusable sub-conversions into a higher level conversation</title>
+ <para>
+The ability to compose reusable modules into higher level functions is a useful capability in any language. This mechanism is also supported in the "conversation aware" ESB actions, using the <emphasis>PerformAction</emphasis> to invoke a sub-session. For example,
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+
+ <actions mep="OneWay">
+ <action class="org.jboss.soa.overlord.jbossesb.actions.PerformAction"
+ process="process" name="...">
+ <property name="serviceCategory" value="ESBBroker.BrokerParticipant" />
+ <property name="serviceName" value="RequestForQuote.main" />
+ <property name="returnServiceCategory" value="ESBBroker.BrokerParticipant" />
+ <property name="returnServiceName" value="ESBBrokerProcess.main.9" />
+ <property name="bindDetails" >
+ <bind from-expression="getCurrentSupplier()"
+ to-variable="supplier" />
+ </property>
+ <property name="parentReference" value="parent" />
+ </action>
+ </actions>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+The 'serviceCategory' and 'serviceName' properties define the service descriptor that will be invoked (i.e. that represents the sub-session). This service descriptor must begin with a <emphasis>CreateSessionAction</emphasis>, to indicate that it represents the start of a sub-session.
+ </para>
+ <para>
+The optional 'returnServiceCategory' and 'returnServiceName' represent the service descriptor that will be invoked once the sub-session has completed, to enable the parent session to continue. If these properties are not defined, then it means that sub-session is being performed asynchronously, and therefore the parent session will not wait for it to complete.
+ </para>
+ <para>
+The optional 'bindDetails' provides the means for the parent session to assign specific information from its state to the newly created pojo associated with the child session.
+ </para>
+<note>
+Currently the bound details from the parent will be copied into the child pojo, and therefore modifications will not be reflected back into the parent pojo.
+</note>
+ <para>
+The optional 'parentReference' is used to set a reference, on the child session's pojo, to the parent session's pojo. The value of the 'parentReference' identifies the property on the child session's pojo that will be used to reference the parent pojo.
+ </para>
</section>
+ </section>
</section>
<section>
@@ -288,12 +755,43 @@
<section>
<title>Overview</title>
<para>
+This section explains how to generate a template JBossESB configuration file from a pi4soa choreography description (.cdm) file.
</para>
</section>
<section>
<title>Generating the JBossESB Configuration</title>
<para>
+When the choreography description has been completed, and has no errors, the user should select the "Overlord->JBossESB->Generate" menu item from the context menu associated with the choreography description (.cdm) file.
</para>
+
+ <imageobject>
+ <imagedata fileref="images/genesbconfig1.png" width="4in" />
+ </imageobject>
+
+ <para>
+When the dialog window is displayed, it will contain the list of services that can be generated, along with the project names that will be created. The user can unselect the services they do not wish to generate (also using the 'Check All' or 'Clear All' buttons).
+ </para>
+
+ <imageobject>
+ <imagedata fileref="images/genesbconfig2.png" />
+ </imageobject>
+ <para>
+The user can also select their preferred build system, which will create the relevant build structure and script in the generated Java project, to enable the JBossESB service to be deployed.
+ </para>
+ <para>
+If there is a problem with the name of the project select, such as invalid characters used in the name, or the project name already exists, then it will be displayed in red.
+ </para>
+
+ <imageobject>
+ <imagedata fileref="images/genesbconfig3.png" />
+ </imageobject>
+
+ <para>
+In the above image, on the left it shows the generated project structure for the Broker service role. On the right it shows a portion of a generated session class, with the accessor and modifier for one of the variables associated with that session.
+ </para>
+ <para>
+Although an initial build script will be created, depending on the build system selected, the user may need to edit the script to set certain properties, or change the way the build occurs. For example, with the Ant build, the deploy target (which is the default) will attempt to place the deployed .esb file into a location defined by the <filename>${org.jboss.esb.server.deploy.dir}</filename>. If this variable has not been defined, then a folder called <filename>${org.jboss.esb.server.deploy.dir}</filename> will be created in the root folder of the project, containing the .esb file.
+ </para>
</section>
</section>
@@ -302,9 +800,77 @@
<section>
<title>Overview</title>
<para>
-<todo>Explain how conformance issues are reported and about the quickfix mechanism - including the standard ways to resolve problems</todo>
+ Conformance checking can be used to determine whether an ESB configuration, containing "conversation aware" ESB actions, matches the expected behaviour as defined within a choreography description (.cdm file). The Eclipse environment will report any conformance issues as errors in the <emphasis>Problems</emphasis> view.
</para>
+ <para>
+ This section will explain the types of conformance errors that may be reported and how to deal with them. Not all errors, associated with an ESB configuration, will be discussed in this section. Many errors may be detected that will indicate problems associated with the way that behaviour has been specified in the configuration file (e.g. conversation type has not been defined). These are not directly related to conformance.
+ </para>
</section>
+
+ <section>
+ <title>Show referenced description</title>
+ <para>
+When an error occurs, related to conformance between the ESB configuration file and a choreography description, it will have an associated <emphasis>quick fix</emphasis> resolution that can be used to display the relevant activity being referred to within the choreography description.
+ </para>
+ </section>
+
+ <section>
+ <title>Error: Expecting additional activities as defined in referenced description</title>
+ <para>
+This error message indicates that the reference description contains activities that were not found in the ESB configuration.
+ </para>
+ <para>
+This error has an associated <emphasis>quick fix</emphasis> to enable the missing activities to be inserted in the appropriate location within the ESB configuration.
+ </para>
+
+<note>
+When this resolution is selected, if it displays an error <quote>Could not insert activities found in referenced description</quote>, this means that it was not possible to insert the additional activities automatically.
+</note>
+ </section>
+
+ <section>
+ <title>Error: Type mismatch with referenced description, was expecting '...'</title>
+ <para>
+This error occurs when an activity contains a type that does not match with the equivalent activity in the choreography description. A common example would be an interaction, where the message types are not compatible.
+ </para>
+
+ <para>
+This error has an associated <emphasis>quick fix</emphasis> to enable the type to be updated in the relevant activity within the ESB configuration.
+ </para>
+
+<note>
+When this resolution is selected, if it displays an error <quote>Could not update activity with information from referenced description</quote>, this means that it was not possible to update the information automatically.
+</note>
+ </section>
+
+ <section>
+ <title>Error: Behaviour not present in referenced description</title>
+ <para>
+This error occurs when there are extra activities within the ESB configuration that do not appear within the choreography description.
+ </para>
+ <para>
+This error has an associated <emphasis>quick fix</emphasis> to enable the unwanted activities to be removed from the ESB configuration.
+ </para>
+
+<note>
+When this resolution is selected, if it displays an error <quote>Could not delete activities from the model</quote>, this means that it was not possible to delete the activities automatically.
+</note>
+ </section>
+
+ <section>
+ <title>Error: Additional unmatched paths in model</title>
+ <para>
+This error indicates that a grouping contruct (e.g. <emphasis>ParallelAction</emphasis>, <emphasis>IfAction</emphasis> or <emphasis>SwitchAction</emphasis>) in the ESB configuration has additional paths that do not match the equivalent grouping construct in the choreography description.
+ </para>
+ </section>
+
+ <section>
+ <title>Error: Additional unmatched paths in referenced description</title>
+ <para>
+This error indicates that a grouping contruct (e.g. <emphasis>Choice</emphasis> or <emphasis>Parallel</emphasis>) in the choreography description has additional paths that do not match the equivalent grouping construct in the ESB configuration.
+ </para>
+ </section>
+
</section>
</chapter>
15 years, 7 months
Overlord SVN: r359 - in cdl/trunk/docs/docbook/userguide/src/main: module and 1 other directory.
by overlord-commits@lists.jboss.org
Author: objectiser
Date: 2008-10-02 10:56:11 -0400 (Thu, 02 Oct 2008)
New Revision: 359
Added:
cdl/trunk/docs/docbook/userguide/src/main/images/setconversationtype.png
Modified:
cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml
cdl/trunk/docs/docbook/userguide/src/main/module/conversation-validation-with-cdl.xml
cdl/trunk/docs/docbook/userguide/src/main/module/getting_started.xml
Log:
Converted some of the 'conversation aware' ESB guide into docbook format.
Added: cdl/trunk/docs/docbook/userguide/src/main/images/setconversationtype.png
===================================================================
(Binary files differ)
Property changes on: cdl/trunk/docs/docbook/userguide/src/main/images/setconversationtype.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml
===================================================================
--- cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml 2008-10-02 06:02:08 UTC (rev 358)
+++ cdl/trunk/docs/docbook/userguide/src/main/module/conversation-aware-esb.xml 2008-10-02 14:56:11 UTC (rev 359)
@@ -4,11 +4,308 @@
<chapter id="conversationawareesb">
<title>Conversation Aware ESB</title>
<section>
- <title></title>
+ <title>Conversation based Conformance</title>
<section>
- <title></title>
+ <title>Overview</title>
<para>
+The term "conversation" represents a structured set of interactions (or message exchanges) between one or more peer to peer services, to conduct a business transaction. The "conversation" is defined from a service neutral (i.e. global) perspective.
</para>
+ <para>
+This document explains how such a "conversation" description can be used to ensure conformance of one or more service implementations, within an ESB, during the design and implementation phase of the system.
+ </para>
+ <para>
+This section introduces the choreography description language (CDL) defined by W3C, which is a standard notation for defining conversations from a global perspective, and the <emphasis>pi4soa</emphasis> open source project which provides an editor for creating choreography descriptions, as well as utilizing these descriptions for conformance checking, monitoring and execution purposes.
+ </para>
+ <para>
+Finally the section will provide a brief discussion of how CDL can be used to provide conformance checking of an ESB, through the use of 'conversation aware' ESB actions.
+ </para>
</section>
+ <section>
+ <title>CDL Conformance Checking</title>
+ <para>
+In general, conformance checking is the procedure for ensuring that a component has been correctly built according to some specification or standard. In terms of CDL, it more specifically ensures that one or more services perform their responsibilities correctly in accordance with the choreography description.
+ </para>
+ <para>
+The <emphasis>pi4soa</emphasis> tools suite provide the mechanism for producing service endpoint descriptions for each service within a choreography description. The relevant service descriptions can then be compared (for conformance) against their ESB service implementations.
+ </para>
+ <para>
+However, to make this possible, it is necessary to be able to derive the communication 'type' structure from the ESB implementation, i.e. where messages (of particular types) are sent and received, where decision points are, where actions are performed concurrently, etc.
+ </para>
+ <para>
+This is why a specific set of 'conversation aware' ESB actions have been defined (discussed in a later section), to make it possible to derive the communication 'type' structure from an ESB service implementation.
+ </para>
+ <para>
+Once the communication 'type' structure has been obtained from the ESB implementation, it can be compared against the relevant service endpoint description projected from the choreography description, to determine if there are any differences. These can then be reported to the ESB service developer, so that they can fix the problems, before the service is deployed to the runtime environment.
+ </para>
+ <para>
+This ensures that all of the services will interaction correctly, as they will all have been validated against the choreography, and therefore work together by design.
+ </para>
+ </section>
</section>
+
+ <section>
+ <title>JBossESB "Conversation Aware" ESB Actions</title>
+ <section>
+ <title>Overview</title>
+ <para>
+This section outlines the various "conversation aware" ESB actions that can be used to make the communication behaviour of a service implementation explicit, thus enabling it to be compared for conformance against a description of the expected behaviour.
+ </para>
+ </section>
+ <section>
+ <title>Conversational Service</title>
+ <para>
+The top level component is the <emphasis>Service</emphasis>, which will have a single endpoint reference (i.e. service category and name) that will be used by external clients (or other services) that interact with this service.
+ </para>
+ <para>
+However the service behaviour is stateful, and therefore will need a means of routing the inbound request to the appropriate service descriptor that is (a) capable of handling the request, and (b) the service instance is in an appropriate state where the service descriptor can be executed.
+ </para>
+
+ <section>
+ <title>Message Router Action</title>
+ <para>
+The action used to perform routing of the inbound requests is called <emphasis>MessageRouterAction</emphasis>, for example:
+ </para>
+
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+
+ <service category="ESBBroker.BrokerParticipant" name="ESBBrokerProcess" description="">
+ <listeners>
+ <jms-listener name="BrokerServiceListener"
+ busidref="BrokerService"
+ maxThreads="1"/>
+ </listeners>
+ <actions mep="OneWay">
+ <action class="org.jboss.soa.overlord.jbossesb.actions.MessageRouterAction"
+ process="process" name="s0-1">
+ <property name="paths">
+ <route service-category="ESBBroker.BrokerParticipant"
+ service-name="ESBBrokerProcess.main"
+ initiate="true">
+ <identity type="primary" >
+ <token name="id" locator="//@id" />
+ </identity>
+ <message type="enquiry" />
+ </route>
+ <route service-category="ESBBroker.BrokerParticipant"
+ service-name="ESBBrokerProcess.main.5" >
+ <identity type="primary" >
+ <token name="id" locator="//@id" />
+ </identity>
+ <message type="buy" />
+ <message type="cancel" />
+ </route>
+ </property>
+ </action>
+ </actions>
+ </service>
+ ]]></programlisting>
+ </informalexample>
+
+ <para>
+In this example, the 'service' endpoint reference will be associated with the service category "ESBBroker.BrokerParticipant" and name "ESBBrokerProcess". All inbound requests to an instance of this service will be routed via this service descriptor.
+ </para>
+ <para>
+This service descriptor therefore only has a single action, which represents the message routing capability. The action class is <emphasis>org.jboss.soa.overlord.jbossesb.actions.MessageRouterAction</emphasis>. This action only defines a single property 'path' which defines one or more 'route' elements. The attributes associated with this 'route' element are:
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem>
+service-category and service-name, together identify the service descriptor that should be invoked if this route is selected
+ </listitem>
+ <listitem>
+an optional 'initiate' boolean attribute. If the attribute is specified, and its value is 'true', then the route can only be selected if the service instance relevant for the inbound message does not yet exist, and this message will result in a <emphasis>CreateSessionAction</emphasis> being invoked to create the service instance. If the attribute value is 'false', or not specified, then a service instance must already exist that is capable of handling the inbound message.
+ </listitem>
+ </itemizedlist>
+
+ </para>
+ <para>
+The 'route' element will contain one or more 'identity' elements, and one or more 'messageType' elements.
+ </para>
+ <para>
+The 'identity' element is used to extract information from the inbound message that can be used to identify the appropriate service instance. The only attribute on the 'identity' element is the type of identity, which can be:
+ </para>
+
+
+ <para>
+ <itemizedlist>
+ <listitem>
+primary
+<para>
+the primary identity field, used to associate a message with the session
+</para>
+ </listitem>
+ <listitem>
+alternate
+<para>
+an alternative primary identity
+</para>
+ </listitem>
+ <listitem>
+association
+<para>
+link the message to a session based on an identity previously associated with the session (or parent session). However this identity will not be associated with the current session, it is usually only used to link a child session to a parent session
+</para>
+ </listitem>
+ <listitem>
+derived
+<para>
+the extracted identity will be placed in reserve for use as the primary identity for a subsequent session. It is not directly associated with the session in which it is discovered
+</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+
+
+
+ <para>
+The one or more 'token' definitions contained within the 'identity' element provide the details regarding the structure of the identity. The token has 'name' and 'locator' attributes, the locator being used to provide an expression that locates the identity information within the inbound message. If more than one token is defined, it provides a composite identity (i.e. made up of multiple parts).
+ </para>
+ <para>
+The one or more 'messageType' elements, contained within the 'route' element, defines the message type(s) that should be routed to the service descriptor associated with the 'route' element.
+ </para>
+<note>
+If a route is marked as <emphasis>initiate='true'</emphasis>, with the correct message type for an inbound message, but a service instance already exists for the identity information extracted from the message, then the route will not be selected. The converse is also true.
+</note>
+
+<note>
+Similarly, even if a message type match is found, if the service instance is not in an appropriate state to invoke the target service descriptor, then the route will not be selected.
+</note>
+ <para>
+If no routes are found for a particular inbound message, then an exception will be reported.
+ </para>
+
+ </section>
+ </section>
+ <section>
+ <title>Establishing Correspondance between ESB Configuration and Choreography</title>
+ <para>
+All actions (and therefore service descriptors) for a particular service implementation must be defined within the same ESB configuration file. This is a current requirement, to ensure that all of the inter-related service descriptors are available to support the static validation (e.g. conformance checking).
+ </para>
+ <para>
+The <filename>jboss-esb.xml</filename> file must be defined within either the same Eclipse project as the <emphasis>pi4soa</emphasis> choreography description (.cdm file), or in a project that has a 'project reference' to the project containing the choreography description.
+ </para>
+ <para>
+To establish the link between the choreography description and the <filename>jboss-esb.xml</filename>, both must 'implement' a common <emphasis>conversation type</emphasis>.
+ </para>
+ <informalexample>
+ <programlisting role="XML" ><![CDATA[
+
+ <action class="org.jboss.soa.overlord.jbossesb.actions.CreateSessionAction"
+ process="process" name="...">
+ ....
+ <property name="conversationType"
+ value="jboss.overlord.samples.LoanBroker@Broker" />
+ ....
+ </action>
+ ]]></programlisting>
+ </informalexample>
+ <para>
+The <emphasis>conversation type</emphasis> is specified in the <emphasis>CreateSessionAction</emphasis> ESB action, described later in this section, and is associated as a semantic annotation against the relevant Participant Type or Participant Instance within the choreography description.
+ <para>
+ </para>
+To associate the <emphasis>conversation type</emphasis> with either the Participant Type or Instance, open the choreography description in the <emphasis>pi4soa</emphasis> choreography designer. Then select the "Choreography->Edit Annotations" menu item from the context menu associated with the Participant Type or Instance. In the lefthand panel, select "Add Freeform Annotation" from the context menu, then specify "conversationType" as the annotation type and press 'Ok'. Then select the 'Annotation' tab in the righthand panel, and enter the conversation type, e.g. "jboss.overlord.samples.LoanBroker@Broker". Note the '@' is important, as the following word indicates the 'role' associated with the conversation type which precedes the '@' symbol.
+ </para>
+
+ <imagedata fileref="images/setconversationtype.png" width="4in" />
+
+
+ </section>
+ <section>
+ <title>Managing Sessions</title>
+ <para>
+A "session" represents a specific instantiation of a service definition that is involved in a business transaction (or conversation). The "session" will be distinguished based on unique identity information relevant to the business transaction, that is derived from specific properties within the messages being exchanged by the interacting services.
+ </para>
+ <para>
+The service description can be composed from other reusable sub-service descriptions, although the service can only define a single 'root' (i.e. top level) definition.
+ </para>
+ <section>
+ <title>Business State and Logic</title>
+
+ <para>
+Each top level or sub-service description will be associated with a business state 'pojo' class that contains its business relevant information and logic (i.e. methods). This class is identified by the property 'session', which will be associated with the initial conversation based ESB actions in a service (or sub-service) description, or in any subsequent conversation based ESB actions that require the information to determine the session instance.
+ </para>
+ <para>
+As well as representing the business state and logic for a session (or sub-session), the pojo can define an annotation that provides information about the session. The annotation type is <classname>org.jboss.soa.overlord.jbossesb.actions.Service</classname>.
+ </para>
+
+ <informalexample>
+ <programlisting>
+
+ package org.jboss.soa.overlord.samples.jbossesb.loan.broker;
+
+ import org.jboss.soa.overlord.jbossesb.actions.Service;
+
+ @Service(name="{http://www.jboss.org/overlord/loanBroker}Broker",
+ conversationType="jboss.overlord.samples.LoanBroker@Broker",
+ root=true)
+ public class BrokerMain {
+ ....
+ }
+ </programlisting>
+ </informalexample>
+
+ <para>
+The 'name' attribute represents a name associated with the complete service description, encompassing both top level and composed sub-session behaviour. The 'root' attribute indicates whether this pojo is related to the top level session, or a sub-session.
+ </para>
+ <para>
+For pojos that represent the 'root', or top level session, for a service description, they should also specify the optional 'conversationType' attribute. This expresses the type that will be checked for conformance, and is comprised of two parts separated by the '@' symbol. The first part is a fully qualified name of the conversation type. The second part represents the role being played within the conversation type.
+ </para>
+ <para>
+If the <emphasis>Service</emphasis> annotation is not defined on the pojo, then the information (service description name, root and optional conversation type) must be explicitly defined in the relevant conversation based ESB actions.
+ </para>
+
+ </section>
+ <section>
+ <title>Instantiating top level and child sessions</title>
+ </section>
+
+ <section>
+ <title>Retrieving an existing session</title>
+ </section>
+
+ </section>
+ <section>
+ <title>Interacting</title>
+ <para>
+ </para>
+ </section>
+ <section>
+ <title>Managing Information</title>
+ <para>
+ </para>
+ </section>
+ <section>
+ <title>Controlling Flow</title>
+ <para>
+ </para>
+ </section>
+ </section>
+
+ <section>
+ <title>Generating a JBossESB Configuration from CDL</title>
+ <section>
+ <title>Overview</title>
+ <para>
+ </para>
+ </section>
+ <section>
+ <title>Generating the JBossESB Configuration</title>
+ <para>
+ </para>
+ </section>
+ </section>
+
+ <section>
+ <title>Dealing with Conformance Issues</title>
+ <section>
+ <title>Overview</title>
+ <para>
+<todo>Explain how conformance issues are reported and about the quickfix mechanism - including the standard ways to resolve problems</todo>
+ </para>
+ </section>
+ </section>
+
</chapter>
+
Modified: cdl/trunk/docs/docbook/userguide/src/main/module/conversation-validation-with-cdl.xml
===================================================================
--- cdl/trunk/docs/docbook/userguide/src/main/module/conversation-validation-with-cdl.xml 2008-10-02 06:02:08 UTC (rev 358)
+++ cdl/trunk/docs/docbook/userguide/src/main/module/conversation-validation-with-cdl.xml 2008-10-02 14:56:11 UTC (rev 359)
@@ -19,62 +19,7 @@
</para>
</section>
- <section>
- <title>WS-CDL</title>
-
- <para>
-WS-CDL, or Web Service Choreography Description Language, is a candidate recommendation from W3C. Although associated with W3C and Web Services, it is important to begin by stating that the Choreography Description Language (CDL) is <emphasis role="bold">not</emphasis> web service specific.
- </para>
- <para>
-The purpose of CDL is to enable the interactions between a collection of peer to peer services to be described from a neutral (or global) perspective. This is different to other standards, such as WS-BPEL, that describe interactions from a service specific viewpoint.
- </para>
- <para>
-In essence a choreography description declares roles which will pass messages between each other, called interactions. The interactions are ordered based on a number of structuring mechanism which enables loops, conditional, choices and parallelism to be described. In CDL variables used for messages and for conditionals are all situated at roles. There is no shared state rather there is a precise description of the state at each role and a precise description of how these roles interact in order to reach some notion of common state in which information is exchanged and processed between them.
- </para>
- <para>
-In CDL we use interactions and these structuring mechanisms to describe the observable behaviour, the messages exchanges and the rules for those exchanges and any supporting observable state on which they depend, of a system.
- </para>
- </section>
-
- <section>
- <title>pi4soa</title>
- <para>
-<emphasis>pi4soa</emphasis> is an open source project established to demonstrate the potential benefits that a global model (as described using CDL) can provide when building an SOA. The open source project is managed by the Pi4 Technologies Foundation, which is a collaboration between industry and academia.
- </para>
- <para>
-Building complex distributed systems, without introducing unintended consequences, is a real challenge. Although the Choreography Description Language provides a means of describing complex systems at a higher level, and therefore help to reduce such complexity, it does not necessarily guarantee that erronous situations cannot occur due to inappropriately specified interactions. The research, being carried out by members of the Pi4 Technologies Foundation, into the global model and endpoint projection is targeted at identifying potential unintended consequences, to ensure that a global description of a system can be reliably executed and can be free from unintended consequences.
- </para>
- <para>
-The tool suite currently offers the ability to:
- </para>
- <para>
- <itemizedlist>
- <listitem>
- Define a choreography description
- </listitem>
- <listitem>
- Export the description to a range of other formats, such as BPMN, UML activity/state/sequence models, and HTML
- </listitem>
- <listitem>
- Define scenarios (equivalent to sequence diagrams), with example messages, which can then be simulated against an associated choreography
- </listitem>
- <listitem>
- Generate template endpoint implementations:
- <para>
- <itemizedlist>
- <listitem>
- WS-BPEL for deployment in ActiveBPEL
- </listitem>
- <listitem>
- Java stubs for execution with the pi4soa state machine, with deployment options for Apache Axis, J2EE (JBoss, Glassfish) and JBoss ESB
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
- </itemizedlist>
- </para>
</section>
- </section>
<section>
<title>Configuration of Conversation Validation</title>
Modified: cdl/trunk/docs/docbook/userguide/src/main/module/getting_started.xml
===================================================================
--- cdl/trunk/docs/docbook/userguide/src/main/module/getting_started.xml 2008-10-02 06:02:08 UTC (rev 358)
+++ cdl/trunk/docs/docbook/userguide/src/main/module/getting_started.xml 2008-10-02 14:56:11 UTC (rev 359)
@@ -1,260 +1,316 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-]>
-<chapter id="gettingstarted">
- <title>Getting Started</title>
- <section>
- <title>SOA Governance with CDL </title>
- <section>
- <title>Overview</title>
- <para>
- The CDL component of the Overlord SOA governance project aims to leverage the concept of a choreography (or conversation)
- description to provide design-time and run-time governance of an SOA.
- </para>
- <para>
- A Choreography provides the means to describe the service interactions between multiple parties from a global (or service neutral) perspective.
- This means that it is possible for an organisation to define how an end-to-end business process should function, regardless of whether orchestrated
- or peer-to-peer service collaboration will be used.
- </para>
- <para>
- Although in simple situations, a BPEL process description can provide a description of the interactions between multiple services, this only works where a
- single orchestrating process is in control. The benefit of the choreography description is that it can be used to provide a global view of a process across multiple
- orchestrated service domains.
- </para>
- <para>
- This document will outline how the Choreography Description is being used as part of Project Overlord to provide SOA governance capabilities
- for each phase of the SOA lifecycle.
- </para>
- <para>
- When a validated design has been approved by the users, it can be used to generate an initial skeleton of the implementation for each service.
- The current version of Overlord enables a skeleton implementation to be generated as a JBossESB service configuration file,
- using 'conversation aware' ESB actions. For more information on these, please see the “Conversational ESB User Guide”.
- </para>
- </section>
-
- <section>
- <title> SOA Lifecycle Governance </title>
-
- <section>
- <title>Design Time Governance</title>
- <para>
- Design-time governance is concerned with ensuring that the resulting system correctly implements requirements (whether functional or non-functional).
- A choreography description can be used to ensure that the implemented system meets the behavioural requirements.
- </para>
- <para>
- The behavioural requirements can be captured as a collection of scenarios (e.g. sequence diagrams) with associated example messages.
- This enables an unambiguous representation of the business requirements to be stored in a machine processable form, which can subsequently
- be used to validate other phases of the SOA lifecycle.
- </para>
- <para>
- Once the choreography description for the SOA has been defined, it can be validated against the scenarios,
- to ensure that the choreography correctly handles all of the business requirements.
- </para>
- <para>
- Once the service enters the implementation phase, it is important to ensure that it continues to adhere to the design
- and therefore meets the business requirements. Currently this is achieved through the use of techniques such as continuous testing.
- However this is only as reliable as the quality of the unit tests that have been written.
- </para>
- <para>
- When a 'structured' implementation language has been used, such as WS-BPEL, jPDL or the new 'conversation aware' ESB actions,
- it will be possible to infer the behaviour of the service being implemented, to compare it against the choreography description.
- Currently this has been implemented for the “conversation aware” ESB actions, and is demonstrated using the samples in this Overlord-CDL distribution.
- </para>
- <para>
- Detecting incorrectly implemented behaviour at the earliest possible time saves on downstream costs associated with finding and fixing errors.
- By using static validation against the original design, it ensures that the implemented service will deliver its expected behaviour first time.
- This is important in building large scale SOAs where different services may be implemented in different locations.
- </para>
- <para>
- There are two other areas where a choreography description can be used as part of design-time governance,
- that are not currently implemented in Overlord:
- </para>
- <itemizedlist>
- <listitem>
- Service lookup – the choreography description can be used to determine if a service already exists in the Service Repository that meets the appropriate behavioural requirements.
- </listitem>
- <listitem>
- Service unit testing - this can be achieved using the scenarios originally specified to document the behavioural requirements.
- Rather than develop an independent source of test data, the scenarios can be used to validate the sequence of messages sent to,
- and received from, a service, as well as validating the contents of the messages returned from the service under test.
- </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Runtime Governance</title>
- <para>
- Runtime governance ensures that the SOA executes as expected according to predefined policies. In this context, a choreography description can be used in two ways.
- </para>
-
- <section>
- <title> Service validator</title>
- <para>
- The choreography description represents the interactions between multiple services to deliver a business goal.
- To validate the behaviour of each individual service, within the choreography description, the behaviour of each service can be derived from the choreography.
- </para>
- <para>
- The derived behaviour (or “endpoint projection”) of a service can be used within a 'service validator' to monitor the inbound and outbound messages for the service,
- to ensure they conform to the expected behaviour.
- If an invalid message is detected, it would be possible to block it, to prevent it from causing subsequent problems in downstream systems.
- The error can also be reported to a central management capability.
- </para>
- <para>
- The CDL component of Overlord provides the ability to configure service validators to monitor the behaviour of individual services.
- An enhanced version of the JBossESB trailblazer example has been included, with the appropriate validator configuration, to demonstrate this mechanism.
- </para>
- </section>
-
- <section>
- <title>Process correlation</title>
- <para>
- Validating each service locally can enable errors to be detected quickly,
- and the effects of the error prevented from contaminating other systems by blocking the erroneous messages.
- </para>
- <para>
- However local service specific validation may not be adequate to identify errors that would affect the end-to-end business process.
- Therefore the message activity at each service validator can be reported to a central 'process correlation engine' which can reconstitute a global view of the business transaction,
- and determine if it matches the expected behaviour as defined in the choreography description.
- </para>
- <para>
- The benefit of a correlated global view of the distributed business transaction is that it can be further analysed to ensure other governance polices have been followed – e.g. SLAs.
- </para>
- <para>
- The pi4soa tool suite includes a simple GUI based monitoring tool to display the information obtained from correlating message events associated with individual services.
- The trailblazer example has been written to cause out of sequence messages under certain circumstances. See the “Samples Guide” for more information on how to run this example.
- </para>
- </section>
- </section>
- </section>
-
- <section>
- <title> First Steps </title>
- <para>The first step will be to follow the instructions in the next chapter to install Overlord. </para>
- <para> Once installed, the next step should be to try out the examples in the samples folder. The examples consistent of:</para>
- <itemizedlist>
- <listitem>
- Service Validation related examples
- <para>
- The samples folder contains an enhanced version of the trailblazer example from the JBossESB, with the addition of a File Based Bank, and message content including a conversation id to enable the messages to be correlated with a specific session.
- </para>
- </listitem>
- <listitem>
- Conversation aware ESB actions, with conformance checking against Choreography
- <para>
- Two examples have been included, one simple example (purchasing) and the other more advanced (brokerage). Both relate to the business process of purchasing items. The second example introduces the concept of a broker to act on behalf of the customer, interacting with multiple potential suppliers.
- </para>
- <para>
- These examples show how a service implementation (built using “conversation aware ESB actions” in this case), can be continuously checked for conformance against a choreography description.
- </para>
- <para>
- The final step should be to review the other documents in the docs folder to understand more about each capability, and then try using the techniques on your own project.
- </para>
- </listitem>
- </itemizedlist>
- </section>
- </section>
-
- <section>
- <title>Installation</title>
-
- <section>
- <title> Overview </title>
- <para>
- This section describes the installation procedure for the Overlord CDL based governance capabilities. These capabilities are:
- </para>
- <itemizedlist>
- <listitem> Conversation aware ESB Actions with conformance checking against a Choreography Description </listitem>
- <listitem> ESB Service validation against a Choreography Description </listitem>
- </itemizedlist>
- </section>
-
- <section>
- <title>Prerequisites</title>
- <orderedlist>
- <listitem>JBossAS (version 4.2.3.GA or higher), available from http://www.jboss.org/jbossas</listitem>
- <listitem>JBossESB (version 4.4.GA or higher), available from http://www.jboss.org/jbossesb</listitem>
- <listitem>Overlord CDL (version 1.0-SNAPSHOT or higher) </listitem>
- <listitem>
- pi4soa (version 2.0.0 or higher), available from http://www.pi4soa.org
- <note>
- <para>
- It is recommended that a pre-packaged version is used, which includes all of the necessary Eclipse related plugins.
- However the plugins can be installed separately into an existing Eclipse environment by following the instructions on the www.pi4soa.org wiki.
- </para>
- </note>
- </listitem>
- <listitem>
- Ant, available from http://ant.apache.org/
- </listitem>
- </orderedlist>
- </section>
-
- <section>
- <title>Installation Instructions</title>
- <orderedlist>
- <listitem>
- Install JBossAS
- <para> Unpack the JBossAS installation into the required location. </para>
- </listitem>
- <listitem>
- Install JBossESB
- <para> Unpack the JBossESB installation into a location alongside the JBossAS installation.
- Then follow the instructions in the JBossESB installation (install/readme.txt), to deploy JBossESB into the JBossAS environment.
- </para>
- </listitem>
-
- <listitem>
- Install the Overlord CDL distribution
- <para>
- Unpack the Overlord CDL distribution into a location alongside the JBossAS installation.
- </para>
- <para>
- <itemizedlist>
- <listitem>
- Edit the <emphasis role="bold">install/deployment.properties</emphasis> file to update the JBossAS and JBossESB location settings.
- </listitem>
- <listitem>
- From the install folder, run: <command> ant deploy</command>to deploy both the Overlord CDL conversational ESB actions and service validation capabilities.
- Or <command>ant deploy-overlord-cdl-runtime</command> to deploy just the conversational ESB actions support, or <command>ant deploy-overlord-cdl-validator</command> to deploy just the service validation capability.
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
-
- <listitem>
- Install pi4soa
- <para>
- Unpack the pi4soa pre-packaged Eclipse version into a location alongside the JBossAS installation, or install the relevant plugins (as described on the pi4soa wiki) into an existing Eclipse environment.
- </para>
- <para>
- If just the service validation capabilities are being used, then no further configuration of the Eclipse environment is necessary.
- However if the conversational ESB actions, with conformance checking against a Choreography Description, will be used, then the following additional steps will be required:
- </para>
- <para>
- <itemizedlist>
- <listitem>
- Start the Eclipse environment
- </listitem>
- <listitem>
- Select the “Help - > Software Updates...” menu item
- </listitem>
- <listitem>
- From the <emphasis role="bold"> Available Software</emphasis> tab, press the “Add Site...” button
- </listitem>
- <listitem>
- Press the “Local” button, browse to locate the <emphasis role="bold">tools</emphasis> folder in the Overlord CDL distribution,
- and then press the OK button. This will cause the local Eclipse update site, bundled with the Overlord CDL distribution, to be add to the <emphasis role="bold"> Available Software </emphasis> tab.
- </listitem>
- <listitem>
- Select the root node of the newly added local update site, and then press the “Install” button and follow the instructions to install the plugins.
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
-
- </orderedlist>
- </section>
-
-</section>
-
-</chapter>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<chapter id="gettingstarted">
+ <title>Getting Started</title>
+ <section>
+ <title>SOA Governance with CDL </title>
+ <section>
+ <title>Overview</title>
+ <para>
+ The CDL component of the Overlord SOA governance project aims to leverage the concept of a choreography (or conversation)
+ description to provide design-time and run-time governance of an SOA.
+ </para>
+ <para>
+ A Choreography provides the means to describe the service interactions between multiple parties from a global (or service neutral) perspective.
+ This means that it is possible for an organisation to define how an end-to-end business process should function, regardless of whether orchestrated
+ or peer-to-peer service collaboration will be used.
+ </para>
+ <para>
+ Although in simple situations, a BPEL process description can provide a description of the interactions between multiple services, this only works where a
+ single orchestrating process is in control. The benefit of the choreography description is that it can be used to provide a global view of a process across multiple
+ orchestrated service domains.
+ </para>
+ <para>
+ This document will outline how the Choreography Description is being used as part of Project Overlord to provide SOA governance capabilities
+ for each phase of the SOA lifecycle.
+ </para>
+ <para>
+ When a validated design has been approved by the users, it can be used to generate an initial skeleton of the implementation for each service.
+ The current version of Overlord enables a skeleton implementation to be generated as a JBossESB service configuration file,
+ using 'conversation aware' ESB actions. For more information on these, please see the “Conversational ESB User Guide”.
+ </para>
+ </section>
+
+ <section>
+ <title>WS-CDL</title>
+
+ <para>
+WS-CDL, or Web Service Choreography Description Language, is a candidate recommendation from W3C. Although associated with W3C and Web Services, it is important to begin by stating that the Choreography Description Language (CDL) is <emphasis role="bold">not</emphasis> web service specific.
+ </para>
+ <para>
+The purpose of CDL is to enable the interactions between a collection of peer to peer services to be described from a neutral (or global) perspective. This is different to other standards, such as WS-BPEL, that describe interactions from a service specific viewpoint.
+ </para>
+ <para>
+In essence a choreography description declares roles which will pass messages between each other, called interactions. The interactions are ordered based on a number of structuring mechanism which enables loops, conditional, choices and parallelism to be described. In CDL variables used for messages and for conditionals are all situated at roles. There is no shared state rather there is a precise description of the state at each role and a precise description of how these roles interact in order to reach some notion of common state in which information is exchanged and processed between them.
+ </para>
+ <para>
+In CDL we use interactions and these structuring mechanisms to describe the observable behaviour, the messages exchanges and the rules for those exchanges and any supporting observable state on which they depend, of a system.
+ </para>
+ </section>
+
+ <section>
+ <title>pi4soa</title>
+ <para>
+<emphasis>pi4soa</emphasis> is an open source project established to demonstrate the potential benefits that a global model (as described using CDL) can provide when building an SOA. The open source project is managed by the Pi4 Technologies Foundation, which is a collaboration between industry and academia.
+ </para>
+ <para>
+Building complex distributed systems, without introducing unintended consequences, is a real challenge. Although the Choreography Description Language provides a means of describing complex systems at a higher level, and therefore help to reduce such complexity, it does not necessarily guarantee that erronous situations cannot occur due to inappropriately specified interactions. The research, being carried out by members of the Pi4 Technologies Foundation, into the global model and endpoint projection is targeted at identifying potential unintended consequences, to ensure that a global description of a system can be reliably executed and can be free from unintended consequences.
+ </para>
+ <para>
+The tool suite currently offers the ability to:
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem>
+ Define a choreography description
+ </listitem>
+ <listitem>
+ Export the description to a range of other formats, such as BPMN, UML activity/state/sequence models, and HTML
+ </listitem>
+ <listitem>
+ Define scenarios (equivalent to sequence diagrams), with example messages, which can then be simulated against an associated choreography
+ </listitem>
+ <listitem>
+ Generate template endpoint implementations:
+ <para>
+ <itemizedlist>
+ <listitem>
+ WS-BPEL for deployment in ActiveBPEL
+ </listitem>
+ <listitem>
+ Java stubs for execution with the pi4soa state machine, with deployment options for Apache Axis, J2EE (JBoss, Glassfish) and JBoss ESB
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section>
+ <title> SOA Lifecycle Governance </title>
+
+ <section>
+ <title>Design Time Governance</title>
+ <para>
+ Design-time governance is concerned with ensuring that the resulting system correctly implements requirements (whether functional or non-functional).
+ A choreography description can be used to ensure that the implemented system meets the behavioural requirements.
+ </para>
+ <para>
+ The behavioural requirements can be captured as a collection of scenarios (e.g. sequence diagrams) with associated example messages.
+ This enables an unambiguous representation of the business requirements to be stored in a machine processable form, which can subsequently
+ be used to validate other phases of the SOA lifecycle.
+ </para>
+ <para>
+ Once the choreography description for the SOA has been defined, it can be validated against the scenarios,
+ to ensure that the choreography correctly handles all of the business requirements.
+ </para>
+ <para>
+ Once the service enters the implementation phase, it is important to ensure that it continues to adhere to the design
+ and therefore meets the business requirements. Currently this is achieved through the use of techniques such as continuous testing.
+ However this is only as reliable as the quality of the unit tests that have been written.
+ </para>
+ <para>
+ When a 'structured' implementation language has been used, such as WS-BPEL, jPDL or the new 'conversation aware' ESB actions,
+ it will be possible to infer the behaviour of the service being implemented, to compare it against the choreography description.
+ Currently this has been implemented for the “conversation aware” ESB actions, and is demonstrated using the samples in this Overlord-CDL distribution.
+ </para>
+ <para>
+ Detecting incorrectly implemented behaviour at the earliest possible time saves on downstream costs associated with finding and fixing errors.
+ By using static validation against the original design, it ensures that the implemented service will deliver its expected behaviour first time.
+ This is important in building large scale SOAs where different services may be implemented in different locations.
+ </para>
+ <para>
+ There are two other areas where a choreography description can be used as part of design-time governance,
+ that are not currently implemented in Overlord:
+ </para>
+ <itemizedlist>
+ <listitem>
+ Service lookup – the choreography description can be used to determine if a service already exists in the Service Repository that meets the appropriate behavioural requirements.
+ </listitem>
+ <listitem>
+ Service unit testing - this can be achieved using the scenarios originally specified to document the behavioural requirements.
+ Rather than develop an independent source of test data, the scenarios can be used to validate the sequence of messages sent to,
+ and received from, a service, as well as validating the contents of the messages returned from the service under test.
+ </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Runtime Governance</title>
+ <para>
+ Runtime governance ensures that the SOA executes as expected according to predefined policies. In this context, a choreography description can be used in two ways.
+ </para>
+
+ <section>
+ <title> Service validator</title>
+ <para>
+ The choreography description represents the interactions between multiple services to deliver a business goal.
+ To validate the behaviour of each individual service, within the choreography description, the behaviour of each service can be derived from the choreography.
+ </para>
+ <para>
+ The derived behaviour (or “endpoint projection”) of a service can be used within a 'service validator' to monitor the inbound and outbound messages for the service,
+ to ensure they conform to the expected behaviour.
+ If an invalid message is detected, it would be possible to block it, to prevent it from causing subsequent problems in downstream systems.
+ The error can also be reported to a central management capability.
+ </para>
+ <para>
+ The CDL component of Overlord provides the ability to configure service validators to monitor the behaviour of individual services.
+ An enhanced version of the JBossESB trailblazer example has been included, with the appropriate validator configuration, to demonstrate this mechanism.
+ </para>
+ </section>
+
+ <section>
+ <title>Process correlation</title>
+ <para>
+ Validating each service locally can enable errors to be detected quickly,
+ and the effects of the error prevented from contaminating other systems by blocking the erroneous messages.
+ </para>
+ <para>
+ However local service specific validation may not be adequate to identify errors that would affect the end-to-end business process.
+ Therefore the message activity at each service validator can be reported to a central 'process correlation engine' which can reconstitute a global view of the business transaction,
+ and determine if it matches the expected behaviour as defined in the choreography description.
+ </para>
+ <para>
+ The benefit of a correlated global view of the distributed business transaction is that it can be further analysed to ensure other governance polices have been followed – e.g. SLAs.
+ </para>
+ <para>
+ The pi4soa tool suite includes a simple GUI based monitoring tool to display the information obtained from correlating message events associated with individual services.
+ The trailblazer example has been written to cause out of sequence messages under certain circumstances. See the “Samples Guide” for more information on how to run this example.
+ </para>
+ </section>
+ </section>
+ </section>
+
+ <section>
+ <title> First Steps </title>
+ <para>The first step will be to follow the instructions in the next chapter to install Overlord. </para>
+ <para> Once installed, the next step should be to try out the examples in the samples folder. The examples consistent of:</para>
+ <itemizedlist>
+ <listitem>
+ Service Validation related examples
+ <para>
+ The samples folder contains an enhanced version of the trailblazer example from the JBossESB, with the addition of a File Based Bank, and message content including a conversation id to enable the messages to be correlated with a specific session.
+ </para>
+ </listitem>
+ <listitem>
+ Conversation aware ESB actions, with conformance checking against Choreography
+ <para>
+ Two examples have been included, one simple example (purchasing) and the other more advanced (brokerage). Both relate to the business process of purchasing items. The second example introduces the concept of a broker to act on behalf of the customer, interacting with multiple potential suppliers.
+ </para>
+ <para>
+ These examples show how a service implementation (built using “conversation aware ESB actions” in this case), can be continuously checked for conformance against a choreography description.
+ </para>
+ <para>
+ The final step should be to review the other documents in the docs folder to understand more about each capability, and then try using the techniques on your own project.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ </section>
+
+ <section>
+ <title>Installation</title>
+
+ <section>
+ <title> Overview </title>
+ <para>
+ This section describes the installation procedure for the Overlord CDL based governance capabilities. These capabilities are:
+ </para>
+ <itemizedlist>
+ <listitem> Conversation aware ESB Actions with conformance checking against a Choreography Description </listitem>
+ <listitem> ESB Service validation against a Choreography Description </listitem>
+ </itemizedlist>
+ </section>
+
+ <section>
+ <title>Prerequisites</title>
+ <orderedlist>
+ <listitem>JBossAS (version 4.2.3.GA or higher), available from http://www.jboss.org/jbossas</listitem>
+ <listitem>JBossESB (version 4.4.GA or higher), available from http://www.jboss.org/jbossesb</listitem>
+ <listitem>Overlord CDL (version 1.0-SNAPSHOT or higher) </listitem>
+ <listitem>
+ pi4soa (version 2.0.0 or higher), available from http://www.pi4soa.org
+ <note>
+ <para>
+ It is recommended that a pre-packaged version is used, which includes all of the necessary Eclipse related plugins.
+ However the plugins can be installed separately into an existing Eclipse environment by following the instructions on the www.pi4soa.org wiki.
+ </para>
+ </note>
+ </listitem>
+ <listitem>
+ Ant, available from http://ant.apache.org/
+ </listitem>
+ </orderedlist>
+ </section>
+
+ <section>
+ <title>Installation Instructions</title>
+ <orderedlist>
+ <listitem>
+ Install JBossAS
+ <para> Unpack the JBossAS installation into the required location. </para>
+ </listitem>
+ <listitem>
+ Install JBossESB
+ <para> Unpack the JBossESB installation into a location alongside the JBossAS installation.
+ Then follow the instructions in the JBossESB installation (install/readme.txt), to deploy JBossESB into the JBossAS environment.
+ </para>
+ </listitem>
+
+ <listitem>
+ Install the Overlord CDL distribution
+ <para>
+ Unpack the Overlord CDL distribution into a location alongside the JBossAS installation.
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem>
+ Edit the <emphasis role="bold">install/deployment.properties</emphasis> file to update the JBossAS and JBossESB location settings.
+ </listitem>
+ <listitem>
+ From the install folder, run: <command> ant deploy</command>to deploy both the Overlord CDL conversational ESB actions and service validation capabilities.
+ Or <command>ant deploy-overlord-cdl-runtime</command> to deploy just the conversational ESB actions support, or <command>ant deploy-overlord-cdl-validator</command> to deploy just the service validation capability.
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
+ <listitem>
+ Install pi4soa
+ <para>
+ Unpack the pi4soa pre-packaged Eclipse version into a location alongside the JBossAS installation, or install the relevant plugins (as described on the pi4soa wiki) into an existing Eclipse environment.
+ </para>
+ <para>
+ If just the service validation capabilities are being used, then no further configuration of the Eclipse environment is necessary.
+ However if the conversational ESB actions, with conformance checking against a Choreography Description, will be used, then the following additional steps will be required:
+ </para>
+ <para>
+ <itemizedlist>
+ <listitem>
+ Start the Eclipse environment
+ </listitem>
+ <listitem>
+ Select the “Help - > Software Updates...” menu item
+ </listitem>
+ <listitem>
+ From the <emphasis role="bold"> Available Software</emphasis> tab, press the “Add Site...” button
+ </listitem>
+ <listitem>
+ Press the “Local” button, browse to locate the <emphasis role="bold">tools</emphasis> folder in the Overlord CDL distribution,
+ and then press the OK button. This will cause the local Eclipse update site, bundled with the Overlord CDL distribution, to be add to the <emphasis role="bold"> Available Software </emphasis> tab.
+ </listitem>
+ <listitem>
+ Select the root node of the newly added local update site, and then press the “Install” button and follow the instructions to install the plugins.
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+
+ </orderedlist>
+ </section>
+
+</section>
+
+</chapter>
15 years, 7 months