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

      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.

      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.

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