You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by Denis Weerasiri <dd...@gmail.com> on 2009/02/08 17:29:02 UTC

GSOC project ideas

Hi,

I'm interested in implementing a interactive debugging tool for WS-BPEL
developers on Apache ODE which enables to set breakpoints, and watch/inspect
instance variables as GSOC project.
These days I'm developing a WS-BPEL status tracking tool which generate an
SVG flow diagram based on the BPEL code, and view the instance variable
values and the activity details of the running instances. I used the ODE
Management API for that. But it seems that ODE doesn't provide any API for
handling breakoints.
Please let me know whether there is any API or some tool already developed
for handling breakpoint functionality in ODE.
As well I'm clueless of the capacity of this project idea, whether it's
possible to achieve.
Or if there is any other interresting ideas for GSOC under Apache ODE
project please let me know.

Best regards,
Denis Weerasiri.

Re: GSOC project ideas

Posted by Paul Brown <pa...@gmail.com>.
On Feb 9, 2009, at 2:30 PM, Matthieu Riou wrote:
> On Sun, Feb 8, 2009 at 8:29 AM, Denis Weerasiri  
> <dd...@gmail.com>wrote:
>> I'm interested in implementing a interactive debugging tool for WS- 
>> BPEL
>> developers on Apache ODE which enables to set breakpoints, and
>> watch/inspect
>> instance variables as GSOC project.
> Sweet! Really good idea :)

A big +1 from me, too.

> It is possible as it's a feature that used to exist back in the days  
> when
> ODE was still called PXE and was developed by Intalio only.  
> Debugging had
> been developed for Netbeans by a third party.

It's even older...  Debugging was actually one of the original  
features of the engine, like back in 2004, and was very useful for  
developing the engine and some of the initial demos.  The NetBeans  
debugging functionality used the APIs that Matthieu enumerated and to  
good effect.

-- Paul


Re: GSOC project ideas

Posted by Denis Weerasiri <dd...@gmail.com>.
Hi all,

On Tue, Feb 10, 2009 at 4:00 AM, Matthieu Riou <ma...@gmail.com>wrote:

> On Sun, Feb 8, 2009 at 8:29 AM, Denis Weerasiri <ddweerasiri@gmail.com
> >wrote:
>
> > Hi,
> >
> > I'm interested in implementing a interactive debugging tool for WS-BPEL
> > developers on Apache ODE which enables to set breakpoints, and
> > watch/inspect
> > instance variables as GSOC project.
>
>
> Sweet! Really good idea :)
>
>
> >
> > These days I'm developing a WS-BPEL status tracking tool which generate
> an
> > SVG flow diagram based on the BPEL code, and view the instance variable
> > values and the activity details of the running instances. I used the ODE
> > Management API for that. But it seems that ODE doesn't provide any API
> for
> > handling breakoints.
> > Please let me know whether there is any API or some tool already
> developed
> > for handling breakpoint functionality in ODE.
> > As well I'm clueless of the capacity of this project idea, whether it's
> > possible to achieve.
> > Or if there is any other interresting ideas for GSOC under Apache ODE
> > project please let me know.
>
>
> It is possible as it's a feature that used to exist back in the days when
> ODE was still called PXE and was developed by Intalio only. Debugging had
> been developed for Netbeans by a third party.
>
> Since then, even if it's never really been tested, I've been very careful
> to
> not remove this code and keep it up-to-date with the different refactoring
> we've done, thinking we'll probably revive this feature sooner or later. So
> even if it's probably buggy, most of the code is still present and should
> be
> operational.
>
> So if you check the InstanceManagement interface [1], you'll see
> suspend(iid) and resume(iid) methods, which is a start. Those are
> implemented by the DebuggerSupport class [2], which is useful to look at
> but
> is mostly internal API (external tooling shouldn't use it directly).
> Instead
> those methods should be used through BpelManagementFacadeImpl that
> delegates
> to DebuggerSupport. You'll find all the usual suspects:
> getGlobalBreakpoints, addActivityBreakpoint, removeBreakpoint, ... For the
> moment, even though those methods are on BpelManagementFacadeImpl like all
> others of the management API, they're not accessible remotely yet. But that
> wouldn't too hard to add.
>

I saw some major differences in the ODE1.x and ODE_trunk.
Which release would you suggest to test the implementations(related to
debugging) of the ode source code (ODE1.x or ODE_trunk)?


>
> I think that should be enough information to get you started but don't
> hesitate to ask if you have any other additional question or problems.
>
> Cheers,
> Matthieu
>
> [1]
>
> http://svn.apache.org/repos/asf/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/InstanceManagement.java
> [2]
>
> http://svn.apache.org/repos/asf/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
>
>
> >
> >
> > Best regards,
> > Denis Weerasiri.
> >
>


Best Regards,
Denis Weerasiri.

Re: GSOC project ideas

Posted by Denis Weerasiri <dd...@gmail.com>.
Hi all,

I have prepared a project proposal for the *Web-based BPEL debugger for
Apache ODE* GSOC project. Following is the link to the proposal.

http://wiki.apache.org/general/ddweerasiri/GSOC2009Proposals/WebBasedBPELDebuggerForApacheODE

Please feel free to send your feedbacks, so that I can improve it further.

Best Regards,
Denis Weerasiri.

On Thu, Mar 19, 2009 at 8:42 PM, Matthieu Riou <ma...@gmail.com>wrote:

> On Thu, Mar 19, 2009 at 4:46 AM, Denis Weerasiri <dd...@gmail.com>wrote:
>
>> Hi all,
>>
>> I studied how the ODE Management API is deployed as a web service during
>> the startup of ODE in order to deploy the debugging functionality as a web
>> service programatically during the startup of ODE. So I created the WSDL
>> from the service class (BpelManagementFacedImpl) and implement Axis2 wrapper
>> class for the debugger interface. Then I change the
>> org.apache.ode.axis2.ODEServer#init method in order to start the debugging
>> service when ODE starts. As well the relevant schema were added to
>> ode-bpel-schemas module and created the .xsdconfig file in order to generate
>> the bean classes. Then I changed the rakefile in order to add relevant
>> schema to the war distribution.
>>
>> Then I build ODE and put war distribution inside tomcat and start ODE.
>>
>> Debugger service was created without no exceptions. But when I invoke
>> operations it gives a exception stack as follows. It seems like there is a
>> serializing/deserializing problem.
>>
>
> The DynamicService thingy relays web services calls to the management class
> (ProcessAndInstanceManagement). Doing so, it take cares of serialization and
> deserialization of the parameters and the returned result. It's usually
> pretty easy because the management API only deals either with basic types or
> XmlBeans types. What it's telling you here is that it doesn't know how to
> serialize the Breakpoint object returned. That's pretty normal because
> Breakpoint is neither simple not an XmlBean type.
>
> So you'll need to add a Breakpoint datatype in pmapi.xsd to generate an
> XmlBean out of it and then return that from the management classes.
>
> Cheers,
> Matthieu
>
>
>>  <soapenv:Fault>
>>
>> <soapenv:Code>axis2ns72:Server</soapenv:Code>
>>
>> <soapenv:Reason>
>>
>> java.lang.RuntimeException: Couldn't convert object
>> [Lorg.apache.ode.bpel.bdi.breaks.Breakpoint;@9fb152 into a response
>> element.
>>
>> </soapenv:Reason>
>>
>> <soapenv:Detail>
>>
>> <axis2ns73:RuntimeException>
>>
>> java.lang.RuntimeException: Couldn't convert object
>> [Lorg.apache.ode.bpel.bdi.breaks.Breakpoint;@9fb152 into a response
>> element.
>>
>> at org.apache.ode.il.DynamicService.convertToOM(DynamicService.java:164)
>>
>> at org.apache.ode.il.DynamicService.invoke(DynamicService.java:73)
>>
>> at
>> org.apache.ode.axis2.service.DebuggingWebService$DynamicMessageReceiver.invokeBusinessLogic(DebuggingWebService.java:95)
>>
>> at
>> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
>>
>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
>>
>> at
>> org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:125)
>>
>> at
>> org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:119)
>>
>> at
>> org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:799)
>>
>> at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:242)
>>
>> at org.apache.ode.axis2.hooks.ODEAxisServlet.doGet(ODEAxisServlet.java:62)
>>
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>>
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>
>> at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>
>> at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>
>> at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>
>> at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>
>> at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>
>> at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>>
>> at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>>
>> at
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>>
>> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>>
>> at java.lang.Thread.run(Thread.java:619)
>>
>> </axis2ns73:RuntimeException>
>>
>> </soapenv:Detail>
>>
>> </soapenv:Fault>
>>
>>
>>  Please help me on this matter.
>>
>> Cheers,
>>
>> Denis Weerasiri
>>
>>
>> On Tue, Feb 10, 2009 at 4:00 AM, Matthieu Riou <ma...@gmail.com>wrote:
>>
>>> On Sun, Feb 8, 2009 at 8:29 AM, Denis Weerasiri <ddweerasiri@gmail.com
>>> >wrote:
>>>
>>> > Hi,
>>> >
>>> > I'm interested in implementing a interactive debugging tool for WS-BPEL
>>> > developers on Apache ODE which enables to set breakpoints, and
>>> > watch/inspect
>>> > instance variables as GSOC project.
>>>
>>>
>>> Sweet! Really good idea :)
>>>
>>>
>>> >
>>> > These days I'm developing a WS-BPEL status tracking tool which generate
>>> an
>>> > SVG flow diagram based on the BPEL code, and view the instance variable
>>> > values and the activity details of the running instances. I used the
>>> ODE
>>> > Management API for that. But it seems that ODE doesn't provide any API
>>> for
>>> > handling breakoints.
>>> > Please let me know whether there is any API or some tool already
>>> developed
>>> > for handling breakpoint functionality in ODE.
>>> > As well I'm clueless of the capacity of this project idea, whether it's
>>> > possible to achieve.
>>> > Or if there is any other interresting ideas for GSOC under Apache ODE
>>> > project please let me know.
>>>
>>>
>>> It is possible as it's a feature that used to exist back in the days when
>>> ODE was still called PXE and was developed by Intalio only. Debugging had
>>> been developed for Netbeans by a third party.
>>>
>>> Since then, even if it's never really been tested, I've been very careful
>>> to
>>> not remove this code and keep it up-to-date with the different
>>> refactoring
>>> we've done, thinking we'll probably revive this feature sooner or later.
>>> So
>>> even if it's probably buggy, most of the code is still present and should
>>> be
>>> operational.
>>>
>>> So if you check the InstanceManagement interface [1], you'll see
>>> suspend(iid) and resume(iid) methods, which is a start. Those are
>>> implemented by the DebuggerSupport class [2], which is useful to look at
>>> but
>>> is mostly internal API (external tooling shouldn't use it directly).
>>> Instead
>>> those methods should be used through BpelManagementFacadeImpl that
>>> delegates
>>> to DebuggerSupport. You'll find all the usual suspects:
>>> getGlobalBreakpoints, addActivityBreakpoint, removeBreakpoint, ... For
>>> the
>>> moment, even though those methods are on BpelManagementFacadeImpl like
>>> all
>>> others of the management API, they're not accessible remotely yet. But
>>> that
>>> wouldn't too hard to add.
>>>
>>> I think that should be enough information to get you started but don't
>>> hesitate to ask if you have any other additional question or problems.
>>>
>>> Cheers,
>>> Matthieu
>>>
>>> [1]
>>>
>>> http://svn.apache.org/repos/asf/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/InstanceManagement.java
>>> [2]
>>>
>>> http://svn.apache.org/repos/asf/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
>>>
>>>
>>> >
>>> >
>>> > Best regards,
>>> > Denis Weerasiri.
>>> >
>>>
>>
>>
>

Re: GSOC project ideas

Posted by Denis Weerasiri <dd...@gmail.com>.
Hi all,
I tried several ways to deploy the BpelManagementFacadeImpl class it self as
a web service. But I need some ideas from the community on which the best
possible way to deploy the debugger web service should be.

Here are some approaches I tried.
1. Contract first method
   Similar to deploying the Management API, I tried by generating the WSDL
and Bean classes then a problem occurs as BpelManagementFacadeImpl method
implementations return plain java objects not beans. So in this way I have
to reimplement the service class such that methods can handle bean objects
as in org.apache.ode.bpel.engine.ProcessAndInstanceManagementImpl.

2. Pojo Method
   Then I programatically deploy the service using the method
AxisService debuggerService =
AxisService.createService(BpelManagementFacadeImpl.class.getName(),axisConfig);

Now the problem is when invoking operations at
org.apache.axis2.receivers.AbstractMessageReceiver#makeNewServiceObject
method, it tries to instantiate a service implementation class using
reflections. But as in BpelManagementFacadeImpl class doesn't have a default
constructor, so an exception occurs.
So then I tried to instantiate a sevice implementation class by using an
org.apache.axis2.ServiceObjectSupplier. But in that case also when
instantiating the BpelManagementFacadeImpl I need to pass the _server and
store parameters. But I do not know how to get those parameters inside the
ServiceObjectSupplier class.

Is there a way of refering the attributes of org.apache.ode.axis2.ODEServer
object which is created when ODE startup, outside of the
org.apache.ode.axis2.ODEServer class.?
Or do I have to reimplement all the operations as in Contract first method.?
Please help me on deploying this matter.

Best Regards,
Denis Weerasiri.


On Thu, Mar 19, 2009 at 8:42 PM, Matthieu Riou <ma...@gmail.com>wrote:

> On Thu, Mar 19, 2009 at 4:46 AM, Denis Weerasiri <dd...@gmail.com>wrote:
>
>> Hi all,
>>
>> I studied how the ODE Management API is deployed as a web service during
>> the startup of ODE in order to deploy the debugging functionality as a web
>> service programatically during the startup of ODE. So I created the WSDL
>> from the service class (BpelManagementFacedImpl) and implement Axis2 wrapper
>> class for the debugger interface. Then I change the
>> org.apache.ode.axis2.ODEServer#init method in order to start the debugging
>> service when ODE starts. As well the relevant schema were added to
>> ode-bpel-schemas module and created the .xsdconfig file in order to generate
>> the bean classes. Then I changed the rakefile in order to add relevant
>> schema to the war distribution.
>>
>> Then I build ODE and put war distribution inside tomcat and start ODE.
>>
>> Debugger service was created without no exceptions. But when I invoke
>> operations it gives a exception stack as follows. It seems like there is a
>> serializing/deserializing problem.
>>
>
> The DynamicService thingy relays web services calls to the management class
> (ProcessAndInstanceManagement). Doing so, it take cares of serialization and
> deserialization of the parameters and the returned result. It's usually
> pretty easy because the management API only deals either with basic types or
> XmlBeans types. What it's telling you here is that it doesn't know how to
> serialize the Breakpoint object returned. That's pretty normal because
> Breakpoint is neither simple not an XmlBean type.
>
> So you'll need to add a Breakpoint datatype in pmapi.xsd to generate an
> XmlBean out of it and then return that from the management classes.
>
> Cheers,
> Matthieu
>
>
>>  <soapenv:Fault>
>>
>> <soapenv:Code>axis2ns72:Server</soapenv:Code>
>>
>> <soapenv:Reason>
>>
>> java.lang.RuntimeException: Couldn't convert object
>> [Lorg.apache.ode.bpel.bdi.breaks.Breakpoint;@9fb152 into a response
>> element.
>>
>> </soapenv:Reason>
>>
>> <soapenv:Detail>
>>
>> <axis2ns73:RuntimeException>
>>
>> java.lang.RuntimeException: Couldn't convert object
>> [Lorg.apache.ode.bpel.bdi.breaks.Breakpoint;@9fb152 into a response
>> element.
>>
>> at org.apache.ode.il.DynamicService.convertToOM(DynamicService.java:164)
>>
>> at org.apache.ode.il.DynamicService.invoke(DynamicService.java:73)
>>
>> at
>> org.apache.ode.axis2.service.DebuggingWebService$DynamicMessageReceiver.invokeBusinessLogic(DebuggingWebService.java:95)
>>
>> at
>> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
>>
>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
>>
>> at
>> org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:125)
>>
>> at
>> org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:119)
>>
>> at
>> org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:799)
>>
>> at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:242)
>>
>> at org.apache.ode.axis2.hooks.ODEAxisServlet.doGet(ODEAxisServlet.java:62)
>>
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>>
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>
>> at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>
>> at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>
>> at
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>
>> at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>
>> at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>
>> at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>
>> at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>
>> at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>>
>> at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>>
>> at
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>>
>> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>>
>> at java.lang.Thread.run(Thread.java:619)
>>
>> </axis2ns73:RuntimeException>
>>
>> </soapenv:Detail>
>>
>> </soapenv:Fault>
>>
>>
>>  Please help me on this matter.
>>
>> Cheers,
>>
>> Denis Weerasiri
>>
>>
>> On Tue, Feb 10, 2009 at 4:00 AM, Matthieu Riou <ma...@gmail.com>wrote:
>>
>>> On Sun, Feb 8, 2009 at 8:29 AM, Denis Weerasiri <ddweerasiri@gmail.com
>>> >wrote:
>>>
>>> > Hi,
>>> >
>>> > I'm interested in implementing a interactive debugging tool for WS-BPEL
>>> > developers on Apache ODE which enables to set breakpoints, and
>>> > watch/inspect
>>> > instance variables as GSOC project.
>>>
>>>
>>> Sweet! Really good idea :)
>>>
>>>
>>> >
>>> > These days I'm developing a WS-BPEL status tracking tool which generate
>>> an
>>> > SVG flow diagram based on the BPEL code, and view the instance variable
>>> > values and the activity details of the running instances. I used the
>>> ODE
>>> > Management API for that. But it seems that ODE doesn't provide any API
>>> for
>>> > handling breakoints.
>>> > Please let me know whether there is any API or some tool already
>>> developed
>>> > for handling breakpoint functionality in ODE.
>>> > As well I'm clueless of the capacity of this project idea, whether it's
>>> > possible to achieve.
>>> > Or if there is any other interresting ideas for GSOC under Apache ODE
>>> > project please let me know.
>>>
>>>
>>> It is possible as it's a feature that used to exist back in the days when
>>> ODE was still called PXE and was developed by Intalio only. Debugging had
>>> been developed for Netbeans by a third party.
>>>
>>> Since then, even if it's never really been tested, I've been very careful
>>> to
>>> not remove this code and keep it up-to-date with the different
>>> refactoring
>>> we've done, thinking we'll probably revive this feature sooner or later.
>>> So
>>> even if it's probably buggy, most of the code is still present and should
>>> be
>>> operational.
>>>
>>> So if you check the InstanceManagement interface [1], you'll see
>>> suspend(iid) and resume(iid) methods, which is a start. Those are
>>> implemented by the DebuggerSupport class [2], which is useful to look at
>>> but
>>> is mostly internal API (external tooling shouldn't use it directly).
>>> Instead
>>> those methods should be used through BpelManagementFacadeImpl that
>>> delegates
>>> to DebuggerSupport. You'll find all the usual suspects:
>>> getGlobalBreakpoints, addActivityBreakpoint, removeBreakpoint, ... For
>>> the
>>> moment, even though those methods are on BpelManagementFacadeImpl like
>>> all
>>> others of the management API, they're not accessible remotely yet. But
>>> that
>>> wouldn't too hard to add.
>>>
>>> I think that should be enough information to get you started but don't
>>> hesitate to ask if you have any other additional question or problems.
>>>
>>> Cheers,
>>> Matthieu
>>>
>>> [1]
>>>
>>> http://svn.apache.org/repos/asf/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/InstanceManagement.java
>>> [2]
>>>
>>> http://svn.apache.org/repos/asf/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
>>>
>>>
>>> >
>>> >
>>> > Best regards,
>>> > Denis Weerasiri.
>>> >
>>>
>>
>>
>

Re: GSOC project ideas

Posted by Matthieu Riou <ma...@gmail.com>.
On Thu, Mar 19, 2009 at 4:46 AM, Denis Weerasiri <dd...@gmail.com>wrote:

> Hi all,
>
> I studied how the ODE Management API is deployed as a web service during
> the startup of ODE in order to deploy the debugging functionality as a web
> service programatically during the startup of ODE. So I created the WSDL
> from the service class (BpelManagementFacedImpl) and implement Axis2 wrapper
> class for the debugger interface. Then I change the
> org.apache.ode.axis2.ODEServer#init method in order to start the debugging
> service when ODE starts. As well the relevant schema were added to
> ode-bpel-schemas module and created the .xsdconfig file in order to generate
> the bean classes. Then I changed the rakefile in order to add relevant
> schema to the war distribution.
>
> Then I build ODE and put war distribution inside tomcat and start ODE.
>
> Debugger service was created without no exceptions. But when I invoke
> operations it gives a exception stack as follows. It seems like there is a
> serializing/deserializing problem.
>

The DynamicService thingy relays web services calls to the management class
(ProcessAndInstanceManagement). Doing so, it take cares of serialization and
deserialization of the parameters and the returned result. It's usually
pretty easy because the management API only deals either with basic types or
XmlBeans types. What it's telling you here is that it doesn't know how to
serialize the Breakpoint object returned. That's pretty normal because
Breakpoint is neither simple not an XmlBean type.

So you'll need to add a Breakpoint datatype in pmapi.xsd to generate an
XmlBean out of it and then return that from the management classes.

Cheers,
Matthieu


> <soapenv:Fault>
>
> <soapenv:Code>axis2ns72:Server</soapenv:Code>
>
> <soapenv:Reason>
>
> java.lang.RuntimeException: Couldn't convert object
> [Lorg.apache.ode.bpel.bdi.breaks.Breakpoint;@9fb152 into a response
> element.
>
> </soapenv:Reason>
>
> <soapenv:Detail>
>
> <axis2ns73:RuntimeException>
>
> java.lang.RuntimeException: Couldn't convert object
> [Lorg.apache.ode.bpel.bdi.breaks.Breakpoint;@9fb152 into a response
> element.
>
> at org.apache.ode.il.DynamicService.convertToOM(DynamicService.java:164)
>
> at org.apache.ode.il.DynamicService.invoke(DynamicService.java:73)
>
> at
> org.apache.ode.axis2.service.DebuggingWebService$DynamicMessageReceiver.invokeBusinessLogic(DebuggingWebService.java:95)
>
> at
> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)
>
> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)
>
> at
> org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:125)
>
> at
> org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:119)
>
> at
> org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:799)
>
> at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:242)
>
> at org.apache.ode.axis2.hooks.ODEAxisServlet.doGet(ODEAxisServlet.java:62)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>
> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>
> at java.lang.Thread.run(Thread.java:619)
>
> </axis2ns73:RuntimeException>
>
> </soapenv:Detail>
>
> </soapenv:Fault>
>
>
>  Please help me on this matter.
>
> Cheers,
>
> Denis Weerasiri
>
>
> On Tue, Feb 10, 2009 at 4:00 AM, Matthieu Riou <ma...@gmail.com>wrote:
>
>> On Sun, Feb 8, 2009 at 8:29 AM, Denis Weerasiri <ddweerasiri@gmail.com
>> >wrote:
>>
>> > Hi,
>> >
>> > I'm interested in implementing a interactive debugging tool for WS-BPEL
>> > developers on Apache ODE which enables to set breakpoints, and
>> > watch/inspect
>> > instance variables as GSOC project.
>>
>>
>> Sweet! Really good idea :)
>>
>>
>> >
>> > These days I'm developing a WS-BPEL status tracking tool which generate
>> an
>> > SVG flow diagram based on the BPEL code, and view the instance variable
>> > values and the activity details of the running instances. I used the ODE
>> > Management API for that. But it seems that ODE doesn't provide any API
>> for
>> > handling breakoints.
>> > Please let me know whether there is any API or some tool already
>> developed
>> > for handling breakpoint functionality in ODE.
>> > As well I'm clueless of the capacity of this project idea, whether it's
>> > possible to achieve.
>> > Or if there is any other interresting ideas for GSOC under Apache ODE
>> > project please let me know.
>>
>>
>> It is possible as it's a feature that used to exist back in the days when
>> ODE was still called PXE and was developed by Intalio only. Debugging had
>> been developed for Netbeans by a third party.
>>
>> Since then, even if it's never really been tested, I've been very careful
>> to
>> not remove this code and keep it up-to-date with the different refactoring
>> we've done, thinking we'll probably revive this feature sooner or later.
>> So
>> even if it's probably buggy, most of the code is still present and should
>> be
>> operational.
>>
>> So if you check the InstanceManagement interface [1], you'll see
>> suspend(iid) and resume(iid) methods, which is a start. Those are
>> implemented by the DebuggerSupport class [2], which is useful to look at
>> but
>> is mostly internal API (external tooling shouldn't use it directly).
>> Instead
>> those methods should be used through BpelManagementFacadeImpl that
>> delegates
>> to DebuggerSupport. You'll find all the usual suspects:
>> getGlobalBreakpoints, addActivityBreakpoint, removeBreakpoint, ... For the
>> moment, even though those methods are on BpelManagementFacadeImpl like all
>> others of the management API, they're not accessible remotely yet. But
>> that
>> wouldn't too hard to add.
>>
>> I think that should be enough information to get you started but don't
>> hesitate to ask if you have any other additional question or problems.
>>
>> Cheers,
>> Matthieu
>>
>> [1]
>>
>> http://svn.apache.org/repos/asf/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/InstanceManagement.java
>> [2]
>>
>> http://svn.apache.org/repos/asf/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
>>
>>
>> >
>> >
>> > Best regards,
>> > Denis Weerasiri.
>> >
>>
>
>

Re: GSOC project ideas

Posted by Denis Weerasiri <dd...@gmail.com>.
Hi all,

I studied how the ODE Management API is deployed as a web service during the
startup of ODE in order to deploy the debugging functionality as a web
service programatically during the startup of ODE. So I created the WSDL
from the service class (BpelManagementFacedImpl) and implement Axis2 wrapper
class for the debugger interface. Then I change the
org.apache.ode.axis2.ODEServer#init method in order to start the debugging
service when ODE starts. As well the relevant schema were added to
ode-bpel-schemas module and created the .xsdconfig file in order to generate
the bean classes. Then I changed the rakefile in order to add relevant
schema to the war distribution.

Then I build ODE and put war distribution inside tomcat and start ODE.

Debugger service was created without no exceptions. But when I invoke
operations it gives a exception stack as follows. It seems like there is a
serializing/deserializing problem.

<soapenv:Fault>

<soapenv:Code>axis2ns72:Server</soapenv:Code>

<soapenv:Reason>

java.lang.RuntimeException: Couldn't convert object
[Lorg.apache.ode.bpel.bdi.breaks.Breakpoint;@9fb152 into a response element.

</soapenv:Reason>

<soapenv:Detail>

<axis2ns73:RuntimeException>

java.lang.RuntimeException: Couldn't convert object
[Lorg.apache.ode.bpel.bdi.breaks.Breakpoint;@9fb152 into a response element.

at org.apache.ode.il.DynamicService.convertToOM(DynamicService.java:164)

at org.apache.ode.il.DynamicService.invoke(DynamicService.java:73)

at
org.apache.ode.axis2.service.DebuggingWebService$DynamicMessageReceiver.invokeBusinessLogic(DebuggingWebService.java:95)

at
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:96)

at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:145)

at
org.apache.axis2.transport.http.util.RESTUtil.invokeAxisEngine(RESTUtil.java:125)

at
org.apache.axis2.transport.http.util.RESTUtil.processURLRequest(RESTUtil.java:119)

at
org.apache.axis2.transport.http.AxisServlet$RestRequestProcessor.processURLRequest(AxisServlet.java:799)

at org.apache.axis2.transport.http.AxisServlet.doGet(AxisServlet.java:242)

at org.apache.ode.axis2.hooks.ODEAxisServlet.doGet(ODEAxisServlet.java:62)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)

at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

at java.lang.Thread.run(Thread.java:619)

</axis2ns73:RuntimeException>

</soapenv:Detail>

</soapenv:Fault>


 Please help me on this matter.

Cheers,

Denis Weerasiri


On Tue, Feb 10, 2009 at 4:00 AM, Matthieu Riou <ma...@gmail.com>wrote:

> On Sun, Feb 8, 2009 at 8:29 AM, Denis Weerasiri <ddweerasiri@gmail.com
> >wrote:
>
> > Hi,
> >
> > I'm interested in implementing a interactive debugging tool for WS-BPEL
> > developers on Apache ODE which enables to set breakpoints, and
> > watch/inspect
> > instance variables as GSOC project.
>
>
> Sweet! Really good idea :)
>
>
> >
> > These days I'm developing a WS-BPEL status tracking tool which generate
> an
> > SVG flow diagram based on the BPEL code, and view the instance variable
> > values and the activity details of the running instances. I used the ODE
> > Management API for that. But it seems that ODE doesn't provide any API
> for
> > handling breakoints.
> > Please let me know whether there is any API or some tool already
> developed
> > for handling breakpoint functionality in ODE.
> > As well I'm clueless of the capacity of this project idea, whether it's
> > possible to achieve.
> > Or if there is any other interresting ideas for GSOC under Apache ODE
> > project please let me know.
>
>
> It is possible as it's a feature that used to exist back in the days when
> ODE was still called PXE and was developed by Intalio only. Debugging had
> been developed for Netbeans by a third party.
>
> Since then, even if it's never really been tested, I've been very careful
> to
> not remove this code and keep it up-to-date with the different refactoring
> we've done, thinking we'll probably revive this feature sooner or later. So
> even if it's probably buggy, most of the code is still present and should
> be
> operational.
>
> So if you check the InstanceManagement interface [1], you'll see
> suspend(iid) and resume(iid) methods, which is a start. Those are
> implemented by the DebuggerSupport class [2], which is useful to look at
> but
> is mostly internal API (external tooling shouldn't use it directly).
> Instead
> those methods should be used through BpelManagementFacadeImpl that
> delegates
> to DebuggerSupport. You'll find all the usual suspects:
> getGlobalBreakpoints, addActivityBreakpoint, removeBreakpoint, ... For the
> moment, even though those methods are on BpelManagementFacadeImpl like all
> others of the management API, they're not accessible remotely yet. But that
> wouldn't too hard to add.
>
> I think that should be enough information to get you started but don't
> hesitate to ask if you have any other additional question or problems.
>
> Cheers,
> Matthieu
>
> [1]
>
> http://svn.apache.org/repos/asf/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/InstanceManagement.java
> [2]
>
> http://svn.apache.org/repos/asf/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
>
>
> >
> >
> > Best regards,
> > Denis Weerasiri.
> >
>

Re: GSOC project ideas

Posted by Matthieu Riou <ma...@gmail.com>.
On Sun, Feb 8, 2009 at 8:29 AM, Denis Weerasiri <dd...@gmail.com>wrote:

> Hi,
>
> I'm interested in implementing a interactive debugging tool for WS-BPEL
> developers on Apache ODE which enables to set breakpoints, and
> watch/inspect
> instance variables as GSOC project.


Sweet! Really good idea :)


>
> These days I'm developing a WS-BPEL status tracking tool which generate an
> SVG flow diagram based on the BPEL code, and view the instance variable
> values and the activity details of the running instances. I used the ODE
> Management API for that. But it seems that ODE doesn't provide any API for
> handling breakoints.
> Please let me know whether there is any API or some tool already developed
> for handling breakpoint functionality in ODE.
> As well I'm clueless of the capacity of this project idea, whether it's
> possible to achieve.
> Or if there is any other interresting ideas for GSOC under Apache ODE
> project please let me know.


It is possible as it's a feature that used to exist back in the days when
ODE was still called PXE and was developed by Intalio only. Debugging had
been developed for Netbeans by a third party.

Since then, even if it's never really been tested, I've been very careful to
not remove this code and keep it up-to-date with the different refactoring
we've done, thinking we'll probably revive this feature sooner or later. So
even if it's probably buggy, most of the code is still present and should be
operational.

So if you check the InstanceManagement interface [1], you'll see
suspend(iid) and resume(iid) methods, which is a start. Those are
implemented by the DebuggerSupport class [2], which is useful to look at but
is mostly internal API (external tooling shouldn't use it directly). Instead
those methods should be used through BpelManagementFacadeImpl that delegates
to DebuggerSupport. You'll find all the usual suspects:
getGlobalBreakpoints, addActivityBreakpoint, removeBreakpoint, ... For the
moment, even though those methods are on BpelManagementFacadeImpl like all
others of the management API, they're not accessible remotely yet. But that
wouldn't too hard to add.

I think that should be enough information to get you started but don't
hesitate to ask if you have any other additional question or problems.

Cheers,
Matthieu

[1]
http://svn.apache.org/repos/asf/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/InstanceManagement.java
[2]
http://svn.apache.org/repos/asf/ode/trunk/engine/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java


>
>
> Best regards,
> Denis Weerasiri.
>

Re: GSOC project ideas

Posted by Denis Weerasiri <dd...@gmail.com>.
Hi all,

These days I'm testing the code implementations regarding basic debugging
features. So I feel I should go through the following steps to test the
basic debugging features. (I use ODE1.x branch)

 1) Start a bpel server and initiate a simple (HelloWorld2) process. (eg. By
using org.apache.ode.test.BasicActivities20Test)
 2) Get the (org.apache.ode.bpel.engine.BpelProcess) object from the
previously created server object.
 3) Use the DebuggerSupport of that (org.apache.ode.bpel.engine.BpelProcess)
object. (using createDebuggerSupport() in
org.apache.ode.bpel.engine.BpelProcess)
 4) Use the DebuggerSupport methods (in
org.apache.ode.bpel.engine.DebuggerSupport)

Please let me know whether these steps are ok for testing the basic
functionalities of debugging.
As well I don't know how to retrieve an
(org.apache.ode.bpel.engine.BpelProcess) object from
(org.apache.ode.bpel.engine.BpelServerImpl) object.
Is there any test cases written for test the debugging functionality of
Apache ODE?

Regards,
Denis Weerasiri.



On Tue, Feb 10, 2009 at 1:59 PM, Tammo van Lessen <tv...@gmail.com>wrote:

> Hi Denis,
>
> Denis Weerasiri wrote:
> > I'm interested in implementing a interactive debugging tool for WS-BPEL
> > developers on Apache ODE which enables to set breakpoints, and
> watch/inspect
> > instance variables as GSOC project.
>
> Cool.
>
> > These days I'm developing a WS-BPEL status tracking tool which generate
> an
> > SVG flow diagram based on the BPEL code, and view the instance variable
> > values and the activity details of the running instances. I used the ODE
> > Management API for that. But it seems that ODE doesn't provide any API
> for
> > handling breakoints.
>
> Very cool. I believe the SVG rendering may become the most challenging
> part. To fully support BPEL you'd need to also consider <flow>+<links>
> constructs with can express directed acyclic graphs. This is most likely
> a bit tricky to layout as it mixes blocks and graphs. But it would be
> awesome to have such a view it in Ode. In case you need a GSOC mentor,
> don't hesitate to ask.
>
> Best,
>  Tammo
>
> --
> Tammo van Lessen - http://www.taval.de
>

Re: GSOC project ideas

Posted by Denis Weerasiri <dd...@gmail.com>.
On Tue, Feb 10, 2009 at 1:59 PM, Tammo van Lessen <tv...@gmail.com>wrote:

> Hi Denis,
>
> Denis Weerasiri wrote:
> > I'm interested in implementing a interactive debugging tool for WS-BPEL
> > developers on Apache ODE which enables to set breakpoints, and
> watch/inspect
> > instance variables as GSOC project.
>
> Cool.
>
> > These days I'm developing a WS-BPEL status tracking tool which generate
> an
> > SVG flow diagram based on the BPEL code, and view the instance variable
> > values and the activity details of the running instances. I used the ODE
> > Management API for that. But it seems that ODE doesn't provide any API
> for
> > handling breakoints.
>
> Very cool. I believe the SVG rendering may become the most challenging
> part. To fully support BPEL you'd need to also consider <flow>+<links>
> constructs with can express directed acyclic graphs.


Hi,
Thanks for the heads up. Upto now I haven't implemented that <links> part
yet. But I'll consider on that.

Best Regards,
Denis

This is most likely
> a bit tricky to layout as it mixes blocks and graphs. But it would be
> awesome to have such a view it in Ode. In case you need a GSOC mentor,
> don't hesitate to ask.
>
> Best,
>  Tammo
>
> --
> Tammo van Lessen - http://www.taval.de
>

Re: GSOC project ideas

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

Denis Weerasiri wrote:
> I'm interested in implementing a interactive debugging tool for WS-BPEL
> developers on Apache ODE which enables to set breakpoints, and watch/inspect
> instance variables as GSOC project.

Cool.

> These days I'm developing a WS-BPEL status tracking tool which generate an
> SVG flow diagram based on the BPEL code, and view the instance variable
> values and the activity details of the running instances. I used the ODE
> Management API for that. But it seems that ODE doesn't provide any API for
> handling breakoints.

Very cool. I believe the SVG rendering may become the most challenging
part. To fully support BPEL you'd need to also consider <flow>+<links>
constructs with can express directed acyclic graphs. This is most likely
a bit tricky to layout as it mixes blocks and graphs. But it would be
awesome to have such a view it in Ode. In case you need a GSOC mentor,
don't hesitate to ask.

Best,
  Tammo

-- 
Tammo van Lessen - http://www.taval.de

RE: GSOC project ideas

Posted by Oliver Kopp <ol...@iaas.uni-stuttgart.de>.
Hi Denis,

> These days I'm developing a WS-BPEL status tracking tool which
> generate an SVG flow diagram based on the BPEL code,

How does your code relate to
http://blogs.sun.com/toxophily/entry/open_esb_tip_generating_svg
?

> and view the
> instance variable values and the activity details of the running
> instances.

Regarding the display of BPEL-processes:
Oryx is a web-based editor operating on SVG: http://www.oryx-editor.org/

Oryx does also offer the editing of BPEL-files:
http://oryx-editor.org/backend/poem/repository//new?stencilset=/stencilsets/
bpel/bpel.json

(Unfortunately, the current version of the import plugin is not available
there. The layout is smashed. - The version in the trunk is better :))

> I used the ODE Management API for that. But it seems that
> ODE doesn't provide any API for handling breakoints.

We implemented the "pluggable framework" of Khalaf et al. [1] for Apache ODE
1.1 [2]. This can be used for debugging etc. Maybe it could be an idea to
port the code to the trunk? Furthermore, it should be possible to make this
framework optional in the engine. 

Besides debugging, the use cases for the pluggable framework are following:
 * adaptability [3]
 * split BPEL processes [4] 
 * externalize the transaction behavior of the BPEL engine [5]

1. Khalaf, Rania; Karastoyanova, Dimka; Leymann, Frank: Pluggable Framework
for Enabling the Execution of Extended BPEL Behavior. In: Proceedings of the
3rd International Workshop on Engineering Service-Oriented Application
(WESOA'2007).
2. Steinmetz, Thomas: Ein Event-Modell für WS-BPEL 2.0 und dessen
Realisierung in Apache ODE, Diplomarbeit Nr. 2729, 2008. 
Sorry, this is in German. But the code and the comments are in English :-)
3. Karastoyanova, Dimka; Houspanossian, Alejandro; Cilia, Mariano; Leymann,
Frank; Buchmann, Alejandro P.: Extending BPEL for Run Time Adaptability. In:
Ninth IEEE International Enterprise Computing Conference (EDOC 2005).
4. Khalaf, Rania; Leymann, Frank: Role-based Decomposition of Business
Processes using BPEL. In: International Conference on Web Services (ICWS
2006).
5. Pottinger, Stefan; Mietzner, Ralph; Leymann, Frank: Coordinate BPEL
Scopes and Processes by Extending the WS-Business Activity Framework. In:
Meersman, Robert (ed.); Tari, Zahir (ed.): Proceedings of the 15th
International Conference on Cooperative Information Systems (CoopIS 2007).

Cheers,

Oliver



Re: GSOC project ideas

Posted by Daniel Schleicher <sc...@googlemail.com>.
Hi,

based on the "Pluggable Framework" there is also an implementation of the
Management Framework for BPEL that uses WS-RF to access BPEL activities via
Web services. It could be used to get the state of a BPEL activity in a
running process:

van Lessen, Tammo; Leymann, Frank; Mietzner, Ralph; Nitzsche, Jörg;
Schleicher, Daniel: A Management Framework for WS-BPEL. In: Proceedings of
the 6th IEEE European Conference on Web Services 2008.

Cheers,

Daniel

On Tue, Feb 10, 2009 at 7:16 PM, Oliver Kopp <
oliver.kopp@iaas.uni-stuttgart.de> wrote:

> Hi Denis,
>
> > These days I'm developing a WS-BPEL status tracking tool which
> > generate an SVG flow diagram based on the BPEL code,
>
> How does your code relate to
> http://blogs.sun.com/toxophily/entry/open_esb_tip_generating_svg
> ?
>
> > and view the
> > instance variable values and the activity details of the running
> > instances.
>
> Regarding the display of BPEL-processes:
> Oryx is a web-based editor operating on SVG: http://www.oryx-editor.org/
>
> Oryx does also offer the editing of BPEL-files:
>
> http://oryx-editor.org/backend/poem/repository//new?stencilset=/stencilsets/
> bpel/bpel.json<http://oryx-editor.org/backend/poem/repository//new?stencilset=/stencilsets/%0Abpel/bpel.json>
>
> (Unfortunately, the current version of the import plugin is not available
> there. The layout is smashed. - The version in the trunk is better :))
>
> > I used the ODE Management API for that. But it seems that
> > ODE doesn't provide any API for handling breakoints.
>
> We implemented the "pluggable framework" of Khalaf et al. [1] for Apache
> ODE
> 1.1 [2]. This can be used for debugging etc. Maybe it could be an idea to
> port the code to the trunk? Furthermore, it should be possible to make this
> framework optional in the engine.
>
> Besides debugging, the use cases for the pluggable framework are following:
>  * adaptability [3]
>  * split BPEL processes [4]
>  * externalize the transaction behavior of the BPEL engine [5]
>
> 1. Khalaf, Rania; Karastoyanova, Dimka; Leymann, Frank: Pluggable Framework
> for Enabling the Execution of Extended BPEL Behavior. In: Proceedings of
> the
> 3rd International Workshop on Engineering Service-Oriented Application
> (WESOA'2007).
> 2. Steinmetz, Thomas: Ein Event-Modell für WS-BPEL 2.0 und dessen
> Realisierung in Apache ODE, Diplomarbeit Nr. 2729, 2008.
> Sorry, this is in German. But the code and the comments are in English :-)
> 3. Karastoyanova, Dimka; Houspanossian, Alejandro; Cilia, Mariano; Leymann,
> Frank; Buchmann, Alejandro P.: Extending BPEL for Run Time Adaptability.
> In:
> Ninth IEEE International Enterprise Computing Conference (EDOC 2005).
> 4. Khalaf, Rania; Leymann, Frank: Role-based Decomposition of Business
> Processes using BPEL. In: International Conference on Web Services (ICWS
> 2006).
> 5. Pottinger, Stefan; Mietzner, Ralph; Leymann, Frank: Coordinate BPEL
> Scopes and Processes by Extending the WS-Business Activity Framework. In:
> Meersman, Robert (ed.); Tari, Zahir (ed.): Proceedings of the 15th
> International Conference on Cooperative Information Systems (CoopIS 2007).
>
> Cheers,
>
> Oliver
>
>
>