Annotation Interface UriEndpoint


@Retention(RUNTIME) @Documented @Target(TYPE) public @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
    Modifier and Type
    Required Element
    Description
    Represents the URI scheme name of this endpoint.
    Represent the URI syntax the endpoint must use.
    A human-readable title of this entity, such as the component name of the this endpoint.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    If 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
    The name of the properties that is used in the endpoint URI to select which API name (method) to use.
    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 properties
    Used when an endpoint is extending another endpoint
    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.
    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 firstVersion
      The first version this endpoint was added to Apache Camel.
      Default:
      ""
    • scheme

      String scheme
      Represents 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 in extendsScheme() so their are paired.

      The schema name must be lowercase, it may contain dashes as well. For example: robot-framework.

    • extendsScheme

      String extendsScheme
      Used 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 in scheme() so their are paired.

      Default:
      ""
    • syntax

      String syntax
      Represent 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
      Where each path maps to the name of the endpoint 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 alternativeSyntax
      If 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 consumerPrefix
      The configuration parameter name prefix used on parameter names to separate the endpoint properties from the consumer properties
      Default:
      ""
    • title

      String title
      A 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[] category
      To associate this endpoint with category(ies).

      This category is intended for grouping the endpoints, such as Category.CORE, Category.FILE, Category.DATABASE, etc, but supplied with as array of Category enums.

      For example: @UriEndpoint(category = {Category.CORE, Category.DATABASE})
      Default:
      {}
    • producerOnly

      boolean producerOnly
      Whether 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 consumerOnly
      Whether 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 lenientProperties
      Should 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 generateConfigurer
      Generates 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 apiSyntax
      The 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<?> headersClass
      The class that contains all the name of headers that are supported by the consumer and/or producer. The name of the headers are defined as String 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 the String constant representing its name and defined in the headers class.

      Default:
      void.class
    • headersNameProvider

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

      Only took into account if and only if the class defined as headersClass is an enum.

      For example, assuming that SomeEnum has been configured as the headersClass of a given component, since the name of the header is actually the value of the field headerName, the element headersNameProvider 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 remote
      Whether 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