org.apache.camel.management
Class DefaultManagementLifecycleStrategy

java.lang.Object
  extended by org.apache.camel.support.ServiceSupport
      extended by org.apache.camel.management.DefaultManagementLifecycleStrategy
All Implemented Interfaces:
CamelContextAware, Service, ShutdownableService, LifecycleStrategy, StatefulService, SuspendableService

public class DefaultManagementLifecycleStrategy
extends ServiceSupport
implements LifecycleStrategy, CamelContextAware

Default JMX managed lifecycle strategy that registered objects using the configured ManagementStrategy.

Version:
See Also:
ManagementStrategy

Field Summary
 
Fields inherited from class org.apache.camel.support.ServiceSupport
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
 
Constructor Summary
DefaultManagementLifecycleStrategy()
           
DefaultManagementLifecycleStrategy(CamelContext camelContext)
           
 
Method Summary
protected  void doStart()
          Implementations override this method to support customized start/stop.
protected  void doStop()
          Implementations override this method to support customized start/stop.
 CamelContext getCamelContext()
          Get the CamelContext
protected  void manageObject(Object me)
          Strategy for managing the object
 void onComponentAdd(String name, Component component)
          Notification on adding an Component.
 void onComponentRemove(String name, Component component)
          Notification on removing an Component.
 void onContextStart(CamelContext context)
          Notification on starting a CamelContext.
 void onContextStop(CamelContext context)
          Notification on stopping a CamelContext.
 void onEndpointAdd(Endpoint endpoint)
          If the endpoint is an instance of ManagedResource then register it with the mbean server, if it is not then wrap the endpoint in a ManagedEndpoint and register that with the mbean server.
 void onEndpointRemove(Endpoint endpoint)
          Notification on removing an Endpoint.
 void onErrorHandlerAdd(RouteContext routeContext, Processor errorHandler, ErrorHandlerFactory errorHandlerBuilder)
          Notification on adding error handler.
 void onErrorHandlerRemove(RouteContext routeContext, Processor errorHandler, ErrorHandlerFactory errorHandlerBuilder)
          Notification on removing error handler.
 void onRouteContextCreate(RouteContext routeContext)
          Notification on adding RouteContext(s).
 void onRoutesAdd(Collection<Route> routes)
          Notification on adding Route(s).
 void onRoutesRemove(Collection<Route> routes)
          Notification on removing Route(s).
 void onServiceAdd(CamelContext context, Service service, Route route)
          Notification on adding a Service.
 void onServiceRemove(CamelContext context, Service service, Route route)
          Notification on removing a Service.
 void onThreadPoolAdd(CamelContext camelContext, ThreadPoolExecutor threadPool, String id, String sourceId, String routeId, String threadPoolProfileId)
          Notification on adding a thread pool.
 void onThreadPoolRemove(CamelContext camelContext, ThreadPoolExecutor threadPool)
          Notification on removing a thread pool.
protected  boolean registerProcessor(ProcessorDefinition<?> processor)
          Should the given processor be registered.
 void setCamelContext(CamelContext camelContext)
          Injects the CamelContext
protected  boolean shouldRegister(Object service, Route route)
          Whether or not to register the mbean.
protected  void unmanageObject(Object me)
          Un-manages the object.
 
Methods inherited from class org.apache.camel.support.ServiceSupport
doResume, doShutdown, doSuspend, getStatus, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, shutdown, start, stop, suspend
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultManagementLifecycleStrategy

public DefaultManagementLifecycleStrategy()

DefaultManagementLifecycleStrategy

public DefaultManagementLifecycleStrategy(CamelContext camelContext)
Method Detail

getCamelContext

public CamelContext getCamelContext()
Description copied from interface: CamelContextAware
Get the CamelContext

Specified by:
getCamelContext in interface CamelContextAware
Returns:
camelContext the Camel context

setCamelContext

public void setCamelContext(CamelContext camelContext)
Description copied from interface: CamelContextAware
Injects the CamelContext

Specified by:
setCamelContext in interface CamelContextAware
Parameters:
camelContext - the Camel context

onContextStart

public void onContextStart(CamelContext context)
                    throws VetoCamelContextStartException
Description copied from interface: LifecycleStrategy
Notification on starting a CamelContext.

Specified by:
onContextStart in interface LifecycleStrategy
Parameters:
context - the camel context
Throws:
VetoCamelContextStartException - can be thrown to veto starting CamelContext. Any other runtime exceptions will be logged at WARN level by Camel will continue starting itself.

onContextStop

public void onContextStop(CamelContext context)
Description copied from interface: LifecycleStrategy
Notification on stopping a CamelContext.

Specified by:
onContextStop in interface LifecycleStrategy
Parameters:
context - the camel context

onComponentAdd

public void onComponentAdd(String name,
                           Component component)
Description copied from interface: LifecycleStrategy
Notification on adding an Component.

Specified by:
onComponentAdd in interface LifecycleStrategy
Parameters:
name - the unique name of this component
component - the added component

onComponentRemove

public void onComponentRemove(String name,
                              Component component)
Description copied from interface: LifecycleStrategy
Notification on removing an Component.

Specified by:
onComponentRemove in interface LifecycleStrategy
Parameters:
name - the unique name of this component
component - the removed component

onEndpointAdd

public void onEndpointAdd(Endpoint endpoint)
If the endpoint is an instance of ManagedResource then register it with the mbean server, if it is not then wrap the endpoint in a ManagedEndpoint and register that with the mbean server.

Specified by:
onEndpointAdd in interface LifecycleStrategy
Parameters:
endpoint - the Endpoint attempted to be added

onEndpointRemove

public void onEndpointRemove(Endpoint endpoint)
Description copied from interface: LifecycleStrategy
Notification on removing an Endpoint.

Specified by:
onEndpointRemove in interface LifecycleStrategy
Parameters:
endpoint - the removed endpoint

onServiceAdd

public void onServiceAdd(CamelContext context,
                         Service service,
                         Route route)
Description copied from interface: LifecycleStrategy
Notification on adding a Service.

Specified by:
onServiceAdd in interface LifecycleStrategy
Parameters:
context - the camel context
service - the added service
route - the route the service belongs to if any possible to determine

onServiceRemove

public void onServiceRemove(CamelContext context,
                            Service service,
                            Route route)
Description copied from interface: LifecycleStrategy
Notification on removing a Service.

Specified by:
onServiceRemove in interface LifecycleStrategy
Parameters:
context - the camel context
service - the removed service
route - the route the service belongs to if any possible to determine

onRoutesAdd

public void onRoutesAdd(Collection<Route> routes)
Description copied from interface: LifecycleStrategy
Notification on adding Route(s).

Specified by:
onRoutesAdd in interface LifecycleStrategy
Parameters:
routes - the added routes

onRoutesRemove

public void onRoutesRemove(Collection<Route> routes)
Description copied from interface: LifecycleStrategy
Notification on removing Route(s).

Specified by:
onRoutesRemove in interface LifecycleStrategy
Parameters:
routes - the removed routes

onErrorHandlerAdd

public void onErrorHandlerAdd(RouteContext routeContext,
                              Processor errorHandler,
                              ErrorHandlerFactory errorHandlerBuilder)
Description copied from interface: LifecycleStrategy
Notification on adding error handler.

Specified by:
onErrorHandlerAdd in interface LifecycleStrategy
Parameters:
routeContext - the added route context
errorHandler - the error handler
errorHandlerBuilder - the error handler builder

onErrorHandlerRemove

public void onErrorHandlerRemove(RouteContext routeContext,
                                 Processor errorHandler,
                                 ErrorHandlerFactory errorHandlerBuilder)
Description copied from interface: LifecycleStrategy
Notification on removing error handler.

Specified by:
onErrorHandlerRemove in interface LifecycleStrategy
Parameters:
routeContext - the removed route context
errorHandler - the error handler
errorHandlerBuilder - the error handler builder

onThreadPoolAdd

public void onThreadPoolAdd(CamelContext camelContext,
                            ThreadPoolExecutor threadPool,
                            String id,
                            String sourceId,
                            String routeId,
                            String threadPoolProfileId)
Description copied from interface: LifecycleStrategy
Notification on adding a thread pool.

Specified by:
onThreadPoolAdd in interface LifecycleStrategy
Parameters:
camelContext - the camel context
threadPool - the thread pool
id - id of the thread pool (can be null in special cases)
sourceId - id of the source creating the thread pool (can be null in special cases)
routeId - id of the route for the source (is null if no source)
threadPoolProfileId - id of the thread pool profile, if used for creating this thread pool (can be null)

onThreadPoolRemove

public void onThreadPoolRemove(CamelContext camelContext,
                               ThreadPoolExecutor threadPool)
Description copied from interface: LifecycleStrategy
Notification on removing a thread pool.

Specified by:
onThreadPoolRemove in interface LifecycleStrategy
Parameters:
camelContext - the camel context
threadPool - the thread pool

onRouteContextCreate

public void onRouteContextCreate(RouteContext routeContext)
Description copied from interface: LifecycleStrategy
Notification on adding RouteContext(s).

Specified by:
onRouteContextCreate in interface LifecycleStrategy
Parameters:
routeContext - the added route context

registerProcessor

protected boolean registerProcessor(ProcessorDefinition<?> processor)
Should the given processor be registered.


manageObject

protected void manageObject(Object me)
                     throws Exception
Strategy for managing the object

Parameters:
me - the managed object
Throws:
Exception - is thrown if error registering the object for management

unmanageObject

protected void unmanageObject(Object me)
                       throws Exception
Un-manages the object.

Parameters:
me - the managed object
Throws:
Exception - is thrown if error unregistering the managed object

shouldRegister

protected boolean shouldRegister(Object service,
                                 Route route)
Whether or not to register the mbean.

The ManagementAgent has options which controls when to register. This allows us to only register mbeans accordingly. For example by default any dynamic endpoints is not registered. This avoids to register excessive mbeans, which most often is not desired.

Parameters:
service - the object to register
route - an optional route the mbean is associated with, can be null
Returns:
true to register, false to skip registering

doStart

protected void doStart()
                throws Exception
Description copied from class: ServiceSupport
Implementations override this method to support customized start/stop.

Important: See ServiceSupport.doStop() for more details.

Specified by:
doStart in class ServiceSupport
Throws:
Exception
See Also:
ServiceSupport.doStop()

doStop

protected void doStop()
               throws Exception
Description copied from class: ServiceSupport
Implementations override this method to support customized start/stop.

Important: Camel will invoke this ServiceSupport.doStop() method when the service is being stopped. This method will also be invoked if the service is still in uninitialized state (eg has not been started). The method is always called to allow the service to do custom logic when the service is being stopped, such as when CamelContext is shutting down.

Specified by:
doStop in class ServiceSupport
Throws:
Exception
See Also:
ServiceSupport.doStart()


Apache CAMEL