jmsintegrationservicefactory.java
来自「ejb3 java session bean」· Java 代码 · 共 159 行
JAVA
159 行
/* * JBoss, Home of Professional Open Source * Copyright 2005, JBoss Inc., and individual contributors as indicated * by the @authors tag. * * This is free software; you can redistribute it and/or modify it * under the terms of the JBPM BPEL PUBLIC LICENSE AGREEMENT as * published by JBoss Inc.; either version 1.0 of the License, or * (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */package org.jbpm.bpel.integration.jms;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.jbpm.JbpmConfiguration;import org.jbpm.bpel.BpelException;import org.jbpm.bpel.integration.IntegrationService;import org.jbpm.graph.def.ProcessDefinition;import org.jbpm.svc.Service;import org.jbpm.svc.ServiceFactory;/** * @author Alejandro Guizar * @version $Revision: 1.14 $ $Date: 2008/06/12 08:18:54 $ */public class JmsIntegrationServiceFactory implements ServiceFactory { // injected objects, see jbpm.cfg.xml private JbpmConfiguration jbpmConfiguration; private String connectionFactoryName = "java:comp/env/jms/JbpmConnectionFactory"; private String requestDestinationName = "java:comp/env/jms/RequestQueue"; private String responseDestinationName = "java:comp/env/jms/ResponseQueue"; private ConnectionFactory connectionFactory; private Destination requestDestination; private Destination responseDestination; private Map integrationControls = new HashMap(); private static final long serialVersionUID = 1L; private static final Log log = LogFactory.getLog(JmsIntegrationServiceFactory.class); public Service openService() { return new JmsIntegrationService(this); } public void close() { for (Iterator i = integrationControls.values().iterator(); i.hasNext();) { IntegrationControl integrationControl = (IntegrationControl) i.next(); try { integrationControl.disableInboundMessageActivities(); } catch (JMSException e) { log.warn("could not disable inbound message activities", e); } } } public void setConnectionFactoryName(String connectionFactoryName) { this.connectionFactoryName = connectionFactoryName; } public void setRequestDestinationName(String requestDestinationName) { this.requestDestinationName = requestDestinationName; } public void setResponseDestinationName(String responseDestinationName) { this.responseDestinationName = responseDestinationName; } public JbpmConfiguration getJbpmConfiguration() { return jbpmConfiguration; } public ConnectionFactory getConnectionFactory() { if (connectionFactory == null && connectionFactoryName != null) { try { connectionFactory = (ConnectionFactory) lookup(connectionFactoryName); } catch (NamingException e) { log.warn("could not retrieve connection factory", e); } } return connectionFactory; } public Destination getRequestDestination() { if (requestDestination == null && requestDestinationName != null) { try { requestDestination = (Destination) lookup(requestDestinationName); } catch (NamingException e) { log.warn("could not retrieve request destination", e); } } return requestDestination; } public Destination getResponseDestination() { if (responseDestination == null) { if (responseDestinationName == null) { throw new IllegalStateException( "response destination name not specified in jbpm configuration"); } try { responseDestination = (Destination) lookup(responseDestinationName); } catch (NamingException e) { throw new BpelException("could not retrieve response destination", e); } } return responseDestination; } private static Object lookup(String name) throws NamingException { Context initialContext = new InitialContext(); try { return initialContext.lookup(name); } finally { initialContext.close(); } } public IntegrationControl getIntegrationControl(ProcessDefinition processDefinition) { Long processDefinitionId = new Long(processDefinition.getId()); synchronized (integrationControls) { IntegrationControl integrationControl = (IntegrationControl) integrationControls.get(processDefinitionId); if (integrationControl == null) { log.debug("creating integration control: processDefinition=" + processDefinition); integrationControl = new IntegrationControl(this); integrationControls.put(processDefinitionId, integrationControl); } return integrationControl; } } public static JmsIntegrationServiceFactory getConfigurationInstance( JbpmConfiguration jbpmConfiguration) { return (JmsIntegrationServiceFactory) jbpmConfiguration.getServiceFactory(IntegrationService.SERVICE_NAME); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?