⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 endpointfactorysupport.java

📁 Jencks是一个轻量级的JCA容器。它可以轻松部署到Spring中以提供消息驱动的POJOs.此外Jencks通过使用类似于JMS,JAX-RPC,JBI与JCA CCI的API来提供对inboun
💻 JAVA
字号:
/** *  * Copyright 2005 LogicBlaze, Inc. http://www.logicblaze.com *  * Licensed under the Apache License, Version 2.0 (the "License");  * you may not use this file except in compliance with the License.  * You may obtain a copy of the License at  *  * http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  *  **/package org.jencks;import java.lang.reflect.Method;import javax.jms.MessageListener;import javax.resource.spi.LocalTransaction;import javax.resource.spi.UnavailableException;import javax.resource.spi.endpoint.MessageEndpoint;import javax.resource.spi.endpoint.MessageEndpointFactory;import javax.transaction.TransactionManager;import javax.transaction.xa.XAResource;import org.apache.geronimo.transaction.manager.NamedXAResource;import org.apache.geronimo.transaction.manager.WrapperNamedXAResource;/** * @version $Revision: 1.5 $ */public abstract class EndpointFactorySupport implements MessageEndpointFactory {    protected TransactionManager transactionManager;    private String name;    public MessageEndpoint createEndpoint(XAResource xaResource) throws UnavailableException {        MessageListener messageListener = createMessageListener();        xaResource = wrapXAResource(xaResource);        if (transactionManager != null) {            return new XAEndpoint(messageListener, xaResource, transactionManager);        }        else if (xaResource instanceof LocalTransaction) {            return new LocalTransactionEndpoint(messageListener, (LocalTransaction) xaResource);        }        return new AcknowledgeEndpoint(messageListener);    }    public String toString() {        return super.toString() + "[transactionManager=" + transactionManager + "]";    }    // Properties    //-------------------------------------------------------------------------    public boolean isDeliveryTransacted(Method method) throws NoSuchMethodException {        return transactionManager != null;    }    public TransactionManager getTransactionManager() {        return transactionManager;    }    public void setTransactionManager(TransactionManager transactionManager) {        this.transactionManager = transactionManager;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    // Implementation methods    //-------------------------------------------------------------------------    protected abstract MessageListener createMessageListener() throws UnavailableException;    /**     * {@link XAResource} instances must be named to support recovery, so either pass     * {@link NamedXAResource} instances through or wrap with the Spring name.     *     * @param xaResource     * @return the wrapped XAResource instance     */    protected XAResource wrapXAResource(XAResource xaResource) {        String name = getName();        if (xaResource instanceof NamedXAResource || name == null) {            return xaResource;        }        return new WrapperNamedXAResource(xaResource, name);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -