Class JMSConnectionFactoryProvider

All Implemented Interfaces:
ConfigurableComponent, ControllerService, VerifiableControllerService, IJMSConnectionFactoryProvider, JMSConnectionFactoryProviderDefinition

@Tags({"jms","messaging","integration","queue","topic","publish","subscribe"}) @CapabilityDescription("Provides a generic service to create vendor specific javax.jms.ConnectionFactory implementations. The Connection Factory can be served once this service is configured successfully.") @DynamicProperty(name="The name of a Connection Factory configuration property.", value="The value of a given Connection Factory configuration property.", description="The properties that are set following Java Beans convention where a property name is derived from the \'set*\' method of the vendor specific ConnectionFactory\'s implementation. For example, \'com.ibm.mq.jms.MQConnectionFactory.setChannel(String)\' would imply \'channel\' property and \'com.ibm.mq.jms.MQConnectionFactory.setTransportType(int)\' would imply \'transportType\' property.", expressionLanguageScope=ENVIRONMENT) @SeeAlso(classNames={"org.apache.nifi.jms.processors.ConsumeJMS","org.apache.nifi.jms.processors.PublishJMS"}) @Restricted(restrictions=@Restriction(requiredPermission=REFERENCE_REMOTE_RESOURCES,explanation="Client Library Location can reference resources over HTTP")) public class JMSConnectionFactoryProvider extends AbstractJMSConnectionFactoryProvider
Provides a factory service that creates and initializes ConnectionFactory specific to the third party JMS system.

It accomplishes it by adjusting current classpath by adding to it the additional resources (i.e., JMS client libraries) provided by the user via JMSConnectionFactoryProperties.JMS_CLIENT_LIBRARIES, allowing it then to create an instance of the target ConnectionFactory based on the provided JMSConnectionFactoryProperties.JMS_CONNECTION_FACTORY_IMPL which can be than access via AbstractJMSConnectionFactoryProvider.getConnectionFactory() method.