Title: [2437] branches/v2_0/openejb2/modules/core/src/java/org/openejb/corba: Add the ORB listen port (based on default TSS) to the startup port list
Revision
2437
Author
ammulder
Date
2006-02-10 17:14:49 -0500 (Fri, 10 Feb 2006)

Log Message

Add the ORB listen port (based on default TSS) to the startup port list
  GERONIMO-1349

Modified Paths

Diff

Modified: branches/v2_0/openejb2/modules/core/src/java/org/openejb/corba/CORBABean.java (2436 => 2437)

--- branches/v2_0/openejb2/modules/core/src/java/org/openejb/corba/CORBABean.java	2006-02-10 19:18:23 UTC (rev 2436)
+++ branches/v2_0/openejb2/modules/core/src/java/org/openejb/corba/CORBABean.java	2006-02-10 22:14:49 UTC (rev 2437)
@@ -46,6 +46,7 @@
 
 import java.util.ArrayList;
 import java.util.Properties;
+import java.net.InetSocketAddress;
 
 import EDU.oswego.cs.dl.util.concurrent.Executor;
 import org.apache.commons.logging.Log;
@@ -61,6 +62,7 @@
 import org.apache.geronimo.security.SecurityService;
 
 import org.openejb.corba.security.config.ConfigAdapter;
+import org.openejb.corba.security.config.ConfigException;
 import org.openejb.corba.security.config.tss.TSSConfig;
 import org.openejb.corba.util.Util;
 
@@ -134,6 +136,19 @@
         this.props = props;
     }
 
+    public InetSocketAddress getListenAddress() {
+        try {
+            if(configAdapter != null) {
+                return configAdapter.getDefaultListenAddress(tssConfig, orb);
+            } else {
+                log.debug("Don't know what default listen address is for an ORB without a configAdapter");
+            }
+        } catch (ConfigException e) {
+            log.debug("Unable to calculate default listen address", e);
+        }
+        return null;
+    }
+
     public void doStart() throws Exception {
 
         ClassLoader savedLoader = Thread.currentThread().getContextClassLoader();
@@ -177,13 +192,14 @@
     public static final GBeanInfo GBEAN_INFO;
 
     static {
-        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(CORBABean.class, NameFactory.CORBA_SERVICE);
+        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("OpenEJB ORB Adapter", CORBABean.class, NameFactory.CORBA_SERVICE);
 
         infoFactory.addAttribute("configAdapter", String.class, true);
         infoFactory.addAttribute("tssConfig", TSSConfig.class, true);
         infoFactory.addAttribute("args", ArrayList.class, true);
         infoFactory.addAttribute("props", Properties.class, true);
 
+        infoFactory.addAttribute("listenAddress", InetSocketAddress.class, false);
         infoFactory.addAttribute("ORB", ORB.class, false);
         infoFactory.addAttribute("rootPOA", POA.class, false);
 

Modified: branches/v2_0/openejb2/modules/core/src/java/org/openejb/corba/security/config/ConfigAdapter.java (2436 => 2437)

--- branches/v2_0/openejb2/modules/core/src/java/org/openejb/corba/security/config/ConfigAdapter.java	2006-02-10 19:18:23 UTC (rev 2436)
+++ branches/v2_0/openejb2/modules/core/src/java/org/openejb/corba/security/config/ConfigAdapter.java	2006-02-10 22:14:49 UTC (rev 2437)
@@ -46,6 +46,7 @@
 
 import java.util.List;
 import java.util.Properties;
+import java.net.InetSocketAddress;
 
 import org.omg.CORBA.ORB;
 
@@ -66,6 +67,8 @@
 
     public void postProcess(TSSConfig config, ORB orb) throws ConfigException;
 
+    public InetSocketAddress getDefaultListenAddress(TSSConfig config, ORB orb) throws ConfigException;
+
     public String[] translateToArgs(CSSConfig config, List args) throws ConfigException;
 
     public Properties translateToProps(CSSConfig config, Properties pros) throws ConfigException;

Modified: branches/v2_0/openejb2/modules/core/src/java/org/openejb/corba/sunorb/SunORBConfigAdapter.java (2436 => 2437)

--- branches/v2_0/openejb2/modules/core/src/java/org/openejb/corba/sunorb/SunORBConfigAdapter.java	2006-02-10 19:18:23 UTC (rev 2436)
+++ branches/v2_0/openejb2/modules/core/src/java/org/openejb/corba/sunorb/SunORBConfigAdapter.java	2006-02-10 22:14:49 UTC (rev 2437)
@@ -49,6 +49,9 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
+import java.net.InetSocketAddress;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 
 import com.sun.corba.se.internal.core.EndPoint;
 import org.apache.commons.logging.Log;
@@ -220,6 +223,26 @@
 
     }
 
+    public InetSocketAddress getDefaultListenAddress(TSSConfig config, ORB orb) throws ConfigException {
+        OpenEJBORB o = (OpenEJBORB) orb;
+        try {
+            if (config != null) {
+                TSSTransportMechConfig transportMech = config.getTransport_mech();
+                if (transportMech != null) {
+                    if (transportMech instanceof TSSSSLTransportConfig) {
+                        TSSSSLTransportConfig sslConfig = (TSSSSLTransportConfig) transportMech;
+                        return new InetSocketAddress(InetAddress.getLocalHost(), sslConfig.getPort());
+                    }
+                }
+            } else {
+                return new InetSocketAddress(InetAddress.getLocalHost(), 6882);
+            }
+        } catch (UnknownHostException e) {
+            throw new ConfigException("Unable to calculate default listen host", e);
+        }
+        return null; // If they configured a protocol other than SSL that we don't currently support
+    }
+
     public String[] translateToArgs(CSSConfig config, List args) throws ConfigException {
         return (String[]) args.toArray(new String[args.size()]);
     }

Reply via email to