<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8918640537180525165</id><updated>2011-12-06T01:42:39.935-08:00</updated><category term='bpel'/><category term='editor'/><category term='bpelunit'/><category term='eclipse'/><category term='testing'/><category term='riftsaw'/><category term='Ode'/><title type='text'>RiftSaw Open Source BPEL</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-5224989478377207668</id><published>2011-12-06T01:42:00.000-08:00</published><updated>2011-12-06T01:42:39.974-08:00</updated><title type='text'>RiftSaw 3 - A new direction</title><content type='html'>As of version 3, Riftsaw will no longer be directly distributed as part  of this project. The aim of version 3 is to provide a core embeddable  BPEL engine and associated management console.&lt;br /&gt;&lt;br /&gt;Instead, Riftsaw 3  will now be distributed as the BPEL component within the &lt;a href="http://www.jboss.org/switchyard"&gt;Switchyard&lt;/a&gt;  ESB. Switchyard provides an ESB that uses the SCA component assembly  model. We have developed a SCA-BPEL compliant component implementation,  that uses the Riftsaw 3 embeddable BPEL engine, for use within  Switchyard.&lt;br /&gt;&lt;br /&gt;The Riftsaw project will continue to be responsible  for the Embeddable BPEL engine (based on Apache ODE), the GWT based management  console and the SCA-BPEL component.&lt;br /&gt;&lt;br /&gt;The integration is currently  at an early stage, with a couple of quickstarts available to demonstrate  its usage. The current version only works with a H2 embedded database, but the next version will support the same range of databases supported by Riftsaw 2, as well as the same database schema (so no migration required).&lt;br /&gt;&lt;br /&gt;Please feel free to try out the BPEL component in Switchyard  0.3 and provide us with your feedback.&lt;br /&gt;&lt;br /&gt;There are also some developments on the tooling, as part of the Savara project (see &lt;a href="http://jboss-savara.blogspot.com/2011/10/generating-switchyard-bpel-applications.html" target="_blank"&gt;http://jboss-savara.blogspot.com/2011/10/generating-switchyard-bpel-applications.html&lt;/a&gt;), based on RiftSaw 3 running in Switchyard 0.3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-5224989478377207668?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/5224989478377207668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2011/12/riftsaw-3-new-direction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/5224989478377207668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/5224989478377207668'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2011/12/riftsaw-3-new-direction.html' title='RiftSaw 3 - A new direction'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-413252414659383396</id><published>2011-07-12T02:07:00.001-07:00</published><updated>2011-07-12T06:36:02.443-07:00</updated><title type='text'>Riftsaw 2.3.0.Final released</title><content type='html'>The RiftSaw team are pleased to announce the release of version 2.3.0.Final of our open source BPEL engine.&lt;br /&gt;&lt;br /&gt;This release includes:&lt;br /&gt;&lt;br /&gt;1) Enhanced BPEL UDDI integration, following the recommendations outlined in the OASIS Technical Note on "Using BPEL4WS in a UDDI registry" (http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-bpel-20040725.htm)&lt;br /&gt;&lt;br /&gt;2) Enhanced BPEL console features, including querying historic instances&lt;br /&gt;&lt;br /&gt;3) JBossAS 6 support&lt;br /&gt;&lt;br /&gt;4) Dependency upgrades include ESB (4.10), jUDDI 3.1 and Spring 3.0.3&lt;br /&gt;&lt;br /&gt;5) Many bug fixes&lt;br /&gt;&lt;br /&gt;The detailed report for this release can be found at: &lt;br /&gt;https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12316172&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-413252414659383396?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/413252414659383396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2011/07/riftsaw-230final-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/413252414659383396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/413252414659383396'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2011/07/riftsaw-230final-released.html' title='Riftsaw 2.3.0.Final released'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-437446092415220380</id><published>2011-03-28T08:42:00.000-07:00</published><updated>2011-03-28T08:42:51.458-07:00</updated><title type='text'>RiftSaw 2.3.0.CR1 released with further BPEL console improvements and support for JBossAS 6</title><content type='html'>The RiftSaw team are pleased to announce the availability of version 2.3.0.CR1. The release includes:&lt;br /&gt;&lt;br /&gt;- Storage of BPEL process instance activity events in BPAF format&lt;br /&gt;- Query UI for BPEL process instances based on various criteria&lt;br /&gt;- Process instance activity event viewer, provides detailed trace of the execution of a process instance&lt;br /&gt;- Support for JBossAS 6&lt;br /&gt;- Inline variable initialization&lt;br /&gt;- Many bug fixes&lt;br /&gt;&lt;br /&gt;Full details available from: https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12315290&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-437446092415220380?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/437446092415220380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2011/03/riftsaw-230cr1-released-with-further.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/437446092415220380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/437446092415220380'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2011/03/riftsaw-230cr1-released-with-further.html' title='RiftSaw 2.3.0.CR1 released with further BPEL console improvements and support for JBossAS 6'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-6537304092897517031</id><published>2011-02-07T22:21:00.000-08:00</published><updated>2011-02-07T22:21:17.762-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='riftsaw'/><category scheme='http://www.blogger.com/atom/ns#' term='bpel'/><title type='text'>Getting started with RiftSaw/BPEL.</title><content type='html'>Here are some links of blog entries/aritcles to get you started with RiftSaw, or BPEL quickly.&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://riftsaw.blogspot.com/2009/10/impatient-start-with-jboss-riftsaw-5.html"&gt;An Impatient Start with JBoss Riftsaw - 5 steps in 5 minutes&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://riftsaw.blogspot.com/2010/07/first-screencast-on-riftsaw.html"&gt;A screencast of using Bpel Editor to create&amp;amp;run an example on riftsaw&lt;/a&gt;.&lt;br /&gt;3. &lt;a href="http://www-inf.it-sudparis.eu/~nguyen_n/teaching_assistant/bpel"&gt;A set of labs on BPEL process design and execution&lt;/a&gt;. &amp;nbsp;They were referred to be deployed on Apache ODE, but all of examples can be run successfully on RiftSaw.&lt;br /&gt;4. &lt;a href="http://bpel.xml.org/presentation-tech-overview"&gt;Technical overview on the WS-BPEL 2.0&lt;/a&gt;&lt;br /&gt;5. &lt;a href="http://www.jboss.org/riftsaw"&gt;RiftSaw examples&lt;/a&gt;, we've had a bunch of examples in our riftsaw distribution, including the BluePrint examples.&lt;br /&gt;&lt;br /&gt;If you have some other good links/articles &amp;nbsp;on the BPEL/RiftSaw, please leave it on comments, and I will try to add them in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-6537304092897517031?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/6537304092897517031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2011/02/getting-started-with-riftsawbpel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6537304092897517031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6537304092897517031'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2011/02/getting-started-with-riftsawbpel.html' title='Getting started with RiftSaw/BPEL.'/><author><name>Jeff Yu   (余昌)</name><uri>http://www.blogger.com/profile/09118191450334995303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_4KnaH_XIr1w/SloGpQLyfmI/AAAAAAAABe0/eWHnOI-yAHM/S220/jeff_new.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-6650324064271164662</id><published>2011-01-20T05:51:00.000-08:00</published><updated>2011-01-20T05:51:26.607-08:00</updated><title type='text'>RiftSaw 2.2.0.Final released</title><content type='html'>The RiftSaw team are pleased to announce the release of version 2.2.0.Final. The summary of the main changes&amp;nbsp; are: &lt;br /&gt;&lt;br /&gt;- BPEL Console improvements, to enable visualisation of running instances &lt;br /&gt;- Clustering support &lt;br /&gt;- WS-Security support when using ESB BPELInvoke action &lt;br /&gt;- More examples &lt;br /&gt;- Many bug fixes &lt;br /&gt;- Now dependent upon ESB 4.9 or higher (instead of ESB 4.8) &lt;br /&gt;- Updated to ODE 1.3.5 &lt;br /&gt;- Database migration scripts from 2.1.0.Final&lt;br /&gt;&lt;br /&gt;The detailed report for this release can be found at:&lt;br /&gt;&lt;a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12315821"&gt;https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12315821&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-6650324064271164662?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/6650324064271164662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2011/01/riftsaw-220final-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6650324064271164662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6650324064271164662'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2011/01/riftsaw-220final-released.html' title='RiftSaw 2.2.0.Final released'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-6591416675996674668</id><published>2010-12-14T04:36:00.000-08:00</published><updated>2010-12-14T04:36:51.211-08:00</updated><title type='text'>RiftSaw 2.2.0.CR2 released</title><content type='html'>The RiftSaw team are pleased to announce the second release candidate for the 2.2.0 release series.&lt;br /&gt;&lt;br /&gt;This is a bug fix release, including resolutions for issues related to process undeployment and use of dynamic partner links.&lt;br /&gt;&lt;br /&gt;The detailed release notes can be found at:&lt;br /&gt;&lt;a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12315545"&gt;https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12315545&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-6591416675996674668?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/6591416675996674668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/12/riftsaw-220cr2-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6591416675996674668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6591416675996674668'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/12/riftsaw-220cr2-released.html' title='RiftSaw 2.2.0.CR2 released'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-8099358345023814982</id><published>2010-11-10T07:21:00.000-08:00</published><updated>2010-11-10T07:21:10.249-08:00</updated><title type='text'>RiftSaw 2.2.0.CR1 released with clustering support and more management functionality</title><content type='html'>The RiftSaw team are pleased to announce the first release candidate for the 2.2.0 release series. &lt;br /&gt;&lt;br /&gt;In this release, we've made great improvements on the BPEL console. By enabling the logging of events in the deploy.xml file,&amp;nbsp; administrators are able to see the execution path of process instances in the console. &lt;br /&gt;&lt;br /&gt;Secondly we've used the JBoss Cache as our cache provider in the RiftSaw clustering environment.&amp;nbsp; This enhancement now enables administrators to log in to the BPEL console on any node to activate or retire a process. &lt;br /&gt;&lt;br /&gt;Other changes include: &lt;br /&gt;- BPELInvoke supports WS Security and SAML support. &lt;br /&gt;- Upgrade juddi to 3.0.4 release. &lt;br /&gt;&lt;br /&gt;And of course, with a bunch of bugs fixed. &lt;br /&gt;&lt;br /&gt;The detailed report for this release can be found at: &lt;br /&gt;&lt;a href="https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12315480"&gt;https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12315480&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-8099358345023814982?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/8099358345023814982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/11/riftsaw-220cr1-released-with-clustering.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/8099358345023814982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/8099358345023814982'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/11/riftsaw-220cr1-released-with-clustering.html' title='RiftSaw 2.2.0.CR1 released with clustering support and more management functionality'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-1852454520981603813</id><published>2010-10-01T05:14:00.000-07:00</published><updated>2010-10-01T05:14:58.593-07:00</updated><title type='text'>RiftSaw Release 2.2.0.M1</title><content type='html'>The RiftSaw team are pleased to announce the release of RiftSaw 2.2.0 M1 release.&lt;br /&gt;&lt;br /&gt;This is the first milestone release for the 2.2.0 release series.&lt;br /&gt;&lt;br /&gt;This release's main feature is the 'clustering support'. Now users are able to deploy Riftsaw&lt;br /&gt;within a clustered environment using a shared database. The BPEL artifact is deployed using the&lt;br /&gt;farm capability, by placing the BPEL process jar into $Server/all/farm folder, which will result&lt;br /&gt;in it being automatically copied to all nodes in the clustered environment.&lt;br /&gt;&lt;br /&gt;Other changes include:&lt;br /&gt;- Added JPA based implementation for SimpleScheduler module DAO.&lt;br /&gt;- Using deploy.xml as preference over bpel-deploy.xml as the bpel artifact descriptor. &lt;br /&gt;&amp;nbsp; (It supports both at the moment, but bpel-deploy.xml is deprecated, may gets removed in the near future.)&lt;br /&gt;&lt;br /&gt;Last but not least, we've fixed a bunch of bugs.&lt;br /&gt;&lt;br /&gt;The detailed report for this release can be found at:&lt;br /&gt;https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12314155&lt;br /&gt;&lt;br /&gt;The release can be downloaded from: &lt;a href="http://www.jboss.org/riftsaw/downloads.html"&gt;http://www.jboss.org/riftsaw/downloads.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The RiftSaw Team&lt;br /&gt;&lt;a href="http://www.jboss.org/riftsaw"&gt;http://www.jboss.org/riftsaw&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-1852454520981603813?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/1852454520981603813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/10/riftsaw-release-220m1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/1852454520981603813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/1852454520981603813'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/10/riftsaw-release-220m1.html' title='RiftSaw Release 2.2.0.M1'/><author><name>Jeff Yu   (余昌)</name><uri>http://www.blogger.com/profile/09118191450334995303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_4KnaH_XIr1w/SloGpQLyfmI/AAAAAAAABe0/eWHnOI-yAHM/S220/jeff_new.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-6039452995955219515</id><published>2010-08-11T03:01:00.000-07:00</published><updated>2010-08-11T03:01:40.401-07:00</updated><title type='text'>Using WS-Security with RiftSaw and JBossWS-CXF: Part 1 – Securing the BPEL process</title><content type='html'>In these posts we will explain how to add security to a BPEL process deployed in RiftSaw when using jbossws-cxf. This first post will explore how to make a BPEL process secure. To demonstrate how to achieve this, we will use the &lt;i&gt;secure_service&lt;/i&gt; quickstart example, included in the RiftSaw distribution.&lt;br /&gt;&lt;br /&gt;When making a standard JAX-WS service secure, jbossws-cxf simply requires a CXF based configuration file to be bundled with the deployed service [1]. This file is called &lt;i&gt;jbossws-cxf.xml&lt;/i&gt;, and for our example, this would have the contents:&lt;br /&gt;&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&amp;lt;beans xmlns='http://www.springframework.org/schema/beans' &lt;br /&gt;  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' &lt;br /&gt;  xmlns:beans='http://www.springframework.org/schema/beans' &lt;br /&gt;  xmlns:jaxws='http://cxf.apache.org/jaxws' &lt;br /&gt;  xsi:schemaLocation='http://cxf.apache.org/core &lt;br /&gt;    http://cxf.apache.org/schemas/core.xsd &lt;br /&gt;    http://www.springframework.org/schema/beans &lt;br /&gt;    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd &lt;br /&gt;    http://cxf.apache.org/jaxws &lt;br /&gt;    http://cxf.apache.org/schemas/jaxws.xsd'&amp;gt; &lt;br /&gt;   &lt;br /&gt;  &amp;lt;bean id="UsernameTokenSign_Request" class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor"&amp;gt; &lt;br /&gt;    &amp;lt;constructor-arg&amp;gt; &lt;br /&gt;      &amp;lt;map&amp;gt; &lt;br /&gt;        &amp;lt;entry key="action" value="UsernameToken Timestamp Signature"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="passwordType" value="PasswordDigest"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="user" value="serverx509v1"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="passwordCallbackClass" value="org.jboss.test.ws.jaxws.samples.wsse.ServerUsernamePasswordCallback"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="signaturePropFile" value="etc/Server_SignVerf.properties"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="signatureKeyIdentifier" value="DirectReference"/&amp;gt; &lt;br /&gt;      &amp;lt;/map&amp;gt; &lt;br /&gt;    &amp;lt;/constructor-arg&amp;gt; &lt;br /&gt;  &amp;lt;/bean&amp;gt; &lt;br /&gt;   &lt;br /&gt;  &amp;lt;bean id="UsernameTokenSign_Response" class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor"&amp;gt; &lt;br /&gt;    &amp;lt;constructor-arg&amp;gt; &lt;br /&gt;      &amp;lt;map&amp;gt; &lt;br /&gt;        &amp;lt;entry key="action" value="UsernameToken Timestamp Signature"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="passwordType" value="PasswordText"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="user" value="serverx509v1"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="passwordCallbackClass" value="org.jboss.test.ws.jaxws.samples.wsse.ServerUsernamePasswordCallback"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="signaturePropFile" value="etc/Server_Decrypt.properties"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="signatureKeyIdentifier" value="DirectReference"/&amp;gt; &lt;br /&gt;        &amp;lt;entry key="signatureParts" value="{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp;{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body"/&amp;gt; &lt;br /&gt;      &amp;lt;/map&amp;gt; &lt;br /&gt;    &amp;lt;/constructor-arg&amp;gt; &lt;br /&gt;  &amp;lt;/bean&amp;gt; &lt;br /&gt; &lt;br /&gt;  &amp;lt;jaxws:endpoint &lt;br /&gt;    id='SecureHelloWorldWS' &lt;br /&gt;    address='http://@jboss.bind.address@:8080/Quickstart_bpel_secure_serviceWS' &lt;br /&gt;    implementor='@provider@'&amp;gt; &lt;br /&gt;    &amp;lt;jaxws:inInterceptors&amp;gt; &lt;br /&gt;        &amp;lt;ref bean="UsernameTokenSign_Request"/&amp;gt; &lt;br /&gt;        &amp;lt;bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/&amp;gt; &lt;br /&gt;    &amp;lt;/jaxws:inInterceptors&amp;gt; &lt;br /&gt;    &amp;lt;jaxws:outInterceptors&amp;gt; &lt;br /&gt;        &amp;lt;ref bean="UsernameTokenSign_Response"/&amp;gt; &lt;br /&gt;        &amp;lt;bean class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor"/&amp;gt; &lt;br /&gt;    &amp;lt;/jaxws:outInterceptors&amp;gt; &lt;br /&gt;  &amp;lt;/jaxws:endpoint&amp;gt; &lt;br /&gt;&lt;br /&gt;&amp;lt;/beans&amp;gt;&lt;/pre&gt;&lt;br /&gt;To make the BPEL process secure, this file has to be included alongside the BPEL deployment descriptor and process at the top level of the BPEL deployment. This particular configuration uses UsernameToken and digital signature authentication on both the request and response.&lt;br /&gt;&lt;br /&gt;The only difference between the contents of this file, and one that would be deployed with a JAX-WS service, is the &lt;i&gt;implementor&lt;/i&gt; attribute on the &lt;b&gt;jaxws:endpoint&lt;/b&gt; element. In the file above, the value of this attribute is &lt;i&gt;@provider@&lt;/i&gt;. In a standard JAX-WS configuration, this value would be the class name implementing the JAX-WS service. The reason RiftSaw uses this alternative value, is that the class implementing the JAX-WS service is not known until deployment time, as it is dynamically created, and so it's class name will be substituted during deployment.&lt;br /&gt;&lt;br /&gt;As you will note, the configuration references some property files in a relative sub-folder called &lt;i&gt;etc&lt;/i&gt;. These property files also reference some keystore files stored in another relative sub-folder called &lt;i&gt;keystore&lt;/i&gt;. Both of these relative sub-folders simply need to be stored at the top level of the BPEL deployment jar.&lt;br /&gt;&lt;br /&gt;The configuration also defines a &lt;i&gt;passwordCallbackClass&lt;/i&gt;, which must specify a class that implements the &lt;i&gt;javax.security.auth.callback.CallbackHandler&lt;/i&gt; interface. In the &lt;i&gt;secure_service&lt;/i&gt; example, this class is bundled with the BPEL deployment jar. However this property can reference any implementation that may already exist within the JBossAS server. &lt;br /&gt;&lt;br /&gt;So to summarize, securing a BPEL process only requires the addition of a jbossws-cxf configuration file with supporting property and keystore information, and access to an appropriate &lt;i&gt;CallbackHandler&lt;/i&gt; implementation.&lt;br /&gt;&lt;br /&gt;[1] &lt;a href="http://community.jboss.org/wiki/Jbossws-stackcxfUserGuide#WSSecurity"&gt;http://community.jboss.org/wiki/Jbossws-stackcxfUserGuide#WSSecurity&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-6039452995955219515?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/6039452995955219515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/08/using-ws-security-with-riftsaw-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6039452995955219515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6039452995955219515'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/08/using-ws-security-with-riftsaw-and.html' title='Using WS-Security with RiftSaw and JBossWS-CXF: Part 1 – Securing the BPEL process'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-7419442122900629708</id><published>2010-07-27T05:17:00.000-07:00</published><updated>2011-10-24T03:33:36.597-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='riftsaw'/><category scheme='http://www.blogger.com/atom/ns#' term='Ode'/><title type='text'>Links of RiftSaw/Ode architecture</title><content type='html'>I've composed a series blog entries on Ode architecture, because riftsaw leverages the Ode's bpel runtime, so it applies to the riftsaw project also, hope it will help you easily understood how riftsaw works.&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://jeff.familyyu.net/2010/01/26/exploring-ode-part-i-bpel-compiler-and-its-internal-model/"&gt;Bpel Compiler and its internal model&lt;/a&gt;.&lt;br /&gt;2. &lt;a href="http://jeff.familyyu.net/2010/01/27/exploring-ode-part-ii-jacob-framework/"&gt;Jacob framework&lt;/a&gt;.&lt;br /&gt;3. &lt;a href="http://jeff.familyyu.net/2010/01/30/exploring-ode-part-iii-architecture-and-modules-introduction/"&gt;Ode's architecture and module introduction&lt;/a&gt;.&lt;br /&gt;4. &lt;a href="http://jeff.familyyu.net/2010/02/21/exploring-ode-part-iv-bpelserver-api/"&gt;BpelServer API illustration&lt;/a&gt;.&lt;br /&gt;5. &lt;a href="http://jeff.familyyu.net/2010/07/26/exploring-ode-part-v-implemenation-of-scheduler-simple-module/"&gt;Architecture of simple scheduler module&lt;/a&gt;.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-7419442122900629708?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/7419442122900629708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/07/links-of-riftsawode-architecture.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/7419442122900629708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/7419442122900629708'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/07/links-of-riftsawode-architecture.html' title='Links of RiftSaw/Ode architecture'/><author><name>Jeff Yu   (余昌)</name><uri>http://www.blogger.com/profile/09118191450334995303</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://4.bp.blogspot.com/_4KnaH_XIr1w/SloGpQLyfmI/AAAAAAAABe0/eWHnOI-yAHM/S220/jeff_new.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-3076675100777841844</id><published>2010-07-16T07:22:00.000-07:00</published><updated>2010-07-16T07:22:33.102-07:00</updated><title type='text'>RiftSaw Release 2.1.0.Final</title><content type='html'>The RiftSaw team are pleased to announce the release of RiftSaw 2.1.0.Final.&lt;br /&gt;&lt;br /&gt;The summary of the main changes between 2.0.0.Final and 2.1.0.Final are:&lt;br /&gt;&lt;br /&gt;- Support for WS-Security when RiftSaw used in conjunction with JBossWS-CXF&lt;br /&gt;- UDDI registration and lookup&lt;br /&gt;- Migration of persistence layer to a pure JPA approach, enabling any JPA compliant persistence provider to be used. RiftSaw uses Hibernate as its default JPA provider&lt;br /&gt;- Update from ODE1.3.3 to ODE1.3.4&lt;br /&gt;- ODE project has now been mavenized&lt;br /&gt;- More examples&lt;br /&gt;- Many bug fixes&lt;br /&gt;- Now dependent upon ESB 4.8 or higher (instead of ESB 4.7)&lt;br /&gt;&lt;br /&gt;The detailed report for this release can be found at: &lt;br /&gt;&lt;a href="https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12315122"&gt;https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12315122&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The release can be downloaded from: &lt;a href="http://www.jboss.org/riftsaw/downloads.html"&gt;http://www.jboss.org/riftsaw/downloads.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-3076675100777841844?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/3076675100777841844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/07/riftsaw-release-210final.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/3076675100777841844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/3076675100777841844'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/07/riftsaw-release-210final.html' title='RiftSaw Release 2.1.0.Final'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-5126640300412645812</id><published>2010-07-14T04:40:00.000-07:00</published><updated>2010-07-14T05:29:51.015-07:00</updated><title type='text'>First screencast on Riftsaw</title><content type='html'>A screencast showing Riftsaw and JBoss Tools BPEL Modeling in action has just made it into the JBoss Tools Movies. The video shows how to create, assemble, deploy and test a simple BPEL process. In fact it shows how to create an existing sample which is shipped with Riftsaw - the say_hello process.&lt;br /&gt;&lt;br /&gt;This process is a modification of a well-known Hello World sample type. User sends his name to the process and gets a "personalized" greeting back. So the BPEL would concat a name, e.g. Dolly with a string Hello and would reply with "Hello Dolly".&lt;br /&gt;&lt;br /&gt;You can watch the screen cast at the &lt;a href="http://docs.jboss.org/tools/movies/demos/RiftSaw-BPEL_business_process/RiftsawHelloWorld.htm"&gt;JBoss Tools Movies&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.jboss.org/tools/movies/demos/RiftSaw-BPEL_business_process/RiftsawHelloWorld.htm"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://a.imageshack.us/img31/9901/riftsawscreencast.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-5126640300412645812?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/5126640300412645812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/07/first-screencast-on-riftsaw.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/5126640300412645812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/5126640300412645812'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/07/first-screencast-on-riftsaw.html' title='First screencast on Riftsaw'/><author><name>Petr Vasicek</name><uri>http://www.blogger.com/profile/11603771342617056923</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-518000451621499418</id><published>2010-06-25T07:32:00.000-07:00</published><updated>2010-06-25T07:32:00.031-07:00</updated><title type='text'>RiftSaw Release 2.1.0.CR2</title><content type='html'>The RiftSaw team is pleased to announce the release of 2.1.0.CR2.&lt;br /&gt;&lt;br /&gt;This is a bug fix release.&lt;br /&gt;&lt;br /&gt;The main change with this release is the migration to the pure JPA persistence layer from the native Hibernate layer. Moving to the JPA persistence layer has resolved a number of long standing bugs.&lt;br /&gt;&lt;br /&gt;Hibernate is still used as the JPA provider. However to align the database schema with the ODE community project, it has been necessary to make some schema changes. Therefore it will be necessary to drop the current database (or simply&lt;br /&gt;remove the $AS/server/default/data folder). This JPA work is being contributed back to the ODE project, and should be available in ODE 1.4.&lt;br /&gt;&lt;br /&gt;The other main change is the simplification of the ESB examples, both in terms of how they are run, and also in terms of their complexity. Previously the primary ESB/Riftsaw example was too complex, making it difficult to use and follow. Instead this has been replaced by a couple of new simpler examples that demonstrate the specific integration points between JBossESB and RiftSaw.&lt;br /&gt;&lt;br /&gt;The detailed report for this release can be found at:&lt;br /&gt;&lt;a href="https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12314933"&gt;https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12314933&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The release can be downloaded from: &lt;a href="http://www.jboss.org/riftsaw/downloads.html"&gt;http://www.jboss.org/riftsaw/downloads.html&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-518000451621499418?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/518000451621499418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/06/riftsaw-release-210cr2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/518000451621499418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/518000451621499418'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/06/riftsaw-release-210cr2.html' title='RiftSaw Release 2.1.0.CR2'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-387234035951316609</id><published>2010-06-04T07:24:00.000-07:00</published><updated>2010-06-04T07:25:07.713-07:00</updated><title type='text'>RiftSaw Release 2.1.0.CR1</title><content type='html'>The RiftSaw team is pleased to announce the release of 2.1.0.CR1.&lt;br /&gt;&lt;br /&gt;This is primarily a bug fix release, with additional support for configuring the Apache CXF web service endpoints used by a BPEL process.&lt;br /&gt;&lt;br /&gt;WS-Security features, supported by Apache CXF, can now be configured for RiftSaw when the jboss-cxf Web Service stack is installed. The User Guide provides information on how to include the CXF based configuration with the BPEL deployment, and there are some quickstarts available to demonstrate username and digital signature authentication.&lt;br /&gt;&lt;br /&gt;JAX-WS handlers can now be installed to intercept/observe messages sent and returned from the web service representing a BPEL process.&lt;br /&gt;&lt;br /&gt;The version of ODE used by RiftSaw has been updated to ODE 1.3.4.&lt;br /&gt;&lt;br /&gt;NOTE: Database schema changes occurred when moving to the ODE 1.3.4 release. If you have a previous version of RiftSaw installed, then you will need to drop the existing tables (or delete the database), before installing and running this version of RiftSaw.&lt;br /&gt;&lt;br /&gt;The detailed report for this release can be found at:&lt;br /&gt;&lt;a href="https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12314753"&gt;https://jira.jboss.org/secure/ReleaseNote.jspa?projectId=12310843&amp;amp;version=12314753&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The release can be downloaded from: &lt;a href="http://www.jboss.org/riftsaw/downloads.html"&gt;http://www.jboss.org/riftsaw/downloads.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The RiftSaw Team&lt;br /&gt;&lt;a href="http://www.jboss.org/riftsaw"&gt;http://www.jboss.org/riftsaw&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-387234035951316609?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/387234035951316609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/06/riftsaw-release-210cr1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/387234035951316609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/387234035951316609'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/06/riftsaw-release-210cr1.html' title='RiftSaw Release 2.1.0.CR1'/><author><name>Gary Brown</name><uri>http://www.blogger.com/profile/07246035390380969621</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-6739226679863226314</id><published>2010-04-02T05:46:00.000-07:00</published><updated>2010-04-02T05:47:58.400-07:00</updated><title type='text'>Interview on RiftSaw at DZone</title><content type='html'>Check it out: &lt;a href="http://soa.dzone.com/articles/introduction-riftsaw-open"&gt;http://soa.dzone.com/articles/introduction-riftsaw-open&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-6739226679863226314?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/6739226679863226314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/04/interview-on-riftsaw-at-dzone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6739226679863226314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6739226679863226314'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/04/interview-on-riftsaw-at-dzone.html' title='Interview on RiftSaw at DZone'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-5737837537935301898</id><published>2010-03-31T13:16:00.000-07:00</published><updated>2010-03-31T14:24:57.864-07:00</updated><title type='text'>RiftSaw Release 2.0.0.Final</title><content type='html'>Today the RiftSaw team released 2.0.0.Final. This release packs the following feature set:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html"&gt;WS-BPEL 2.0 OASIS&lt;/a&gt; standard and the legacy BPEL4WS 1.1 vendor specification.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jboss.org/jbossws"&gt;JBossWS Native&lt;/a&gt; and &lt;a href="http://cxf.apache.org/"&gt;CXF&lt;/a&gt; Web Service stack support.&lt;/li&gt;&lt;li&gt;&lt;a href="http://ws.apache.org/juddi/"&gt;UDDI&lt;/a&gt; registration of BPEL endpoints, and &lt;a href="http://docs.jboss.com/riftsaw/2.0.0.Final/userguide/html/uddi.html"&gt;Runtime UDDI Endpoint lookup&lt;/a&gt; as preview feature.&lt;/li&gt;&lt;li&gt;Enterprise quality GWT based &lt;a href="http://docs.jboss.com/riftsaw/2.0.0.Final/userguide/html/admin.html"&gt;BPM console&lt;/a&gt; to manage process definitions and instances.&lt;/li&gt;&lt;li&gt;High level API to the engine that allows you to integrate the core with virtually any communication layer.&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.jboss.com/riftsaw/2.0.0.Final/userguide/html/deploy.html"&gt;JBoss deployment architecture&lt;/a&gt;, enabling hot deployment.&lt;/li&gt;&lt;li&gt;Compiled approach to BPEL that provides detailed analysis and validation at the command line or at deployment.&lt;/li&gt;&lt;li&gt;Short-lived and long-running process executions.&lt;/li&gt;&lt;li&gt;Process persistence &amp;amp; recovery.&lt;/li&gt;&lt;li&gt;Process versioning.&lt;/li&gt;&lt;li&gt;Ant-based deployment.&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.jboss.com/riftsaw/2.0.0.Final/userguide/html/esb.html"&gt;Integrated&lt;/a&gt; with the &lt;a href="http://jboss.org/jbossesb/"&gt;JBoss ESB&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Eclipse-based BPEL designer and deployment, supported through &lt;a href="http://www.jboss.org/tools"&gt;JBoss Tools&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Runs in JBoss Cluster.&lt;/li&gt;&lt;li&gt;A good set of examples to help you get started quickly, including&lt;a href="https://blueprints.dev.java.net/bpcatalog/ee5/soa/index.html"&gt; Sun's BPEL Blueprint examples&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Some good resources for this release are the &lt;a href="https://jira.jboss.org/jira/secure/ReleaseNote.jspa?version=12314587&amp;amp;styleName=Html&amp;amp;projectId=12310843&amp;amp;Create=Create"&gt;Release Notes&lt;/a&gt;, the &lt;a href="http://docs.jboss.org/riftsaw/2.0.0.Final/gettingstartedguide/html/"&gt;Getting Started Guide&lt;/a&gt;, the &lt;a href="http://docs.jboss.org/riftsaw/2.0.0.Final/userguide/html/"&gt;User Guide&lt;/a&gt; and &lt;a href="http://www.jboss.org/tools"&gt;JBoss Tools&lt;/a&gt;. To download this release see our download page: &lt;a href="http://www.jboss.org/riftsaw/downloads.html"&gt;http://www.jboss.org/riftsaw/downloads.html&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The RiftSaw team,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jboss.org/riftsaw"&gt;http://www.jboss.org/riftsaw&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-5737837537935301898?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/5737837537935301898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/03/riftsaw-release-200final.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/5737837537935301898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/5737837537935301898'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/03/riftsaw-release-200final.html' title='RiftSaw Release 2.0.0.Final'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-7707404681454380815</id><published>2010-03-02T09:35:00.000-08:00</published><updated>2010-03-02T09:43:31.599-08:00</updated><title type='text'>RiftSaw Release 2.0-CR2</title><content type='html'>We are proud to announce that the second Candidate Release for RiftSaw 2.0 has just been released. This release runs on JDK-1.6, JBAS-5.1 and JBossESB-4.7 or &lt;a href="http://www.jboss.com/products/platforms/soa/"&gt;SOA-Platform-5&lt;/a&gt;. You can download the release from &lt;a href="http://www.jboss.org/riftsaw/downloads.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The RiftSaw Team&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Release Notes - RiftSaw - Version 2.0-CR2&lt;br /&gt;    &lt;br /&gt;&lt;h2&gt;        Bug&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-56'&gt;RIFTSAW-56&lt;/a&gt;] -         Error when deploying webservice_esb_bpel as single .esb&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-123'&gt;RIFTSAW-123&lt;/a&gt;] -         ArrayIndexOutOfBounds exception with jbossws-cxf&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-127'&gt;RIFTSAW-127&lt;/a&gt;] -         Handling SOAP header binding to WSDL message part&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-136'&gt;RIFTSAW-136&lt;/a&gt;] -         Admin console displays instances for all versions associated with a select process definition&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-137'&gt;RIFTSAW-137&lt;/a&gt;] -         Undeploy needs to check if other bundles exist with same name before deactivating WS endpoint&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-141'&gt;RIFTSAW-141&lt;/a&gt;] -         HelloWorld throws UDDI related exception&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-142'&gt;RIFTSAW-142&lt;/a&gt;] -         Quickstart HelloWorldODE does not run if HelloWorld is still deployed&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-153'&gt;RIFTSAW-153&lt;/a&gt;] -         Re-deploying bpel script leads to continuous stream of error messages in server log&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-154'&gt;RIFTSAW-154&lt;/a&gt;] -         Exception on one-way requests&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-157'&gt;RIFTSAW-157&lt;/a&gt;] -         Instance data not displayed correctly&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-159'&gt;RIFTSAW-159&lt;/a&gt;] -         More than two correlated interactions causes exception&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-162'&gt;RIFTSAW-162&lt;/a&gt;] -         jbossws-cxf returns SOAP fault via an exception, whereas jbossws-native appears to return the SOAPMessage with fault inside&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-163'&gt;RIFTSAW-163&lt;/a&gt;] -         Problem invoking a third part partner link (WS at JBossWS) with header value&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-165'&gt;RIFTSAW-165&lt;/a&gt;] -         IncompatibleClassChangeError in SOA-P 5.0&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;        &lt;br /&gt;&lt;h2&gt;        Feature Request&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-143'&gt;RIFTSAW-143&lt;/a&gt;] -         Add information to user guide on Full Publish and versioning from JBoss Tools&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-144'&gt;RIFTSAW-144&lt;/a&gt;] -         BPELInvoke action should use MessagePayloadProxy&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-160'&gt;RIFTSAW-160&lt;/a&gt;] -         Auto-registration of BPEL process endpoint should work with other supported registries&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;                    &lt;br /&gt;&lt;h2&gt;        Task&lt;/h2&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-140'&gt;RIFTSAW-140&lt;/a&gt;] -         Change UDDI integration over to use the jUDDI-3.0.1 libs when those are released.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-149'&gt;RIFTSAW-149&lt;/a&gt;] -         Oracle support.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-150'&gt;RIFTSAW-150&lt;/a&gt;] -         sqlserver support.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-151'&gt;RIFTSAW-151&lt;/a&gt;] -         Document UDDI configuration&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-156'&gt;RIFTSAW-156&lt;/a&gt;] -         Add configuration for mex.timeout&lt;/li&gt;&lt;br /&gt;&lt;li&gt;[&lt;a href='https://jira.jboss.org/jira/browse/RIFTSAW-166'&gt;RIFTSAW-166&lt;/a&gt;] -         Only turn on UDDI integration when the esb-registry is installed.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-7707404681454380815?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/7707404681454380815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/03/riftsaw-release-20-cr2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/7707404681454380815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/7707404681454380815'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/03/riftsaw-release-20-cr2.html' title='RiftSaw Release 2.0-CR2'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-2942121463842384527</id><published>2010-02-25T04:23:00.000-08:00</published><updated>2010-03-03T07:25:15.544-08:00</updated><title type='text'>Using BPELUnit for testing processes in Riftsaw - Part 2</title><content type='html'>In the &lt;a href="http://riftsaw.blogspot.com/2010/01/using-bpelunit-for-testing-processes-in.html"&gt;first part&lt;/a&gt; we showed how to run a BPEL test for a process deployed in Riftsaw from the Eclipse environment. Today we will use the possibility to run this tool via Ant tasks to include it in the Riftsaw integration tests. Currently, the request-response tests are performed via Java code using the standard JUnit framework. In this post I will show you how to transform some of them into BPELUnit automated tests to make them more flexible and transparent.&lt;br /&gt;&lt;br /&gt;On top of what we have from Part 1 we need:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/riftsaw/files/riftsaw/2.0-CR2/riftsaw-2.0-CR2-src.zip/download"&gt;Riftsaw 2.0-CR2 source code&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.se.uni-hannover.de/forschung/soa/bpelunit/bpelunit-download-install.php"&gt;BPELUnit 1.1.0 standalone version&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ant.apache.org/"&gt;Apache Ant&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maven.apache.org/"&gt;Apache Maven&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;The prerequisites are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Clean install of JBoss Application Server 5.1.0 GA&lt;/li&gt;&lt;li&gt;JBoss ESB 4.7 GA installed into the clean installation of App Server&lt;/li&gt;&lt;li&gt;Installed Ant at version 1.7.1 or higher&lt;/li&gt;&lt;li&gt;Installed Maven at version 2.2.1 or higher&lt;/li&gt;&lt;li&gt;Installed BPELUnit 1.1.0 Standalone version&lt;/li&gt;&lt;/ul&gt;In case you need help with the first two prerequisites please refer to the first part of this article to find instructions on how to properly install JBoss + ESB. As for the other three the instructions are provided on the products' websites.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Preparation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you navigate to the directory with Riftsaw source code you will see a sub-directory called “integration-tests” which contains sources of the tests, build scripts for running them and the generated test reports. Take a look in the RIFTSAW_SRC/integration-tests/src/test/resources/samples/ directory where you can find sub-directories for each test, containing BPEL and WSDL files, XML files with messages and the ant build script (build.xml) that compiles the test and makes everything ready for its execution.&lt;br /&gt;&lt;br /&gt;To prepare the integration test to use BPELUnit we need to set up a few things:&lt;ol&gt;&lt;li&gt;Create a “bpelunit” folder in the test sub-directory.&lt;/li&gt;&lt;li&gt;Create a BPELUnit test suite file in this folder.&lt;/li&gt;&lt;li&gt;Create a build file that deploys, runs and undeploys the new tests and generates the reports.&lt;/li&gt;&lt;li&gt;Modify the “deploy” target of the existing build script to compile the BPELUnit tests and deploy them into appropriate directory.&lt;/li&gt;&lt;li&gt;Add an “antcall” command to integration-tests' pom.xml maven script to call bpelunit build file during the integration-tests phase.&lt;/li&gt;&lt;/ol&gt;Result of this modifications will be that during the execution of Riftsaw integration tests the BPELUnit test suite along with required files will be copied into the “target” directory and later the new test will be executed and the generated report will be saved in a directory along with other test reports.&lt;br /&gt;&lt;br /&gt;In the first part we were using the quickstart Hello World sample, so we will stick to this one and show how to test it via BPELUnit automatically during the integration tests.&lt;br /&gt;&lt;br /&gt;First we create a BPELUnit test suite file "Quickstart_bpel_hello_world.bpts" in RIFTSAW_SRC/integration-tests/src/test/resources/samples/Quickstart_bpel_hello_world/bpelunit/. We will use the very same file &lt;a href="http://riftsaw.blogspot.com/2010/01/using-bpelunit-for-testing-processes-in.html"&gt;we created&lt;/a&gt; using Eclipse, so you can just copy it. In case you didn't follow the first part of this article you can find the test suite source code there and just paste it into the new file.&lt;br /&gt;&lt;br /&gt;Next we need to create the build script for this new test. Open a new file “bpelunit_build.xml” and paste the code below.&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&amp;lt;project name="Quickstart_bpel_hello_world" default="test" basedir="."&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;&lt;br /&gt;     ${ant.project.name}&lt;br /&gt;     ${line.separator}&lt;br /&gt; &amp;lt;/description&amp;gt;&lt;br /&gt; &amp;lt;property name="version" value="1" /&amp;gt; &lt;br /&gt; &amp;lt;property name="server.dir" value="${org.jboss.as.home}/server/${org.jboss.as.config}"/&amp;gt;&lt;br /&gt; &amp;lt;property name="conf.dir" value="${server.dir}/conf"/&amp;gt;&lt;br /&gt; &amp;lt;property name="deploy.dir" value="${server.dir}/deploy"/&amp;gt;&lt;br /&gt; &amp;lt;property name="server.lib.dir" value="${server.dir}/lib"/&amp;gt;&lt;br /&gt; &amp;lt;property name="test.dir" value="${basedir}/target/tests/${ant.project.name}" /&amp;gt;&lt;br /&gt; &amp;lt;property name="reports.dir" value="${basedir}/target/bpelunit-reports" /&amp;gt;&lt;br /&gt; &amp;lt;property name="sample.jar.name" value="${ant.project.name}-${version}.jar" /&amp;gt; &lt;br /&gt; &amp;lt;path id="lib.path"&amp;gt;&lt;br /&gt;     &amp;lt;fileset dir="${bpelunit.home}/lib"&amp;gt;&lt;br /&gt;         &amp;lt;include name="*.jar" /&amp;gt;&lt;br /&gt;     &amp;lt;/fileset&amp;gt;&lt;br /&gt; &amp;lt;/path&amp;gt;&lt;br /&gt; &amp;lt;condition property="reportsDir.unavailable"&amp;gt;&lt;br /&gt;     &amp;lt;not&amp;gt;&lt;br /&gt;         &amp;lt;available file="${reports.dir}" type="dir" /&amp;gt;&lt;br /&gt;     &amp;lt;/not&amp;gt;&lt;br /&gt; &amp;lt;/condition&amp;gt;&lt;br /&gt; &amp;lt;target name="deploy"&amp;gt;&lt;br /&gt;     &amp;lt;echo&amp;gt;Deploy ${ant.project.name}&amp;lt;/echo&amp;gt;&lt;br /&gt;     &amp;lt;copy file="${test.dir}/${sample.jar.name}" todir="${deploy.dir}" /&amp;gt;&lt;br /&gt;     &amp;lt;echo&amp;gt;Waiting 5 seconds to ensure proper deployment&amp;lt;/echo&amp;gt;&lt;br /&gt;     &amp;lt;sleep seconds="5" /&amp;gt;&lt;br /&gt; &amp;lt;/target&amp;gt;&lt;br /&gt; &amp;lt;target name="undeploy"&amp;gt;&lt;br /&gt;     &amp;lt;echo&amp;gt;Undeploy ${ant.project.name}&amp;lt;/echo&amp;gt;&lt;br /&gt;     &amp;lt;delete file="${deploy.dir}/${sample.jar.name}" /&amp;gt;&lt;br /&gt;     &amp;lt;echo&amp;gt;Waiting 5 seconds to ensure proper undeployment&amp;lt;/echo&amp;gt;&lt;br /&gt;     &amp;lt;sleep seconds="5" /&amp;gt;&lt;br /&gt; &amp;lt;/target&amp;gt;&lt;br /&gt; &amp;lt;target name="create.reportsDir" if="reportsDir.unavailable" &amp;gt;&lt;br /&gt;     &amp;lt;mkdir dir="${reports.dir}"/&amp;gt;&lt;br /&gt; &amp;lt;/target&amp;gt;&lt;br /&gt; &amp;lt;target name="test"&amp;gt;&lt;br /&gt;     &amp;lt;antcall target="deploy" /&amp;gt;&lt;br /&gt;     &amp;lt;echo&amp;gt;Running BPEL Unit test for ${ant.project.name}&amp;lt;/echo&amp;gt;&lt;br /&gt;     &amp;lt;tstamp&amp;gt;&lt;br /&gt;         &amp;lt;format property="timestamp" pattern="yyyy-MM-dd_HH:mm:ss" /&amp;gt;&lt;br /&gt;     &amp;lt;/tstamp&amp;gt;  &lt;br /&gt;     &amp;lt;typedef name="bpelunit" classname="org.bpelunit.framework.ui.ant.BPELUnit"&amp;gt;&lt;br /&gt;         &amp;lt;classpath refid="lib.path" /&amp;gt;&lt;br /&gt;     &amp;lt;/typedef&amp;gt;&lt;br /&gt;     &amp;lt;antcall target="create.reportsDir" /&amp;gt;&lt;br /&gt;     &amp;lt;bpelunit testsuite="${test.dir}/${ant.project.name}.bpts" bpelunitdir="${bpelunit.home}"&amp;gt;&lt;br /&gt;         &amp;lt;output style="PLAIN" file="${reports.dir}/${ant.project.name}.${timestamp}.txt" /&amp;gt;&lt;br /&gt;         &amp;lt;output style="XML" file="${reports.dir}/${ant.project.name}.${timestamp}.xml" /&amp;gt;&lt;br /&gt;     &amp;lt;/bpelunit&amp;gt;&lt;br /&gt;     &amp;lt;antcall target="undeploy" /&amp;gt;&lt;br /&gt; &amp;lt;/target&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;/pre&gt;&lt;br /&gt;The important target in this script is “test” which first deploys the process into Riftsaw running in JBoss AS, then runs the test and generates reports (in plain-text and XML format) and then undeploys the process.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ikQNCvUtFFs/S4agpDifbII/AAAAAAAADAk/cUBOPsGZwNc/s1600-h/bpelunit3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 396px; height: 181px;" src="http://4.bp.blogspot.com/_ikQNCvUtFFs/S4agpDifbII/AAAAAAAADAk/cUBOPsGZwNc/s400/bpelunit3.png" alt="" id="BLOGGER_PHOTO_ID_5442213826908875906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now we have two files in the Quickstart_bpel_hello_world/bpelunit directory, the test suite and the build script we've just created. We want these files to be copied into the deploy directory for the test to be properly executed. On top of that we need to copy the WSDL file as well. To do this, open the "build.xml" file located in the test's root directory and at the end of the first "target" element add:&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&amp;lt;echo&amp;gt;Deploy BPELUnit files for ${ant.project.name}&amp;lt;/echo&amp;gt;&lt;br /&gt;&amp;lt;copy todir="${deploy.dir}/${ant.project.name}"&amp;gt;&lt;br /&gt; &amp;lt;fileset dir="${test.dir}/bpelunit"/&amp;gt;&lt;br /&gt;&amp;lt;/copy&amp;gt;&lt;br /&gt;&amp;lt;copy todir="${deploy.dir}/${ant.project.name}"&amp;gt;&lt;br /&gt; &amp;lt;fileset dir="${test.dir}/bpel"&amp;gt;&lt;br /&gt;     &amp;lt;include name="*.wsdl" /&amp;gt;&lt;br /&gt; &amp;lt;/fileset&amp;gt;&lt;br /&gt;&amp;lt;/copy&amp;gt;&lt;/pre&gt;&lt;br /&gt;This ensures that the WSDL file, the test suite and the BPELUnit build script will be copied into the deploy directory, which is RIFTSAW_SRC/integration-tests/target/tests/Quickstart_bpel_hello_world/.&lt;br /&gt;&lt;br /&gt;One last thing remaining is modifying the "pom.xml" in integration-tests root directory. Open this file and in the project/build/plugins/plugin/executions element create a new "execution" node that will look like this:&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&amp;lt;execution&amp;gt;&lt;br /&gt; &amp;lt;id&amp;gt;test-riftsaw-bpelunit&amp;lt;/id&amp;gt;&lt;br /&gt; &amp;lt;phase&amp;gt;integration-test&amp;lt;/phase&amp;gt;&lt;br /&gt; &amp;lt;configuration&amp;gt;&lt;br /&gt;     &amp;lt;tasks&amp;gt;&lt;br /&gt;         &amp;lt;ant antfile="${basedir}/target/tests/Quickstart_bpel_hello_world/bpelunit_build.xml" /&amp;gt;&lt;br /&gt;     &amp;lt;/tasks&amp;gt;&lt;br /&gt; &amp;lt;/configuration&amp;gt;&lt;br /&gt; &amp;lt;goals&amp;gt;&lt;br /&gt;     &amp;lt;goal&amp;gt;run&amp;lt;/goal&amp;gt;&lt;br /&gt; &amp;lt;/goals&amp;gt;&lt;br /&gt;&amp;lt;/execution&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Running the automated tests&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;First we need to build Riftsaw itself, so from the RIFTSAW_SRC directory we run:&lt;br /&gt;&lt;pre class="code" name="code"&gt;mvn clean install&lt;/pre&gt;&lt;br /&gt;Now in the final step we are going to execute the automated test by running this command from the "integration-tests" directory:&lt;br /&gt;&lt;pre class="code" name="code"&gt;mvn -Dorg.jboss.as.home={path_to_jboss_as}&lt;br /&gt;-Dbpelunit.home={path_to_bpelunit}&lt;br /&gt;-Dorg.jboss.esb.home={path_to_jboss_esb}&lt;br /&gt;-Dorg.jboss.as.config=default&lt;br /&gt;-Ddatabase=hsql -Dws.stack=default -Dreplace.qa.jdbc=false clean install&lt;/pre&gt;&lt;br /&gt;In the log file you can find the report of the test that was made. It should look similar to this:&lt;br /&gt;&lt;pre class="code" name="code"&gt;deploy:&lt;br /&gt;[echo] Deploy Quickstart_bpel_hello_world&lt;br /&gt;[copy] Copying 1 file to /opt/local/jboss/jboss-5.1.0.GA/server/default/deploy&lt;br /&gt;[echo] Waiting 5 seconds to ensure proper deployment&lt;br /&gt;[echo] Running BPEL Unit test for Quickstart_bpel_hello_world&lt;br /&gt;&lt;br /&gt;create.reportsDir:&lt;br /&gt;[mkdir] Created dir: /opt/local/jboss/riftsaw-2.0-CR1-src/integration-tests/target/bpelunit-reports&lt;br /&gt;MEASURECOVERAGE=FALSE&lt;br /&gt;ROOTPATH=/ws/&lt;br /&gt;Test Run Completed. 1 run (0 failures, 0 errors)&lt;br /&gt;&lt;br /&gt;undeploy:&lt;br /&gt;[echo] Undeploy Quickstart_bpel_hello_world&lt;br /&gt;[delete] Deleting: /opt/local/jboss/jboss-5.1.0.GA/server/default/deploy/Quickstart_bpel_hello_world-1.jar&lt;br /&gt;[echo] Waiting 5 seconds to ensure proper undeployment&lt;/pre&gt;&lt;br /&gt;During the test the reports (in TXT and XML format) will be generated in the target/bpelunit-reports directory. The XML report contains extensive information that describe what message were sent to the BPEL engine, what was the expected and received outcome and how it affected the result of the test.&lt;br /&gt;&lt;br /&gt;In the log you can see the build waits 5 seconds before and after the test run. This is to ensure the proper deployment. Of course in case there are more tests the deployment wouldn't be made for each single test separately, but for efficiency reasons a deployment of all processes would happen at one moment. In the presented example we use the approach just to make it as simple as possible.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We've just managed to successfully test the Quickstart Hello World process using a simple request-response test via BPELUnit. Transforming other samples to use this tool will be now even more easy, because now after we create the test suite (for example using the Eclipse wizard), we only need to copy the build script file with one small modification – changing the project name. The second piece of code also stays the same and as for the "pom.xml", we just need to add one line for each test.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-2942121463842384527?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/2942121463842384527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/02/using-bpelunit-for-testing-processes-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/2942121463842384527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/2942121463842384527'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/02/using-bpelunit-for-testing-processes-in.html' title='Using BPELUnit for testing processes in Riftsaw - Part 2'/><author><name>Petr Vasicek</name><uri>http://www.blogger.com/profile/11603771342617056923</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ikQNCvUtFFs/S4agpDifbII/AAAAAAAADAk/cUBOPsGZwNc/s72-c/bpelunit3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-8449826350991037276</id><published>2010-01-22T05:35:00.000-08:00</published><updated>2010-01-22T09:21:24.028-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='bpelunit'/><category scheme='http://www.blogger.com/atom/ns#' term='riftsaw'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Using BPELUnit for testing processes in Riftsaw - Part 1</title><content type='html'>BPELUnit (&lt;a href="http://www.bpelunit.net/"&gt;http://www.bpelunit.net&lt;/a&gt;) is a testing framework intended for testing BPEL processes on a request-response basis. It comes with a plug-in for Eclipse for creating and running BPEL test suites as well as a possibility to run automated tests via Ant tasks. This makes it possible for including BPELunit  tests in the Riftsaw integration tests. In this post I'll try to give you some tips and instructions on how to test a process deployed on Riftsaw using the BPELUnit Eclipse plug-in.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Preparation:&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;If you start from the scratch you will need:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip"&gt;JBoss Application Server 5.1.0 GA&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.jboss.org/downloading/?projectId=jbossesb&amp;amp;url=/jbossesb/downloads/4.7/binary/jbossesb-4.7.zip"&gt;JBoss ESB 4.7 GA&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.eclipse.org/downloads/"&gt;Eclipse 3.5 SR1 (Galileo)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/projects/riftsaw/files/riftsaw/2.0-CR1/riftsaw-2.0-CR1.zip/download"&gt;Riftsaw 2.0-CR1&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Unzip JBossAS, JBossESB and Riftsaw to appropriate directories.&lt;/li&gt;&lt;li&gt;Set the environment variable JBOSS_HOME to point to JBossAS directory.&lt;/li&gt;&lt;li&gt;Edit ESB_HOME/install/deployment.properties to modify org.jboss.esb.server.home to point to JBOSS_HOME directory&lt;/li&gt;&lt;li&gt;Edit RIFTSAW/install/deployment.properties to modify AS and ESB home directories.&lt;/li&gt;&lt;li&gt;From ESB_HOME/install run “ant deploy” - this deploys ESB to the application server.&lt;/li&gt;&lt;li&gt;From RIFTSAW/install run “ant deploy” - this deploys Riftsaw to the application server&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.se.uni-hannover.de/forschung/soa/bpelunit/bpelunit-download-install.php"&gt;BPELUnit 1.1.0 Eclipse plug-in&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Run Eclipse and choose a workspace directory.&lt;/li&gt;&lt;li&gt;Go to the URL above and follow instructions on how to install BPELUnit into Eclipse.&lt;/li&gt;&lt;/ol&gt;Last thing remaining is to verify that Riftsaw has been deployed, start the server and deploy the sample project that we are going to test:&lt;ol&gt;&lt;li&gt;In Eclipse, select to add a server and choose your installation of JBoss AS&lt;/li&gt;&lt;li&gt;Start the server&lt;/li&gt;&lt;li&gt;After the start-up navigate to http://localhost:8080/bpel-console.&lt;/li&gt;&lt;li&gt;If a login dialog comes up, Riftsaw was installed successfully.&lt;/li&gt;&lt;li&gt;Log in with “admin”/”password” credentials, you will see that no processes are deployed.&lt;/li&gt;&lt;li&gt;From RIFTSAW/samples/quickstart/hello_world directory run “ant eploy”.&lt;/li&gt;&lt;li&gt;Refresh the Process Definitions window. A Hello World process should appear.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight:bold;"&gt;Creating a test:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;Now that everything is ready it's time to finally do some testing. On the BPELUnit website there is a Hello World tutorial which I strongly recommend to go through as the following example will be very similar. The only difference will be that we're going to use a Hello World sample that we have just deployed on the server. With BPELUnit we can create and run a test that will verify that the sample is working correctly. Here are the steps for setting up this project in Eclipse:&lt;ol&gt;&lt;li&gt;Create a new project in you workspace using File -&gt; New -&gt; Other -&gt; General -&gt; Project&lt;/li&gt;&lt;li&gt;Name it “bpelunit_test”&lt;/li&gt;&lt;li&gt;Copy RIFTSAW/samples/quickstart/hello_world/bpelContent/HelloWorld.wsdl to the “bpelunit_test” directory in your Eclipse workspace&lt;/li&gt;&lt;li&gt;Refresh the project to see the WSDL file has been added&lt;/li&gt;&lt;li&gt;Add a test suite into the project via File -&gt; New -&gt; Other -&gt; BPELUnit -&gt; BPELUnit Test Suite&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ikQNCvUtFFs/S1mt2Jdu5rI/AAAAAAAAC80/vDb2OhsjiHM/s1600-h/bpelunit1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="http://2.bp.blogspot.com/_ikQNCvUtFFs/S1mt2Jdu5rI/AAAAAAAAC80/vDb2OhsjiHM/s400/bpelunit1.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5429561971537012402" /&gt;&lt;/a&gt;&lt;/div&gt;The test suite we've just created is an xml file that defines which process is going to be tested and how. This Hello World process functionality is that it takes a string input, connects it with “ World” and sends it back. So if the input is “HELLLO” the output should be “HELLO World”. And this is what we're going to test. Now fill the details as following:&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Base URL:&lt;/span&gt; &lt;span style="text-decoration:underline;"&gt;http://localhost:7777/ws&lt;/span&gt; (prefix for mock service url, unimportant for now)&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;PUT Name:&lt;/span&gt; HelloWorld&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;PUT Type:&lt;/span&gt; Fixed deployer&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;WSDL:&lt;/span&gt; Click “Browse” and select the HelloWorld.wsdl file&lt;/li&gt;&lt;/ul&gt;Now save (Ctrl+S). Change the view under the form to “Source” and verify that it looks like the code below. If not, you can modify it so it does.&lt;pre class="XML" name="code"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;tes:testSuite xmlns:tes="http://www.bpelunit.org/schema/testSuite"&amp;gt;&lt;br /&gt;&amp;lt;tes:name&amp;gt;suite.bpts&amp;lt;/tes:name&amp;gt;&lt;br /&gt;&amp;lt;tes:baseURL&amp;gt;http://localhost:7777/ws&amp;lt;/tes:baseURL&amp;gt;&lt;br /&gt;&amp;lt;tes:deployment&amp;gt;&lt;br /&gt;   &amp;lt;tes:put name="HelloWorld" type="fixed"&amp;gt;&lt;br /&gt;       &amp;lt;tes:wsdl&amp;gt;HelloWorld.wsdl&amp;lt;/tes:wsdl&amp;gt;&lt;br /&gt;   &amp;lt;/tes:put&amp;gt;&lt;br /&gt;&amp;lt;/tes:deployment&amp;gt;&lt;br /&gt;&amp;lt;tes:testCases/&amp;gt;&lt;br /&gt;&amp;lt;/tes:testSuite&amp;gt;&lt;br /&gt;&lt;/pre&gt;This is in fact how the test suite file really looks like. Now let's switch back to the “Test Suite” view and finally add a test case that will let us test the functionality of the process. In the section “Test Cases and Tracks” click “Add”, fill “SayHello” as a name and confirm. The SayHello test case is created which you can see in the list. Under this test case is a “client” node. This represents a client partner that will invoke the process. Now we will specify what message is going to be sent and what we are expecting to get. To do this follow these steps:&lt;ol&gt;&lt;li&gt;Select the “client” node under the SayHello test case.&lt;/li&gt;&lt;li&gt;In the “Activities” panel on the right click the “Add” button.&lt;/li&gt;&lt;li&gt;Select “Send/Receive Synchronous” - this is the most basic a request-response activity.&lt;/li&gt;&lt;li&gt;Notice that service, port and operation are already filled as there's only one operation - “hello”.&lt;/li&gt;&lt;li&gt;Check the box “Enter XML literal” and switch to “XML to be sent” tab.&lt;/li&gt;&lt;/ol&gt;We've done this because we want to specify what data will be sent to the process in the XML format. Now to the windows that appeared paste this code:&lt;pre class="XML" name="code"&gt;&amp;lt;TestPart&amp;gt;HELLO&amp;lt;/TestPart&amp;gt;&lt;/pre&gt;This means the input string will be “HELLO”. Now click “Next” so we can specify what outcome we are expecting. Let's add a condition to check by clicking on the appropriate button. The “Expression” here is an expression in XPath format that will select the proper response XML node, in our case the outgoing message. Fill in these:&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Expression:&lt;/span&gt; //TestPart&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Value:&lt;/span&gt; 'HELLO World' (including the apostrophes)&lt;/li&gt;&lt;/ul&gt;Now click “Finish” and save the test suite (Ctrl + S). Switch back to the “Source” view and inspect the code that has been created. It should look like this:&lt;pre class="XML" name="code"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;tes:testSuite xmlns:tes="http://www.bpelunit.org/schema/testSuite"&amp;gt;&lt;br /&gt;&amp;lt;tes:name&amp;gt;suite.bpts&amp;lt;/tes:name&amp;gt;&lt;br /&gt;&amp;lt;tes:baseURL&amp;gt;http://localhost:7777/ws&amp;lt;/tes:baseURL&amp;gt;&lt;br /&gt;&amp;lt;tes:deployment&amp;gt;&lt;br /&gt;  &amp;lt;tes:put name="HelloWorld" type="fixed"&amp;gt;&lt;br /&gt;      &amp;lt;tes:wsdl&amp;gt;HelloWorld.wsdl&amp;lt;/tes:wsdl&amp;gt;&lt;br /&gt;  &amp;lt;/tes:put&amp;gt;&lt;br /&gt;&amp;lt;/tes:deployment&amp;gt;&lt;br /&gt;&amp;lt;tes:testCases&amp;gt;&lt;br /&gt;  &amp;lt;tes:testCase name="SayHello" basedOn="" abstract="false" vary="false"&amp;gt;&lt;br /&gt;      &amp;lt;tes:clientTrack&amp;gt;&lt;br /&gt;          &amp;lt;tes:sendReceive service="wsdl:HelloService" port="HelloPort" operation="hello" xmlns:wsdl="http://www.jboss.org/bpel/examples/wsdl"&amp;gt;&lt;br /&gt;              &amp;lt;tes:send service="wsdl:HelloService" port="HelloPort" operation="hello" fault="false" delaySequence=""&amp;gt;&lt;br /&gt;                  &amp;lt;tes:data&amp;gt;&lt;br /&gt;                      &amp;lt;TestPart&amp;gt;HELLO&amp;lt;/TestPart&amp;gt;&lt;br /&gt;                  &amp;lt;/tes:data&amp;gt;&lt;br /&gt;              &amp;lt;/tes:send&amp;gt;&lt;br /&gt;              &amp;lt;tes:receive service="wsdl:HelloService" port="HelloPort" operation="hello" fault="false"&amp;gt;&lt;br /&gt;                  &amp;lt;tes:condition&amp;gt;&lt;br /&gt;                      &amp;lt;tes:expression&amp;gt;//TestPart&amp;lt;/tes:expression&amp;gt;&lt;br /&gt;                      &amp;lt;tes:value&amp;gt;'HELLO World'&amp;lt;/tes:value&amp;gt;&lt;br /&gt;                  &amp;lt;/tes:condition&amp;gt;&lt;br /&gt;              &amp;lt;/tes:receive&amp;gt;&lt;br /&gt;          &amp;lt;/tes:sendReceive&amp;gt;&lt;br /&gt;      &amp;lt;/tes:clientTrack&amp;gt;&lt;br /&gt;  &amp;lt;/tes:testCase&amp;gt;&lt;br /&gt;&amp;lt;/tes:testCases&amp;gt;&lt;br /&gt;&amp;lt;/tes:testSuite&amp;gt;&lt;br /&gt;&lt;/pre&gt;That's it, we've just created a test case that will call the “hello” operation with the “HELLO” string as input and then it will check that the return value is “HELLO World”. The process itself is already deployed so the only thing that's left is to launch this test on it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Running the test suite:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;In the Project Explorer window right click on the “suite.bpts” file and choose “Run As” -&gt; “BPELUnit TestSuite”. Now a new left tab should appear that will show the test results. If everything works correctly, the bars are going to be filled with green color. You can expand the nodes to see the SOAP messages that have been sent and received.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ikQNCvUtFFs/S1mt2dX9ihI/AAAAAAAAC88/oh6ekUBBihE/s1600-h/bpelunit2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://2.bp.blogspot.com/_ikQNCvUtFFs/S1mt2dX9ihI/AAAAAAAAC88/oh6ekUBBihE/s400/bpelunit2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5429561976881515026" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This tutorial presented how can be processes that are deployed on Riftsaw simply tested thanks to the BPELUnit framework. In the next blog post we will use the other way of using this tool – Ant build script. We are going to include BPELUnit testing into the present integration tests which will give us the opportunity to automate testing via this framework.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So have fun testing BPEL and please share your thoughts in comments :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-- Petr&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-8449826350991037276?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/8449826350991037276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2010/01/using-bpelunit-for-testing-processes-in.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/8449826350991037276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/8449826350991037276'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2010/01/using-bpelunit-for-testing-processes-in.html' title='Using BPELUnit for testing processes in Riftsaw - Part 1'/><author><name>Petr Vasicek</name><uri>http://www.blogger.com/profile/11603771342617056923</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ikQNCvUtFFs/S1mt2Jdu5rI/AAAAAAAAC80/vDb2OhsjiHM/s72-c/bpelunit1.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-8739250417917563771</id><published>2009-12-17T10:26:00.000-08:00</published><updated>2009-12-17T10:36:33.070-08:00</updated><title type='text'>We hang out at the ODE IRC channel</title><content type='html'>Since &lt;a href="http://www.jboss.org/riftsaw"&gt;RiftSaw&lt;/a&gt; is part of the larger &lt;a href="http://ode.apache.org/"&gt;ODE&lt;/a&gt; community we tend to hang out at the ODE IRC channel. Come find us at irc.codehaus.org #apache-ode. The logs can be found at &lt;a href="http://echelog.matzon.dk/logs/browse/apache-ode"&gt;http://echelog.matzon.dk/logs/browse/apache-ode&lt;/a&gt;, and don't forget to check out the &lt;a href="http://echelog.matzon.dk/stats/apache-ode.html"&gt;stats&lt;/a&gt;. They are pretty funny.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-8739250417917563771?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/8739250417917563771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/12/we-hang-out-at-ode-irc-channel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/8739250417917563771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/8739250417917563771'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/12/we-hang-out-at-ode-irc-channel.html' title='We hang out at the ODE IRC channel'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-3848825076862080677</id><published>2009-12-16T20:34:00.000-08:00</published><updated>2009-12-16T20:48:04.504-08:00</updated><title type='text'>RiftSaw Release 2.0-RC1</title><content type='html'>Release Candidate 1 has landed. All targeted features have been implemented and we were able to port lots of examples from the jBPM BPEL project. Note that this release is tested to run on the combination of JDK-1.6, JBAS-5.1 and JBossESB-4.7 only. This release supports any JAX-WS compliant WS stack, but at this time we could only test running with JBossWS (the default WS provider in JBAS-5.1). You can download the release from &lt;a href="http://www.jboss.org/riftsaw/downloads.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;&lt;br /&gt;the RiftSaw team&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-3848825076862080677?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/3848825076862080677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/12/riftsaw-release-20-rc1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/3848825076862080677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/3848825076862080677'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/12/riftsaw-release-20-rc1.html' title='RiftSaw Release 2.0-RC1'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-4759084135492687916</id><published>2009-12-03T07:41:00.000-08:00</published><updated>2009-12-03T07:42:19.981-08:00</updated><title type='text'>One more RiftSaw post on DZone!</title><content type='html'>&lt;a href="http://soa.dzone.com/news/impatient-start-jboss-riftsaw-0"&gt;http://soa.dzone.com/news/impatient-start-jboss-riftsaw-0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-4759084135492687916?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/4759084135492687916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/12/one-more-riftsaw-post-on-dzone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/4759084135492687916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/4759084135492687916'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/12/one-more-riftsaw-post-on-dzone.html' title='One more RiftSaw post on DZone!'/><author><name>Len DiMaggio</name><uri>http://www.blogger.com/profile/07124585546929851174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='20' src='http://1.bp.blogspot.com/_Wad47xG7w3A/Sc7b75epEEI/AAAAAAAAAQ4/F9-h0znUI7w/S220/Boston.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-7339032231173307513</id><published>2009-11-25T08:06:00.000-08:00</published><updated>2009-11-25T08:24:18.610-08:00</updated><title type='text'>RiftSaw Release 2.0-M2</title><content type='html'>The RiftSaw team is pleased to announce the availability of &lt;a href="http://www.jboss.org/riftsaw/downloads.html"&gt;2.0-M2&lt;/a&gt;.&lt;br /&gt;This release provides early access to the new JAX-WS (using JBossWS) based integration, that replaces the Axis2 transport layer in the previous release, and the new admin console based on GWT.&lt;br /&gt;This release is based on &lt;a href="http://ode.apache.org/"&gt;Apache ODE&lt;/a&gt; 1.3.3, and therefore if you had previously installed RiftSaw-2.0-M1, you will need to undeploy that version prior to installing M2. This is because M1 was based on the ODE 2.0 branch, which does not yet have a stable release. As the database schema changed between ODE1.x and ODE2.x, it will also be necessary to remove any database that had been configured for RiftSaw-2.0-M1 (BPELDB in the default/data folder if using derby).&lt;br /&gt;Full release notes are available in the &lt;a href="http://www.jboss.org/riftsaw/downloads.html"&gt;binary distribution&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-7339032231173307513?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/7339032231173307513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/11/riftsaw-release-20-m2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/7339032231173307513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/7339032231173307513'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/11/riftsaw-release-20-m2.html' title='RiftSaw Release 2.0-M2'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-1040667864911845722</id><published>2009-11-18T09:39:00.000-08:00</published><updated>2009-11-18T09:40:55.222-08:00</updated><title type='text'>One more time - the other post is on DZone too</title><content type='html'>The link is: &lt;a href="http://soa.dzone.com/news/esb-bpel-continuing-riftsaw"&gt;http://soa.dzone.com/news/esb-bpel-continuing-riftsaw&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-1040667864911845722?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/1040667864911845722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/11/one-more-time-other-post-is-on-dzone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/1040667864911845722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/1040667864911845722'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/11/one-more-time-other-post-is-on-dzone.html' title='One more time - the other post is on DZone too'/><author><name>Len DiMaggio</name><uri>http://www.blogger.com/profile/07124585546929851174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='20' src='http://1.bp.blogspot.com/_Wad47xG7w3A/Sc7b75epEEI/AAAAAAAAAQ4/F9-h0znUI7w/S220/Boston.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-7585301802073599667</id><published>2009-11-13T07:48:00.000-08:00</published><updated>2009-11-13T07:49:01.530-08:00</updated><title type='text'>DZone Picked up The Post on JBossESB Integration</title><content type='html'>And here it is:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://soa.dzone.com/news/bpel-esb-and-back-introduction"&gt;http://soa.dzone.com/news/bpel-esb-and-back-introduction&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-7585301802073599667?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/7585301802073599667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/11/dzone-picked-up-post-on-jbossesb.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/7585301802073599667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/7585301802073599667'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/11/dzone-picked-up-post-on-jbossesb.html' title='DZone Picked up The Post on JBossESB Integration'/><author><name>Len DiMaggio</name><uri>http://www.blogger.com/profile/07124585546929851174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='20' src='http://1.bp.blogspot.com/_Wad47xG7w3A/Sc7b75epEEI/AAAAAAAAAQ4/F9-h0znUI7w/S220/Boston.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-3354119430008942121</id><published>2009-11-12T20:08:00.001-08:00</published><updated>2009-11-13T06:31:53.637-08:00</updated><title type='text'>From ESB to BPEL - Continuing with the RiftSaw-JBossESB Integration</title><content type='html'>In the previous post to this blog, we looked at orchestrating JBossESB services from a RiftSaw BPEL process. In this post, we'll look at the other side of the RiftSaw-JBossESB integration; invoking a RiftSaw BPEL process from an ESB service.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Invoking a RiftSaw BPEL Process - From the JBossESB's Perspective, it's a Web Service&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;There are a couple of ways to do this. Remember, that from the JBossESB's perspective, a RiftSaw BPEL process is a web service. This means that a JBossESB service action can invoke a BPEL process in the same way that it can invoke any other web service that exposes a WSDL definition. There are multiple examples of this approach illustrated in the JBossESB quickstarts. For example, in the "webservice_consumer1" quickstart, the action used to invoke a web service is defined as:&lt;br /&gt;&lt;br /&gt;In jboss-esb.xml:&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt;  &amp;lt;actions mep="OneWay"&amp;gt;&lt;br /&gt;  &amp;lt;action name="request-mapper"&lt;br /&gt;    class="org.jboss.soa.esb.samples.quickstart.webservice_consumer1.MyRequestAction"&amp;gt;&lt;br /&gt;  &amp;lt;/action&amp;gt;&lt;br /&gt;  &amp;lt;action name="soapui-client-action"&lt;br /&gt;    class="org.jboss.soa.esb.actions.soap.SOAPClient"&amp;gt;&lt;br /&gt;      &amp;lt;property name="wsdl"&lt;br /&gt;        value="http://127.0.0.1:8080/Quickstart_webservice_consumer1/HelloWorldWS?wsdl"/&amp;gt;&lt;br /&gt;      &amp;lt;property name="responseAsOgnlMap" value="true" /&amp;gt;&lt;br /&gt;      &amp;lt;property name="SOAPAction" value="sayHello"/&amp;gt;&lt;br /&gt;  &amp;lt;/action&amp;gt;&lt;br /&gt;  &amp;lt;action name="response-mapper"&lt;br /&gt;        class="org.jboss.soa.esb.samples.quickstart.webservice_consumer1.MyResponseAction"&amp;gt;&lt;br /&gt;    &amp;lt;/action&amp;gt;&lt;br /&gt;    &amp;lt;action name="testStore" class=&lt;br /&gt;      "org.jboss.soa.esb.actions.TestMessageStore"/&amp;gt;&lt;br /&gt;  &amp;lt;/actions&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;Line 6: The SOAPClient class makes the call to the webservice.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Line 9: The parameter responseAsOgnlMap tells the JBossESB move the SOAP reponse data into that OGNL-based map and attach it to the message.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Line 10: The reference to the method to be invoked in the web service.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;OK. That was easy. We completed the cycle of orchestrating JBossESB services from a RiftSaw BPEL process and invoking JBossESB service actions from a RiftSaw BPEL process.&lt;br /&gt;&lt;br /&gt;But wait! We're not done yet. The RiftSaw-JBossESB integration also supports another way to invoke JBossESB service actions from a RiftSaw BPEL process without using HTTP, web services and WSDL.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;A Different Way - the BPELInvoke Action&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;One of the JBossESB's features is an extensive set of predefined ("out of the box") actions that can be incorporated into your applications. These actions support a wide variety of tasks including:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Transformers and Converters&lt;/b&gt; - converting message data from one form to another&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Business Process Management&lt;/b&gt; - integrating with JBoss jBPM&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Scripting&lt;/b&gt; - automating tasks in supported scripting languages&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Services&lt;/b&gt; - integration with EJBs&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Routing&lt;/b&gt; - moving message data to the correct services&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Notifier&lt;/b&gt; - sending data to ESB unaware destinations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Webservices/SOAP&lt;/b&gt; - the name says it all - support for Webservices&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;(There's also a Miscellaneous group that includes only one action - org.jboss.soa.esb.actions.SystemPrintln. This action prints of a message.)&lt;br /&gt;&lt;br /&gt;JBossESB also supports a new out-of-the-box action that can be used to directly invoke a RiftSaw BPEL process. This action (org.jboss.soa.esb.actions.bpel.BPELInvoke) can be used if RiftSaw is installed and running in the same Java VM as the JBossESB and if the target BPEL process is deployed to the local RiftSaw instance. If your configuration meets these requirements, then it can be simpler to use the BPELInvoke action. You should also see better performance than using web services, as the RiftSaw BPEL process and JBossESB service actions are running in the same JVM.&lt;br /&gt;&lt;br /&gt;The BPELInvoke action enables you to specify not just the RiftSaw process to be invoked, but also the specific operation within that process. You configure the BPELInvoke action with these properties:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;service&lt;/b&gt; - This mandatory property references the service name, as defined in the WSDL, for the target RiftSaw BPEL process.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;operation&lt;/b&gt; - The name says it all. This mandatory property references the operation, also defined in the target Riftsaw BPEL process WSDL, to be invoked.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;requestPartName&lt;/b&gt; - This property defines the WSDL message part that the message content for the JBossESB-aware message processed by the JBossESB action should be mapped to. This property is optional and is used when the incoming JBossESB message does not already represent a multi-part message.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;responsePartName&lt;/b&gt; - And finally, this property is used to extract the content of a response multi-part WSDL message, and insert it into the JBossESB-aware message that is passed to the next JBossESB action in the action pipeline. This property is optional and if it is not defined, the complete multi-part message value will be used in the JBossESB-aware message.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The BPELInvoke action can handle incoming messages with two types of content:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Document Object Model&lt;/b&gt; - If the content in the incoming message is a DOM document or element, then it can be used as the complete multi-part message, or as the content of a message part as defined with the optional requestPartName action property. If, however, the message content is a DOM text node, then it can only be used if a multi-part name has been defined in the optional requestPartName action property.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Java String&lt;/b&gt; - If the content in the incoming message is a string representation of an XML document, then the requestPartName property is optional. If this property is not defined, then the document must represent the complete multipart message. If, however, the message content is a string that does not represent an XML document, then the requestPartName is not optional and must be specified.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Let's take a look at the BPELInvoke action in action by running a quickstart example program.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;BPELInvoke in a Quickstart&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I can't say it often enough; the quickstarts are a great resource for learning how JBoss products work, and as a starting point for developing your own code. The BPELInvoke action is used in the "bpel_helloworld" quickstart. This quickstart is installed into your JBossESB server's /samples/quickstarts directory as part of the RiftSaw installations we walked through in this blog post:   (hint - it's in step 6).&lt;br /&gt;&lt;br /&gt;This quickstart relies on the riftsaw-2.0-SNAPSHOT/samples/quickstart/hello_world quickstart. Specifically, the bpel_helloworld quickstart invokes the RiftSaw BPEL process defined in the hello_world quickstart. So, before you run the bpel_helloworld quickstart, you have to deploy the hello_world quickstart.&lt;br /&gt;&lt;br /&gt;The interesting part of the bpel_helloworld quickstart for us is this section of the jboss-esb.xml file:&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt;&amp;lt;service&lt;br /&gt;  category="HelloWorldBPELESB"&lt;br /&gt;  name="SayHello"&lt;br /&gt;  description="Hello World"&amp;gt;&lt;br /&gt;  &amp;lt;listeners&amp;gt;&lt;br /&gt;    &amp;lt;jms-listener name="JMS-Gateway"&lt;br /&gt;      busidref="quickstartGwChannel"&lt;br /&gt;      is-gateway="true" /&amp;gt;&lt;br /&gt;    &amp;lt;jms-listener name="helloWorld"&lt;br /&gt;      busidref="quickstartEsbChannel" /&amp;gt;&lt;br /&gt;  &amp;lt;/listeners&amp;gt;&lt;br /&gt;  &amp;lt;actions&amp;gt;&lt;br /&gt;    &amp;lt;action name="action1" class="org.jboss.soa.esb.actions.SystemPrintln"&amp;gt;&lt;br /&gt;      &amp;lt;property name="printfull" value="true"/&amp;gt;&lt;br /&gt;    &amp;lt;/action&amp;gt;&lt;br /&gt;    &amp;lt;action name="action2" class="org.jboss.soa.esb.actions.bpel.BPELInvoke"&amp;gt;&lt;br /&gt;      &amp;lt;property name="service" value="{http://www.jboss.org/bpel/examples/wsdl}HelloService"/&amp;gt;&lt;br /&gt;      &amp;lt;property name="operation" value="hello" /&amp;gt;&lt;br /&gt;      &amp;lt;property name="requestPartName" value="TestPart" /&amp;gt;&lt;br /&gt;      &amp;lt;property name="responsePartName" value="TestPart" /&amp;gt;&lt;br /&gt;    &amp;lt;/action&amp;gt;&lt;br /&gt;    &amp;lt;!-- The next action is for Continuous Integration testing --&amp;gt;&lt;br /&gt;    &amp;lt;action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore"/&amp;gt;&lt;br /&gt;  &amp;lt;/actions&amp;gt;&lt;br /&gt;&amp;lt;/service&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;Line 16: Here's where we start the definition of the BPELInvoke action.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Line 17: The service in the Riftsaw BPEL process to be invoked.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Line 18: And the operation.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lines 19 and 20: The request and response WSDL parts.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;This diagram illustrates the inter-relationship of the JBossESB bpel_helloworld quickstart and the RiftSaw BPEL process configuration files.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Wad47xG7w3A/SvzW-_a94uI/AAAAAAAAA7Q/C_wbbrgXK50/s1600-h/riftsaw.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_Wad47xG7w3A/SvzW-_a94uI/AAAAAAAAA7Q/C_wbbrgXK50/s400/riftsaw.jpg" alt="" id="BLOGGER_PHOTO_ID_5403430030602527458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Before we run the quickstart, there's one more thing to look at; the client. In the case of the quickstart, this is the SendEsbMessage.java program. This program is invoked when you execute the "ant sendesb" ant target as defined on lines 11-20 in the quickstart build.xml file:&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt;&amp;lt;project name="Quickstart_esb_bpel_hello_world" default="run" basedir="."&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;description&amp;gt;&lt;br /&gt;     ${ant.project.name}&lt;br /&gt;     ${line.separator}&lt;br /&gt;   &amp;lt;/description&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;!-- Import the base Ant build script... --&amp;gt;&lt;br /&gt;   &amp;lt;import file="../conf/base-build.xml"/&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;target name="sendesb" depends="compile"&lt;br /&gt;     description="Will send an esb Message"&amp;gt;&lt;br /&gt;     &amp;lt;echo&amp;gt;Runs Test ESB Message Sender&amp;lt;/echo&amp;gt;&lt;br /&gt;     &amp;lt;java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.helloworld.test.SendEsbMessage" failonerror="true"&amp;gt;&lt;br /&gt;       &amp;lt;arg value="HelloWorldBPELESB"/&amp;gt; &amp;lt;!--  service category --&amp;gt;&lt;br /&gt;       &amp;lt;arg value="SayHello"/&amp;gt;  &amp;lt;!--  service name --&amp;gt;&lt;br /&gt;       &amp;lt;arg value="Hello World via ESB to BPEL"/&amp;gt; &amp;lt;!--  Message text --&amp;gt;&lt;br /&gt;       &amp;lt;classpath refid="exec-classpath"/&amp;gt;&lt;br /&gt;     &amp;lt;/java&amp;gt;&lt;br /&gt;   &amp;lt;/target&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The command parameters are passed to SendEsbMessage.java. If we look at line 18 in that program (see below), we'll see that the client sends a message and receives a response. (Remember that with BPEL, all traffic follows a synchronous message exchange pattern.)&lt;br /&gt;&lt;pre class="XML" name="code"&gt;&lt;br /&gt; public class SendEsbMessage&lt;br /&gt; {&lt;br /&gt;   public static void main(String args[]) throws Exception&lt;br /&gt;   {&lt;br /&gt; //  Setting the ConnectionFactory such that it will use scout&lt;br /&gt;     System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");&lt;br /&gt;&lt;br /&gt;     if (args.length &amp;lt; 3)&lt;br /&gt;     {&lt;br /&gt;       System.err.println("Usage SendEsbMessage &amp;lt;category&amp;gt;&amp;lt;name&amp;gt; &amp;lt;text to send&amp;gt;");&lt;br /&gt;       System.exit(1);&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     Message esbMessage = MessageFactory.getInstance().getMessage();&lt;br /&gt;&lt;br /&gt;     esbMessage.getBody().add(args[2]);&lt;br /&gt;&lt;br /&gt;     Message respMessage = new ServiceInvoker(args[0],args[1]).deliverSync(esbMessage, 5000);&lt;br /&gt;&lt;br /&gt;     System.out.println("REPLY: "+respMessage.getBody().get());&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;OK, let's deploy and run the quickstart. Here are the ant commands and the output displayed by the client:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;sendesb:&lt;br /&gt;[echo] Runs Test ESB Message Sender&lt;br /&gt;[java] REPLY: Hello World via ESB to BPEL World&lt;br /&gt;&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 10 seconds&lt;br /&gt;&lt;/pre&gt;And here's the information written to the server log )I've truncated this a bit...)&lt;br /&gt;&lt;pre&gt;22:57:05,591 INFO  [STDOUT] Message structure:&lt;br /&gt;22:57:05,592 INFO  [STDOUT] [ message: [ JBOSS_XML ]&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;context: {}&lt;br /&gt;body: [ objects: {org.jboss.soa.esb.message.defaultEntry=Hello World via ESB to BPEL} ]&lt;br /&gt;fault: [  ]&lt;br /&gt;attachments: [ Named:{}, Unnamed:[] ]&lt;br /&gt;properties: [ {org.jboss.soa.esb.message.byte.size=3920,&lt;br /&gt;org.jboss.soa.esb.message.time.dod=Tue Nov 10 22:57:05 EST 2009,&lt;br /&gt;javax.jms.message.redelivered=false} ] ]&lt;br /&gt;&lt;/pre&gt;OK, it's not exactly thrilling, but, if you look closely, you'll see that the client sent this message:&lt;br /&gt;&lt;pre&gt;Hello World via ESB to BPEL&lt;br /&gt;&lt;/pre&gt;And the RiftSaw BPEL process replied with this:&lt;br /&gt;&lt;pre&gt;Hello World via ESB to BPEL World&lt;br /&gt;&lt;/pre&gt;That's right. The hello operation in the RiftSaw BPEL process did its thing and appended "World" to the message!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Closing Thoughts&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The fact that from the ESB's perspective, a RiftSaw BPEL process is a web service, makes orchestrating ESB processes a straightforward task. The corollary is also true, in that a JBossESB action can also invoke a RiftSaw BPEL process in the same manner as a web service. It's also possible, however, to invoke a RiftSaw BPEL process with one of the JBossESB's out-of-the-box actions, BPELInvoke. In the next post to this blog, we'll look how exceptions are handled across the RiftSaw-JBossESB integration.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Acknowledgments&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As always, I want to thank the RiftSaw community (especially Kurt Stam and Gary Brown), both for creating RiftSaw, writing the user guide on which this blog entry is based, and for their timely review input for this blog post!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-3354119430008942121?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/3354119430008942121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/11/from-esb-to-bpel-continuing-with.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/3354119430008942121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/3354119430008942121'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/11/from-esb-to-bpel-continuing-with.html' title='From ESB to BPEL - Continuing with the RiftSaw-JBossESB Integration'/><author><name>Len DiMaggio</name><uri>http://www.blogger.com/profile/07124585546929851174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='20' src='http://1.bp.blogspot.com/_Wad47xG7w3A/Sc7b75epEEI/AAAAAAAAAQ4/F9-h0znUI7w/S220/Boston.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Wad47xG7w3A/SvzW-_a94uI/AAAAAAAAA7Q/C_wbbrgXK50/s72-c/riftsaw.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-7584476640491105364</id><published>2009-11-03T08:03:00.000-08:00</published><updated>2009-11-03T08:27:06.564-08:00</updated><title type='text'>From BPEL to the ESB and Back  - Introduction to the Riftsaw-JBoss ESB Integration</title><content type='html'>One of the great strengths of the JBoss software is in the integrations between projects. In this post, we'll examine the Riftsaw - JBoss ESB integration to connect Riftsaw BPEL processes to ESB services.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Background - JBosssESB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Service Oriented Architecture (SOA) is not a single program or technology. It’s really a matter of software architecture or design. In hardware terms, a “bus” is a physical connector that ties together multiple systems or subsystems. Instead of having a large number of point-to-point connectors between pairs of systems, you connect each system to the bus once. An Enterprise Service Bus (ESB) does the same thing, logically, in software.&lt;br /&gt;&lt;br /&gt;Instead of passing electric current or data over the bus to and from the connections (or “endpoints”) on the ESB, the ESB logically sits in the architectural layer above a messaging system. The messaging system allows for asynchronous communications between services over the ESB. In fact, when you are working with an ESB, everything is either a service (which in this context is your application software) or a message being sent between services. It’s important to note that a “service” is not automatically a web service. Other types of applications, using transports such as FTP or JMS, can also be services. Is an ESB the same thing as SOA (Service Oriented Architecture)? Not exactly. An ESB does not provide a Service Oriented Architecture, but it does provide the tools than can be used to build one–especially loose-coupling and asynchronous message passing. SOA is a series of principles, patterns, and best practices.&lt;br /&gt;&lt;br /&gt;JBossESB&lt;a href="#[1]"&gt;[1]&lt;/a&gt; is an open source ESB implementation that supports multiple transports, protocols, a listener-action model for loose coupling of services, content based routing with JBoss Rules (Drools), and BPEL process management with Riftsaw.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Riftsaw-JBoss ESB Integration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In reviewing the Riftsaw-JBossESB integration, the three topics to consider are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Orchestrating ESB Services From BPEL in Riftsaw to the ESB&lt;/li&gt;&lt;li&gt;Making Calls From the ESB to the BPEL process definition in Riftsaw&lt;/li&gt;&lt;li&gt;Exception Handling&lt;/li&gt;&lt;/ul&gt;(As a point of reference, the Riftsaw-JBossESB integration is similar to the jBPM-JBossESB integration&lt;a href="#[2]"&gt;[2]&lt;/a&gt; in that it covers topics related to these three topics, but there is an important differences. In the Riftsaw-JBossESB integration, communication is synchronous (remember that we are working with web services) and follows the request-response pattern. As a result, the Riftsaw-JBossESB integration is simpler than the corresponding jBPM-JBossESB integration.)&lt;br /&gt;&lt;br /&gt;We'll take these topics one at a time. Let's start with: Orchestrating ESB Services From BPEL in Riftsaw to the ESB.&lt;br /&gt;&lt;br /&gt;You might think that a feature as powerful as the orchestration of ESB services would be difficult to configure, but actually, it's very straightforward. Remember that from the JBoss ESB's perspective, the BPEL process is a web service. The ESB can receive messages from a Riftsaw BPEL process just as it would from any web service. Let's illustrate this by modifying the Riftsaw BPEL "hello_world" quickstart to orchestrate a service as defined by the JBoss ESB "helloworld" quickstart.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modifying the Quickstarts&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the BPEL "hello_world" quickstart process definition, we have to modify this file:&lt;br /&gt;&lt;br /&gt;File: samples/quickstart/hello_world/bpel/HelloWorld.wsdl&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   1    &amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;   2    &amp;lt;!--&lt;br /&gt;   3      ~ Licensed to the Apache Software Foundation (ASF) under one&lt;br /&gt;   4      ~ or more contributor license agreements.  See the NOTICE file&lt;br /&gt;   5      ~ distributed with this work for additional information&lt;br /&gt;   6      ~ regarding copyright ownership.  The ASF licenses this file&lt;br /&gt;   7      ~ to you under the Apache License, Version 2.0 (the&lt;br /&gt;   8      ~ "License"); you may not use this file except in compliance&lt;br /&gt;   9      ~ with the License.  You may obtain a copy of the License at&lt;br /&gt;  10      ~&lt;br /&gt;  11      ~    http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;  12      ~&lt;br /&gt;  13      ~ Unless required by applicable law or agreed to in writing,&lt;br /&gt;  14      ~ software distributed under the License is distributed on an&lt;br /&gt;  15      ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY&lt;br /&gt;  16      ~ KIND, either express or implied.  See the License for the&lt;br /&gt;  17      ~ specific language governing permissions and limitations&lt;br /&gt;  18      ~ under the License.&lt;br /&gt;  19      --&amp;gt;&lt;br /&gt;  20    &amp;lt;wsdl:definitions&lt;br /&gt;  21        targetNamespace="http://www.jboss.org/bpel/examples/wsdl"&lt;br /&gt;  22        xmlns="http://schemas.xmlsoap.org/wsdl/"&lt;br /&gt;  23        xmlns:tns="http://www.jboss.org/bpel/examples/wsdl"&lt;br /&gt;  24        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"&lt;br /&gt;  25        xmlns:xsd="http://www.w3.org/2001/XMLSchema"&lt;br /&gt;  26        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"&lt;br /&gt;  27        xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"&amp;gt;&lt;br /&gt;  28     &lt;br /&gt;  29        &amp;lt;wsdl:message name="HelloMessage"&amp;gt;&lt;br /&gt;  30            &amp;lt;wsdl:part name="TestPart" type="xsd:string"/&amp;gt;&lt;br /&gt;  31        &amp;lt;/wsdl:message&amp;gt;&lt;br /&gt;  32     &lt;br /&gt;  33        &amp;lt;wsdl:portType name="HelloPortType"&amp;gt;&lt;br /&gt;  34            &amp;lt;wsdl:operation name="hello"&amp;gt;&lt;br /&gt;  35                &amp;lt;wsdl:input message="tns:HelloMessage" name="TestIn"/&amp;gt;&lt;br /&gt;  36                &amp;lt;wsdl:output message="tns:HelloMessage" name="TestOut"/&amp;gt;&lt;br /&gt;  37            &amp;lt;/wsdl:operation&amp;gt; &lt;br /&gt;  38        &amp;lt;/wsdl:portType&amp;gt;&lt;br /&gt;  39     &lt;br /&gt;  40         &amp;lt;wsdl:binding name="HelloSoapBinding" type="tns:HelloPortType"&amp;gt;&lt;br /&gt;  41            &amp;lt;soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/&amp;gt;&lt;br /&gt;  42            &amp;lt;wsdl:operation name="hello"&amp;gt;&lt;br /&gt;  43                &amp;lt;soap:operation soapAction="" style="rpc"/&amp;gt;&lt;br /&gt;  44                &amp;lt;wsdl:input&amp;gt;&lt;br /&gt;  45                    &amp;lt;soap:body&lt;br /&gt;  46                        namespace="http://www.jboss.org/bpel/examples/wsdl"&lt;br /&gt;  47                        use="literal"/&amp;gt;&lt;br /&gt;  48                &amp;lt;/wsdl:input&amp;gt;&lt;br /&gt;  49                &amp;lt;wsdl:output&amp;gt;&lt;br /&gt;  50                    &amp;lt;soap:body&lt;br /&gt;  51                        namespace="http://www.jboss.org/bpel/examples/wsdl"&lt;br /&gt;  52                        use="literal"/&amp;gt;&lt;br /&gt;  53                &amp;lt;/wsdl:output&amp;gt;&lt;br /&gt;  54            &amp;lt;/wsdl:operation&amp;gt;&lt;br /&gt;  55        &amp;lt;/wsdl:binding&amp;gt;&lt;br /&gt;  56      &amp;lt;wsdl:service name="HelloService"&amp;gt;&lt;br /&gt;  57        &amp;lt;wsdl:port name="HelloPort" binding="tns:HelloSoapBinding"&amp;gt;&lt;br /&gt;  58          &amp;lt;soap:address location="http://localhost:8081/bpel/processes/helloWorld"/&amp;gt;&lt;br /&gt;  59        &amp;lt;/wsdl:port&amp;gt;&lt;br /&gt;  60      &amp;lt;/wsdl:service&amp;gt;&lt;br /&gt;  61 &lt;br /&gt;  62      &amp;lt;plnk:partnerLinkType name="HelloPartnerLinkType"&amp;gt;&lt;br /&gt;  63           &amp;lt;plnk:role name="me" portType="tns:HelloPortType"/&amp;gt;&lt;br /&gt;  64           &amp;lt;plnk:role name="you" portType="tns:HelloPortType"/&amp;gt;&lt;br /&gt;  65       &amp;lt;/plnk:partnerLinkType&amp;gt;&lt;br /&gt;  66    &amp;lt;/wsdl:definitions&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The change to note is on line 58: Since we want the ESB application to define a listener to "listen" for incoming http traffic, we have to change the port for the BPEL process to not conflict with the JBoss AS server itself. We've selected port 8081 as the new port for the BPEL process. Remember, that as far as the ESB is concerned, the BPEL process is a web service.&lt;br /&gt;&lt;br /&gt;In the JBoss ESB "helloworld" quickstart, we have to modify these 4 files:&lt;br /&gt;&lt;br /&gt;File: jbossesb-4.6/samples/quickstarts/helloworld/jboss-esb.xml&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;   1    &amp;lt;?xml version = "1.0" encoding = "UTF-8"?&amp;gt;&lt;br /&gt;   2    &amp;lt;jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5"&amp;gt;&lt;br /&gt;   3 &lt;br /&gt;   4        &amp;lt;providers&amp;gt;&lt;br /&gt;   5              &amp;lt;jms-provider name="JBossMQ" connection-factory="ConnectionFactory"&amp;gt;&lt;br /&gt;   6                  &amp;lt;jms-bus busid="quickstartGwChannel"&amp;gt;&lt;br /&gt;   7                      &amp;lt;jms-message-filter&lt;br /&gt;   8                          dest-type="QUEUE"&lt;br /&gt;   9                          dest-name="queue/quickstart_helloworld_Request_gw"&lt;br /&gt;  10                       /&amp;gt;&lt;br /&gt;  11                  &amp;lt;/jms-bus&amp;gt;&lt;br /&gt;  12                  &amp;lt;jms-bus busid="quickstartEsbChannel"&amp;gt;&lt;br /&gt;  13                      &amp;lt;jms-message-filter&lt;br /&gt;  14                          dest-type="QUEUE"&lt;br /&gt;  15                          dest-name="queue/quickstart_helloworld_Request_esb"&lt;br /&gt;  16                      /&amp;gt;&lt;br /&gt;  17                  &amp;lt;/jms-bus&amp;gt;&lt;br /&gt;  18 &lt;br /&gt;  19                  &amp;lt;jms-bus busid="quickstartEsbReplyChannel"&amp;gt;&lt;br /&gt;  20                      &amp;lt;jms-message-filter&lt;br /&gt;  21                          dest-type="QUEUE"&lt;br /&gt;  22                          dest-name="queue/quickstart_helloworld_Request_esb_reply"&lt;br /&gt;  23                      /&amp;gt;&lt;br /&gt;  24                  &amp;lt;/jms-bus&amp;gt;&lt;br /&gt;  25 &lt;br /&gt;  26 &lt;br /&gt;  27              &amp;lt;/jms-provider&amp;gt;&lt;br /&gt;  28 &lt;br /&gt;  29            &amp;lt;jbr-provider name="JBR-Http-1" protocol="http" host="localhost"&amp;gt;&lt;br /&gt;  30                &amp;lt;jbr-bus busid="Http-1" port="8081"/&amp;gt;&lt;br /&gt;  31            &amp;lt;/jbr-provider&amp;gt;&lt;br /&gt;  32          &amp;lt;/providers&amp;gt;&lt;br /&gt;  33       &lt;br /&gt;  34          &amp;lt;services&amp;gt;&lt;br /&gt;  35            &amp;lt;service&lt;br /&gt;  36                category="FirstServiceESB"&lt;br /&gt;  37                name="SimpleListener"&lt;br /&gt;  38                description="Hello World"&amp;gt;&lt;br /&gt;  39 &lt;br /&gt;  40             &amp;lt;listeners&amp;gt;&lt;br /&gt;  41                    &amp;lt;jms-listener name="JMS-Gateway"&lt;br /&gt;  42                        busidref="quickstartGwChannel"&lt;br /&gt;  43                        is-gateway="true"&lt;br /&gt;  44                    /&amp;gt;&lt;br /&gt;  45                    &amp;lt;jms-listener name="helloWorld"&lt;br /&gt;  46                                  busidref="quickstartEsbChannel"&lt;br /&gt;  47                    /&amp;gt;&lt;br /&gt;  48                    &amp;lt;jbr-listener name="Http-Gateway" busidref="Http-1" is-gateway="true"/&amp;gt;&lt;br /&gt;  49 &lt;br /&gt;  50                &amp;lt;/listeners&amp;gt;&lt;br /&gt;  51         &lt;br /&gt;  52        &amp;lt;actions mep="RequestResponse"&amp;gt;&lt;br /&gt;  53                       &amp;lt;action name="action1"&lt;br /&gt;  54                           class="org.jboss.soa.esb.samples.quickstart.helloworld.MyJMSListenerAction"&lt;br /&gt;  55                           process="displayMessage"&lt;br /&gt;  56                           /&amp;gt;   &lt;br /&gt;  57                        &amp;lt;action name="action2" class="org.jboss.soa.esb.actions.SystemPrintln"&amp;gt;&lt;br /&gt;  58                          &amp;lt;property name="printfull" value="false"/&amp;gt;&lt;br /&gt;  59                        &amp;lt;/action&amp;gt;&lt;br /&gt;  60                        &amp;lt;!-- The next action is for Continuous Integration testing --&amp;gt;&lt;br /&gt;  61                        &amp;lt;action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore"/&amp;gt;&lt;br /&gt;  62                &amp;lt;/actions&amp;gt;&lt;br /&gt;  63            &amp;lt;/service&amp;gt;&lt;br /&gt;  64          &amp;lt;/services&amp;gt;&lt;br /&gt;  65      &lt;br /&gt;  66    &amp;lt;/jbossesb&amp;gt;&lt;br /&gt;&lt;/pre&gt;The changes are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lines 29-31, and 48: Here's where we define the HTTP gateway listener that will watch for the message (request) sent by the BPEL process.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Line 52: This is an important change. In the original ESB helloworld quickstart, the message exchange pattern (mep) was set to "OneWay." In our modified quickstart, we need to have a response sent back to the BPEL process to complete the request/response sequence.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lines 19-23: What's this all about? For each ESB-unaware gateway channel, the ESB requires a corresponding ESB-aware channel. In this context, "ESB-aware" refers to a channel communicating via messages in the org.jboss.soa.esb.message.Message format, and "ESB-unaware" refers to communicating via messages in a format other than (org.jboss.soa.esb.message.Message). We also have to add this ESB-aware channel to these files:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;File: jbossesb-4.6/samples/quickstarts/helloworld/deployment.xml&lt;br /&gt;&lt;pre&gt;     1    &amp;lt;jbossesb-deployment&amp;gt;&lt;br /&gt;   2      &amp;lt;depends&amp;gt;jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb_reply&amp;lt;/depends&amp;gt;&lt;br /&gt;   3      &amp;lt;depends&amp;gt;jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb&amp;lt;/depends&amp;gt;&lt;br /&gt;   4      &amp;lt;depends&amp;gt;jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_gw&amp;lt;/depends&amp;gt;&lt;br /&gt;   5    &amp;lt;/jbossesb-deployment&amp;gt;&lt;br /&gt;&lt;/pre&gt;File: jbossesb-4.6/samples/quickstarts/helloworld/jbm-queue-service.xml&lt;br /&gt;&lt;pre&gt;     1    &amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;   2    &amp;lt;server&amp;gt;&lt;br /&gt;   3 &lt;br /&gt;   4      &amp;lt;mbean code="org.jboss.jms.server.destination.QueueService"&lt;br /&gt;   5        name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb_reply"&lt;br /&gt;   6        xmbean-dd="xmdesc/Queue-xmbean.xml"&amp;gt;&lt;br /&gt;   7            &amp;lt;depends optional-attribute-name="ServerPeer"&amp;gt;jboss.messaging:service=ServerPeer&amp;lt;/depends&amp;gt;&lt;br /&gt;   8            &amp;lt;depends&amp;gt;jboss.messaging:service=PostOffice&amp;lt;/depends&amp;gt;&lt;br /&gt;   9      &amp;lt;/mbean&amp;gt;&lt;br /&gt;  10 &lt;br /&gt;  11      &amp;lt;mbean code="org.jboss.jms.server.destination.QueueService"&lt;br /&gt;  12        name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb"&lt;br /&gt;  13        xmbean-dd="xmdesc/Queue-xmbean.xml"&amp;gt;&lt;br /&gt;  14        &amp;lt;depends optional-attribute-name="ServerPeer"&amp;gt;jboss.messaging:service=ServerPeer&amp;lt;/depends&amp;gt;&lt;br /&gt;  15        &amp;lt;depends&amp;gt;jboss.messaging:service=PostOffice&amp;lt;/depends&amp;gt;&lt;br /&gt;  16      &amp;lt;/mbean&amp;gt;&lt;br /&gt;  17      &amp;lt;mbean code="org.jboss.jms.server.destination.QueueService"&lt;br /&gt;  18        name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_gw"&lt;br /&gt;  19        xmbean-dd="xmdesc/Queue-xmbean.xml"&amp;gt;&lt;br /&gt;  20        &amp;lt;depends optional-attribute-name="ServerPeer"&amp;gt;jboss.messaging:service=ServerPeer&amp;lt;/depends&amp;gt;&lt;br /&gt;  21        &amp;lt;depends&amp;gt;jboss.messaging:service=PostOffice&amp;lt;/depends&amp;gt;&lt;br /&gt;  22      &amp;lt;/mbean&amp;gt;&lt;br /&gt;  23    &amp;lt;/server&amp;gt;&lt;br /&gt;&lt;/pre&gt;Finally, we have to modify build.xml to reference the changed port number for the web services - only one line is changed:&lt;br /&gt;&lt;pre&gt;    33   &amp;lt;arg value="http://localhost:8081/bpel/processes/helloWorld"/&amp;gt;&lt;br /&gt;&lt;/pre&gt;After we deploy both the quickstarts, we can initiate the ESB service orchestration by executing the "ant sendhello" command for the Riftsaw BPEL hello_world process. The server log shows this output:&lt;br /&gt;&lt;pre&gt;22:38:51,690 INFO  [STDOUT] &amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&lt;br /&gt;22:38:51,700 INFO  [STDOUT] Body: &amp;lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://www.jboss.org/bpel/examples/wsdl"&amp;gt;&lt;br /&gt; &amp;lt;soapenv:Header/&amp;gt;&lt;br /&gt; &amp;lt;soapenv:Body&amp;gt;&lt;br /&gt;    &amp;lt;wsdl:hello&amp;gt;&lt;br /&gt;       &amp;lt;TestPart&amp;gt;Hello&amp;lt;/TestPart&amp;gt;&lt;br /&gt;       &amp;lt;TestPart2&amp;gt;Hello&amp;lt;/TestPart2&amp;gt;&lt;br /&gt;    &amp;lt;/wsdl:hello&amp;gt;&lt;br /&gt; &amp;lt;/soapenv:Body&amp;gt;&lt;br /&gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;br /&gt;22:38:51,701 INFO  [STDOUT] &amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&lt;br /&gt;22:38:51,716 INFO  [STDOUT] Message structure:&lt;br /&gt;22:38:51,716 INFO  [STDOUT] [&amp;lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://www.jboss.org/bpel/examples/wsdl"&amp;gt;&lt;br /&gt; &amp;lt;soapenv:Header/&amp;gt;&lt;br /&gt; &amp;lt;soapenv:Body&amp;gt;&lt;br /&gt;    &amp;lt;wsdl:hello&amp;gt;&lt;br /&gt;       &amp;lt;TestPart&amp;gt;Hello&amp;lt;/TestPart&amp;gt;&lt;br /&gt;       &amp;lt;TestPart2&amp;gt;Hello&amp;lt;/TestPart2&amp;gt;&lt;br /&gt;    &amp;lt;/wsdl:hello&amp;gt;&lt;br /&gt; &amp;lt;/soapenv:Body&amp;gt;&lt;br /&gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;br /&gt;&lt;/pre&gt;And the Riftsaw BPEL hello_world process client shows this output:&lt;br /&gt;&lt;pre&gt;$ ant sendhello&lt;br /&gt;Buildfile: build.xml&lt;br /&gt;&lt;br /&gt;sendhello:&lt;br /&gt;   [echo] Send test message to: Quickstart_bpel_hello_world&lt;br /&gt;   [java] &amp;lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://www.jboss.org/bpel/examples/wsdl"&amp;gt;&lt;br /&gt;   [java]    &amp;lt;soapenv:Header/&amp;gt;&lt;br /&gt;   [java]    &amp;lt;soapenv:Body&amp;gt;&lt;br /&gt;   [java]       &amp;lt;wsdl:hello&amp;gt;&lt;br /&gt;   [java]          &amp;lt;TestPart&amp;gt;Hello&amp;lt;/TestPart&amp;gt;&lt;br /&gt;   [java]          &amp;lt;TestPart2&amp;gt;Hello&amp;lt;/TestPart2&amp;gt;&lt;br /&gt;   [java]       &amp;lt;/wsdl:hello&amp;gt;&lt;br /&gt;   [java]    &amp;lt;/soapenv:Body&amp;gt;&lt;br /&gt;   [java] &amp;lt;/soapenv:Envelope&amp;gt;&lt;br /&gt;   [java]&lt;br /&gt;   [java]&lt;br /&gt;&lt;br /&gt;BUILD SUCCESSFUL&lt;br /&gt;Total time: 2 seconds&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Closing Thoughts&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The fact that from the ESB's perspective, a Riftsaw BPEL process is a web service, makes orchestrating ESB processes a straightforward task. In the next post to this blog, we look going back the other way and making calls from the JBossESB to a BPEL process definition in Riftsaw.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; &lt;a name="[1]"&gt;[1] &lt;/a&gt;&lt;a href="http://www.jboss.org/jbossesb"&gt;http://www.jboss.org/jbossesb&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;a name="[2]"&gt;[2] &lt;/a&gt;&lt;a href="http://jboss-soa-p.blogspot.com/2009/06/hanging-together-on-soa-platform.html"&gt;http://jboss-soa-p.blogspot.com/2009/06/hanging-together-on-soa-platform.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Acknowledgments&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As always, I want to thank the Riftsaw community (especially Kurt Stam and Gary Brown), both for creating Riftsaw (and its documentation and examples) and for their timely review input for this blog post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-7584476640491105364?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/7584476640491105364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/11/from-bpel-to-esb-and-back-introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/7584476640491105364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/7584476640491105364'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/11/from-bpel-to-esb-and-back-introduction.html' title='From BPEL to the ESB and Back  - Introduction to the Riftsaw-JBoss ESB Integration'/><author><name>Len DiMaggio</name><uri>http://www.blogger.com/profile/07124585546929851174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='20' src='http://1.bp.blogspot.com/_Wad47xG7w3A/Sc7b75epEEI/AAAAAAAAAQ4/F9-h0znUI7w/S220/Boston.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-8487462395919636578</id><published>2009-10-29T05:49:00.000-07:00</published><updated>2009-10-29T05:52:40.173-07:00</updated><title type='text'>An Impatient Start with JBoss Riftsaw - 5 steps in 5 minutes</title><content type='html'>I often recall having to spend many hours fighting with complex and error prone processes to install server software and get an 'helloworld' example running. With JBoss, however, it's much simpler. Unzipping a couple of files and maybe running ant generally does the trick.&lt;br /&gt;&lt;br /&gt;Which brings us to Riftsaw, JBoss's new open source BPEL 2.0 engine. Riftsaw integrates with JBoss ESB and is optimized for use with the JBoss AS server. Even though it's a new project, it's easy to get going in only a few minutes. The entire set up process is documented in the Getting Started Guide, but if you're impatient, here are the steps. You can install and deploy everything you need in about 5 minutes, Assuming you don't have too slow a network connection. ;-)&lt;br /&gt;&lt;br /&gt;You need (3) packages:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A JBoss application server to host Riftsaw,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A JBoss ESB server to support accessing services over the ESB,&lt;br /&gt;&lt;/li&gt;&lt;li&gt;and Riftsaw itself&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Here are the (5) steps to take: (note - for this example, we're installing into /opt/local)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 1 - Install JBoss AS 5&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;On thing to keep in mind here is that you'll have to use Java 1.6 and install the for JDK 1.6 version of JBoss AS&lt;br /&gt;&lt;pre&gt;Download: http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA-jdk6.zip/&lt;br /&gt;unzip jboss-5.1.0.GA-jdk6.zip&lt;/pre&gt;&lt;b&gt;Step 2 - Install/deploy JBoss ESB 4.6 to AS&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;Download: http://www.jboss.org/downloading/?projectId=jbossesb&amp;amp;url=/jbossesb/downloads/4.6/binary/jbossesb-4.6.zip&lt;br /&gt;unzip jbossesb-4.6.zip&lt;br /&gt;cd /opt/local/jbossesb-4.6/install&lt;br /&gt;cp deployment.properties-example deployment.properties&lt;br /&gt;edit deployment.properties-example (set "org.jboss.esb.server.home=/opt/local/jboss-5.1.0.GA")&lt;br /&gt;ant deploy&lt;/pre&gt;&lt;b&gt;Step 3 - Build/Install/Deploy Riftsaw to AS&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;cd /opt/local&lt;br /&gt;mkdir riftsaw ; cd riftsaw&lt;br /&gt;svn checkout http://anonsvn.jboss.org/repos/riftsaw/trunk/&lt;br /&gt;mvn clean install -P docs&lt;br /&gt;cp distribution/target/riftsaw-2.0-SNAPSHOT.zip /opt/local&lt;br /&gt;cd /opt/local&lt;br /&gt;unzip riftsaw-2.0-SNAPSHOT.zip&lt;br /&gt;cd /opt/local/riftsaw-2.0-SNAPSHOT/install&lt;br /&gt;edit deployment.properties (set "org.jboss.esb.server.home=/opt/local/jboss-5.1.0.GA" and "org.jboss.esb.home=/opt/local/jbossesb-4.6")&lt;br /&gt;ant deploy&lt;/pre&gt;Note: An alternative to building Riftsaw from the trunk source would be to download the latest stable build from: http://www.jboss.org/riftsaw/downloads.html&lt;b&gt;&lt;br /&gt;&lt;br /&gt;Step 4 - Start up the AS server&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;cd /opt/local/jboss-5.1.0.GA/bin&lt;br /&gt;sh ./run.sh&lt;/pre&gt;&lt;b&gt;Step 5 - Run a quickstart&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This BPEL quickstart sends a message, modifies it, and sends back the modified version.&lt;br /&gt;&lt;pre&gt;cd /opt/local/riftsaw-2.0-SNAPSHOT/samples/quickstart/hello_world&lt;br /&gt;ant deploy&lt;br /&gt;ant sendhello&lt;br /&gt;View the process here: http://127.0.0.1:8080/bpel-console/org.jboss.bpm.console.Application/Application.html&lt;/pre&gt;OK. It's not really 5 steps, to run the quickstarts that use the ESB, there's one more step:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 6 - Run an ESB quickstart&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;First, deploy Riftsaw ESB samples to the ESB directory.&lt;br /&gt;&lt;pre&gt;cd /opt/local/riftsaw-2.0-SNAPSHOT/install&lt;br /&gt;ant deploy-esb-examples&lt;/pre&gt;Then, run a quickstart:&lt;br /&gt;&lt;pre&gt;cd /opt/local/jbossesb-4.6/samples/quickstarts/conf&lt;br /&gt;cp quickstarts.properties-example quickstarts.properties&lt;br /&gt;edit quickstarts.properties (set org.jboss.esb.server.home=/opt/local/jboss-5.1.0.GA)&lt;br /&gt;cd /opt/local/jbossesb-4.6/samples/quickstarts/bpel_helloworld&lt;br /&gt;ant deploy&lt;br /&gt;ant sendesb (to demonstrate an ESB action invoking a BPEL process)&lt;/pre&gt;Well - my 5 minutes are up. What's next? I want to try all the examples, read the documentation and spend a lot more than 5 minutes working with Riftsaw. I also want to examine Riftsaw-ESB integration in greater detail in a subsequent blog post. It's described in the User Guide... ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-8487462395919636578?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/8487462395919636578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/10/impatient-start-with-jboss-riftsaw-5.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/8487462395919636578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/8487462395919636578'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/10/impatient-start-with-jboss-riftsaw-5.html' title='An Impatient Start with JBoss Riftsaw - 5 steps in 5 minutes'/><author><name>Len DiMaggio</name><uri>http://www.blogger.com/profile/07124585546929851174</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='20' src='http://1.bp.blogspot.com/_Wad47xG7w3A/Sc7b75epEEI/AAAAAAAAAQ4/F9-h0znUI7w/S220/Boston.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-933655835437349584</id><published>2009-07-22T13:39:00.001-07:00</published><updated>2009-07-22T13:45:36.361-07:00</updated><title type='text'>BPEL Editor for RiftSaw</title><content type='html'>As many of you saw in Burr's webinar presentations today, we are planning on leveraging the Eclipse BPEL editor for use with the RiftSaw runtime. Consistent with JBoss practice, this editor will be distributed at part of &lt;a href="http://www.jboss.org/tools"&gt;JBoss Tools&lt;/a&gt;. I'd encourage those interested to visit the JBT site and make use of their downloads, forums, mailing lists, JIRA, etc. to participate in the open source community around this part of our BPEL offerings. Doing so will make sure that all involved see any questions or comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-933655835437349584?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/933655835437349584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/07/bpel-editor-for-riftsaw.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/933655835437349584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/933655835437349584'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/07/bpel-editor-for-riftsaw.html' title='BPEL Editor for RiftSaw'/><author><name>John Graham</name><uri>http://www.blogger.com/profile/02062334031161915809</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://4.bp.blogspot.com/_rdnXjhzRDJI/SJnvBlnKVGI/AAAAAAAAABQ/4Sd1TrJUsjQ/s1600-R/john_graham_rh_sm.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-6215373643797765322</id><published>2009-07-21T19:34:00.000-07:00</published><updated>2009-07-22T07:52:54.256-07:00</updated><title type='text'>Webinar: Simple, Open and Affordable BPEL</title><content type='html'>&lt;p&gt;As more and more organizations are leveraging BPEL to specify orchestration of Web services, there is a growing need for a simple, open and affordable implementation.&lt;/p&gt;       &lt;p&gt;In this session, you learn how Red Hat plans to deliver an enterprise-class, supported, open source BPEL engine as part of the JBoss Enterprise Middleware portfolio. You also learn how to leverage this technology to help your organization fulfill the promise SOA and have an opportunity to interact with the key engineers behind the product.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Date:&lt;/strong&gt; July 22, 2009&lt;br /&gt;      &lt;strong&gt;Time:&lt;/strong&gt; Choose from two live sessions:&lt;br /&gt;         - 9am EDT  (New York)  / 13:00 GMT / 3pm CEST (Paris)&lt;br /&gt;        - 2pm EDT (New York) / 18:00 GMT / 8pm CEST (Paris)&lt;/p&gt;&lt;strong&gt;Speaker:&lt;/strong&gt;        &lt;a class="thumb" href="http://www.jboss.com/promo/BRMWebinarSeries/"&gt;Burr Sutter&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://inquiries.jboss.com/go/redhat/20090722BPELWebinar"&gt;Register Now&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jboss.com/promo/BRMWebinarSeries/"&gt;http://www.jboss.com/promo/BRMWebinarSeries/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is &lt;a href="http://www.jboss.org/community/servlet/JiveServlet/download/13849-6-6610/Riftsaw_Intro_July_22_2009.pdf"&gt;link to the slides&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-6215373643797765322?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/6215373643797765322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/07/web-inar-simple-open-and-affordable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6215373643797765322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/6215373643797765322'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/07/web-inar-simple-open-and-affordable.html' title='Webinar: Simple, Open and Affordable BPEL'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8918640537180525165.post-2253548501819894548</id><published>2009-07-21T15:49:00.000-07:00</published><updated>2009-07-21T16:56:04.330-07:00</updated><title type='text'>JBoss BPEL Server</title><content type='html'>&lt;a href="http://www.jboss.org/riftsaw"&gt;Project Riftsaw&lt;/a&gt; is a WS-BPEL 2.0 engine that is optimized for the JBoss Application Server container. &lt;a href="http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html"&gt;WS-BPEL 2.0&lt;/a&gt; is an XML-based language for defining business processes that orchestrate web services.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fAUX2tnEInU/SmZQ0fV_-kI/AAAAAAAAAF4/iROHNzEEfG0/s1600-h/Picture+2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 198px;" src="http://1.bp.blogspot.com/_fAUX2tnEInU/SmZQ0fV_-kI/AAAAAAAAAF4/iROHNzEEfG0/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5361061269128346178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Riftsaw supports :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    short-lived and long-running process executions&lt;/li&gt;&lt;li&gt;    process persistence &amp;amp; recovery&lt;/li&gt;&lt;li&gt;    process versioning&lt;/li&gt;&lt;li&gt;    JBoss deployment architecture, enabling hot deployment&lt;/li&gt;&lt;li&gt;    ant-based deployment&lt;/li&gt;&lt;li&gt;    integrated with the &lt;a href="http://jboss.org/jbossesb/"&gt;JBoss ESB&lt;/a&gt;&lt;/li&gt;&lt;li&gt;    Eclipse-based designer (Bundled with &lt;a href="http://www.jboss.org/tools"&gt;JBoss Tools 3.1&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;Riftsaw is based on &lt;a href="http://ode.apache.org/"&gt;Apache Ode&lt;/a&gt; and will extend Ode in the following ways:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Tight integration with Eclipse BPEL editor&lt;/li&gt;&lt;li&gt;    Support for JBossWS, and therefore the three web service stacks (Native, Apache CXF and Metro)&lt;/li&gt;&lt;li&gt;    Enterprise quality management console&lt;/li&gt;&lt;li&gt;    Runs in JBoss Cluster&lt;/li&gt;&lt;/ul&gt;We welcome your input and involvement.  Please get started as an end-user by downloading these items, read the getting started guide and provide feedback in the forums.  If you are interested in becoming a contributor to this new and exciting project please use the &lt;a href="https://lists.sourceforge.net/lists/listinfo/riftsaw-developer"&gt;developer forums&lt;/a&gt; to contact us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8918640537180525165-2253548501819894548?l=riftsaw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://riftsaw.blogspot.com/feeds/2253548501819894548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://riftsaw.blogspot.com/2009/07/jboss-bpel-server.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/2253548501819894548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8918640537180525165/posts/default/2253548501819894548'/><link rel='alternate' type='text/html' href='http://riftsaw.blogspot.com/2009/07/jboss-bpel-server.html' title='JBoss BPEL Server'/><author><name>Kurt Stam</name><uri>http://www.blogger.com/profile/07418191492358888029</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://3.bp.blogspot.com/_fAUX2tnEInU/SoGKASmOx3I/AAAAAAAAAGE/HGxLbl1Doro/S220/kurtstam.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fAUX2tnEInU/SmZQ0fV_-kI/AAAAAAAAAF4/iROHNzEEfG0/s72-c/Picture+2.png' height='72' width='72'/><thr:total>3</thr:total></entry></feed>
