Annotation Interface ByJms


@Documented @Target(TYPE) @Retention(RUNTIME) public @interface ByJms
Indicates that the annotated interface should be implemented by Auf JMS as a message producer and made available for injection.

Serializing by JsonView is supported on the body.

Since:
1.0
Author:
Lei Yang
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static @interface 
    Defines a destination.
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    Specifies the destination name and type, i.e., Queue vs Topic for out-bound messages.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Specifies the connection factory name by which the interface retrieves a Connection from ConnectionFactoryProvider.get(String).
    Specifies a value for MessageProducer.setDeliveryDelay(long) that applies to out-bound messages.
    Specifies a bean name by which the interface can be injected.
    Specifies property name/value pairs for out-going messages.
    Specifies the return destination for out-bound messages.
    Specifies how long to wait for a reply on the out-going request.
    Specifies a value for MessageProducer.setTimeToLive(long) that applies to out-bound messages.
  • Element Details

    • value

      ByJms.To value
      Specifies the destination name and type, i.e., Queue vs Topic for out-bound messages.
    • properties

      String[] properties
      Specifies property name/value pairs for out-going messages.

      E.g.,

      { "AppName", "AufJms", "AppVersion", "1.0", ... }

      Must be specified in pairs. Missing value will trigger an exception.

      E.g., the following is missing value for property 'appVersion' and will result an exception.

      { "AppVersion" }

      If the same property is defined by a OfProperty parameter, the argument takes the precedence and is accepted. The value defined here is ignored.

      Spring property placeholder and SpEL expression are supported on values but not on names.

      Default:
      {}
    • name

      String name
      Specifies a bean name by which the interface can be injected.

      The default is from Class.getSimpleName() with the first letter in lower-case.

      Returns:
      the bean name of the proxy interface.
      See Also:
      • Qualifier
      Default:
      ""
    • ttl

      String ttl
      Specifies a value for MessageProducer.setTimeToLive(long) that applies to out-bound messages.

      The value overwrites EnableByJms.ttl().

      The value can be overridden by higher-priority sources, e.g., OfTtl.

      The default is to follow EnableByJms.ttl().

      Supports Spring property placeholder and SpEL expression.

      Default:
      ""
    • delay

      String delay
      Specifies a value for MessageProducer.setDeliveryDelay(long) that applies to out-bound messages.

      This value overwrites EnableByJms.delay().

      The default is to follow EnableByJms.delay().

      Supports Spring property placeholder and SpEL expression.

      Default:
      ""
    • requestTimeout

      String requestTimeout
      Specifies how long to wait for a reply on the out-going request.

      Default is no timeout. I.e., wait indefinitely.

      Only applies for request/reply pattern.

      Supports Spring property placeholder and SpEL expression.

      See Also:
      Default:
      ""
    • replyTo

      ByJms.To replyTo
      Specifies the return destination for out-bound messages.
      Default:
      @me.ehp246.aufjms.api.annotation.ByJms.To("")
    • connectionFactory

      String connectionFactory
      Specifies the connection factory name by which the interface retrieves a Connection from ConnectionFactoryProvider.get(String).
      Default:
      ""