[Carbon-dev] svn commit r14902 - in trunk/carbon: server/src/org/wso2/carbon/server/transports server/src/org/wso2/carbon/server/transports/http utils/src/org/wso2/carbon/utils/transport

svn at wso2.org svn at wso2.org
Mon Mar 17 02:39:23 PDT 2008


Author: azeez
Date: Mon Mar 17 02:39:12 2008
New Revision: 14902

Log:

Stopping standalone transports



Modified:
   trunk/carbon/server/src/org/wso2/carbon/server/transports/Transport.java
   trunk/carbon/server/src/org/wso2/carbon/server/transports/http/HttpTransport.java
   trunk/carbon/server/src/org/wso2/carbon/server/transports/http/HttpsTransport.java
   trunk/carbon/utils/src/org/wso2/carbon/utils/transport/AbstractTransportListener.java

Modified: trunk/carbon/server/src/org/wso2/carbon/server/transports/Transport.java
==============================================================================
--- trunk/carbon/server/src/org/wso2/carbon/server/transports/Transport.java	(original)
+++ trunk/carbon/server/src/org/wso2/carbon/server/transports/Transport.java	Mon Mar 17 02:39:12 2008
@@ -51,4 +51,11 @@
      * @return The transport port. If port is not applicable for a particular transport, returns -1.
      */
     int getPort();
+
+    /**
+     * Get the tranport proxy port. If port is not applicable for a particular transport, returns -1.
+     *
+     * @return The transport proxy port. If port is not applicable for a particular transport, returns -1.
+     */
+    int getProxyPort();
 }

Modified: trunk/carbon/server/src/org/wso2/carbon/server/transports/http/HttpTransport.java
==============================================================================
--- trunk/carbon/server/src/org/wso2/carbon/server/transports/http/HttpTransport.java	(original)
+++ trunk/carbon/server/src/org/wso2/carbon/server/transports/http/HttpTransport.java	Mon Mar 17 02:39:12 2008
@@ -17,12 +17,13 @@
 
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.startup.Embedded;
+import org.apache.catalina.LifecycleException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.axis2.AxisFault;
 import org.wso2.carbon.server.TomcatServerCache;
 import org.wso2.carbon.server.transports.Transport;
 import org.wso2.carbon.server.transports.TransportParameter;
-//import org.wso2.carbon.utils.transport.ProxyCache;
 
 import java.net.InetAddress;
 import java.util.List;
@@ -34,6 +35,7 @@
     private static final Log log = LogFactory.getLog(HttpTransport.class);
     private boolean isStarted;
     private Connector connector;
+    private int proxyPort = -1;
 
     public void init(List<TransportParameter> parameters) throws Exception {
         log.info("Initializing HTTP Transport...");
@@ -45,7 +47,7 @@
                                                          Integer.parseInt(parameter.getValue()),
                                                          false);
                 } else if (parameter.getName().equals("proxyPort")) {
-//                    ProxyCache.getInstance().setHttpPort(Integer.parseInt(parameter.getValue()));
+                    proxyPort = Integer.parseInt(parameter.getValue());
                 } else {
                     connector.setAttribute(parameter.getName(), parameter.getValue());
                 }
@@ -77,12 +79,28 @@
         log.info("HTTP port              : " + getPort());
     }
 
-    public void stop() {
-        //TODO: Method implementation
-
+    public void stop() throws Exception {
+        if (!isStarted) {
+            return;
+        }
+        log.info("Stopping HTTP transport...");
+        try {
+            if (connector.isAvailable()) {
+                connector.stop();
+            }
+            isStarted = false;
+        } catch (LifecycleException e) {
+            String msg = "Cannot stop Tomcat HTTP connector";
+            log.error(msg, e);
+            throw new Exception(msg, e);
+        }
     }
 
     public int getPort() {
         return connector.getPort();
     }
+
+    public int getProxyPort() {
+        return proxyPort;
+    }
 }

Modified: trunk/carbon/server/src/org/wso2/carbon/server/transports/http/HttpsTransport.java
==============================================================================
--- trunk/carbon/server/src/org/wso2/carbon/server/transports/http/HttpsTransport.java	(original)
+++ trunk/carbon/server/src/org/wso2/carbon/server/transports/http/HttpsTransport.java	Mon Mar 17 02:39:12 2008
@@ -17,8 +17,10 @@
 
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.startup.Embedded;
+import org.apache.catalina.LifecycleException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.axis2.AxisFault;
 import org.wso2.carbon.server.TomcatServerCache;
 import org.wso2.carbon.server.transports.Transport;
 import org.wso2.carbon.server.transports.TransportParameter;
@@ -33,7 +35,7 @@
     private static final Log log = LogFactory.getLog(HttpsTransport.class);
     private boolean isStarted;
     private Connector connector;
-
+    private int proxyPort = -1;
 
     public void init(List<TransportParameter> parameters) throws Exception {
         log.info("Initializing HTTPS Transport...");
@@ -47,7 +49,7 @@
                                                          Integer.parseInt(parameter.getValue()),
                                                          false);
                 } else if (name.equals("proxyPort")) {
-//                    ProxyCache.getInstance().setHttpsPort(Integer.parseInt(parameter.getValue()));
+                    proxyPort = Integer.parseInt(parameter.getValue());
                 } else {
                     connector.setAttribute(parameter.getName(), parameter.getValue());
                 }
@@ -80,12 +82,28 @@
         log.info("HTTPS port             : " + getPort());
     }
 
-    public void stop() {
-        //TODO: Method implementation
-
+    public void stop() throws Exception {
+        if (!isStarted) {
+            return;
+        }
+        log.info("Stopping HTTPS transport...");
+        try {
+            if (connector.isAvailable()) {
+                connector.stop();
+            }
+            isStarted = false;
+        } catch (LifecycleException e) {
+            String msg = "Cannot stop Tomcat HTTP connector";
+            log.error(msg, e);
+            throw new Exception(msg, e);
+        }
     }
 
     public int getPort() {
         return connector.getPort();
     }
+
+    public int getProxyPort() {
+        return proxyPort;
+    }
 }

Modified: trunk/carbon/utils/src/org/wso2/carbon/utils/transport/AbstractTransportListener.java
==============================================================================
--- trunk/carbon/utils/src/org/wso2/carbon/utils/transport/AbstractTransportListener.java	(original)
+++ trunk/carbon/utils/src/org/wso2/carbon/utils/transport/AbstractTransportListener.java	Mon Mar 17 02:39:12 2008
@@ -46,7 +46,7 @@
     private String transport;
 
     protected ConfigurationContext configurationContext;
-    protected int port;
+    protected int port = -1;
     protected int proxyPort = -1;
 
     public void init(ConfigurationContext configContext,
@@ -69,14 +69,26 @@
         } else {
             Parameter portParam = transportIn.getParameter("port");
             if (portParam != null) {
-                this.port = Integer.parseInt(portParam.getValue().toString().trim());
+                port = Integer.parseInt(portParam.getValue().toString().trim());
             }
         }
 
         // Set the proxy port
-        Parameter proxyParam = transportIn.getParameter(WSO2Constants.PROXY_PORT);
-        if (proxyParam != null) {
-            proxyPort = Integer.parseInt(proxyParam.getValue().toString().trim());
+        if (System.getProperty(ServerConstants.STANDALONE_MODE, "false").equalsIgnoreCase("true")) {
+            transport = transportIn.getName();
+            try {
+                Method method = transportManagerClass.getMethod("getProxyPort", String.class);
+                proxyPort = (Integer) method.invoke(transportManager, transport);
+            } catch (Exception e) {
+                String msg = "Cannot get transport proxy port";
+                log.error(msg, e);
+                throw new AxisFault(msg, e);
+            }
+        } else {
+            Parameter portParam = transportIn.getParameter("proxyPort");
+            if (portParam != null) {
+                proxyPort = Integer.parseInt(portParam.getValue().toString().trim());
+            }
         }
     }
 
@@ -119,16 +131,6 @@
         return genEpr(protocol, ip, serviceContextPath, serviceName);
     }
 
-    public EndpointReference getEPR(String protocol,
-                                    String serviceName,
-                                    String ip,
-                                    String contextPath) throws AxisFault {
-        if (configurationContext == null) {
-            return null;
-        }
-        return genEpr(protocol, ip, configurationContext.getServiceContextPath(), serviceName);
-    }
-
     public SessionContext getSessionContext(MessageContext messageContext) {
         return SessionContextUtil.createSessionContext(messageContext);
     }
@@ -147,7 +149,7 @@
             if (proxyPort == 80 || proxyPort == 443) {
                 tmp += serviceContextPath + "/" + serviceName;
                 return new EndpointReference(tmp);
-            } else if (proxyPort > -1) {
+            } else if (proxyPort != -1) {
                 tmp += ":" + proxyPort + serviceContextPath + "/" + serviceName;
                 return new EndpointReference(tmp);
             } else {



More information about the Carbon-dev mailing list