ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthieu Riou" <matth...@offthelip.org>
Subject Re: Axis2 Integration
Date Wed, 12 Sep 2007 22:39:21 GMT
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

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

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.



On 9/12/07, Thilina Gunarathne <csethil@gmail.com> 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

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message