generictransactionmanagerlookupfactory.java
来自「提供ESB 应用mule源代码 提供ESB 应用mule源代码」· Java 代码 · 共 135 行
JAVA
135 行
/* * $Id: GenericTransactionManagerLookupFactory.java 11964 2008-06-05 19:31:23Z dfeist $ * -------------------------------------------------------------------------------------- * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com * * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */package org.mule.transaction.lookup;import org.mule.api.lifecycle.Initialisable;import org.mule.api.lifecycle.InitialisationException;import org.mule.api.transaction.TransactionManagerFactory;import org.mule.config.i18n.CoreMessages;import org.mule.util.JndiContextHelper;import org.mule.util.StringUtils;import java.util.Map;import javax.naming.Context;import javax.naming.NamingException;import javax.transaction.TransactionManager;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/** * A factory performing a JNDI lookup for TransactionManager. <p/> NOTE: Java EE 1.4 * specification does not mandate application server vendors to expose a * TransactionManager for direct use, nor does it name the standard way to locate it. * For some servers the TransactionManager is not even available in the global JNDI * namespace, so your only bet is to run Mule in the same JVM as the application * server. */public class GenericTransactionManagerLookupFactory implements TransactionManagerFactory, Initialisable{ protected final Log logger = LogFactory.getLog(getClass()); protected Context context; private Map environment; private TransactionManager txManager; private String jndiName; public String getJndiName() { return jndiName; } public void setJndiName(final String jndiName) { this.jndiName = jndiName; } public TransactionManager getTxManager() { return txManager; } public void setTxManager(final TransactionManager txManager) { this.txManager = txManager; } public Map getEnvironment() { return environment; } public void setEnvironment(final Map environment) { this.environment = environment; } public Context getContext() { return context; } public void setContext(final Context context) { this.context = context; } /** @see org.mule.api.transaction.TransactionManagerFactory#create() */ public TransactionManager create() throws Exception { // implementing the Initilisable interface does not call it?? initialise(); if (txManager == null) { txManager = (TransactionManager) context.lookup(jndiName); } return txManager; } /** * Method used to perform any initialisation work. If a fatal error occurs during * initialisation an <code>InitialisationException</code> should be thrown, * causing the Mule instance to shutdown. If the error is recoverable, say by * retrying to connect, a <code>RecoverableException</code> should be thrown. * There is no guarantee that by throwing a Recoverable exception that the Mule * instance will not shut down. * * @throws org.mule.api.lifecycle.InitialisationException * if a fatal error occurs * causing the Mule instance to shutdown */ public void initialise() throws InitialisationException { if (txManager == null && StringUtils.isEmpty(StringUtils.trim(jndiName))) { throw new InitialisationException(CoreMessages.propertiesNotSet("jndiName"), this); } try { if (context == null) { context = JndiContextHelper.initialise(getEnvironment()); } } catch (NamingException e) { throw new InitialisationException(CoreMessages.failedToCreate("Jndi context"), e, this); } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?