public final class ProcessorDefinitionHelper extends Object
Modifier and Type | Method and Description |
---|---|
static void |
addPropertyPlaceholdersChangeRevertAction(Runnable action) |
static Runnable |
createPropertyPlaceholdersChangeReverter()
Creates a Runnable which when run will revert property placeholder
updates to the camel route definitions that were done after this method
is called.
|
static <T> Iterator<T> |
filterTypeInOutputs(List<ProcessorDefinition<?>> outputs,
Class<T> type)
Looks for the given type in the list of outputs and recurring all the children as well.
|
static <T> Iterator<T> |
filterTypeInOutputs(List<ProcessorDefinition<?>> outputs,
Class<T> type,
int maxDeep)
Looks for the given type in the list of outputs and recurring all the children as well.
|
static <T> T |
findFirstTypeInOutputs(List<ProcessorDefinition<?>> outputs,
Class<T> type)
Looks for the given type in the list of outputs and recurring all the children as well.
|
static Set<String> |
gatherAllNodeIds(ProcessorDefinition<?> node,
Set<String> set,
boolean onlyCustomId,
boolean includeAbstract)
Traverses the node, including its children (recursive), and gathers all the node ids.
|
static ExecutorService |
getConfiguredExecutorService(RouteContext routeContext,
String name,
ExecutorServiceAwareDefinition<?> definition,
boolean useDefault)
Will lookup and get the configured
ExecutorService from the given definition. |
static ScheduledExecutorService |
getConfiguredScheduledExecutorService(RouteContext routeContext,
String name,
ExecutorServiceAwareDefinition<?> definition,
boolean useDefault)
Will lookup and get the configured
ScheduledExecutorService from the given definition. |
static RouteDefinition |
getRoute(ProcessorDefinition<?> node)
Gets the route definition the given node belongs to.
|
static String |
getRouteId(ProcessorDefinition<?> node)
Gets the route id the given node belongs to.
|
static boolean |
hasOutputs(List<ProcessorDefinition<?>> outputs,
boolean excludeAbstract)
Is there any outputs in the given list.
|
static boolean |
isFirstChildOfType(Class<?> parentType,
ProcessorDefinition<?> node)
Is the given child the first in the outputs from the parent?
|
static boolean |
isParentOfType(Class<?> parentType,
ProcessorDefinition<?> node,
boolean recursive)
Is the given node parent(s) of the given type
|
static ExecutorService |
lookupExecutorServiceRef(RouteContext routeContext,
String name,
Object source,
String executorServiceRef)
Will lookup in
Registry for a ExecutorService registered with the given
executorServiceRef name. |
static ScheduledExecutorService |
lookupScheduledExecutorServiceRef(RouteContext routeContext,
String name,
Object source,
String executorServiceRef)
Will lookup in
Registry for a ScheduledExecutorService registered with the given
executorServiceRef name. |
static void |
resolveKnownConstantFields(Object definition)
Inspects the given definition and resolves known fields
This implementation will check all the getter/setter pairs on this instance and for all the values
(which is a String type) will check if it refers to a known field (such as on Exchange).
|
static void |
resolvePropertyPlaceholders(CamelContext camelContext,
Object definition)
Inspects the given definition and resolves any property placeholders from its properties.
|
static void |
resolvePropertyPlaceholders(RouteContext routeContext,
Object definition)
|
static boolean |
willCreateNewThreadPool(RouteContext routeContext,
ExecutorServiceAwareDefinition<?> definition,
boolean useDefault)
Determines whether a new thread pool will be created or not.
|
public static <T> Iterator<T> filterTypeInOutputs(List<ProcessorDefinition<?>> outputs, Class<T> type)
outputs
- list of outputs, can be null or empty.type
- the type to look forpublic static <T> Iterator<T> filterTypeInOutputs(List<ProcessorDefinition<?>> outputs, Class<T> type, int maxDeep)
outputs
- list of outputs, can be null or empty.type
- the type to look formaxDeep
- maximum levels deep to traversepublic static <T> T findFirstTypeInOutputs(List<ProcessorDefinition<?>> outputs, Class<T> type)
outputs
- list of outputs, can be null or empty.type
- the type to look forpublic static boolean isFirstChildOfType(Class<?> parentType, ProcessorDefinition<?> node)
parentType
- the type the parent must benode
- the nodepublic static boolean isParentOfType(Class<?> parentType, ProcessorDefinition<?> node, boolean recursive)
parentType
- the parent typenode
- the current noderecursive
- whether or not to check grand parent(s) as wellpublic static RouteDefinition getRoute(ProcessorDefinition<?> node)
node
- the nodepublic static String getRouteId(ProcessorDefinition<?> node)
node
- the nodepublic static Set<String> gatherAllNodeIds(ProcessorDefinition<?> node, Set<String> set, boolean onlyCustomId, boolean includeAbstract)
node
- the target nodeset
- set to store ids, if null a new set will be createdonlyCustomId
- whether to only store custom assigned ids (ie. OptionalIdentifiedDefinition.hasCustomIdAssigned()
includeAbstract
- whether to include abstract nodes (ie. ProcessorDefinition.isAbstract()
public static boolean hasOutputs(List<ProcessorDefinition<?>> outputs, boolean excludeAbstract)
outputs
- the outputsexcludeAbstract
- whether or not to exclude abstract outputs (e.g. skip onException etc.)public static boolean willCreateNewThreadPool(RouteContext routeContext, ExecutorServiceAwareDefinition<?> definition, boolean useDefault)
routeContext
- the route contextdefinition
- the node definition which may leverage executor service.useDefault
- whether to fallback and use a default thread pool, if no explicit configuredgetConfiguredExecutorService(org.apache.camel.spi.RouteContext, String, ExecutorServiceAwareDefinition, boolean)
public static ExecutorService lookupExecutorServiceRef(RouteContext routeContext, String name, Object source, String executorServiceRef)
Registry
for a ExecutorService
registered with the given
executorServiceRef name.
This method will lookup for configured thread pool in the following order
Registry
if foundThreadPoolProfile(s)
.routeContext
- the route contextname
- name which is appended to the thread name, when the ExecutorService
is created based on a ThreadPoolProfile
.source
- the source to use the thread poolexecutorServiceRef
- reference name of the thread poolpublic static ExecutorService getConfiguredExecutorService(RouteContext routeContext, String name, ExecutorServiceAwareDefinition<?> definition, boolean useDefault) throws IllegalArgumentException
ExecutorService
from the given definition.
This method will lookup for configured thread pool in the following order
Registry
if foundThreadPoolProfile(s)
.ExecutorServiceAwareDefinition
should use this helper method to ensure they support
configured executor services in the same coherent way.routeContext
- the route contextname
- name which is appended to the thread name, when the ExecutorService
is created based on a ThreadPoolProfile
.definition
- the node definition which may leverage executor service.useDefault
- whether to fallback and use a default thread pool, if no explicit configuredIllegalArgumentException
- is thrown if lookup of executor service in Registry
was not foundpublic static ScheduledExecutorService lookupScheduledExecutorServiceRef(RouteContext routeContext, String name, Object source, String executorServiceRef)
Registry
for a ScheduledExecutorService
registered with the given
executorServiceRef name.
This method will lookup for configured thread pool in the following order
Registry
if foundThreadPoolProfile(s)
.routeContext
- the route contextname
- name which is appended to the thread name, when the ExecutorService
is created based on a ThreadPoolProfile
.source
- the source to use the thread poolexecutorServiceRef
- reference name of the thread poolpublic static ScheduledExecutorService getConfiguredScheduledExecutorService(RouteContext routeContext, String name, ExecutorServiceAwareDefinition<?> definition, boolean useDefault) throws IllegalArgumentException
ScheduledExecutorService
from the given definition.
This method will lookup for configured thread pool in the following order
Registry
if foundThreadPoolProfile(s)
.ExecutorServiceAwareDefinition
should use this helper method to ensure they support
configured executor services in the same coherent way.routeContext
- the rout contextname
- name which is appended to the thread name, when the ExecutorService
is created based on a ThreadPoolProfile
.definition
- the node definition which may leverage executor service.useDefault
- whether to fallback and use a default thread pool, if no explicit configuredIllegalArgumentException
- is thrown if the found instance is not a ScheduledExecutorService type,
or lookup of executor service in Registry
was not foundpublic static Runnable createPropertyPlaceholdersChangeReverter()
Runnable undo = ProcessorDefinitionHelper.createPropertyPlaceholdersChangeReverter(); try { // All property resolutions in this block will be reverted. } finally { undo.run(); }
public static void addPropertyPlaceholdersChangeRevertAction(Runnable action)
@Deprecated public static void resolvePropertyPlaceholders(RouteContext routeContext, Object definition) throws Exception
routeContext
- the route contextdefinition
- the definitionException
- is thrown if property placeholders was used and there was an error resolving themCamelContext.resolvePropertyPlaceholders(String)
,
PropertiesComponent
public static void resolvePropertyPlaceholders(CamelContext camelContext, Object definition) throws Exception
OtherAttributesAware
camelContext
- the Camel contextdefinition
- the definition which should implement OtherAttributesAware
Exception
- is thrown if property placeholders was used and there was an error resolving themCamelContext.resolvePropertyPlaceholders(String)
,
PropertiesComponent
public static void resolveKnownConstantFields(Object definition) throws Exception
definition
- the definitionException
Apache Camel