org.apache.camel
Interface CamelContext

All Superinterfaces:
RuntimeConfiguration, Service
All Known Implementing Classes:
DefaultCamelContext

public interface CamelContext
extends Service, RuntimeConfiguration

Interface used to represent the context used to configure routes and the policies to use during message exchanges between endpoints.

Version:
$Revision: 800180 $

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 addRegisterEndpointCallback(EndpointStrategy strategy)
          Registers a callback to allow you to do custom logic when an Endpoint is about to be registered to the CamelContext endpoint registry.
 void addRouteDefinitions(Collection<RouteDefinition> routeDefinitions)
          Adds a collection of route definitions to the context
 void addRoutes(RoutesBuilder builder)
          Adds a collection of routes to this context using the given builder to build them
 ConsumerTemplate createConsumerTemplate()
          Creates a new ConsumerTemplate.
 ProducerTemplate createProducerTemplate()
          Creates a new ProducerTemplate.
 ClassResolver getClassResolver()
          Returns the class resolver to be used for loading/lookup of classes.
 Component getComponent(String componentName)
          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.
 List<String> getComponentNames()
          Gets a readonly list of names of the components currently registered
 Map<String,DataFormatDefinition> getDataFormats()
          Gets the data formats that can be referenced in the routes.
 FactoryFinder getDefaultFactoryFinder()
          Gets the default FactoryFinder which will be used for the loading the factory class from META-INF
 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.
 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
 FactoryFinder getFactoryFinder(String path)
          Gets the FactoryFinder which will be used for the loading the factory class from META-INF in the given path
 Injector getInjector()
          Returns the injector used to instantiate objects by type
 List<InterceptStrategy> getInterceptStrategies()
          Gets the interceptor strategies
 List<String> getLanguageNames()
          Gets a readonly list with the names of the languages currently registered.
 LifecycleStrategy getLifecycleStrategy()
          Returns the lifecycle strategy used to handle lifecycle notification
 String getName()
          Gets the name of the this context.
 NodeIdFactory getNodeIdFactory()
          Gets the node id factory
 Component getOrCreateComponent(String componentName, Callable<Component> factory)
          Gets the a previously added component by name or lazily creates the component using the factory Callback.
 PackageScanClassResolver getPackageScanClassResolver()
          Returns the package scanning class resolver
 ServicePool<Endpoint,Producer> getProducerServicePool()
          Gets the service pool for Producer pooling.
 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<RouteDefinition> getRouteDefinitions()
          Returns a list of the current route definitions
 List<Route> getRoutes()
          Returns the current routes in this context
 ServiceStatus getRouteStatus(RouteDefinition route)
          Returns the current status of the given route
 Collection<Endpoint> getSingletonEndpoints()
          Returns the collection of all registered singleton endpoints.
 TypeConverter getTypeConverter()
          Returns the type converter used to coerce types from one type to another
 TypeConverterRegistry getTypeConverterRegistry()
          Returns the type converter registry where type converters can be added or looked up
 Endpoint hasEndpoint(String uri)
          Is the given endpoint already registered?
 Component removeComponent(String componentName)
          Removes a previously added component.
 Collection<Endpoint> removeEndpoints(String uri)
          Removes all endpoints with the given URI
 void removeRouteDefinitions(Collection<RouteDefinition> routeDefinitions)
          Removes a collection of route definitions from the context - stopping any previously running routes if any of them are actively running
 Language resolveLanguage(String language)
          Resolves a language for creating expressions
 void setClassResolver(ClassResolver resolver)
          Sets the class resolver to be use
 void setDataFormats(Map<String,DataFormatDefinition> dataFormats)
          Sets the data formats that can be referenced in the routes.
 void setErrorHandlerBuilder(ErrorHandlerBuilder errorHandlerBuilder)
          Sets the default error handler builder which is inherited by the routes
 void setFactoryFinderResolver(FactoryFinderResolver resolver)
          Sets the factory finder resolver to use.
 void setNodeIdFactory(NodeIdFactory factory)
          Uses a custom node id factory when generating auto assigned ids to the nodes in the route definitions
 void setPackageScanClassResolver(PackageScanClassResolver resolver)
          Sets the package scanning class resolver to use
 void setProducerServicePool(ServicePool<Endpoint,Producer> servicePool)
          Sets a pluggable service pool to use for Producer pooling.
 void setProperties(Map<String,String> properties)
          Sets the properties that can be referenced in the camel context
 void startRoute(RouteDefinition route)
          Starts the given route if it has been previously stopped
 void stopRoute(RouteDefinition route)
          Stops the given route.
 
Methods inherited from interface org.apache.camel.Service
start, stop
 
Methods inherited from interface org.apache.camel.RuntimeConfiguration
getDelayer, isHandleFault, isStreamCaching, isTracing, setDelayer, setHandleFault, setStreamCaching, setTracing
 

Method Detail

getName

String getName()
Gets the name of the this context.

Returns:
the name

addComponent

void addComponent(String componentName,
                  Component component)
Adds a component to the context.

Parameters:
componentName - the name the component is registered as
component - the component

getComponent

Component getComponent(String componentName)
Gets a component from the context by name.

Parameters:
componentName - the name of the component
Returns:
the component

getComponent

<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.

Parameters:
name - the name to lookup
componentType - the expected type
Returns:
the component

getComponentNames

List<String> getComponentNames()
Gets a readonly list of names of the components currently registered

Returns:
a readonly list with the names of the the components

removeComponent

Component removeComponent(String componentName)
Removes a previously added component.

Parameters:
componentName - the component name to remove
Returns:
the previously added component or null if it had not been previously added.

getOrCreateComponent

Component getOrCreateComponent(String componentName,
                               Callable<Component> factory)
Gets the a previously added component by name or lazily creates the component using the factory Callback.

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

getEndpoint

Endpoint getEndpoint(String uri)
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.

Parameters:
uri - the URI of the endpoint
Returns:
the endpoint

getEndpoint

<T extends Endpoint> T getEndpoint(String name,
                                   Class<T> endpointType)
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.

Parameters:
name - the name of the endpoint
endpointType - the expected type
Returns:
the endpoint

getEndpoints

Collection<Endpoint> getEndpoints()
Returns the collection of all registered endpoints.

Returns:
all endpoints

getEndpointMap

Map<String,Endpoint> getEndpointMap()
Returns a new Map containing all of the active endpoints with the key of the map being their unique key.

Returns:
map of active endpoints

hasEndpoint

Endpoint hasEndpoint(String uri)
Is the given endpoint already registered?

Parameters:
uri - the URI of the endpoint
Returns:
the registered endpoint or null if not registered

getEndpoints

Collection<Endpoint> getEndpoints(String uri)
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.

Parameters:
uri - the URI of the endpoints
Returns:
collection of endpoints

getSingletonEndpoints

Collection<Endpoint> getSingletonEndpoints()
Returns the collection of all registered singleton endpoints.

Returns:
all the singleton endpoints

addEndpoint

Endpoint addEndpoint(String uri,
                     Endpoint endpoint)
                     throws Exception
Adds the endpoint to the context using the given URI.

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

Collection<Endpoint> removeEndpoints(String uri)
                                     throws Exception
Removes all endpoints with the given URI

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

addRegisterEndpointCallback

void addRegisterEndpointCallback(EndpointStrategy strategy)
Registers a callback to allow you to do custom logic when an Endpoint is about to be registered to the CamelContext endpoint registry.

When a callback is added it will be executed on the already registered endpoints allowing you to catch-up

Parameters:
strategy - callback to be invoked

getRouteDefinitions

List<RouteDefinition> getRouteDefinitions()
Returns a list of the current route definitions

Returns:
list of the current route definitions

getRoutes

List<Route> getRoutes()
Returns the current routes in this context

Returns:
the current routes

addRoutes

void addRoutes(RoutesBuilder builder)
               throws Exception
Adds a collection of routes to this context using the given builder to build them

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

void addRouteDefinitions(Collection<RouteDefinition> routeDefinitions)
                         throws Exception
Adds a collection of route definitions to the context

Parameters:
routeDefinitions - the route definitions to add
Throws:
Exception - if the route definition could not be created for whatever reason

removeRouteDefinitions

void removeRouteDefinitions(Collection<RouteDefinition> routeDefinitions)
                            throws Exception
Removes a collection of route definitions from the context - stopping any previously running routes if any of them are actively running

Parameters:
routeDefinitions - route definitions
Throws:
Exception - if the route definition could not be removed for whatever reason

startRoute

void startRoute(RouteDefinition route)
                throws Exception
Starts the given route if it has been previously stopped

Parameters:
route - the route to start
Throws:
Exception - is thrown if the route could not be started for whatever reason

stopRoute

void stopRoute(RouteDefinition route)
               throws Exception
Stops the given route. It will remain in the list of route definitions return by getRouteDefinitions() unless you use the removeRouteDefinitions(java.util.Collection)

Parameters:
route - the route to stop
Throws:
Exception - is thrown if the route could not be stopped for whatever reason

getTypeConverter

TypeConverter getTypeConverter()
Returns the type converter used to coerce types from one type to another

Returns:
the converter

getTypeConverterRegistry

TypeConverterRegistry getTypeConverterRegistry()
Returns the type converter registry where type converters can be added or looked up

Returns:
the type converter registry

getRegistry

Registry getRegistry()
Returns the registry used to lookup components by name and type such as the Spring ApplicationContext, JNDI or the OSGi Service Registry

Returns:
the registry

getInjector

Injector getInjector()
Returns the injector used to instantiate objects by type

Returns:
the injector

getLifecycleStrategy

LifecycleStrategy getLifecycleStrategy()
Returns the lifecycle strategy used to handle lifecycle notification

Returns:
the lifecycle strategy

resolveLanguage

Language resolveLanguage(String language)
Resolves a language for creating expressions

Parameters:
language - name of the language
Returns:
the resolved language

getLanguageNames

List<String> getLanguageNames()
Gets a readonly list with the names of the languages currently registered.

Returns:
a readonly list with the names of the the languages

createProducerTemplate

ProducerTemplate createProducerTemplate()
Creates a new ProducerTemplate.

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

Returns:
the template

createConsumerTemplate

ConsumerTemplate createConsumerTemplate()
Creates a new ConsumerTemplate.

See this FAQ before use: Why does Camel use too many threads with ProducerTemplate? as it also applies for ConsumerTemplate.

Returns:
the template

addInterceptStrategy

void addInterceptStrategy(InterceptStrategy interceptStrategy)
Adds the given interceptor strategy

Parameters:
interceptStrategy - the strategy

getInterceptStrategies

List<InterceptStrategy> getInterceptStrategies()
Gets the interceptor strategies

Returns:
the list of current interceptor strategies

getErrorHandlerBuilder

ErrorHandlerBuilder getErrorHandlerBuilder()
Gets the default error handler builder which is inherited by the routes

Returns:
the builder

setErrorHandlerBuilder

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

Parameters:
errorHandlerBuilder - the builder

setDataFormats

void setDataFormats(Map<String,DataFormatDefinition> dataFormats)
Sets the data formats that can be referenced in the routes.

Parameters:
dataFormats - the data formats

getDataFormats

Map<String,DataFormatDefinition> getDataFormats()
Gets the data formats that can be referenced in the routes.

Returns:
the data formats available

setProperties

void setProperties(Map<String,String> properties)
Sets the properties that can be referenced in the camel context

Parameters:
properties - properties

getProperties

Map<String,String> getProperties()
Gets the properties that can be referenced in the camel context

Returns:
the properties

getDefaultFactoryFinder

FactoryFinder getDefaultFactoryFinder()
Gets the default FactoryFinder which will be used for the loading the factory class from META-INF

Returns:
the default factory finder

setFactoryFinderResolver

void setFactoryFinderResolver(FactoryFinderResolver resolver)
Sets the factory finder resolver to use.

Parameters:
resolver - the factory finder resolver

getFactoryFinder

FactoryFinder getFactoryFinder(String path)
                               throws NoFactoryAvailableException
Gets the FactoryFinder which will be used for the loading the factory class from META-INF in the given path

Parameters:
path - the META-INF path
Returns:
the factory finder
Throws:
NoFactoryAvailableException - is thrown if a factory could not be found

getRouteStatus

ServiceStatus getRouteStatus(RouteDefinition route)
Returns the current status of the given route

Parameters:
route - the route
Returns:
the status for the route

getClassResolver

ClassResolver getClassResolver()
Returns the class resolver to be used for loading/lookup of classes.

Returns:
the resolver

getPackageScanClassResolver

PackageScanClassResolver getPackageScanClassResolver()
Returns the package scanning class resolver

Returns:
the resolver

setClassResolver

void setClassResolver(ClassResolver resolver)
Sets the class resolver to be use

Parameters:
resolver - the resolver

setPackageScanClassResolver

void setPackageScanClassResolver(PackageScanClassResolver resolver)
Sets the package scanning class resolver to use

Parameters:
resolver - the resolver

setProducerServicePool

void setProducerServicePool(ServicePool<Endpoint,Producer> servicePool)
Sets a pluggable service pool to use for Producer pooling.

Parameters:
servicePool - the pool

getProducerServicePool

ServicePool<Endpoint,Producer> getProducerServicePool()
Gets the service pool for Producer pooling.

Returns:
the service pool

setNodeIdFactory

void setNodeIdFactory(NodeIdFactory factory)
Uses a custom node id factory when generating auto assigned ids to the nodes in the route definitions

Parameters:
factory - custom factory to use

getNodeIdFactory

NodeIdFactory getNodeIdFactory()
Gets the node id factory

Returns:
the node id factory


Apache CAMEL