You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Giorgio M." <gi...@email.it> on 2008/08/28 12:47:21 UTC

Ode source code modification

Hi to all,

i have the necessity to modify the Apache ODE source code in order to
accomplish the following task: i've designed the BPEL process in wich
several web services are invoked; i have to call, before each service
invocation (INVOKE operation in BPEL), an external java class
(implemented by myself)!

Wich part of source code should i modify (where i can put the external
java class call) in order to accomplish this task?? which is the class
responsible of service invocation (i mean wich is the class where INVOKE
operation is executed)??

Hope somebody can help me

thanks to everybody,

best regards


Re: Ode source code modification

Posted by "Giorgio M." <gi...@email.it>.
Il giorno gio, 28/08/2008 alle 15.10 -0700, Matthieu Riou ha scritto:
> On Thu, Aug 28, 2008 at 9:00 AM, Giorgio M. <gi...@email.it>wrote:
> 
> > Thanks a lot Matthieu, i saw you are an ODE developer!!
> >
> 
> And so is Tammo :)

Very nice, who can help me better then you ?! lol
> >
> > Please, could you be more precise in your explanation?
> >
> > - how can i subclass the ODEServer? it's just a class and it's not
> > extendible.
> 
> 
> public class MyServer extends ODEServer {
>     protected void initBpelServer(EndpointReferenceContextImpl eprContext) {
>       // Copy/paste the original with a few minor tweaks
>     }
> }
> 
what exactly?is this method called anytime that a service inside the
process is invoked?

> The initBpelServer method is private right now but that can be changed
> easily. I'd advise the second option though, less fragile.

How?

> >
> > - about the alternative: how can i build an Axis2 module?and what have i
> > do with this module??
> 
> 
> I'll point you to the Axis2 documentation, this is on Axis2 feature and is
> just related to ODE because we use Axis2 for invocation.
> 
> http://ws.apache.org/axis2/1_4_1/modules.html

I have no experience with this type ofprogramming, so excuse me for all
the questions...
What do i have to put inside this Axis2 module and how can i attach it
to the ode engine?

> >
> > - The message exchange interceptor is not a way to resolve my issue? can
> > i make an interceptor and then intercept events regarding the invoke of
> > a service (partner role ??)? at that point i could raise a fail or fault
> > exception and then stop the process.
> > Is it possible?
> >
> 
> IIRC the mex interceptors are incoming messages only.

Do you mean incoming messages to the ODE server?wich type of messages
mex interceptors can capture?
i need to capture messages invocation to each service that compose the
BPEL process! is it achievable by using mex interceptors?


> Matthieu

Thanks again

> >
> > Thanks very much for your help
> >
> > Giorgio
> >
> > Il giorno gio, 28/08/2008 alle 08.24 -0700, Matthieu Riou ha scritto:
> > > On Thu, Aug 28, 2008 at 6:55 AM, Giorgio M. <giorgio.marciano@email.it
> > >wrote:
> > >
> > > > Ok, hence can i use interceptor in order to capture a service
> > invocation
> > > > message? i mean, can i capture single atomic service start event (that
> > > > compose with the other service the process) instead of the more generic
> > > > process start event? I need to intercept every single invocation (every
> > > > single invoke within the BPEL process) and if the user is not
> > > > authorized, generate an error and stop the process execution. Can I do
> > > > it with Message Exchange Interceptors??
> > > >
> > >
> > > Check the method createPartnerRoleChannel in BindingContextImpl. This get
> > > called anytime a process that uses a new service is deployed. You'll
> > > probably have to subclass ODEServer to plug in your implementation tough.
> > >
> > > An alternative could be an Axis2 module that would add an outgoing phase
> > for
> > > each invocation. There you could check your authorizations at first
> > > invocation of an endpoing (an pass through every subsequent invocations).
> > >
> > > Matthieu
> > >
> > >
> > > >
> > > > thanks again for your precious help
> > > >
> > > > Giorgio
> > > >
> > > > Il giorno gio, 28/08/2008 alle 15.18 +0200, Tammo van Lessen ha
> > scritto:
> > > > > You don't have to compile ODE but you have to compile your java
> > class.
> > > > > If you use the Axis2 deployment of Ode you can simply add your
> > class/jar
> > > > > file to ode's WEB-INF/classes or WEB-INF/libs directory respectively.
> > > > > Your classes are then included in the classpath and can be referenced
> > > > > within Ode.
> > > > >
> > > > > Best,
> > > > >   Tammo
> > > > >
> > > > > Giorgio M. wrote:
> > > > > > Hi Tammo,
> > > > > >
> > > > > > thanks very much for your response, i'm going to look at the
> > classes
> > > > > > you've advised to me.
> > > > > > I try to be more detailed about my issue: is there a way to attach
> > a
> > > > > > java class to the ODE (without compile it) that is called everytime
> > > > each
> > > > > > service (that compose the BPEL process) is called for the first
> > time??
> > > > > >
> > > > > > The background of my ploblem is the following: i've the necessity
> > to
> > > > > > call a profiler that control permissions (each time that a service
> > > > > > inside the BPEL process is called) in order to establish whether
> > the
> > > > > > caller is authorized or not to execute that service.
> > > > > >
> > > > > > Any suggestion?
> > > > > >
> > > > > > thanks a lot
> > > > > >
> > > > > > Il giorno gio, 28/08/2008 alle 14.39 +0200, Tammo van Lessen ha
> > > > scritto:
> > > > > >> Hi Giorgio,
> > > > > >>
> > > > > >> you could have a look at BpelEventListener.java and
> > > > > >> MessageExchangeInterceptor.java as a starting point if you want to
> > get
> > > > > >> notified by execution events or want to intercept message
> > exchanges.
> > > > > >>
> > > > > >> See also [1] and [2].
> > > > > >>
> > > > > >> HTH,
> > > > > >>   Tammo
> > > > > >>
> > > > > >> [1]
> > http://ode.apache.org/user-guide.html#UserGuide-ODEExecutionEvents
> > > > > >> [2]
> > > >
> > http://www.intalio.org/confluence/display/PXE/Message+Exchange+Interceptors
> > > > > >>
> > > > > >> Giorgio M. wrote:
> > > > > >>> Hi to all,
> > > > > >>>
> > > > > >>> i have the necessity to modify the Apache ODE source code in
> > order to
> > > > > >>> accomplish the following task: i've designed the BPEL process in
> > wich
> > > > > >>> several web services are invoked; i have to call, before each
> > service
> > > > > >>> invocation (INVOKE operation in BPEL), an external java class
> > > > > >>> (implemented by myself)!
> > > > > >>>
> > > > > >>> Wich part of source code should i modify (where i can put the
> > > > external
> > > > > >>> java class call) in order to accomplish this task?? which is the
> > > > class
> > > > > >>> responsible of service invocation (i mean wich is the class where
> > > > INVOKE
> > > > > >>> operation is executed)??
> > > > > >>>
> > > > > >>> Hope somebody can help me
> > > > > >>>
> > > > > >>> thanks to everybody,
> > > > > >>>
> > > > > >>> best regards
> > > > > >>>
> > > > > >
> > > > >
> > > >
> > > >
> >
> >


Re: Ode source code modification

Posted by Matthieu Riou <ma...@offthelip.org>.
On Thu, Aug 28, 2008 at 9:00 AM, Giorgio M. <gi...@email.it>wrote:

> Thanks a lot Matthieu, i saw you are an ODE developer!!
>

And so is Tammo :)


>
> Please, could you be more precise in your explanation?
>
> - how can i subclass the ODEServer? it's just a class and it's not
> extendible.


public class MyServer extends ODEServer {
    protected void initBpelServer(EndpointReferenceContextImpl eprContext) {
      // Copy/paste the original with a few minor tweaks
    }
}

The initBpelServer method is private right now but that can be changed
easily. I'd advise the second option though, less fragile.


>
> - about the alternative: how can i build an Axis2 module?and what have i
> do with this module??


I'll point you to the Axis2 documentation, this is on Axis2 feature and is
just related to ODE because we use Axis2 for invocation.

http://ws.apache.org/axis2/1_4_1/modules.html


>
> - The message exchange interceptor is not a way to resolve my issue? can
> i make an interceptor and then intercept events regarding the invoke of
> a service (partner role ??)? at that point i could raise a fail or fault
> exception and then stop the process.
> Is it possible?
>

IIRC the mex interceptors are incoming messages only.

Matthieu


>
> Thanks very much for your help
>
> Giorgio
>
> Il giorno gio, 28/08/2008 alle 08.24 -0700, Matthieu Riou ha scritto:
> > On Thu, Aug 28, 2008 at 6:55 AM, Giorgio M. <giorgio.marciano@email.it
> >wrote:
> >
> > > Ok, hence can i use interceptor in order to capture a service
> invocation
> > > message? i mean, can i capture single atomic service start event (that
> > > compose with the other service the process) instead of the more generic
> > > process start event? I need to intercept every single invocation (every
> > > single invoke within the BPEL process) and if the user is not
> > > authorized, generate an error and stop the process execution. Can I do
> > > it with Message Exchange Interceptors??
> > >
> >
> > Check the method createPartnerRoleChannel in BindingContextImpl. This get
> > called anytime a process that uses a new service is deployed. You'll
> > probably have to subclass ODEServer to plug in your implementation tough.
> >
> > An alternative could be an Axis2 module that would add an outgoing phase
> for
> > each invocation. There you could check your authorizations at first
> > invocation of an endpoing (an pass through every subsequent invocations).
> >
> > Matthieu
> >
> >
> > >
> > > thanks again for your precious help
> > >
> > > Giorgio
> > >
> > > Il giorno gio, 28/08/2008 alle 15.18 +0200, Tammo van Lessen ha
> scritto:
> > > > You don't have to compile ODE but you have to compile your java
> class.
> > > > If you use the Axis2 deployment of Ode you can simply add your
> class/jar
> > > > file to ode's WEB-INF/classes or WEB-INF/libs directory respectively.
> > > > Your classes are then included in the classpath and can be referenced
> > > > within Ode.
> > > >
> > > > Best,
> > > >   Tammo
> > > >
> > > > Giorgio M. wrote:
> > > > > Hi Tammo,
> > > > >
> > > > > thanks very much for your response, i'm going to look at the
> classes
> > > > > you've advised to me.
> > > > > I try to be more detailed about my issue: is there a way to attach
> a
> > > > > java class to the ODE (without compile it) that is called everytime
> > > each
> > > > > service (that compose the BPEL process) is called for the first
> time??
> > > > >
> > > > > The background of my ploblem is the following: i've the necessity
> to
> > > > > call a profiler that control permissions (each time that a service
> > > > > inside the BPEL process is called) in order to establish whether
> the
> > > > > caller is authorized or not to execute that service.
> > > > >
> > > > > Any suggestion?
> > > > >
> > > > > thanks a lot
> > > > >
> > > > > Il giorno gio, 28/08/2008 alle 14.39 +0200, Tammo van Lessen ha
> > > scritto:
> > > > >> Hi Giorgio,
> > > > >>
> > > > >> you could have a look at BpelEventListener.java and
> > > > >> MessageExchangeInterceptor.java as a starting point if you want to
> get
> > > > >> notified by execution events or want to intercept message
> exchanges.
> > > > >>
> > > > >> See also [1] and [2].
> > > > >>
> > > > >> HTH,
> > > > >>   Tammo
> > > > >>
> > > > >> [1]
> http://ode.apache.org/user-guide.html#UserGuide-ODEExecutionEvents
> > > > >> [2]
> > >
> http://www.intalio.org/confluence/display/PXE/Message+Exchange+Interceptors
> > > > >>
> > > > >> Giorgio M. wrote:
> > > > >>> Hi to all,
> > > > >>>
> > > > >>> i have the necessity to modify the Apache ODE source code in
> order to
> > > > >>> accomplish the following task: i've designed the BPEL process in
> wich
> > > > >>> several web services are invoked; i have to call, before each
> service
> > > > >>> invocation (INVOKE operation in BPEL), an external java class
> > > > >>> (implemented by myself)!
> > > > >>>
> > > > >>> Wich part of source code should i modify (where i can put the
> > > external
> > > > >>> java class call) in order to accomplish this task?? which is the
> > > class
> > > > >>> responsible of service invocation (i mean wich is the class where
> > > INVOKE
> > > > >>> operation is executed)??
> > > > >>>
> > > > >>> Hope somebody can help me
> > > > >>>
> > > > >>> thanks to everybody,
> > > > >>>
> > > > >>> best regards
> > > > >>>
> > > > >
> > > >
> > >
> > >
>
>

Re: Ode source code modification

Posted by "Giorgio M." <gi...@email.it>.
Thanks a lot Matthieu, i saw you are an ODE developer!!

Please, could you be more precise in your explanation?

- how can i subclass the ODEServer? it's just a class and it's not
extendible.
- about the alternative: how can i build an Axis2 module?and what have i
do with this module??
- The message exchange interceptor is not a way to resolve my issue? can
i make an interceptor and then intercept events regarding the invoke of
a service (partner role ??)? at that point i could raise a fail or fault
exception and then stop the process.
Is it possible?

Thanks very much for your help

Giorgio

Il giorno gio, 28/08/2008 alle 08.24 -0700, Matthieu Riou ha scritto:
> On Thu, Aug 28, 2008 at 6:55 AM, Giorgio M. <gi...@email.it>wrote:
> 
> > Ok, hence can i use interceptor in order to capture a service invocation
> > message? i mean, can i capture single atomic service start event (that
> > compose with the other service the process) instead of the more generic
> > process start event? I need to intercept every single invocation (every
> > single invoke within the BPEL process) and if the user is not
> > authorized, generate an error and stop the process execution. Can I do
> > it with Message Exchange Interceptors??
> >
> 
> Check the method createPartnerRoleChannel in BindingContextImpl. This get
> called anytime a process that uses a new service is deployed. You'll
> probably have to subclass ODEServer to plug in your implementation tough.
> 
> An alternative could be an Axis2 module that would add an outgoing phase for
> each invocation. There you could check your authorizations at first
> invocation of an endpoing (an pass through every subsequent invocations).
> 
> Matthieu
> 
> 
> >
> > thanks again for your precious help
> >
> > Giorgio
> >
> > Il giorno gio, 28/08/2008 alle 15.18 +0200, Tammo van Lessen ha scritto:
> > > You don't have to compile ODE but you have to compile your java class.
> > > If you use the Axis2 deployment of Ode you can simply add your class/jar
> > > file to ode's WEB-INF/classes or WEB-INF/libs directory respectively.
> > > Your classes are then included in the classpath and can be referenced
> > > within Ode.
> > >
> > > Best,
> > >   Tammo
> > >
> > > Giorgio M. wrote:
> > > > Hi Tammo,
> > > >
> > > > thanks very much for your response, i'm going to look at the classes
> > > > you've advised to me.
> > > > I try to be more detailed about my issue: is there a way to attach a
> > > > java class to the ODE (without compile it) that is called everytime
> > each
> > > > service (that compose the BPEL process) is called for the first time??
> > > >
> > > > The background of my ploblem is the following: i've the necessity to
> > > > call a profiler that control permissions (each time that a service
> > > > inside the BPEL process is called) in order to establish whether the
> > > > caller is authorized or not to execute that service.
> > > >
> > > > Any suggestion?
> > > >
> > > > thanks a lot
> > > >
> > > > Il giorno gio, 28/08/2008 alle 14.39 +0200, Tammo van Lessen ha
> > scritto:
> > > >> Hi Giorgio,
> > > >>
> > > >> you could have a look at BpelEventListener.java and
> > > >> MessageExchangeInterceptor.java as a starting point if you want to get
> > > >> notified by execution events or want to intercept message exchanges.
> > > >>
> > > >> See also [1] and [2].
> > > >>
> > > >> HTH,
> > > >>   Tammo
> > > >>
> > > >> [1]http://ode.apache.org/user-guide.html#UserGuide-ODEExecutionEvents
> > > >> [2]
> > http://www.intalio.org/confluence/display/PXE/Message+Exchange+Interceptors
> > > >>
> > > >> Giorgio M. wrote:
> > > >>> Hi to all,
> > > >>>
> > > >>> i have the necessity to modify the Apache ODE source code in order to
> > > >>> accomplish the following task: i've designed the BPEL process in wich
> > > >>> several web services are invoked; i have to call, before each service
> > > >>> invocation (INVOKE operation in BPEL), an external java class
> > > >>> (implemented by myself)!
> > > >>>
> > > >>> Wich part of source code should i modify (where i can put the
> > external
> > > >>> java class call) in order to accomplish this task?? which is the
> > class
> > > >>> responsible of service invocation (i mean wich is the class where
> > INVOKE
> > > >>> operation is executed)??
> > > >>>
> > > >>> Hope somebody can help me
> > > >>>
> > > >>> thanks to everybody,
> > > >>>
> > > >>> best regards
> > > >>>
> > > >
> > >
> >
> >


Re: Ode source code modification

Posted by Matthieu Riou <ma...@offthelip.org>.
On Thu, Aug 28, 2008 at 10:04 AM, Tammo van Lessen <tv...@gmail.com>wrote:

> Matthieu Riou wrote:
> > On Thu, Aug 28, 2008 at 6:55 AM, Giorgio M. <giorgio.marciano@email.it
> >wrote:
> >
> >> Ok, hence can i use interceptor in order to capture a service invocation
> >> message? i mean, can i capture single atomic service start event (that
> >> compose with the other service the process) instead of the more generic
> >> process start event? I need to intercept every single invocation (every
> >> single invoke within the BPEL process) and if the user is not
> >> authorized, generate an error and stop the process execution. Can I do
> >> it with Message Exchange Interceptors??
> >>
> >
> > Check the method createPartnerRoleChannel in BindingContextImpl. This get
> > called anytime a process that uses a new service is deployed. You'll
> > probably have to subclass ODEServer to plug in your implementation tough.
>
> Apropos, is there a reason why we don't use dependency injection? I
> think it would ease such configuration issues a lot, though it would
> require quite huge refactorings.
>

We've rejected the option so far for the "lots of dependencies" reason
mentioned by Paul. And also the size of the refactoring. Plus for the server
itself we don't really need it, that would only be useful to wire up the IL.
Plus we already have enough XML :)

If one of us had the time I think I'd rather clean up the IL  instantiation
and configuration code to make it easier to configure it programmatically or
through a little script (Rhino for example as we already have it). It could
even be Spring friendly for those who would want to use it. I might need to
do something like that at some point with SimPEL and the embedded IL as it
would be nice to mix and match messaging layers and decouple the messaging
stuff from the lifecycle stuff. So if someone want to have some fun with
this, be my guest :)

Matthieu


>
> Tammo
>

Re: Ode source code modification

Posted by Tammo van Lessen <tv...@gmail.com>.
Paul Brown wrote:
> 
> On Aug 28, 2008, at 10:04 AM, Tammo van Lessen wrote:
>> Apropos, is there a reason why we don't use dependency injection? I
>> think it would ease such configuration issues a lot, though it would
>> require quite huge refactorings.
> 
> You mean use Spring or Guice or some such?  I'd give Spring a -1 just
> because I can't stand to look at the object model (piled three and four
> deep with subclasses...) and because it's not well-factored for polite
> use as a library (lots of dependencies, etc.).
> 
> What are the use cases for the engine that would be helped with a DI
> framework?  (In the olden days of PXE pre-ODE, we used a dual-layer
> scheme with JMX and JNDI...  Not something that I'd advocate
> reintroducing at any rate.)

I haven't tried Guice yet, regarding Spring do you mean the whole
framework or just the spring-beans part? I think this one is, well, sort
of slim. The interesting part would be to have an external (i.e. not
compiled) configuration file where you could wire components together,
e.g. to replace the scheduler impl, to add extension bundles, xpath
functions, expression languages, transaction managers, this kind of
stuff, instead of directly setting it. ODEServer.initBpelServer is such
an example where DI could make ODE more extensible/configureable without
need to recompile the whole thing.

AFAIK Guice does not support wiring via e.g. XML files, that's why I was
thinking about Spring (due to not knowing alternatives). In general
there is still the question whether such an refactoring is worth it.

Tammo

Re: Ode source code modification

Posted by Paul Brown <pa...@gmail.com>.
On Aug 28, 2008, at 10:04 AM, Tammo van Lessen wrote:
> Apropos, is there a reason why we don't use dependency injection? I
> think it would ease such configuration issues a lot, though it would
> require quite huge refactorings.

You mean use Spring or Guice or some such?  I'd give Spring a -1 just  
because I can't stand to look at the object model (piled three and  
four deep with subclasses...) and because it's not well-factored for  
polite use as a library (lots of dependencies, etc.).

What are the use cases for the engine that would be helped with a DI  
framework?  (In the olden days of PXE pre-ODE, we used a dual-layer  
scheme with JMX and JNDI...  Not something that I'd advocate  
reintroducing at any rate.)

-- Paul

Re: Ode source code modification

Posted by Tammo van Lessen <tv...@gmail.com>.
Matthieu Riou wrote:
> On Thu, Aug 28, 2008 at 6:55 AM, Giorgio M. <gi...@email.it>wrote:
> 
>> Ok, hence can i use interceptor in order to capture a service invocation
>> message? i mean, can i capture single atomic service start event (that
>> compose with the other service the process) instead of the more generic
>> process start event? I need to intercept every single invocation (every
>> single invoke within the BPEL process) and if the user is not
>> authorized, generate an error and stop the process execution. Can I do
>> it with Message Exchange Interceptors??
>>
> 
> Check the method createPartnerRoleChannel in BindingContextImpl. This get
> called anytime a process that uses a new service is deployed. You'll
> probably have to subclass ODEServer to plug in your implementation tough.

Apropos, is there a reason why we don't use dependency injection? I
think it would ease such configuration issues a lot, though it would
require quite huge refactorings.

Tammo

Re: Ode source code modification

Posted by Matthieu Riou <ma...@offthelip.org>.
On Thu, Aug 28, 2008 at 6:55 AM, Giorgio M. <gi...@email.it>wrote:

> Ok, hence can i use interceptor in order to capture a service invocation
> message? i mean, can i capture single atomic service start event (that
> compose with the other service the process) instead of the more generic
> process start event? I need to intercept every single invocation (every
> single invoke within the BPEL process) and if the user is not
> authorized, generate an error and stop the process execution. Can I do
> it with Message Exchange Interceptors??
>

Check the method createPartnerRoleChannel in BindingContextImpl. This get
called anytime a process that uses a new service is deployed. You'll
probably have to subclass ODEServer to plug in your implementation tough.

An alternative could be an Axis2 module that would add an outgoing phase for
each invocation. There you could check your authorizations at first
invocation of an endpoing (an pass through every subsequent invocations).

Matthieu


>
> thanks again for your precious help
>
> Giorgio
>
> Il giorno gio, 28/08/2008 alle 15.18 +0200, Tammo van Lessen ha scritto:
> > You don't have to compile ODE but you have to compile your java class.
> > If you use the Axis2 deployment of Ode you can simply add your class/jar
> > file to ode's WEB-INF/classes or WEB-INF/libs directory respectively.
> > Your classes are then included in the classpath and can be referenced
> > within Ode.
> >
> > Best,
> >   Tammo
> >
> > Giorgio M. wrote:
> > > Hi Tammo,
> > >
> > > thanks very much for your response, i'm going to look at the classes
> > > you've advised to me.
> > > I try to be more detailed about my issue: is there a way to attach a
> > > java class to the ODE (without compile it) that is called everytime
> each
> > > service (that compose the BPEL process) is called for the first time??
> > >
> > > The background of my ploblem is the following: i've the necessity to
> > > call a profiler that control permissions (each time that a service
> > > inside the BPEL process is called) in order to establish whether the
> > > caller is authorized or not to execute that service.
> > >
> > > Any suggestion?
> > >
> > > thanks a lot
> > >
> > > Il giorno gio, 28/08/2008 alle 14.39 +0200, Tammo van Lessen ha
> scritto:
> > >> Hi Giorgio,
> > >>
> > >> you could have a look at BpelEventListener.java and
> > >> MessageExchangeInterceptor.java as a starting point if you want to get
> > >> notified by execution events or want to intercept message exchanges.
> > >>
> > >> See also [1] and [2].
> > >>
> > >> HTH,
> > >>   Tammo
> > >>
> > >> [1]http://ode.apache.org/user-guide.html#UserGuide-ODEExecutionEvents
> > >> [2]
> http://www.intalio.org/confluence/display/PXE/Message+Exchange+Interceptors
> > >>
> > >> Giorgio M. wrote:
> > >>> Hi to all,
> > >>>
> > >>> i have the necessity to modify the Apache ODE source code in order to
> > >>> accomplish the following task: i've designed the BPEL process in wich
> > >>> several web services are invoked; i have to call, before each service
> > >>> invocation (INVOKE operation in BPEL), an external java class
> > >>> (implemented by myself)!
> > >>>
> > >>> Wich part of source code should i modify (where i can put the
> external
> > >>> java class call) in order to accomplish this task?? which is the
> class
> > >>> responsible of service invocation (i mean wich is the class where
> INVOKE
> > >>> operation is executed)??
> > >>>
> > >>> Hope somebody can help me
> > >>>
> > >>> thanks to everybody,
> > >>>
> > >>> best regards
> > >>>
> > >
> >
>
>

Re: Ode source code modification

Posted by "Giorgio M." <gi...@email.it>.
Ok, hence can i use interceptor in order to capture a service invocation
message? i mean, can i capture single atomic service start event (that
compose with the other service the process) instead of the more generic
process start event? I need to intercept every single invocation (every
single invoke within the BPEL process) and if the user is not
authorized, generate an error and stop the process execution. Can I do
it with Message Exchange Interceptors??

thanks again for your precious help

Giorgio

Il giorno gio, 28/08/2008 alle 15.18 +0200, Tammo van Lessen ha scritto:
> You don't have to compile ODE but you have to compile your java class.
> If you use the Axis2 deployment of Ode you can simply add your class/jar
> file to ode's WEB-INF/classes or WEB-INF/libs directory respectively.
> Your classes are then included in the classpath and can be referenced
> within Ode.
> 
> Best,
>   Tammo
> 
> Giorgio M. wrote:
> > Hi Tammo,
> > 
> > thanks very much for your response, i'm going to look at the classes
> > you've advised to me. 
> > I try to be more detailed about my issue: is there a way to attach a
> > java class to the ODE (without compile it) that is called everytime each
> > service (that compose the BPEL process) is called for the first time??
> > 
> > The background of my ploblem is the following: i've the necessity to
> > call a profiler that control permissions (each time that a service
> > inside the BPEL process is called) in order to establish whether the
> > caller is authorized or not to execute that service.
> > 
> > Any suggestion?
> > 
> > thanks a lot
> > 
> > Il giorno gio, 28/08/2008 alle 14.39 +0200, Tammo van Lessen ha scritto:
> >> Hi Giorgio,
> >>
> >> you could have a look at BpelEventListener.java and
> >> MessageExchangeInterceptor.java as a starting point if you want to get
> >> notified by execution events or want to intercept message exchanges.
> >>
> >> See also [1] and [2].
> >>
> >> HTH,
> >>   Tammo
> >>
> >> [1]http://ode.apache.org/user-guide.html#UserGuide-ODEExecutionEvents
> >> [2]http://www.intalio.org/confluence/display/PXE/Message+Exchange+Interceptors
> >>
> >> Giorgio M. wrote:
> >>> Hi to all,
> >>>
> >>> i have the necessity to modify the Apache ODE source code in order to
> >>> accomplish the following task: i've designed the BPEL process in wich
> >>> several web services are invoked; i have to call, before each service
> >>> invocation (INVOKE operation in BPEL), an external java class
> >>> (implemented by myself)!
> >>>
> >>> Wich part of source code should i modify (where i can put the external
> >>> java class call) in order to accomplish this task?? which is the class
> >>> responsible of service invocation (i mean wich is the class where INVOKE
> >>> operation is executed)??
> >>>
> >>> Hope somebody can help me
> >>>
> >>> thanks to everybody,
> >>>
> >>> best regards
> >>>
> > 
> 


Re: Ode source code modification

Posted by Tammo van Lessen <tv...@gmail.com>.
You don't have to compile ODE but you have to compile your java class.
If you use the Axis2 deployment of Ode you can simply add your class/jar
file to ode's WEB-INF/classes or WEB-INF/libs directory respectively.
Your classes are then included in the classpath and can be referenced
within Ode.

Best,
  Tammo

Giorgio M. wrote:
> Hi Tammo,
> 
> thanks very much for your response, i'm going to look at the classes
> you've advised to me. 
> I try to be more detailed about my issue: is there a way to attach a
> java class to the ODE (without compile it) that is called everytime each
> service (that compose the BPEL process) is called for the first time??
> 
> The background of my ploblem is the following: i've the necessity to
> call a profiler that control permissions (each time that a service
> inside the BPEL process is called) in order to establish whether the
> caller is authorized or not to execute that service.
> 
> Any suggestion?
> 
> thanks a lot
> 
> Il giorno gio, 28/08/2008 alle 14.39 +0200, Tammo van Lessen ha scritto:
>> Hi Giorgio,
>>
>> you could have a look at BpelEventListener.java and
>> MessageExchangeInterceptor.java as a starting point if you want to get
>> notified by execution events or want to intercept message exchanges.
>>
>> See also [1] and [2].
>>
>> HTH,
>>   Tammo
>>
>> [1]http://ode.apache.org/user-guide.html#UserGuide-ODEExecutionEvents
>> [2]http://www.intalio.org/confluence/display/PXE/Message+Exchange+Interceptors
>>
>> Giorgio M. wrote:
>>> Hi to all,
>>>
>>> i have the necessity to modify the Apache ODE source code in order to
>>> accomplish the following task: i've designed the BPEL process in wich
>>> several web services are invoked; i have to call, before each service
>>> invocation (INVOKE operation in BPEL), an external java class
>>> (implemented by myself)!
>>>
>>> Wich part of source code should i modify (where i can put the external
>>> java class call) in order to accomplish this task?? which is the class
>>> responsible of service invocation (i mean wich is the class where INVOKE
>>> operation is executed)??
>>>
>>> Hope somebody can help me
>>>
>>> thanks to everybody,
>>>
>>> best regards
>>>
> 


Re: Ode source code modification

Posted by "Giorgio M." <gi...@email.it>.
Hi Tammo,

thanks very much for your response, i'm going to look at the classes
you've advised to me. 
I try to be more detailed about my issue: is there a way to attach a
java class to the ODE (without compile it) that is called everytime each
service (that compose the BPEL process) is called for the first time??

The background of my ploblem is the following: i've the necessity to
call a profiler that control permissions (each time that a service
inside the BPEL process is called) in order to establish whether the
caller is authorized or not to execute that service.

Any suggestion?

thanks a lot

Il giorno gio, 28/08/2008 alle 14.39 +0200, Tammo van Lessen ha scritto:
> Hi Giorgio,
> 
> you could have a look at BpelEventListener.java and
> MessageExchangeInterceptor.java as a starting point if you want to get
> notified by execution events or want to intercept message exchanges.
> 
> See also [1] and [2].
> 
> HTH,
>   Tammo
> 
> [1]http://ode.apache.org/user-guide.html#UserGuide-ODEExecutionEvents
> [2]http://www.intalio.org/confluence/display/PXE/Message+Exchange+Interceptors
> 
> Giorgio M. wrote:
> > Hi to all,
> > 
> > i have the necessity to modify the Apache ODE source code in order to
> > accomplish the following task: i've designed the BPEL process in wich
> > several web services are invoked; i have to call, before each service
> > invocation (INVOKE operation in BPEL), an external java class
> > (implemented by myself)!
> > 
> > Wich part of source code should i modify (where i can put the external
> > java class call) in order to accomplish this task?? which is the class
> > responsible of service invocation (i mean wich is the class where INVOKE
> > operation is executed)??
> > 
> > Hope somebody can help me
> > 
> > thanks to everybody,
> > 
> > best regards
> > 
> 


Re: Ode source code modification

Posted by Tammo van Lessen <tv...@gmail.com>.
Hi Giorgio,

you could have a look at BpelEventListener.java and
MessageExchangeInterceptor.java as a starting point if you want to get
notified by execution events or want to intercept message exchanges.

See also [1] and [2].

HTH,
  Tammo

[1]http://ode.apache.org/user-guide.html#UserGuide-ODEExecutionEvents
[2]http://www.intalio.org/confluence/display/PXE/Message+Exchange+Interceptors

Giorgio M. wrote:
> Hi to all,
> 
> i have the necessity to modify the Apache ODE source code in order to
> accomplish the following task: i've designed the BPEL process in wich
> several web services are invoked; i have to call, before each service
> invocation (INVOKE operation in BPEL), an external java class
> (implemented by myself)!
> 
> Wich part of source code should i modify (where i can put the external
> java class call) in order to accomplish this task?? which is the class
> responsible of service invocation (i mean wich is the class where INVOKE
> operation is executed)??
> 
> Hope somebody can help me
> 
> thanks to everybody,
> 
> best regards
>