Package org.apache.camel.spi
Annotation Interface UriEndpoint
Represents an annotated Camel Endpoint which can have its
properties (and the properties on its consumer) injected from the Camel URI path and its query parameters
-
Required Element Summary
Required Elements -
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionIf the endpoint supports specifying username and/or password in the UserInfo part of the URI, then the alternative syntax can represent this such as: ftp:userName:password@host:port/directoryName ssh:username:password@host:portThe name of the properties that is used in the endpoint URI to select which API name (method) to use.Category[]
To associate this endpoint with category(ies).boolean
Whether this endpoint can only be used as a consumer.The configuration parameter name prefix used on parameter names to separate the endpoint properties from the consumer propertiesUsed when an endpoint is extending another endpoint Multiple scheme names can be defined as a comma separated value.The first version this endpoint was added to Apache Camel.boolean
Generates source code for fast configuring of the endpoint properties which uses direct method invocation of getter/setters.Class
<?> The class that contains all the name of headers that are supported by the consumer and/or producer.The name of the field to get or the name of the method without parameters to invoke to get the name of the headers defined in an enum.boolean
Should all properties be known or does the endpoint allow unknown options?boolean
Whether this endpoint can only be used as a producer.boolean
Whether the component does remote communication such as connecting to an external system over the network.
-
Element Details
-
firstVersion
String firstVersionThe first version this endpoint was added to Apache Camel.- Default:
""
-
scheme
String schemeRepresents the URI scheme name of this endpoint. Multiple scheme names can be defined as a comma separated value. For example to associate http and https to the same endpoint implementation. The order of the scheme names here should be the same order as inextendsScheme()
so their are paired. The schema name must be lowercase, it may contain dashes as well. For example: robot-framework. -
extendsScheme
String extendsSchemeUsed when an endpoint is extending another endpoint Multiple scheme names can be defined as a comma separated value. For example to associate ftp and ftps to the same endpoint implementation. The order of the scheme names here should be the same order as inscheme()
so their are paired.- Default:
""
-
syntax
String syntaxRepresent the URI syntax the endpoint must use. The syntax follows the patterns such as:- scheme:host:port
- scheme:host:port/path
- scheme:path
- scheme:path/path2
UriPath
option. The query parameters is implied and should not be included in the syntax. Some examples:- file:directoryName
- ftp:host:port/directoryName
- jms:destinationType:destinationName
-
alternativeSyntax
String alternativeSyntaxIf the endpoint supports specifying username and/or password in the UserInfo part of the URI, then the alternative syntax can represent this such as:- ftp:userName:password@host:port/directoryName
- ssh:username:password@host:port
- Default:
""
-
consumerPrefix
String consumerPrefixThe configuration parameter name prefix used on parameter names to separate the endpoint properties from the consumer properties- Default:
""
-
title
String titleA human-readable title of this entity, such as the component name of the this endpoint. For example: JMS, MQTT, Netty HTTP, SAP NetWeaver -
category
Category[] categoryTo associate this endpoint with category(ies).This category is intended for grouping the endpoints, such as
For example: @UriEndpoint(category = {Category.CORE, Category.DATABASE})Category.CORE
,Category.FILE
,Category.DATABASE
, etc, but supplied with as array ofCategory
enums.- Default:
{}
-
producerOnly
boolean producerOnlyWhether this endpoint can only be used as a producer. By default, its assumed the endpoint can be used as both consumer and producer.- Default:
false
-
consumerOnly
boolean consumerOnlyWhether this endpoint can only be used as a consumer. By default, its assumed the endpoint can be used as both consumer and producer.- Default:
false
-
lenientProperties
boolean lenientPropertiesShould all properties be known or does the endpoint allow unknown options?lenient = false
means that the endpoint should validate that all given options is known and configured properly.lenient = true
means that the endpoint allows additional unknown options to be passed to it but does not throw a ResolveEndpointFailedException when creating the endpoint. This options is used by a few components for instance the HTTP based that can have dynamic URI options appended that is targeted for an external system. Most endpoints is configured to be not lenient.- Default:
false
-
generateConfigurer
boolean generateConfigurerGenerates source code for fast configuring of the endpoint properties which uses direct method invocation of getter/setters. Setting this to false will fallback to use reflection based introspection as Camel does in Camel 2.x.- Default:
true
-
apiSyntax
String apiSyntaxThe name of the properties that is used in the endpoint URI to select which API name (method) to use. This is only applicable for API based components where configurations are separated by API names (grouping).- Default:
""
-
headersClass
Class<?> headersClassThe class that contains all the name of headers that are supported by the consumer and/or producer. The name of the headers are defined asString
constants in the headers class. The class to provide can be any class but by convention, we would expect a class whose name is of type xxxConstants where xxx is the name of the corresponding component like for example FtpConstants for the component camel-ftp. The metadata of a given header are retrieved directly from the annotation@Metadata
added to theString
constant representing its name and defined in the headers class.- Default:
void.class
-
headersNameProvider
String headersNameProviderThe name of the field to get or the name of the method without parameters to invoke to get the name of the headers defined in an enum. Only took into account if and only if the class defined asheadersClass
is an enum. For example, assuming thatSomeEnum
has been configured as theheadersClass
of a given component, since the name of the header is actually the value of the fieldheaderName
, the elementheadersNameProvider
should be set to"headerName"
to get the expected header names.public enum SomeEnum { @Metadata FOO("fooKey"); public final String headerName; SomeEnum(final String str) { this.headerName = str; } }
- Default:
""
-
remote
boolean remoteWhether the component does remote communication such as connecting to an external system over the network. Set this to false for internal components such as log, message transformations and other kinds.- Default:
true
-