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());


Reply via email to