Class PublishJMS

All Implemented Interfaces:
ConfigurableComponent, Processor

@Tags({"jms","put","message","send","publish"}) @InputRequirement(INPUT_REQUIRED) @CapabilityDescription("Creates a JMS Message from the contents of a FlowFile and sends it to a JMS Destination (queue or topic) as JMS BytesMessage or TextMessage. FlowFile attributes will be added as JMS headers and/or properties to the outgoing JMS message.") @ReadsAttribute(attribute="jms_deliveryMode",description="This attribute becomes the JMSDeliveryMode message header. Must be an integer.") @ReadsAttribute(attribute="jms_expiration",description="This attribute becomes the JMSExpiration message header. Must be a long.") @ReadsAttribute(attribute="jms_priority",description="This attribute becomes the JMSPriority message header. Must be an integer.") @ReadsAttribute(attribute="jms_redelivered",description="This attribute becomes the JMSRedelivered message header.") @ReadsAttribute(attribute="jms_timestamp",description="This attribute becomes the JMSTimestamp message header. Must be a long.") @ReadsAttribute(attribute="jms_correlationId",description="This attribute becomes the JMSCorrelationID message header.") @ReadsAttribute(attribute="jms_type",description="This attribute becomes the JMSType message header. Must be an integer.") @ReadsAttribute(attribute="jms_replyTo",description="This attribute becomes the JMSReplyTo message header. Must be an integer.") @ReadsAttribute(attribute="jms_destination",description="This attribute becomes the JMSDestination message header. Must be an integer.") @ReadsAttribute(attribute="other attributes",description="All other attributes that do not start with jms_ are added as message properties.") @ReadsAttribute(attribute="other attributes .type",description="When an attribute will be added as a message property, a second attribute of the same name but with an extra `.type` at the end will cause the message property to be sent using that strong type. For example, attribute `delay` with value `12000` and another attribute `delay.type` with value `integer` will cause a JMS message property `delay` to be sent as an Integer rather than a String. Supported types are boolean, byte, short, integer, long, float, double, and string (which is the default).") @DynamicProperty(name="The name of a Connection Factory configuration property.", value="The value of a given Connection Factory configuration property.", description="Additional configuration property for the Connection Factory. It can be used when the Connection Factory is being configured via the \'JNDI *\' or the \'JMS *\'properties of the processor. For more information, see the Additional Details page.", expressionLanguageScope=ENVIRONMENT) @SeeAlso({ConsumeJMS.class,JMSConnectionFactoryProvider.class}) @SystemResourceConsideration(resource=MEMORY) @Restricted(restrictions=@Restriction(requiredPermission=REFERENCE_REMOTE_RESOURCES,explanation="Client Library Location can reference resources over HTTP")) public class PublishJMS extends AbstractJMSProcessor<JMSPublisher>
An implementation of JMS Message publishing Processor which upon each invocation of AbstractJMSProcessor.onTrigger(ProcessContext, ProcessSession) method will construct a Message from the contents of the FlowFile sending it to the Destination identified by the AbstractJMSProcessor.DESTINATION property while transferring the incoming FlowFile to 'success' Relationship. If message can not be constructed and/or sent the incoming FlowFile will be transitioned to 'failure' Relationship