Author: veithen Date: Sun May 23 18:22:58 2010 New Revision: 947458 URL: http://svn.apache.org/viewvc?rev=947458&view=rev Log: AXIS2-4722: Introduced an abstract doInit method in AbstractTransportListenerEx so that derived classes can properly do their initialization stuff before the first endpoint is created.
Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractPollingTransportListener.java axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListenerEx.java axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/datagram/AbstractDatagramTransportListener.java axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSListener.java axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportListener.java Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractPollingTransportListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractPollingTransportListener.java?rev=947458&r1=947457&r2=947458&view=diff ============================================================================== --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractPollingTransportListener.java (original) +++ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractPollingTransportListener.java Sun May 23 18:22:58 2010 @@ -18,8 +18,6 @@ */ package org.apache.axis2.transport.base; -import org.apache.axis2.context.ConfigurationContext; -import org.apache.axis2.description.TransportInDescription; import org.apache.axis2.AxisFault; import java.util.ArrayList; @@ -36,11 +34,8 @@ public abstract class AbstractPollingTra private final List<T> endpoints = new ArrayList<T>(); @Override - public void init(ConfigurationContext cfgCtx, - TransportInDescription transportIn) throws AxisFault { - + protected void doInit() throws AxisFault { timer = new Timer("PollTimer"); - super.init(cfgCtx, transportIn); } @Override Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java?rev=947458&r1=947457&r2=947458&view=diff ============================================================================== --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java (original) +++ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListener.java Sun May 23 18:22:58 2010 @@ -347,6 +347,10 @@ public abstract class AbstractTransportL log.error(msg, e); } + public TransportInDescription getTransportInDescription() { + return transportIn; + } + public String getTransportName() { return transportIn.getName(); } Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListenerEx.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListenerEx.java?rev=947458&r1=947457&r2=947458&view=diff ============================================================================== --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListenerEx.java (original) +++ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/AbstractTransportListenerEx.java Sun May 23 18:22:58 2010 @@ -48,11 +48,13 @@ public abstract class AbstractTransportL protected boolean useGlobalListener = false; @Override - public void init(ConfigurationContext cfgCtx, + public final void init(ConfigurationContext cfgCtx, TransportInDescription transportIn) throws AxisFault { super.init(cfgCtx, transportIn); + doInit(); + // Create endpoint configured at transport level (if available) E endpoint = createEndpoint(); endpoint.init(this, null); @@ -62,6 +64,15 @@ public abstract class AbstractTransportL } } + /** + * Initialize the transport. This method will be called after the initialization work in + * {...@link AbstractTransportListener} and before the first endpoint is created, i.e. before the + * first call to {...@link #createEndpoint()}. + * + * @throws AxisFault + */ + protected abstract void doInit() throws AxisFault; + @Override public void destroy() { // Explicitly stop all endpoints not predispatched to services. All other endpoints will Modified: axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/datagram/AbstractDatagramTransportListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/datagram/AbstractDatagramTransportListener.java?rev=947458&r1=947457&r2=947458&view=diff ============================================================================== --- axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/datagram/AbstractDatagramTransportListener.java (original) +++ axis/axis2/java/transports/trunk/modules/base/src/main/java/org/apache/axis2/transport/base/datagram/AbstractDatagramTransportListener.java Sun May 23 18:22:58 2010 @@ -23,8 +23,6 @@ import java.net.SocketException; import java.net.SocketAddress; import org.apache.axis2.AxisFault; -import org.apache.axis2.context.ConfigurationContext; -import org.apache.axis2.description.TransportInDescription; import org.apache.axis2.transport.base.AbstractTransportListenerEx; public abstract class AbstractDatagramTransportListener<E extends DatagramEndpoint> @@ -33,19 +31,8 @@ public abstract class AbstractDatagramTr private DatagramDispatcher<E> dispatcher; private String defaultIp; - @Override - public void init(ConfigurationContext cfgCtx, TransportInDescription transportIn) - throws AxisFault { - - super.init(cfgCtx, transportIn); - initDispatcher(); - } - - private void initDispatcher() throws AxisFault { - if (dispatcher != null) { - return; - } - + @Override + protected void doInit() throws AxisFault { DatagramDispatcherCallback callback = new DatagramDispatcherCallback() { public void receive(SocketAddress address, @@ -80,8 +67,6 @@ public abstract class AbstractDatagramTr @Override protected void startEndpoint(E endpoint) throws AxisFault { - initDispatcher(); - try { dispatcher.addEndpoint(endpoint); } catch (IOException ex) { Modified: axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSListener.java?rev=947458&r1=947457&r2=947458&view=diff ============================================================================== --- axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSListener.java (original) +++ axis/axis2/java/transports/trunk/modules/jms/src/main/java/org/apache/axis2/transport/jms/JMSListener.java Sun May 23 18:22:58 2010 @@ -17,10 +17,8 @@ package org.apache.axis2.transport.jms; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; -import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.description.AxisService; import org.apache.axis2.description.Parameter; -import org.apache.axis2.description.TransportInDescription; import org.apache.axis2.transport.base.AbstractTransportListenerEx; import org.apache.axis2.transport.base.BaseConstants; import org.apache.axis2.transport.base.ManagementSupport; @@ -55,18 +53,9 @@ public class JMSListener extends Abstrac private final TransportErrorSourceSupport tess = new TransportErrorSourceSupport(this); - /** - * TransportListener initialization - * - * @param cfgCtx the Axis configuration context - * @param trpInDesc the TransportIn description - */ @Override - public void init(ConfigurationContext cfgCtx, - TransportInDescription trpInDesc) throws AxisFault { - - super.init(cfgCtx, trpInDesc); - connFacManager = new JMSConnectionFactoryManager(trpInDesc); + protected void doInit() throws AxisFault { + connFacManager = new JMSConnectionFactoryManager(getTransportInDescription()); log.info("JMS Transport Receiver/Listener initialized..."); } Modified: axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportListener.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportListener.java?rev=947458&r1=947457&r2=947458&view=diff ============================================================================== --- axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportListener.java (original) +++ axis/axis2/java/transports/trunk/modules/mail/src/main/java/org/apache/axis2/transport/mail/MailTransportListener.java Sun May 23 18:22:58 2010 @@ -22,9 +22,7 @@ package org.apache.axis2.transport.mail; import org.apache.axis2.AxisFault; import org.apache.axis2.Constants; import org.apache.axis2.addressing.EndpointReference; -import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.MessageContext; -import org.apache.axis2.description.TransportInDescription; import org.apache.axis2.engine.AxisConfiguration; import org.apache.axis2.transport.TransportUtils; import org.apache.axis2.transport.RequestResponseTransport; @@ -68,18 +66,9 @@ public class MailTransportListener exten private final TransportErrorSourceSupport tess = new TransportErrorSourceSupport(this); - /** - * Initializes the Mail transport - * - * @param cfgCtx the Axsi2 configuration context - * @param trpInDesc the POP3 transport in description from the axis2.xml - * @throws AxisFault on error - */ @Override - public void init(ConfigurationContext cfgCtx, TransportInDescription trpInDesc) - throws AxisFault { - super.init(cfgCtx, trpInDesc); - + protected void doInit() throws AxisFault { + super.doInit(); // set the synchronise callback table if (cfgCtx.getProperty(BaseConstants.CALLBACK_TABLE) == null){ cfgCtx.setProperty(BaseConstants.CALLBACK_TABLE, new ConcurrentHashMap());