== JMS Apache Artemis Source Kamelet Description

=== Authentication

This Kamelet supports username and password authentication to connect to Apache Artemis JMS broker. Connection can be configured with or without authentication based on broker setup.

=== Configuration

The JMS Apache Artemis Source Kamelet supports the following configurations:

- **Broker URL**: Apache Artemis broker URL (required)
- **Destination Name**: JMS destination (queue or topic) name (required)
- **Destination Type**: Type of destination - queue or topic (default: queue)
- **Username**: Username for broker authentication (optional)
- **Password**: Password for broker authentication (optional)
- **Client ID**: JMS client ID for durable subscriptions
- **Durable Subscription Name**: Name for durable topic subscription
- **Message Selector**: JMS message selector for filtering

=== Output Format

The Kamelet outputs JMS messages including message body, headers, and JMS properties. Message format depends on the original message type (text, bytes, object, etc.).

=== Usage Example

[source,yaml,subs='+attributes,macros']
----
- route:
    from:
      uri: "kamelet:jms-apache-artemis-source"
      parameters:
        brokerURL: "tcp://artemis.example.com:61616"
        destinationName: "orders.queue"
        destinationType: "queue"
        username: "artemisuser"
        password: "artemispass"
      steps:
        - to:
            uri: "kamelet:log-sink"
----

=== Example with Topic Subscription

[source,yaml,subs='+attributes,macros']
----
- route:
    from:
      uri: "kamelet:jms-apache-artemis-source"
      parameters:
        brokerURL: "tcp://artemis.example.com:61616"
        destinationName: "events.topic"
        destinationType: "topic"
        username: "artemisuser"
        password: "artemispass"
        clientId: "my-consumer"
        durableSubscriptionName: "my-subscription"
      steps:
        - to:
            uri: "kamelet:log-sink"
----

=== Example with Message Selector

[source,yaml,subs='+attributes,macros']
----
- route:
    from:
      uri: "kamelet:jms-apache-artemis-source"
      parameters:
        brokerURL: "tcp://artemis.example.com:61616"
        destinationName: "notifications.queue"
        destinationType: "queue"
        username: "artemisuser"
        password: "artemispass"
        messageSelector: "priority > 5"
      steps:
        - to:
            uri: "kamelet:log-sink"
----

=== Connection Management

The kamelet manages connections to Apache Artemis automatically, including connection pooling and reconnection on failures. It supports both embedded and standalone Artemis deployments.