//tag::ref-doc[]
= JMS Source

The JMS source enables receiving messages from JMS.

== Options

The **JMS** $$source$$ has the following options:

//tag::configuration-properties[]
Properties grouped by prefix:


=== jms.supplier

$$client-id$$:: $$Client id for durable subscriptions.$$ *($$String$$, default: `$$<none>$$`)*
$$destination$$:: $$The destination from which to receive messages (queue or topic).$$ *($$String$$, default: `$$<none>$$`)*
$$message-selector$$:: $$A selector for messages.$$ *($$String$$, default: `$$<none>$$`)*
$$session-transacted$$:: $$True to enable transactions and select a DefaultMessageListenerContainer, false to select a SimpleMessageListenerContainer.$$ *($$Boolean$$, default: `$$true$$`)*
$$subscription-durable$$:: $$True for a durable subscription.$$ *($$Boolean$$, default: `$$<none>$$`)*
$$subscription-name$$:: $$The name of a durable or shared subscription.$$ *($$String$$, default: `$$<none>$$`)*
$$subscription-shared$$:: $$True for a shared subscription.$$ *($$Boolean$$, default: `$$<none>$$`)*

=== spring.jms

$$jndi-name$$:: $$Connection factory JNDI name. When set, takes precedence to others connection factory auto-configurations.$$ *($$String$$, default: `$$<none>$$`)*
$$pub-sub-domain$$:: $$Whether the default destination type is topic.$$ *($$Boolean$$, default: `$$false$$`)*

=== spring.jms.listener

$$acknowledge-mode$$:: $$Acknowledge mode of the container. By default, the listener is transacted with automatic acknowledgment.$$ *($$AcknowledgeMode$$, default: `$$<none>$$`, possible values: `AUTO`,`CLIENT`,`DUPS_OK`)*
$$auto-startup$$:: $$Start the container automatically on startup.$$ *($$Boolean$$, default: `$$true$$`)*
$$concurrency$$:: $$Minimum number of concurrent consumers.$$ *($$Integer$$, default: `$$<none>$$`)*
$$max-concurrency$$:: $$Maximum number of concurrent consumers.$$ *($$Integer$$, default: `$$<none>$$`)*
$$receive-timeout$$:: $$Timeout to use for receive calls. Use -1 for a no-wait receive or 0 for no timeout at all. The latter is only feasible if not running within a transaction manager and is generally discouraged since it prevents clean shutdown.$$ *($$Duration$$, default: `$$1s$$`)*
//end::configuration-properties[]

//end::ref-doc[]

NOTE: Spring boot broker configuration is used; refer to the
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-jms[Spring Boot Documentation] for more information.
The `spring.jms.*` properties above are also handled by the boot JMS support.
