summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/domain-hazelcast
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-05-09 09:44:43 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2011-05-09 09:44:43 +0000
commit3947e373c50dc536f99547d3d03a224bee34a769 (patch)
tree8602d83ae11ca5d8bbeacc19df3ae9d785c94d06 /sca-java-2.x/trunk/modules/domain-hazelcast
parent2712f294005b85da048c08c1a2f27141a67c475a (diff)
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
Diffstat (limited to 'sca-java-2.x/trunk/modules/domain-hazelcast')
-rw-r--r--sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/endpoint/hazelcast/client/HazelcastClientEndpointRegistry.java53
1 files changed, 22 insertions, 31 deletions
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<NetworkInterface> nis = NetworkInterface.getNetworkInterfaces();
- while (nis.hasMoreElements()) {
- NetworkInterface ni = nis.nextElement();
- Enumeration<InetAddress> 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;
+ }
}