Language

Language

Scheme: language
Syntax: language:languageName:resourceUri
Description: The language component allows you to send a message to an endpoint which executes a script by any of the supported Languages in Camel.
Deprecated:false
Maven: org.apache.camel/camel-core/2.17.0.redhat-630310

The language component allows you to send a message to an endpoint which executes a script by any of the supported Languages in Camel. By having a component to execute language scripts, it allows more dynamic routing capabilities. For example by using the Routing Slip or Dynamic Router EIPs you can send messages to language endpoints where the script is dynamic defined as well. This component is provided out of the box in camel-core and hence no additional JARs is needed. You only have to include additional Camel components if the language of choice mandates it, such as using Groovy or JavaScript languages.

Name Kind Group Required Default Type Enum Description
languageName path producer true java.lang.String bean
constant
el
exchangeProperty
file
groovy
header
javascript
jsonpath
jxpath
mvel
ognl
php
python
ref
ruby
simple
spel
sql
terser
tokenize
xpath
xquery
xtokenize
Sets the name of the language to use @param languageName the name of the language
resourceUri path producer false java.lang.String Path to the resource, or a reference to lookup a bean in the Registry to use as the resource @param resourceUri the resource path
bridgeErrorHandler parameter consumer boolean Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler.

By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN/ERROR level and ignored.

sendEmptyMessageWhenIdle parameter consumer boolean If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead.
exceptionHandler parameter consumer (advanced) org.apache.camel.spi.ExceptionHandler To let the consumer use a custom ExceptionHandler. + Notice if the option bridgeErrorHandler is enabled then this options is not in use. + By default the consumer will deal with exceptions, that will be logged at WARN/ERROR level and ignored.
pollStrategy parameter consumer (advanced) org.apache.camel.spi.PollingConsumerPollStrategy A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. In other words the error occurred while the polling was gathering information, for instance access to a file network failed so Camel cannot access it to scan for files. The default implementation will log the caused exception at WARN level and ignore it.
binary parameter producer boolean Whether the script is binary content or text content.

By default the script is read as text content (eg java.lang.String) @param binary true to read the script as binary, instead of text based.

cacheScript parameter producer boolean Whether to cache the compiled script and reuse

Notice reusing the script can cause side effects from processing one Camel {@link org.apache.camel.Exchange} to the next {@link org.apache.camel.Exchange}.

contentCache parameter producer false boolean Sets whether to use resource content cache or not.
script parameter producer java.lang.String Sets the script to execute @param script the script
transform parameter producer true boolean Whether or not the result of the script should be used as message body.

This options is default true. @param transform true to use result as new message body, false to keep the existing message body

exchangePattern parameter advanced InOnly org.apache.camel.ExchangePattern InOnly
RobustInOnly
InOut
InOptionalOut
OutOnly
RobustOutOnly
OutIn
OutOptionalIn
Sets the default exchange pattern when creating an exchange.
synchronous parameter advanced false boolean Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). @param synchronous true to enforce synchronous processing
backoffErrorThreshold parameter scheduler int The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in.
backoffIdleThreshold parameter scheduler int The number of subsequent idle polls that should happen before the backoffMultipler should kick-in.
backoffMultiplier parameter scheduler int To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured.
delay parameter scheduler 500 long Milliseconds before the next poll.
greedy parameter scheduler boolean If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages.
initialDelay parameter scheduler 1000 long Milliseconds before the first poll starts.
runLoggingLevel parameter scheduler TRACE org.apache.camel.LoggingLevel TRACE
DEBUG
INFO
WARN
ERROR
OFF
The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that.
scheduledExecutorService parameter scheduler java.util.concurrent.ScheduledExecutorService Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. This option allows you to share a thread pool among multiple consumers.
scheduler parameter scheduler none org.apache.camel.spi.ScheduledPollConsumerScheduler none
spring
quartz2
Allow to plugin a custom org.apache.camel.spi.ScheduledPollConsumerScheduler to use as the scheduler for firing when the polling consumer runs. The default implementation uses the ScheduledExecutorService and there is a Quartz2, and Spring based which supports CRON expressions. Notice: If using a custom scheduler then the options for initialDelay, useFixedDelay, timeUnit, and scheduledExecutorService may not be in use. Use the text quartz2 to refer to use the Quartz2 scheduler; and use the text spring to use the Spring based; and use the text #myScheduler to refer to a custom scheduler by its id in the Registry. See Quartz2 page for an example.
schedulerProperties parameter scheduler java.util.Map To configure additional properties when using a custom scheduler or any of the Quartz2, Spring based scheduler.
startScheduler parameter scheduler true boolean Whether the scheduler should be auto started.
timeUnit parameter scheduler MILLISECONDS java.util.concurrent.TimeUnit NANOSECONDS
MICROSECONDS
MILLISECONDS
SECONDS
MINUTES
HOURS
DAYS
Time unit for initialDelay and delay options.
useFixedDelay parameter scheduler true boolean Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details.