On Oct 12, 2010, at 10:08 PM, [email protected] wrote: > Author: dblevins > Date: Wed Oct 13 02:08:04 2010 > New Revision: 1021975 > > URL: http://svn.apache.org/viewvc?rev=1021975&view=rev > Log: > OPENEJB-1370: Broadcast InetAddress.getLocalHost() when ejbd is bound to > 0.0.0.0 > > Modified: > > openejb/branches/openejb-3.1.x/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java > > Modified: > openejb/branches/openejb-3.1.x/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java > URL: > http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.x/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java?rev=1021975&r1=1021974&r2=1021975&view=diff > ============================================================================== > --- > openejb/branches/openejb-3.1.x/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java > (original) > +++ > openejb/branches/openejb-3.1.x/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java > Wed Oct 13 02:08:04 2010 > @@ -70,6 +70,7 @@ public class ServiceDaemon implements Se > private boolean secure; > private StringTemplate discoveryUriFormat; > private URI uri; > + private Properties props; > > public ServiceDaemon(ServerService next) { > this.next = next; > @@ -112,6 +113,8 @@ public class ServiceDaemon implements Se > > public void init(Properties props) throws Exception { > > + this.props = props; > + > String formatString = props.getProperty("discovery"); > if (formatString != null){ > discoveryUriFormat = new StringTemplate(formatString); > @@ -171,9 +174,26 @@ public class ServiceDaemon implements Se > DiscoveryAgent agent = > SystemInstance.get().getComponent(DiscoveryAgent.class); > if (agent != null && discoveryUriFormat != null) { > Map<String,String> map = new HashMap<String,String>(); > + > + // add all the properties that were used to construct this > service > + for (Map.Entry<Object, Object> entry : props.entrySet()) { > + map.put(entry.getKey().toString(), > entry.getValue().toString()); > + } > + > map.put("port", Integer.toString(port)); > - map.put("host", ip); > - map.put("bind", ip); > + > + String address = ip; > + > + if ("0.0.0.0".equals(address)) {
Pretty sure that this approach will not work on IP v6 system. Anybody have a better way of detecting this? --kevan
