Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
  *    http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 
 package org.apache.ode.karaf.commands;
 
 import java.util.List;
 
 
 
 public abstract class OdeCommandsBase extends OsgiCommandSupport {
 
     protected static String COMPONENT_NAME = "org.apache.servicemix:Type=Component,Name=OdeBpelEngine,SubType=Management";
 
     protected static final String LIST_INSTANCES = "listInstances";
     protected static final String LIST_ALL_INSTANCES = "listAllInstances";
     protected static final String LIST_ALL_PROCESSES = "listAllProcesses";
     protected static final String RECOVER_ACTIVITY"recoverActivity";
     protected static final String TERMINATE = "terminate";
     protected static final String SUSPEND = "suspend";
     protected static final String RESUME = "resume";
 
     protected MBeanServer getMBeanServer() {
         OdeContext ode = OdeContext.getInstance();
         if (ode != null) {
             return ode.getContext().getMBeanServer();
         }
         return null;
     }

    
Invokes an operation on the ODE MBean server

Parameters:
<T>
operationName
args
T
Returns:
 
     @SuppressWarnings("unchecked")
     protected <T> T invoke(final String operationNamefinal Object[] params,
             final String[] signaturelong 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(),
                             operationNameparamssignature);
                 }
                 return null;
             }
         };
         Future<T> future = executor.submit(callable);
         executor.shutdown();
         return future.get(timeoutInSeconds.);
     }
 
     protected List<TInstanceInfogetActiveInstances(long timeoutInSeconds)
         throws Exception {
         return getFilteredInstances(timeoutInSeconds"status=active");
     }
 
     protected List<TInstanceInfogetSuspendedInstances(long timeoutInSeconds)
         throws Exception {
         return getFilteredInstances(timeoutInSeconds"status=suspended");
     }
 
     protected List<TInstanceInfogetFilteredInstances(long timeoutInSecondsString filter)
         throws Exception {
         InstanceInfoListDocument instances = invoke(
                 new Object[] {filter"pid", 10},
                 new String[] {String.class.getName(), String.class.getName(), int.class.getName()}, 
                 timeoutInSeconds);
        if (instances != null) {
            return instances.getInstanceInfoList().getInstanceInfoList();
        }
        return null;
    }
    
    protected List<TInstanceInfogetAllInstances(long timeoutInSeconds)
            throws Exception {
        InstanceInfoListDocument instances = invoke(null,
                nulltimeoutInSeconds);
        if (instances != null) {
            return instances.getInstanceInfoList().getInstanceInfoList();
        }
        return null;
    }
         
    protected List<TProcessInfogetProcesses(long timeoutInSeconds)
            throws Exception {
        ProcessInfoListDocument result = invoke(nullnulltimeoutInSeconds);
        if (result != null) {
            return result.getProcessInfoList().getProcessInfoList();
        }
        return null;
    }
    protected InstanceInfoDocument recoverActivity(Long instanceIdLong activityIdString actionlong timeoutInSecondsthrows Exception {
        InstanceInfoDocument result = invoke(new Object[] {instanceIdactivityIdaction},
                new String[] {Long.class.getName(), Long.class.getName(), String.class.getName()}, 
                timeoutInSeconds);
        return result;
    }
    protected void terminate(Long iidlong timeoutInSecondsthrows Exception {
        invoke(new Long[] { iid }, new String[] { Long.class
                .getName() }, timeoutInSeconds);
    }
    
    protected void suspend(Long iidlong timeoutInSecondsthrows Exception {
        invoke(new Long[] { iid }, new String[] { Long.class
                .getName() }, timeoutInSeconds);
    }
    
    protected void resume(Long iidlong timeoutInSecondsthrows Exception {
        invoke(new Long[] { iid }, new String[] { Long.class
                .getName() }, timeoutInSeconds);
    }
New to GrepCode? Check out our FAQ X