Hi Thilina, First our documentation at the integration layer is not that good, so far we've been mostly assuming it was internal stuff, however we may need to reconsider as more and more people are looking at it. But anyway that doesn't really help you.
So basically the WAR version of ODE is packaged inside Axis2, so almost everything that holds for a classic Axis2 deployment still holds (minor a couple of things specific to our configuration like the services URL space or ws-addressing). The integration itself is pretty simple, we just create services into Axis2 and use the receiver to get messages and forward them to our infrastructure. However everything is programmatic as we need a dynamic behavior (if you hot-deploy a process, the service gets created, if you undeploy the service is removed) as Alex mentioned. So we had to let go of the Axis2 static service configuration (i.e. the configuration files) to provide that dynamicity. However there are many possible things to improve our integration, we've just been working on other areas so far. To provide the functionalities you describe I could think of 2 different ways: * One possibility could be to allow the inclusion of a service.xml in a process deployment and have ODE feed that into Axis2 when it creates the service for a process. * I'm not sure it's possible in Axis2 to go the other way around and specify, in a module, which services it should be applied on but if it was that could be a solution as well. You would install your module and it would "plug" itself on the service. Although that would require some appserver-like dependency management where the module would just not load if the service is not there and then load automatically when the service appears (in most app servers, when an EJB doesn't get deployed because it needs a missing datasource, if the datasource appears the deployment will be resumed). The first one is probably the easier, I'm just mentioning the second in case you already had something similar in the work. If you want to get familiar with our integration, the easiest way for now is to look at the source. A service gets registered using the ODEAxisService [1]. Messages are sent using ExternalService[2] and received using our message receiver [3]. We could work out something by adding a method in ProcessConf (passed to createService in [1]) to access the deployed service.xml. For the bigger picture the integration API has a decent javadoc that you can check at [4]. The most interesting interfaces to start with are MessageExchange, BindingContext and MessageExchangeContext. Let us know what you have in mind. Matthieu [1] http://svn.apache.org/repos/asf/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEAxisService.java [2] http://svn.apache.org/repos/asf/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ExternalService.java [3] http://svn.apache.org/repos/asf/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/hooks/ODEMessageReceiver.java [4] http://people.apache.org/~mriou/ode-site/javadoc/org/apache/ode/bpel/iapi/package-summary.html On 9/12/07, Thilina Gunarathne <[EMAIL PROTECTED]> wrote: > > Hi all, > Is there a architecutral (or any:) ) document explaining the Axis2 > integration in Ode. > > I would like to use some custom Axis2 modules together with processes > deployed in ODE. For an example let's say I need to enable logging > module [1] in order to log all the messages sent and received by a > certain process. > > I also might need to write a custom module which will share some data > with messages sent/received by a certain process instance. Does ODE > associates Axis2 service contexts or service groups contexts with a > running process instance?. Does ODE reuse the Axis2 server's > ConfigurationContext/ServiceContext when sending message from a > process instance. > > thanks a lot in advance, > Thilina > > [1] http://ws.apache.org/axis2/1_3/modules.html > -- > Thilina Gunarathne - http://thilinag.blogspot.com >
