Any caveats or problems when using Jencks without Spring context?

View: New views
1 Messages — Rating Filter:   Alert me  

Any caveats or problems when using Jencks without Spring context?

by James Martin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Are there any potential caveats or problems if Jencks is used programmatically as opposed to with a Spring application context for pooled inbound JMS? For an example of what I am doing please see the code below.

Thanks,

-James

//
TransactionManagerFactoryBean transactionManager = new TransactionManagerFactoryBean();
transactionManager.afterPropertiesSet();
//
WorkManagerFactoryBean workManager = new WorkManagerFactoryBean();
workManager.setTransactionManager((GeronimoTransactionManager) transactionManager.getObject());
workManager.afterPropertiesSet();
//
BootstrapContextFactoryBean bootstrapContext = new BootstrapContextFactoryBean();
bootstrapContext.setTransactionManager((GeronimoTransactionManager)workManager.getObject());
bootstrapContext.setWorkManager((WorkManager)workManager.getObject());
bootstrapContext.afterPropertiesSet();
//
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory();
activeMQConnectionFactory.setBrokerURL("failover:tcp://127.0.0.1:61616");
activeMQConnectionFactory.setDispatchAsync(false);
activeMQConnectionFactory.setOptimizeAcknowledge(true);
activeMQConnectionFactory.setOptimizedMessageDispatch(true);
//
ActiveMQResourceAdapter resourceAdapter = new ActiveMQResourceAdapter();
resourceAdapter.setConnectionFactory(activeMQConnectionFactory);
resourceAdapter.start((BootstrapContext) bootstrapContext.getObject());
//
JCAContainer jcaContainer = new JCAContainer();
jcaContainer.setBootstrapContext((BootstrapContext)bootstrapContext.getObject());
jcaContainer.setWorkManager((WorkManager)workManager.getObject());
jcaContainer.setTransactionManager((GeronimoTransactionManager)transactionManager.getObject());
jcaContainer.setResourceAdapter(resourceAdapter);
jcaContainer.setLazyLoad(true);
jcaContainer.afterPropertiesSet();
//
ActiveMQActivationSpec activationSpec = new ActiveMQActivationSpec();
activationSpec.setMaxSessions("1");
activationSpec.setMaxMessagesPerSessions("1");
activationSpec.setDestination("Queue.Test.In");
activationSpec.setDestinationType("javax.jms.Queue");
activationSpec.setAcknowledgeMode(ActiveMQActivationSpec.AUTO_ACKNOWLEDGE_MODE);
activationSpec.setResourceAdapter(resourceAdapter);
//
JCAConnectorLifecycleFactory connectorLifecycle = new JCAConnectorLifecycleFactory();
connectorLifecycle.setActivationSpec(activationSpec);
connectorLifecycle.setBootstrapContext((BootstrapContext)bootstrapContext.getObject());
connectorLifecycle.setJcaContainer(jcaContainer);
connectorLifecycle.setResourceAdapter(resourceAdapter);
connectorLifecycle.setTransactionManager((TransactionManager)transactionManager.getObject());
connectorLifecycle.setEndpointFactory(new SingletonEndpointFactory(new MyMessageListener()));
//
JCAConnector connector = connectorLifecycle.startConsumption();
//
// ... RUN APP FOR A WHILE
//
connectorLifecycle.stopConsumption(connector);