Annotation Type 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
      String scheme
      Represents the URI scheme name of this endpoint.
      String syntax
      Represent the URI syntax the endpoint must use.
      String title
      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
      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
      String apiSyntax
      The name of the properties that is used in the endpoint URI to select which API name (method) to use.
      Category[] category
      To associate this endpoint with category(ies).
      Class<?> consumerClass
      Deprecated.
      boolean consumerOnly
      Whether this endpoint can only be used as a consumer.
      String consumerPrefix
      The configuration parameter name prefix used on parameter names to separate the endpoint properties from the consumer properties
      String extendsScheme
      Used when an endpoint is extending another endpoint
      String firstVersion
      The first version this endpoint was added to Apache Camel.
      boolean generateConfigurer
      Generates source code for fast configuring of the endpoint properties which uses direct method invocation of getter/setters.
      Class<?> headersClass
      The class that contains all the name of headers that are supported by the consumer and/or producer.
      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.
      String label
      Deprecated.
      boolean lenientProperties
      Should all properties be known or does the endpoint allow unknown options?
      boolean producerOnly
      Whether this endpoint can only be used as a producer.
    • Element Detail

      • 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.

      • 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
      • 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

      • firstVersion

        String firstVersion
        The first version this endpoint was added to Apache Camel.
        Default:
        ""
      • 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:
        ""
      • 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:
        ""
      • consumerClass

        @Deprecated
        Class<?> consumerClass
        Deprecated.
        Represents the consumer class which is injected and created by consumers
        Default:
        java.lang.Object.class
      • consumerPrefix

        String consumerPrefix
        The configuration parameter name prefix used on parameter names to separate the endpoint properties from the consumer properties
        Default:
        ""
      • label

        @Deprecated
        String label
        Deprecated.
        To associate this endpoint with label(s).

        Multiple labels can be defined as a comma separated value.

        The labels is intended for grouping the endpoints, such as core, file, messaging, database, etc.

        Deprecated: Use the category field instead

        Default:
        ""
      • 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:
        ""