You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Agustín Gañán (JIRA)" <ji...@apache.org> on 2010/10/25 13:39:21 UTC

[jira] Commented: (ODE-895) Management MBean access broken (Rquest for an Management WS API for the JBI distribution)

    [ https://issues.apache.org/jira/browse/ODE-895?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12924532#action_12924532 ] 

Agustín Gañán commented on ODE-895:
-----------------------------------

If the ODE team agree I could provide a project to publish the ODE Management API as a WebService.

It's basically a bundle wich publish the API endpoints through CXF.


> Management MBean access broken (Rquest for an Management WS API for the JBI distribution)
> -----------------------------------------------------------------------------------------
>
>                 Key: ODE-895
>                 URL: https://issues.apache.org/jira/browse/ODE-895
>             Project: ODE
>          Issue Type: New Feature
>          Components: Management API
>    Affects Versions: 1.3.4
>         Environment: ODE 1.3.4 as OSGi bundle in FUSE-ESB 4.3.0-fuse-02-00
>            Reporter: Antonio Marín
>
> I noticed recently that the old MBean usage is broken with latest stable version of ODE. So accessing like in the jbi-karaf-commands is not supported:
> protected static String COMPONENT_NAME = "org.apache.servicemix:Type=Component,Name=OdeBpelEngine,SubType=Management";
> protected static final String LIST_ALL_PROCESSES = "listAllProcesses";
> protected <T> T invoke(final String operationName, final Object[] params, final String[] signature, Class<?> T, long timeoutInSeconds) throws Exception {
>         ExecutorService executor = Executors.newSingleThreadExecutor();
>         Callable<T> callable = new Callable<T>() {
>             public T call() throws Exception {
>                 MBeanServer server = getMBeanServer();
>                 if (server != null) {
>                     return (T) server.invoke(new ObjectName(COMPONENT_NAME), operationName, params, signature);
>                 }
>                 return null;
>             }
>         };
>         Future<T> future = executor.submit(callable);
>         executor.shutdown();
>         return future.get(timeoutInSeconds, TimeUnit.SECONDS);
>     }
>     protected List<TProcessInfo> getProcesses(long timeoutInSeconds) throws Exception {
>         ProcessInfoListDocument result = invoke(LIST_ALL_PROCESSES, null, null, ProcessInfoListDocument.class, timeoutInSeconds);
>         if (result != null) {
>             return result.getProcessInfoList().getProcessInfoList();
>         }
>         return null;
>     }
> is throwing:
> java.util.concurrent.ExecutionException: javax.management.InstanceNotFoundException: org.apache.servicemix:Type=Component,Name=OdeBpelEngine,SubType=Management
>         at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
>         at java.util.concurrent.FutureTask.get(FutureTask.java:91)
>         at net.geant.gembus.services.ode_manager.internal.OdeMBeanManager.invoke(OdeMBeanManager.java:91)
>         at net.geant.gembus.services.ode_manager.internal.OdeMBeanManager.getProcesses(OdeMBeanManager.java:95)
>         at net.geant.gembus.services.ode_manager.internal.OdeMBeanManager.listAllProcesses(OdeMBeanManager.java:104)
>         at net.geant.gembus.services.ode_manager.OdeManagerImpl.ListAllProcesses(OdeManagerImpl.java:34)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ...
> It would be desireable to have an input to the Management API on the JBI distribution as a WS. I tryed to use the pmapi-sa.zip circulating around but It's not working in my configuration.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.