Working with XSLT Service Engine: Part 2

Project summary: In This project, I am going to do xml to xml transformation using Service Bridge. Please Check working with XSLT Service Engine Part 1 for more details about XSLT Service engine and sample project for Request-Reply service of XSLT service Engine. In this sample project I am going to take customer information like Name , Address , Personal Data in separate node and then merge all above info in single node. Creating Sample Project Using   Service Bridge (xml to xml transformation) In Service Bridge we can apply multiple xml transformation on request xml and then send output back to source. We need to have same number of wsdl operation as number of transformation we want to do. In this project I am going to apply two xml transformations. So I need to create two wsdl as webservice operation to perform transformation. Let’s  say Request1 and response 1 – first operation Request2 and response 2 – second operation Client will send request via request 1 and response 1 will get back to client but over all process will something like this . (Client input xml)Request1–>apply xsl on input to generate request2–>  request 2àappy xsl on request 2 generate response 2–>  response 2 –> apply xsl on response2 to generate response1 –> response 1(client output xml). Create XSLT Module: Please refer to part 1 for details to create XSLT module. Create XSD for request and reply operation <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xml.netbeans.org/schema/CustomerDetails" xmlns:tns="http://xml.netbeans.org/schema/CustomerDetails" elementFormDefault="qualified"> <xsd:complexType name="CustomerName"> <xsd:sequence> <xsd:element name="firstName" type="xsd:string"/> <xsd:element name="lastName" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="CustomerAddress"> <xsd:sequence> <xsd:element name="HomeAddress"/> <xsd:element name="OfficeAddress"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="PersonalData"> <xsd:sequence> <xsd:element name="gender" type="xsd:string"/> <xsd:element...

Working with OpenESB WLMSE

Overview Here we will attempt to create simple Application that demonstrate use of WLM Application. Before we begin, quick introduction to WLM is appropriate. WLM stands for Worklist Manager. It allows you to create Web Service Application that require human action/decision (one of pre-defined options) based upon some input data. So, in nutshell, the WLM application can be fed messages (predefined type) and exposes some API’s (can be used to build Web Interface) that allows assigned user’s to see the requests as list of tasks for some actions/decisions. The resulting choice of the user will be sent back as output message (again pre-defined type) to calling service. The service interface is defined using WSDL and the communication is Synchronous. WLM application can be best thought of means to incorporate human step in an automated process. For example, if you need to incorporate human approval step in you BPEL Process, you can achieve this using WLM Application. It also provide features such as Task Escalation, Notification etc. This is what we are going to do in this Helloworld Application. A WLM Application has three components: Please refer to Downloads for required components download Design Time You can use Netbeans (download page) with SOA Modules and create WLM Project type. Using worklist editor, you create task definition wherein the aspects about the task definition is specified. More on this later. Runtime The built project is deployed on Glassfish with JBI Runtime Environment. Project Open-ESB provides a Service Engine called sun-wlm-engine which provide runtime implementation for WLM Projects. Web Application The Users of the Task can log on to Web Console and...

Running Apache Camel in OpenESB

Introduction Apache Camel is a widely used java based integration framework. Apache camel’s strengh lies in its simple,light weight and modular approach as well as its easy-to-use implementation of Gregor Hoppe’s Enterprise Integration Patterns. It is also a very light weight framework that can also be easily embedded with other applications as a library. In Open ESB, we can utilise Camel for all its strength ranging from routing & mediation, to utilising the camel components which are missing in open esb, to integrating existing Camel applications with Open ESB. We now have a service engine called Camel SE which will act as a bridge between JBI and Camel technologies. By having a Service Engine for Apache Camel, OpenESB can utilize Apache camel by participating in message exchanges. This way we have both the technologies collaborating seamlessly. For example, HTTP BC can receive a message and can send it to Camel SE which can mediate, route, process the message, can invoke OpenESB’s JMS BC and can reply to HTTP BC. The following blog is a tutorial on how exactly we can achieve this. In this entry I will write a step by step guide on how to use the new Camel Service Engine to utilize Apache Camel in Open ESB. We will use OpenESB’s HTTP BC to receive http soap message, send it to Apache Active MQ’s queue, send it to Camel Processor and then reply to sender. You need to have both the runtime and design time modules of Camel SE to try this. Installing Runtime jar 1. Download the runtime service engine jar from here: http://hudson.openesb-dev.org:8080/hudson/job/openesb-components-git/lastSuccessfulBuild/artifact/dist/camelse.jar 2. Go to Servers...