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

📄 defaulttransportservicedescriptor.java

📁 提供ESB 应用mule源代码 提供ESB 应用mule源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * $Id: DefaultTransportServiceDescriptor.java 12606 2008-09-03 17:09:08Z tcarlson $ * -------------------------------------------------------------------------------------- * 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.transport.service;import org.mule.MuleSessionHandler;import org.mule.api.MuleException;import org.mule.api.config.MuleProperties;import org.mule.api.endpoint.EndpointURIBuilder;import org.mule.api.endpoint.InboundEndpoint;import org.mule.api.registry.AbstractServiceDescriptor;import org.mule.api.registry.Registry;import org.mule.api.service.Service;import org.mule.api.transaction.TransactionConfig;import org.mule.api.transaction.TransactionFactory;import org.mule.api.transformer.Transformer;import org.mule.api.transport.Connector;import org.mule.api.transport.MessageAdapter;import org.mule.api.transport.MessageDispatcherFactory;import org.mule.api.transport.MessageReceiver;import org.mule.api.transport.MessageRequesterFactory;import org.mule.api.transport.SessionHandler;import org.mule.config.i18n.CoreMessages;import org.mule.endpoint.UrlEndpointURIBuilder;import org.mule.transaction.XaTransactionFactory;import org.mule.transport.NullPayload;import org.mule.util.ClassUtils;import org.mule.util.CollectionUtils;import java.util.List;import java.util.Properties;/** @inheritDocs */public class DefaultTransportServiceDescriptor extends AbstractServiceDescriptor implements TransportServiceDescriptor{    private String connector;    private String dispatcherFactory;    private String requesterFactory;    private String transactionFactory;    private String messageAdapter;    private String messageReceiver;    private String transactedMessageReceiver;    private String xaTransactedMessageReceiver;    private String endpointBuilder;    private String sessionHandler;    private String defaultInboundTransformer;    private String defaultOutboundTransformer;    private String defaultResponseTransformer;    private Transformer inboundTransformer;    private Transformer outboundTransformer;    private Transformer responseTransformer;    // private EndpointBuilder endpointBuilderImpl;    private Properties exceptionMappings = new Properties();    private ClassLoader classLoader;        public DefaultTransportServiceDescriptor(String service, Properties props, Registry registry, ClassLoader classLoader)    {        super(service);        connector = removeProperty(MuleProperties.CONNECTOR_CLASS, props);        dispatcherFactory = removeProperty(MuleProperties.CONNECTOR_DISPATCHER_FACTORY, props);        requesterFactory = removeProperty(MuleProperties.CONNECTOR_REQUESTER_FACTORY, props);        transactionFactory = removeProperty(MuleProperties.CONNECTOR_DISPATCHER_FACTORY, props);        messageReceiver = removeProperty(MuleProperties.CONNECTOR_MESSAGE_RECEIVER_CLASS, props);        transactedMessageReceiver = removeProperty(MuleProperties.CONNECTOR_TRANSACTED_MESSAGE_RECEIVER_CLASS, props);        xaTransactedMessageReceiver = removeProperty(MuleProperties.CONNECTOR_XA_TRANSACTED_MESSAGE_RECEIVER_CLASS, props);        messageAdapter = removeProperty(MuleProperties.CONNECTOR_MESSAGE_ADAPTER, props);        defaultInboundTransformer = removeProperty(MuleProperties.CONNECTOR_INBOUND_TRANSFORMER, props);        defaultOutboundTransformer = removeProperty(MuleProperties.CONNECTOR_OUTBOUND_TRANSFORMER, props);        defaultResponseTransformer = removeProperty(MuleProperties.CONNECTOR_RESPONSE_TRANSFORMER, props);        endpointBuilder = removeProperty(MuleProperties.CONNECTOR_ENDPOINT_BUILDER, props);        sessionHandler = removeProperty(MuleProperties.CONNECTOR_SESSION_HANDLER, props);//        try//        {//                registerDefaultTransformers(registry);//        }//        catch (Exception e)//        {//            e.printStackTrace();//        }        this.classLoader = classLoader;    }    public void setOverrides(Properties props)    {        if (props == null || props.size() == 0)        {            return;        }        connector = props.getProperty(MuleProperties.CONNECTOR_CLASS, connector);        dispatcherFactory = props.getProperty(MuleProperties.CONNECTOR_DISPATCHER_FACTORY, dispatcherFactory);        requesterFactory = props.getProperty(MuleProperties.CONNECTOR_REQUESTER_FACTORY, requesterFactory);        messageReceiver = props.getProperty(MuleProperties.CONNECTOR_MESSAGE_RECEIVER_CLASS, messageReceiver);        transactedMessageReceiver = props.getProperty(                MuleProperties.CONNECTOR_TRANSACTED_MESSAGE_RECEIVER_CLASS, transactedMessageReceiver);        xaTransactedMessageReceiver = props.getProperty(                MuleProperties.CONNECTOR_XA_TRANSACTED_MESSAGE_RECEIVER_CLASS, xaTransactedMessageReceiver);        messageAdapter = props.getProperty(MuleProperties.CONNECTOR_MESSAGE_ADAPTER, messageAdapter);        String temp = props.getProperty(MuleProperties.CONNECTOR_INBOUND_TRANSFORMER);        if (temp != null)        {            defaultInboundTransformer = temp;            inboundTransformer = null;        }        temp = props.getProperty(MuleProperties.CONNECTOR_OUTBOUND_TRANSFORMER);        if (temp != null)        {            defaultOutboundTransformer = temp;            outboundTransformer = null;        }        temp = props.getProperty(MuleProperties.CONNECTOR_RESPONSE_TRANSFORMER);        if (temp != null)        {            defaultResponseTransformer = temp;            responseTransformer = null;        }        temp = props.getProperty(MuleProperties.CONNECTOR_ENDPOINT_BUILDER);        if (temp != null)        {            endpointBuilder = temp;        }    }    /* (non-Javadoc)     * @see org.mule.transport.service.TransportServiceDescriptor#createMessageAdapter(java.lang.Object)     */    public MessageAdapter createMessageAdapter(Object message) throws TransportServiceException    {        return createMessageAdapter(message, messageAdapter);    }    protected MessageAdapter createMessageAdapter(Object message, String clazz)            throws TransportServiceException    {        if (message == null)        {            message = NullPayload.getInstance();        }        if (messageAdapter != null)        {            try            {                return (MessageAdapter) ClassUtils.instanciateClass(clazz, new Object[]{message}, classLoader);            }            catch (Exception e)            {                throw new TransportServiceException(CoreMessages.failedToCreateObjectWith("Message Adapter", clazz), e);            }        }        else        {            throw new TransportServiceException(CoreMessages.objectNotSetInService("Message Adapter", getService()));        }    }    /* (non-Javadoc)     * @see org.mule.transport.service.TransportServiceDescriptor#createSessionHandler()     */    public SessionHandler createSessionHandler() throws TransportServiceException    {        if (sessionHandler == null)        {            sessionHandler = MuleSessionHandler.class.getName();            if (logger.isDebugEnabled())            {                logger.debug("No session.handler set in service description, defaulting to: "                        + sessionHandler);            }        }        try        {            return (SessionHandler) ClassUtils.instanciateClass(sessionHandler, ClassUtils.NO_ARGS, classLoader);        }        catch (Throwable e)        {            throw new TransportServiceException(CoreMessages.failedToCreateObjectWith("SessionHandler", sessionHandler), e);        }    }    /* (non-Javadoc)     * @see org.mule.transport.service.TransportServiceDescriptor#createMessageReceiver(org.mule.api.transport.Connector, org.mule.api.Component, org.mule.api.endpoint.Endpoint)     */    public MessageReceiver createMessageReceiver(Connector connector,                                                    Service service,                                                    InboundEndpoint endpoint) throws MuleException    {        MessageReceiver mr = createMessageReceiver(connector, service, endpoint, null);        mr.initialise();        return mr;    }    /* (non-Javadoc)     * @see org.mule.transport.service.TransportServiceDescriptor#createMessageReceiver(org.mule.api.transport.Connector, org.mule.api.Component, org.mule.api.endpoint.Endpoint, java.lang.Object[])     */    public MessageReceiver createMessageReceiver(Connector connector,                                                    Service service,                                                    InboundEndpoint endpoint,                                                    Object[] args) throws MuleException    {        String receiverClass = messageReceiver;        if (endpoint.getTransactionConfig() != null                && endpoint.getTransactionConfig().getAction() != TransactionConfig.ACTION_NONE)        {            boolean xaTx = endpoint.getTransactionConfig().getFactory() instanceof XaTransactionFactory;            if (transactedMessageReceiver != null && !xaTx)            {                receiverClass = transactedMessageReceiver;            }            else if (xaTransactedMessageReceiver != null && xaTx)            {                receiverClass = xaTransactedMessageReceiver;            }        }        if (receiverClass != null)        {            Object[] newArgs;            if (args != null && args.length != 0)            {                newArgs = new Object[3 + args.length];            }            else            {                newArgs = new Object[3];            }            newArgs[0] = connector;            newArgs[1] = service;            newArgs[2] = endpoint;            if (args != null && args.length != 0)

⌨️ 快捷键说明

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