Mar 08

Since Sun Microsystems started the Java Business Integration specification work, and subsequently started releasing the OpenESB platform and components around 2006, until Sun was acquired by Oracle around 2010, I published a number of blog articles dealing with different aspects of the JBI-based technologies embedded in the OpenESB, GlassFish ESB and Java CAPS/JBI. I lost interest in the topic when Sun acquisition was completed and it became clear to me that the JBI specification will not be supported by Oracle other as part of the legacy Java CAPS/JBI and the GlassFish ESB products. Around the same time there was a fair bit of activity around the OpenESB community aimed at working out whether and how OpenESB can be picked up by the community, perhaps development branch forked so it can be controlled by the community, etc.. Since I did not expect that effort to lead anywhere I stopped following these discussions and eventually OpenESB mailing lists to which I was subscribed disappeared to be replaced by others to which I did not subscribe.

I never went back to my original blog articles to see if they are still implementable and whether the software used in them is still available. Needless to say some articles can no longer be implemented as written and the links to the OpenESB / GlassFish ESB distributions which I provided in my articles no longer lead anywhere useful.

Recently I had an occasion to look at some of the articles and it occurred to me that perhaps they can be updated if OpenESB is available somewhere, so people can still try them. I did put a fair bit of effort into the articles and it is such a waste to have the solutions unimplementable. I went looking for OpenESB distributions to see if they are available, what state they are in, and whether anyone cares. It turned out that LogiCoy (http://www.logicoy.com/) maintains and develops OpenESB, at least one distribution of which is publically available, and I know some of the people at LogiCoy who are working on this platform. I understand from them that a new release, v2.3 (of which a Beta version is available at the community site – http://www.open-esb.net/) will be officially released sometime this month. Once the release is available I will come back to this article to provide the link to it and perhaps to the installation documentation.

In the spirit of “Jacques Brel is Alive and Well and Living in Paris” (http://en.wikipedia.org/wiki/Jacques_Brel_is_Alive_and_Well_and_Living_in_Paris) I decided to have a look at my JBI articles and release updated versions using the OpenESB distribution released to the community by LogiCoy’s. This will happen as time and motivation permit.

In this article I am listing articles which I may get around to updating to work with LogiCoy’s version of OpenESB, and their status (Not started, Updated, Never to be worked on again). This blog entry is available at http://blogs.czapski.id.au/wp-content/uploads/2013/03/OpenESBIsALiveAndWellAndLivingIn…_v0.1.0.pdf.

 

Nov 27

The BPEL SE, featured in the GlassFish ESB, the OpenESB and the Java CAPS 6, has the ability to execute JavaScript (ECMAScript) code inline. Why would one do that, you may ask. The answer is: because BPEL, great as it is with XML all over the place and all, can not do everything, and invoking Web Services and POJOs from BPEL for small and simple code adds too much overhead.

Take a date conversion, for example. It takes about 4 lines of Java code to perform date conversion. Doing this in BPEL is too horrible to contemplate. Doing this in JavaScript is not too bad, given availability of ready-made JavaScript scripts that do the job.  The issue is that one cannot invoke Java from BPEL without resorting to a web service or a POJO. Invoking JavaScript, on the other hand, does not require either. Furthermore, JavaScript, in the Netscape days, acquired the ability to embed Java using technology known as LiveConnect.

In this Note we will explore the BPEL SE capability to execute JavaScript code inline. In passing we will also explored the ability of JavaScript to execute Java statements, and through these means to extend BPEL 2.0 with arbitrarily sophisticated functionality, without having to resort to invoking web services or POJOs.

We will introduce 2 Rules which must be followed, and 1 Rule which should be followed, for successful BPEL and  JavaScript integration. We will develop two complete examples of embedded JavaScript code that provides reasonably useful functionality not natively available through BPEL. While the two examples will be fairly trivial it will be clear that more sophisticated functionality can be added following the method introduced in this Note.

Writeup, BPEL_JavaScript_Java_GetProperty_v1.0.2.pdf, can be found at http://blogs.czapski.id.au/wp-content/uploads/2010/03/BPEL_JavaScript_Java_GetProperty_v1.0.2.pdf

Projects, developed in the writeup, in the archive BPEL_JavaScript_Java_GetProperty_v1.0.2_code_bis.zip, are to be found at http://blogs.czapski.id.au/wp-content/uploads/2010/03/BPEL_JavaScript_Java_GetProperty_v1.0.2_code_bis.zip

preload preload preload