From 3947e373c50dc536f99547d3d03a224bee34a769 Mon Sep 17 00:00:00 2001 From: antelder Date: Mon, 9 May 2011 09:44:43 +0000 Subject: Simplify the approach to trying to find a local runtime instance, the previous code didn't work with some network configs git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1100932 13f79535-47bb-0310-9956-ffa450edef68 --- .../client/HazelcastClientEndpointRegistry.java | 53 +++++++++------------- 1 file changed, 22 insertions(+), 31 deletions(-) (limited to 'sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java') diff --git a/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java b/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java index 2b99b5f454..4f1820951a 100644 --- a/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java +++ b/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java @@ -19,11 +19,9 @@ package org.apache.tuscany.sca.endpoint.hazelcast.client; -import java.net.BindException; +import java.io.IOException; import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.ServerSocket; -import java.util.Enumeration; +import java.net.Socket; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; @@ -86,7 +84,7 @@ public class HazelcastClientEndpointRegistry extends HazelcastEndpointRegistry { } } if (rc.getWKAs().size() < 1) { - throw new IllegalArgumentException("Must specify remote IP address(es) for domain"); + throw new IllegalArgumentException("No local domain instance found, please use domain URI 'wka=' argument to define IP address(es) for domain"); } // Hazelcast is outputs a lot on info level log messages which are unnecessary for us, @@ -109,31 +107,24 @@ public class HazelcastClientEndpointRegistry extends HazelcastEndpointRegistry { } /** - * See if there's a local IP listening on port 14820 + * As a default connect to a local runtime instance listening on port 14820 */ - protected static String getDefaultWKA() { - try { - Enumeration nis = NetworkInterface.getNetworkInterfaces(); - while (nis.hasMoreElements()) { - NetworkInterface ni = nis.nextElement(); - Enumeration ips = ni.getInetAddresses(); - while (ips.hasMoreElements()) { - InetAddress addr = ips.nextElement(); - ServerSocket ss = null; - try { - ss = new ServerSocket(14820, 0, addr); - } catch (BindException e) { - return addr.getHostAddress() + ":14820"; - } finally { - if (ss != null) { - ss.close(); - } - } - } - } - } catch (Exception e) { - } - return null; - } - + protected static String getDefaultWKA() { + Socket s = null; + try { + s = new Socket(InetAddress.getLocalHost(), 14820); + if (s.isConnected()) { + return s.getInetAddress().getHostAddress() + ":14820"; + } + } catch (IOException e) { + } finally { + if (s != null) { + try { + s.close(); + } catch (IOException e) { + } + } + } + return null; + } } -- cgit v1.2.3