public void attach( JmsConnectionSource source, PhysicalConnectionTarget target, ChannelConnection connection) throws Fabric3Exception { URI serviceUri = source.getUri(); ClassLoader sourceClassLoader = source.getClassLoader(); JmsBindingMetadata metadata = source.getMetadata(); ResolvedObjects objects = resolveAdministeredObjects(source); ContainerConfiguration configuration = new ContainerConfiguration(); ConnectionFactory connectionFactory = objects.getRequestFactory(); javax.jms.Destination destination = objects.getRequestDestination(); EventStream stream = connection.getEventStream(); EventStreamListener listener = new EventStreamListener(sourceClassLoader, stream.getHeadHandler(), monitor); configuration.setDestinationType(metadata.getDestination().geType()); configuration.setDestination(destination); configuration.setFactory(connectionFactory); configuration.setMessageListener(listener); configuration.setUri(serviceUri); configuration.setSessionType(source.getSessionType()); populateConfiguration(configuration, metadata); if (containerManager.isRegistered(serviceUri)) { // the wire has changed and it is being re-provisioned containerManager.unregister(serviceUri); } AdaptiveMessageContainer container = containerFactory.create(configuration); containerManager.register(container); }
public void testParse() throws Exception { String uri = "jms:destination?jndiConnectionFactoryName=factory&deliveryMode=nonpersistent&selector=select"; JmsBindingMetadata metadata = JmsLoaderHelper.parseUri(uri); assertEquals("destination", metadata.getDestination().getName()); assertEquals("factory", metadata.getConnectionFactory().getName()); assertEquals("select", metadata.getUriMessageSelection().getSelector()); assertEquals(DeliveryMode.NON_PERSISTENT, metadata.getUriHeaders().getDeliveryMode()); }
private ResolvedObjects resolveAdministeredObjects(JmsConnectionSource source) throws Fabric3Exception { JmsBindingMetadata metadata = source.getMetadata(); ConnectionFactoryDefinition connectionFactory = metadata.getConnectionFactory(); ConnectionFactory requestConnectionFactory = resolver.resolve(connectionFactory); Destination requestDestinationDefinition = metadata.getDestination(); javax.jms.Destination requestDestination = resolver.resolve(requestDestinationDefinition, requestConnectionFactory); return new ResolvedObjects(requestConnectionFactory, requestDestination); }