org.apache.camel.impl
Class DefaultCamelContext

java.lang.Object
  extended by org.apache.camel.impl.ServiceSupport
      extended by org.apache.camel.impl.DefaultCamelContext
All Implemented Interfaces:
CamelContext, Service

public class DefaultCamelContext
extends ServiceSupport
implements CamelContext, Service

Represents the context used to configure routes and the policies to use.

Version:
$Revision: 791697 $

Constructor Summary
DefaultCamelContext()
           
DefaultCamelContext(Context jndiContext)
          Creates the CamelContext using the given JNDI context as the registry
DefaultCamelContext(Registry registry)
          Creates the CamelContext using the given registry
 
Method Summary
 void addComponent(String componentName, Component component)
          Adds a component to the context.
 Endpoint addEndpoint(String uri, Endpoint endpoint)
          Adds the endpoint to the context using the given URI.
 void addInterceptStrategy(InterceptStrategy interceptStrategy)
          Adds the given interceptor strategy
 void addRouteDefinitions(Collection<RouteType> routeDefinitions)
          Adds a collection of route definitions to the context
 void addRoutes(Collection<Route> routes)
          Adds a collection of routes to this context
 void addRoutes(Routes builder)
          Adds a collection of routes to this context using the given builder to build them
 void addService(Object object)
          Adds a service, starting it so that it will be stopped with this context
 Endpoint addSingletonEndpoint(String uri, Endpoint endpoint)
          Adds the endpoint to the context using the given URI.
protected  Endpoint convertBeanToEndpoint(String uri, Object bean)
          Attempt to convert the bean from a Registry to an endpoint using some kind of transformation or wrapper
protected  ComponentResolver createComponentResolver()
          Lazily create a default implementation
protected  Endpoint createEndpoint(String uri)
          A pluggable strategy to allow an endpoint to be created without requiring a component to be its factory, such as for looking up the URI inside some Registry
protected  ExchangeConverter createExchangeConverter()
          Lazily create a default implementation
 FactoryFinder createFactoryFinder()
          Create a FactoryFinder which will be used for the loading the factory class from META-INF
 FactoryFinder createFactoryFinder(String path)
          Create a FactoryFinder which will be used for the loading the factory class from META-INF
protected  Injector createInjector()
          Lazily create a default implementation
<E extends Exchange>
ProducerTemplate<E>
createProducerTemplate()
          Creates a new ProducerTemplate.
protected  Registry createRegistry()
          Lazily create a default implementation
protected  TypeConverter createTypeConverter()
          Lazily create a default implementation
protected  void doStart()
           
protected  void doStop()
           
protected  void forceLazyInitialization()
          Lets force some lazy initialization to occur upfront before we start any components and create routes
 Component getComponent(String name)
          Gets a component from the context by name.
<T extends Component>
T
getComponent(String name, Class<T> componentType)
          Gets a component from the context by name and specifying the expected type of component.
 ComponentResolver getComponentResolver()
           
 Map<String,DataFormatType> getDataFormats()
          Gets the data formats that can be referenced in the routes.
 long getDelay()
          Returns the delay in millis if delaying has been enabled or disabled via the setDelay(Long) method or it has not been specified then default to the camel.delay system property
 Long getDelaying()
           
 Endpoint getEndpoint(String uri)
          Resolves the given URI to an Endpoint.
<T extends Endpoint>
T
getEndpoint(String name, Class<T> endpointType)
          Resolves the given name to an Endpoint of the specified type.
protected  String getEndpointKey(String uri, Endpoint endpoint)
           
 Map<String,Endpoint> getEndpointMap()
          Returns a new Map containing all of the active endpoints with the key of the map being their unique key
 Collection<Endpoint> getEndpoints()
          Returns the collection of all registered endpoints.
 Collection<Endpoint> getEndpoints(String uri)
          Returns the collection of all registered endpoints for a uri or an empty collection.
 ErrorHandlerBuilder getErrorHandlerBuilder()
          Gets the default error handler builder which is inherited by the routes
 ExchangeConverter getExchangeConverter()
          Returns the converter of exchanges from one type to another
 Injector getInjector()
          Returns the injector used to instantiate objects by type
 List<InterceptStrategy> getInterceptStrategies()
           
 LanguageResolver getLanguageResolver()
           
 LifecycleStrategy getLifecycleStrategy()
          Returns the lifecycle strategy used to handle lifecycle notification
 String getName()
          Gets the name of the this context.
 Component getOrCreateComponent(String componentName, Callable<Component> factory)
          Gets the a previously added component by name or lazily creates the component using the factory Callback.
 Map<String,String> getProperties()
          Gets the properties that can be referenced in the camel context
 Registry getRegistry()
          Returns the registry used to lookup components by name and type such as the Spring ApplicationContext, JNDI or the OSGi Service Registry
 List<RouteType> getRouteDefinitions()
          Returns a list of the current route definitions
 List<Route> getRoutes()
          Returns the current routes in this context
 Collection<Endpoint> getSingletonEndpoints()
          Returns the collection of all registered singleton endpoints.
 boolean getTrace()
          Returns true if tracing has been enabled or disabled via the setTrace(Boolean) method or it has not been specified then default to the camel.trace system property
 Boolean getTracing()
           
 TypeConverter getTypeConverter()
          Returns the type converter used to coerce types from one type to another
 boolean isAutoCreateComponents()
           
 Component removeComponent(String componentName)
          Removes a previously added component.
 Collection<Endpoint> removeEndpoints(String uri)
          Removes all endpoints with the given URI
 Endpoint removeSingletonEndpoint(String uri)
          Removes the singleton endpoint with the given URI
 Language resolveLanguage(String language)
          Resolves a language for creating expressions
 void setAutoCreateComponents(boolean autoCreateComponents)
           
 void setComponentResolver(ComponentResolver componentResolver)
           
 void setDataFormats(Map<String,DataFormatType> dataFormats)
          Sets the data formats that can be referenced in the routes.
 void setDelay(Long delay)
           
 void setErrorHandlerBuilder(ErrorHandlerBuilder errorHandlerBuilder)
          Sets the default error handler builder which is inherited by the routes
 void setExchangeConverter(ExchangeConverter exchangeConverter)
           
 void setFactoryFinderClass(Class<? extends FactoryFinder> finderClass)
           
 void setInjector(Injector injector)
           
 void setInterceptStrategies(List<InterceptStrategy> interceptStrategies)
           
 void setJndiContext(Context jndiContext)
          Sets the registry to the given JNDI context
 void setLanguageResolver(LanguageResolver languageResolver)
           
 void setLifecycleStrategy(LifecycleStrategy lifecycleStrategy)
           
 void setName(String name)
          Sets the name of the this context.
 void setProperties(Map<String,String> properties)
          Sets the properties that can be referenced in the camel context
 void setRegistry(Registry registry)
           
 void setRoutes(List<Route> routes)
          Sets the routes for this context, replacing any current routes
 void setTrace(Boolean trace)
           
 void setTypeConverter(TypeConverter typeConverter)
           
protected  boolean shouldStartRoutes()
          Should we start newly added routes?
 void start()
          Starts the service
protected  void startRouteDefinitions(Collection<RouteType> list)
           
protected  void startRoutes(Collection<Route> routeList)
           
 
Methods inherited from class org.apache.camel.impl.ServiceSupport
addChildService, getThreadName, getVersion, isRunAllowed, isStarted, isStarting, isStopped, isStopping, nextThreadCounter, removeChildService, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.camel.Service
stop
 

Constructor Detail

DefaultCamelContext

public DefaultCamelContext()

DefaultCamelContext

public DefaultCamelContext(Context jndiContext)
Creates the CamelContext using the given JNDI context as the registry


DefaultCamelContext

public DefaultCamelContext(Registry registry)
Creates the CamelContext using the given registry

Method Detail

getName

public String getName()
Description copied from interface: CamelContext
Gets the name of the this context.

Specified by:
getName in interface CamelContext
Returns:
the name

setName

public void setName(String name)
Sets the name of the this context.


addComponent

public void addComponent(String componentName,
                         Component component)
Description copied from interface: CamelContext
Adds a component to the context.

Specified by:
addComponent in interface CamelContext
Parameters:
componentName - the name the component is registered as
component - the component

getComponent

public Component getComponent(String name)
Description copied from interface: CamelContext
Gets a component from the context by name.

Specified by:
getComponent in interface CamelContext
Parameters:
name - the name of the component
Returns:
the component

getComponent

public <T extends Component> T getComponent(String name,
                                            Class<T> componentType)
Description copied from interface: CamelContext
Gets a component from the context by name and specifying the expected type of component.

Specified by:
getComponent in interface CamelContext
Parameters:
name - the name to lookup
componentType - the expected type
Returns:
the component

removeComponent

public Component removeComponent(String componentName)
Description copied from interface: CamelContext
Removes a previously added component.

Specified by:
removeComponent in interface CamelContext
Parameters:
componentName - the component name to remove
Returns:
the previously added component or null if it had not been previously added.

getOrCreateComponent

public Component getOrCreateComponent(String componentName,
                                      Callable<Component> factory)
Description copied from interface: CamelContext
Gets the a previously added component by name or lazily creates the component using the factory Callback.

Specified by:
getOrCreateComponent in interface CamelContext
Parameters:
componentName - the name of the component
factory - used to create a new component instance if the component was not previously added.
Returns:
the component

getEndpoints

public Collection<Endpoint> getEndpoints()
Description copied from interface: CamelContext
Returns the collection of all registered endpoints.

Specified by:
getEndpoints in interface CamelContext
Returns:
all endpoints

getEndpointMap

public Map<String,Endpoint> getEndpointMap()
Description copied from interface: CamelContext
Returns a new Map containing all of the active endpoints with the key of the map being their unique key

Specified by:
getEndpointMap in interface CamelContext

getEndpoints

public Collection<Endpoint> getEndpoints(String uri)
Description copied from interface: CamelContext
Returns the collection of all registered endpoints for a uri or an empty collection. For a singleton endpoint the collection will contain exactly one element.

Specified by:
getEndpoints in interface CamelContext
Parameters:
uri - the URI of the endpoints
Returns:
collection of endpoints

getSingletonEndpoints

public Collection<Endpoint> getSingletonEndpoints()
Description copied from interface: CamelContext
Returns the collection of all registered singleton endpoints.

Specified by:
getSingletonEndpoints in interface CamelContext
Returns:
all the singleton endpoints

addEndpoint

public Endpoint addEndpoint(String uri,
                            Endpoint endpoint)
                     throws Exception
Description copied from interface: CamelContext
Adds the endpoint to the context using the given URI.

Specified by:
addEndpoint in interface CamelContext
Parameters:
uri - the URI to be used to resolve this endpoint
endpoint - the endpoint to be added to the context
Returns:
the old endpoint that was previously registered to the context if there was already an singleton endpoint for that URI or null
Throws:
Exception - if the new endpoint could not be started or the old singleton endpoint could not be stopped

removeEndpoints

public Collection<Endpoint> removeEndpoints(String uri)
                                     throws Exception
Description copied from interface: CamelContext
Removes all endpoints with the given URI

Specified by:
removeEndpoints in interface CamelContext
Parameters:
uri - the URI to be used to remove
Returns:
a collection of endpoints removed or null if there are no endpoints for this URI
Throws:
Exception - if at least one endpoint could not be stopped

addSingletonEndpoint

public Endpoint addSingletonEndpoint(String uri,
                                     Endpoint endpoint)
                              throws Exception
Description copied from interface: CamelContext
Adds the endpoint to the context using the given URI. The endpoint will be registered as a singleton.

Specified by:
addSingletonEndpoint in interface CamelContext
Parameters:
uri - the URI to be used to resolve this endpoint
endpoint - the endpoint to be added to the context
Returns:
the old endpoint that was previously registered to the context if there was already an endpoint for that URI
Throws:
Exception - if the new endpoint could not be started or the old endpoint could not be stopped

removeSingletonEndpoint

public Endpoint removeSingletonEndpoint(String uri)
                                 throws Exception
Description copied from interface: CamelContext
Removes the singleton endpoint with the given URI

Specified by:
removeSingletonEndpoint in interface CamelContext
Parameters:
uri - the URI to be used to remove
Returns:
the endpoint that was removed or null if there is no endpoint for this URI
Throws:
Exception - if endpoint could not be stopped

getEndpoint

public Endpoint getEndpoint(String uri)
Description copied from interface: CamelContext
Resolves the given URI to an Endpoint. If the URI has a singleton endpoint registered, then the singleton is returned. Otherwise, a new Endpoint is created and if the endpoint is a singleton it is registered as a singleton endpoint.

Specified by:
getEndpoint in interface CamelContext
Parameters:
uri - the URI of the endpoint
Returns:
the endpoint

getEndpoint

public <T extends Endpoint> T getEndpoint(String name,
                                          Class<T> endpointType)
Description copied from interface: CamelContext
Resolves the given name to an Endpoint of the specified type. If the name has a singleton endpoint registered, then the singleton is returned. Otherwise, a new Endpoint is created and if the endpoint is a singleton it is registered as a singleton endpoint.

Specified by:
getEndpoint in interface CamelContext
Parameters:
name - the name of the endpoint
endpointType - the expected type
Returns:
the endpoint

getRoutes

public List<Route> getRoutes()
Description copied from interface: CamelContext
Returns the current routes in this context

Specified by:
getRoutes in interface CamelContext
Returns:
the current routes

setRoutes

public void setRoutes(List<Route> routes)
Description copied from interface: CamelContext
Sets the routes for this context, replacing any current routes

Specified by:
setRoutes in interface CamelContext
Parameters:
routes - the new routes to use

addRoutes

public void addRoutes(Collection<Route> routes)
               throws Exception
Description copied from interface: CamelContext
Adds a collection of routes to this context

Specified by:
addRoutes in interface CamelContext
Parameters:
routes - the routes to add
Throws:
Exception - if the routes could not be created for whatever reason

addRoutes

public void addRoutes(Routes builder)
               throws Exception
Description copied from interface: CamelContext
Adds a collection of routes to this context using the given builder to build them

Specified by:
addRoutes in interface CamelContext
Parameters:
builder - the builder which will create the routes and add them to this context
Throws:
Exception - if the routes could not be created for whatever reason

addRouteDefinitions

public void addRouteDefinitions(Collection<RouteType> routeDefinitions)
                         throws Exception
Description copied from interface: CamelContext
Adds a collection of route definitions to the context

Specified by:
addRouteDefinitions in interface CamelContext
Parameters:
routeDefinitions - the route definitions to add
Throws:
Exception - if the route definition could not be created for whatever reason

addService

public void addService(Object object)
                throws Exception
Adds a service, starting it so that it will be stopped with this context

Throws:
Exception

resolveLanguage

public Language resolveLanguage(String language)
Description copied from interface: CamelContext
Resolves a language for creating expressions

Specified by:
resolveLanguage in interface CamelContext
Parameters:
language - name of the language
Returns:
the resolved language

getExchangeConverter

public ExchangeConverter getExchangeConverter()
Description copied from interface: CamelContext
Returns the converter of exchanges from one type to another

Specified by:
getExchangeConverter in interface CamelContext
Returns:
the converter

setExchangeConverter

public void setExchangeConverter(ExchangeConverter exchangeConverter)

getTypeConverter

public TypeConverter getTypeConverter()
Description copied from interface: CamelContext
Returns the type converter used to coerce types from one type to another

Specified by:
getTypeConverter in interface CamelContext
Returns:
the converter

setTypeConverter

public void setTypeConverter(TypeConverter typeConverter)

getInjector

public Injector getInjector()
Description copied from interface: CamelContext
Returns the injector used to instantiate objects by type

Specified by:
getInjector in interface CamelContext
Returns:
the injector

setInjector

public void setInjector(Injector injector)

getComponentResolver

public ComponentResolver getComponentResolver()

setComponentResolver

public void setComponentResolver(ComponentResolver componentResolver)

getLanguageResolver

public LanguageResolver getLanguageResolver()

setLanguageResolver

public void setLanguageResolver(LanguageResolver languageResolver)

isAutoCreateComponents

public boolean isAutoCreateComponents()

setAutoCreateComponents

public void setAutoCreateComponents(boolean autoCreateComponents)

getRegistry

public Registry getRegistry()
Description copied from interface: CamelContext
Returns the registry used to lookup components by name and type such as the Spring ApplicationContext, JNDI or the OSGi Service Registry

Specified by:
getRegistry in interface CamelContext
Returns:
the registry

setJndiContext

public void setJndiContext(Context jndiContext)
Sets the registry to the given JNDI context

Parameters:
jndiContext - is the JNDI context to use as the registry
See Also:
setRegistry(org.apache.camel.spi.Registry)

setRegistry

public void setRegistry(Registry registry)

getLifecycleStrategy

public LifecycleStrategy getLifecycleStrategy()
Description copied from interface: CamelContext
Returns the lifecycle strategy used to handle lifecycle notification

Specified by:
getLifecycleStrategy in interface CamelContext
Returns:
the lifecycle strategy

setLifecycleStrategy

public void setLifecycleStrategy(LifecycleStrategy lifecycleStrategy)

getRouteDefinitions

public List<RouteType> getRouteDefinitions()
Description copied from interface: CamelContext
Returns a list of the current route definitions

Specified by:
getRouteDefinitions in interface CamelContext
Returns:
list of the current route definitions

getInterceptStrategies

public List<InterceptStrategy> getInterceptStrategies()

setInterceptStrategies

public void setInterceptStrategies(List<InterceptStrategy> interceptStrategies)

addInterceptStrategy

public void addInterceptStrategy(InterceptStrategy interceptStrategy)
Description copied from interface: CamelContext
Adds the given interceptor strategy

Specified by:
addInterceptStrategy in interface CamelContext
Parameters:
interceptStrategy - the strategy

getTrace

public boolean getTrace()
Returns true if tracing has been enabled or disabled via the setTrace(Boolean) method or it has not been specified then default to the camel.trace system property


getTracing

public Boolean getTracing()

setTrace

public void setTrace(Boolean trace)

getDelay

public long getDelay()
Returns the delay in millis if delaying has been enabled or disabled via the setDelay(Long) method or it has not been specified then default to the camel.delay system property


getDelaying

public Long getDelaying()

setDelay

public void setDelay(Long delay)

createProducerTemplate

public <E extends Exchange> ProducerTemplate<E> createProducerTemplate()
Description copied from interface: CamelContext
Creates a new ProducerTemplate.

See this FAQ before use: Why does Camel use too many threads with ProducerTemplate?

Specified by:
createProducerTemplate in interface CamelContext
Returns:
the template

getErrorHandlerBuilder

public ErrorHandlerBuilder getErrorHandlerBuilder()
Description copied from interface: CamelContext
Gets the default error handler builder which is inherited by the routes

Specified by:
getErrorHandlerBuilder in interface CamelContext
Returns:
the builder

setErrorHandlerBuilder

public void setErrorHandlerBuilder(ErrorHandlerBuilder errorHandlerBuilder)
Sets the default error handler builder which is inherited by the routes

Specified by:
setErrorHandlerBuilder in interface CamelContext
Parameters:
errorHandlerBuilder - the builder

start

public void start()
           throws Exception
Description copied from interface: Service
Starts the service

Specified by:
start in interface Service
Overrides:
start in class ServiceSupport
Throws:
Exception

doStart

protected void doStart()
                throws Exception
Specified by:
doStart in class ServiceSupport
Throws:
Exception

startRouteDefinitions

protected void startRouteDefinitions(Collection<RouteType> list)
                              throws Exception
Throws:
Exception

doStop

protected void doStop()
               throws Exception
Specified by:
doStop in class ServiceSupport
Throws:
Exception

startRoutes

protected void startRoutes(Collection<Route> routeList)
                    throws Exception
Throws:
Exception

forceLazyInitialization

protected void forceLazyInitialization()
Lets force some lazy initialization to occur upfront before we start any components and create routes


createExchangeConverter

protected ExchangeConverter createExchangeConverter()
Lazily create a default implementation


createTypeConverter

protected TypeConverter createTypeConverter()
Lazily create a default implementation


createInjector

protected Injector createInjector()
Lazily create a default implementation


createComponentResolver

protected ComponentResolver createComponentResolver()
Lazily create a default implementation


createRegistry

protected Registry createRegistry()
Lazily create a default implementation


createEndpoint

protected Endpoint createEndpoint(String uri)
A pluggable strategy to allow an endpoint to be created without requiring a component to be its factory, such as for looking up the URI inside some Registry

Parameters:
uri - the uri for the endpoint to be created
Returns:
the newly created endpoint or null if it could not be resolved

convertBeanToEndpoint

protected Endpoint convertBeanToEndpoint(String uri,
                                         Object bean)
Attempt to convert the bean from a Registry to an endpoint using some kind of transformation or wrapper

Parameters:
uri - the uri for the endpoint (and name in the registry)
bean - the bean to be converted to an endpoint, which will be not null
Returns:
a new endpoint

shouldStartRoutes

protected boolean shouldStartRoutes()
Should we start newly added routes?


setDataFormats

public void setDataFormats(Map<String,DataFormatType> dataFormats)
Description copied from interface: CamelContext
Sets the data formats that can be referenced in the routes.

Specified by:
setDataFormats in interface CamelContext
Parameters:
dataFormats - the data formats

getDataFormats

public Map<String,DataFormatType> getDataFormats()
Description copied from interface: CamelContext
Gets the data formats that can be referenced in the routes.

Specified by:
getDataFormats in interface CamelContext
Returns:
the data formats available

setFactoryFinderClass

public void setFactoryFinderClass(Class<? extends FactoryFinder> finderClass)

getProperties

public Map<String,String> getProperties()
Description copied from interface: CamelContext
Gets the properties that can be referenced in the camel context

Specified by:
getProperties in interface CamelContext

setProperties

public void setProperties(Map<String,String> properties)
Description copied from interface: CamelContext
Sets the properties that can be referenced in the camel context

Specified by:
setProperties in interface CamelContext

createFactoryFinder

public FactoryFinder createFactoryFinder()
Description copied from interface: CamelContext
Create a FactoryFinder which will be used for the loading the factory class from META-INF

Specified by:
createFactoryFinder in interface CamelContext
Returns:
the factory finder

createFactoryFinder

public FactoryFinder createFactoryFinder(String path)
Description copied from interface: CamelContext
Create a FactoryFinder which will be used for the loading the factory class from META-INF

Specified by:
createFactoryFinder in interface CamelContext
Parameters:
path - the META-INF path
Returns:
the factory finder

getEndpointKey

protected String getEndpointKey(String uri,
                                Endpoint endpoint)


Apache CAMEL