Package org.apache.camel.support
Class DefaultEndpoint
- java.lang.Object
-
- org.apache.camel.support.service.BaseService
-
- org.apache.camel.support.service.ServiceSupport
-
- org.apache.camel.support.DefaultEndpoint
-
- All Implemented Interfaces:
AutoCloseable,org.apache.camel.CamelContextAware,org.apache.camel.Endpoint,org.apache.camel.IsSingleton,org.apache.camel.Service,org.apache.camel.ShutdownableService,org.apache.camel.spi.HasId,org.apache.camel.StatefulService,org.apache.camel.SuspendableService
- Direct Known Subclasses:
ScheduledPollEndpoint
public abstract class DefaultEndpoint extends org.apache.camel.support.service.ServiceSupport implements org.apache.camel.Endpoint, org.apache.camel.spi.HasId, org.apache.camel.CamelContextAwareDefaultEndpoint.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedDefaultEndpoint()Constructs a partially-initialized DefaultEndpoint instance.protectedDefaultEndpoint(String endpointUri, org.apache.camel.Component component)Constructs a fully-initialized DefaultEndpoint instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidconfigureConsumer(org.apache.camel.Consumer consumer)voidconfigureExchange(org.apache.camel.Exchange exchange)protected voidconfigurePollingConsumer(org.apache.camel.PollingConsumer consumer)voidconfigureProperties(Map<String,Object> options)org.apache.camel.AsyncProducercreateAsyncProducer()protected StringcreateEndpointUri()A factory method to lazily create the endpointUri if none is specifiedorg.apache.camel.ExchangecreateExchange()org.apache.camel.ExchangecreateExchange(org.apache.camel.ExchangePattern pattern)org.apache.camel.PollingConsumercreatePollingConsumer()protected voiddoInit()protected voiddoStart()protected voiddoStop()booleanequals(Object object)org.apache.camel.CamelContextgetCamelContext()org.apache.camel.ComponentgetComponent()Returns the component that created this endpoint, or null if none set.StringgetEndpointKey()StringgetEndpointUri()org.apache.camel.spi.ExceptionHandlergetExceptionHandler()org.apache.camel.ExchangePatterngetExchangePattern()StringgetId()Returns a unique String ID which can be used for aliasing without having to use the whole URI which is not uniquelonggetPollingConsumerBlockTimeout()intgetPollingConsumerQueueSize()inthashCode()booleanisAutowiredEnabled()booleanisBridgeErrorHandler()booleanisLazyStartProducer()booleanisLenientProperties()booleanisPollingConsumerBlockWhenFull()booleanisPollingConsumerCopy()booleanisSingleton()An endpoint should favour to be singleton by default, only in some rare special cases can an endpoint be non-singleton.voidsetAutowiredEnabled(boolean autowiredEnabled)Whether autowiring is enabled.voidsetBridgeErrorHandler(boolean bridgeErrorHandler)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.voidsetCamelContext(org.apache.camel.CamelContext camelContext)voidsetComponent(org.apache.camel.Component component)protected voidsetEndpointUri(String endpointUri)Sets the URI that created this endpoint.voidsetEndpointUriIfNotSpecified(String value)Sets the endpointUri if it has not been specified yet via some kind of dependency injection mechanism.voidsetExceptionHandler(org.apache.camel.spi.ExceptionHandler exceptionHandler)To let the consumer use a custom ExceptionHandler.voidsetExchangePattern(org.apache.camel.ExchangePattern exchangePattern)Sets the default exchange pattern when creating an exchange.voidsetLazyStartProducer(boolean lazyStartProducer)Whether the producer should be started lazy (on the first message).voidsetPollingConsumerBlockTimeout(long pollingConsumerBlockTimeout)Sets the timeout in millis to use when adding to the internal queue off whenEventDrivenPollingConsumeris being used.voidsetPollingConsumerBlockWhenFull(boolean pollingConsumerBlockWhenFull)Set whether to block when adding to the internal queue off whenEventDrivenPollingConsumeris being used.voidsetPollingConsumerCopy(boolean pollingConsumerCopy)Sets whether to copy the exchange when adding to the internal queue off whenEventDrivenPollingConsumeris being used.voidsetPollingConsumerQueueSize(int pollingConsumerQueueSize)Sets thePollingConsumerqueue size, whenEventDrivenPollingConsumeris being used.voidsetProperties(Object bean, Map<String,Object> parameters)Sets the bean properties on the given bean.StringtoString()-
Methods inherited from class org.apache.camel.support.service.BaseService
build, doBuild, doFail, doLifecycleChange, doResume, doShutdown, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.camel.Endpoint
createConsumer, createProducer, getEndpointBaseUri, isSingletonProducer
-
-
-
-
Constructor Detail
-
DefaultEndpoint
protected DefaultEndpoint(String endpointUri, org.apache.camel.Component component)
Constructs a fully-initialized DefaultEndpoint instance. This is the preferred method of constructing an object from Java code (as opposed to Spring beans, etc.).- Parameters:
endpointUri- the full URI used to create this endpointcomponent- the component that created this endpoint
-
DefaultEndpoint
protected DefaultEndpoint()
Constructs a partially-initialized DefaultEndpoint instance. Useful when creating endpoints manually (e.g., as beans in Spring). Please note that the endpoint URI must be set through properties (or overridingcreateEndpointUri()if one uses this constructor. Note: It is preferred to create endpoints using the associated component.
-
-
Method Detail
-
getId
public String getId()
Returns a unique String ID which can be used for aliasing without having to use the whole URI which is not unique- Specified by:
getIdin interfaceorg.apache.camel.spi.HasId
-
getEndpointUri
public String getEndpointUri()
- Specified by:
getEndpointUriin interfaceorg.apache.camel.Endpoint
-
getEndpointKey
public String getEndpointKey()
- Specified by:
getEndpointKeyin interfaceorg.apache.camel.Endpoint
-
getCamelContext
public org.apache.camel.CamelContext getCamelContext()
- Specified by:
getCamelContextin interfaceorg.apache.camel.CamelContextAware- Specified by:
getCamelContextin interfaceorg.apache.camel.Endpoint
-
createAsyncProducer
public org.apache.camel.AsyncProducer createAsyncProducer() throws Exception- Specified by:
createAsyncProducerin interfaceorg.apache.camel.Endpoint- Throws:
Exception
-
getComponent
public org.apache.camel.Component getComponent()
Returns the component that created this endpoint, or null if none set.
-
setComponent
public void setComponent(org.apache.camel.Component component)
-
setCamelContext
public void setCamelContext(org.apache.camel.CamelContext camelContext)
- Specified by:
setCamelContextin interfaceorg.apache.camel.CamelContextAware- Specified by:
setCamelContextin interfaceorg.apache.camel.Endpoint
-
createPollingConsumer
public org.apache.camel.PollingConsumer createPollingConsumer() throws Exception- Specified by:
createPollingConsumerin interfaceorg.apache.camel.Endpoint- Throws:
Exception
-
createExchange
public org.apache.camel.Exchange createExchange()
- Specified by:
createExchangein interfaceorg.apache.camel.Endpoint
-
createExchange
public org.apache.camel.Exchange createExchange(org.apache.camel.ExchangePattern pattern)
- Specified by:
createExchangein interfaceorg.apache.camel.Endpoint
-
configureExchange
public void configureExchange(org.apache.camel.Exchange exchange)
- Specified by:
configureExchangein interfaceorg.apache.camel.Endpoint
-
getExchangePattern
public org.apache.camel.ExchangePattern getExchangePattern()
- Specified by:
getExchangePatternin interfaceorg.apache.camel.Endpoint
-
setExchangePattern
public void setExchangePattern(org.apache.camel.ExchangePattern exchangePattern)
Sets the default exchange pattern when creating an exchange.
-
isAutowiredEnabled
public boolean isAutowiredEnabled()
-
setAutowiredEnabled
public void setAutowiredEnabled(boolean autowiredEnabled)
Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. Important: If a component has the same option defined on both component and endpoint level, then disabling autowiring on endpoint level would not affect that the component will still be autowired, and therefore the endpoint will be configured with option from the component level. In other words turning off autowiring would then require to turn it off on the component level.
-
isLazyStartProducer
public boolean isLazyStartProducer()
-
setLazyStartProducer
public void setLazyStartProducer(boolean lazyStartProducer)
Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.
-
isBridgeErrorHandler
public boolean isBridgeErrorHandler()
-
setBridgeErrorHandler
public void setBridgeErrorHandler(boolean bridgeErrorHandler)
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.
-
getExceptionHandler
public org.apache.camel.spi.ExceptionHandler getExceptionHandler()
-
setExceptionHandler
public void setExceptionHandler(org.apache.camel.spi.ExceptionHandler 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.
-
getPollingConsumerQueueSize
public int getPollingConsumerQueueSize()
-
setPollingConsumerQueueSize
public void setPollingConsumerQueueSize(int pollingConsumerQueueSize)
Sets thePollingConsumerqueue size, whenEventDrivenPollingConsumeris being used. Notice some Camel components may have their own implementation ofPollingConsumerand therefore not using the defaultEventDrivenPollingConsumerimplementation. The default value is 1000
-
isPollingConsumerBlockWhenFull
public boolean isPollingConsumerBlockWhenFull()
-
setPollingConsumerBlockWhenFull
public void setPollingConsumerBlockWhenFull(boolean pollingConsumerBlockWhenFull)
Set whether to block when adding to the internal queue off whenEventDrivenPollingConsumeris being used. Notice some Camel components may have their own implementation ofPollingConsumerand therefore not using the defaultEventDrivenPollingConsumerimplementation. Setting this option to false, will result in anIllegalStateExceptionbeing thrown when trying to add to the queue, and it is full. The default value is true which will block the producer queue until the queue has space.
-
getPollingConsumerBlockTimeout
public long getPollingConsumerBlockTimeout()
-
setPollingConsumerBlockTimeout
public void setPollingConsumerBlockTimeout(long pollingConsumerBlockTimeout)
Sets the timeout in millis to use when adding to the internal queue off whenEventDrivenPollingConsumeris being used.- See Also:
setPollingConsumerBlockWhenFull(boolean)
-
isPollingConsumerCopy
public boolean isPollingConsumerCopy()
-
setPollingConsumerCopy
public void setPollingConsumerCopy(boolean pollingConsumerCopy)
Sets whether to copy the exchange when adding to the internal queue off whenEventDrivenPollingConsumeris being used. Important: When copy is enabled then the unit of work is handed over from the current exchange to the copied exchange instance. And therefore its the responsible of thePollingConsumerto done the unit of work on the received exchanges. When the polled exchange is no longer needed then MUST callUnitOfWork.done(Exchange). Default is false to not copy.
-
configureProperties
public void configureProperties(Map<String,Object> options)
- Specified by:
configurePropertiesin interfaceorg.apache.camel.Endpoint
-
setProperties
public void setProperties(Object bean, Map<String,Object> parameters)
Sets the bean properties on the given bean. This is the same logical implementation asDefaultComponent.setProperties(Object, java.util.Map)- Parameters:
bean- the beanparameters- properties to set
-
createEndpointUri
protected String createEndpointUri()
A factory method to lazily create the endpointUri if none is specified
-
setEndpointUriIfNotSpecified
public void setEndpointUriIfNotSpecified(String value)
Sets the endpointUri if it has not been specified yet via some kind of dependency injection mechanism. This allows dependency injection frameworks such as Spring to set the default endpoint URI in cases where it has not been explicitly configured using the name/context in which an Endpoint is created.
-
setEndpointUri
protected void setEndpointUri(String endpointUri)
Sets the URI that created this endpoint.
-
isSingleton
public boolean isSingleton()
An endpoint should favour to be singleton by default, only in some rare special cases can an endpoint be non-singleton. This implementation is singleton and this method returns true.- Specified by:
isSingletonin interfaceorg.apache.camel.IsSingleton
-
isLenientProperties
public boolean isLenientProperties()
- Specified by:
isLenientPropertiesin interfaceorg.apache.camel.Endpoint
-
configureConsumer
protected void configureConsumer(org.apache.camel.Consumer consumer) throws Exception- Throws:
Exception
-
configurePollingConsumer
protected void configurePollingConsumer(org.apache.camel.PollingConsumer consumer) throws Exception- Throws:
Exception
-
doInit
protected void doInit() throws Exception- Overrides:
doInitin classorg.apache.camel.support.service.BaseService- Throws:
Exception
-
doStart
protected void doStart() throws Exception- Overrides:
doStartin classorg.apache.camel.support.service.BaseService- Throws:
Exception
-
-