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

📄 defaultendpointfactory.java

📁 Jencks是一个轻量级的JCA容器。它可以轻松部署到Spring中以提供消息驱动的POJOs.此外Jencks通过使用类似于JMS,JAX-RPC,JBI与JCA CCI的API来提供对inboun
💻 JAVA
字号:
/** *  * Copyright 2005 LogicBlaze, Inc. *  * 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 javax.jms.MessageListener;import javax.resource.spi.LocalTransaction;import javax.resource.spi.UnavailableException;import javax.transaction.TransactionManager;import javax.transaction.xa.XAResource;import org.springframework.beans.BeansException;import org.springframework.beans.factory.BeanFactory;import org.springframework.beans.factory.BeanFactoryAware;import org.springframework.beans.factory.InitializingBean;/** * A factory of {@link javax.resource.spi.endpoint.MessageEndpoint} instances, either using XA transactions, * Local (JMS) transactions or regular JMS message acknowledgements. * <p/> * To use XA you must set the transactionManager property via the * {@link #setTransactionManager(javax.transaction.TransactionManager)} * method. * <p/> * To use a local JMS transaction, then the XAResouce object passed in the {@link #createEndpoint(XAResource)} * call must implement {@link LocalTransaction}. * * @version $Revision: 1.5 $ */public class DefaultEndpointFactory extends EndpointFactorySupport implements InitializingBean, BeanFactoryAware {    private BeanFactory beanFactory;    private String ref;    public DefaultEndpointFactory() {    }    public DefaultEndpointFactory(BeanFactory beanFactory, String ref) {        this.beanFactory = beanFactory;        this.ref = ref;    }    public DefaultEndpointFactory(BeanFactory beanFactory, String ref, TransactionManager transactionManager, String name) {        this.beanFactory = beanFactory;        this.ref = ref;        this.transactionManager = transactionManager;        setName(name);    }    public void afterPropertiesSet() throws Exception {        if (ref == null) {            throw new IllegalArgumentException("ref property must be set");        }    }    // Properties    //-------------------------------------------------------------------------    public String getRef() {        return ref;    }    public void setRef(String ref) {        this.ref = ref;    }    public BeanFactory getBeanFactory() {        return beanFactory;    }    public void setBeanFactory(BeanFactory beanFactory) throws BeansException {        this.beanFactory = beanFactory;    }    // Implementation methods    //-------------------------------------------------------------------------    protected MessageListener createMessageListener() throws UnavailableException {        MessageListener messageListener = (MessageListener) beanFactory.getBean(ref, MessageListener.class);        if (messageListener == null) {            throw new UnavailableException("No MessageListener bean available for reference name: " + ref);        }        return messageListener;    }}

⌨️ 快捷键说明

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