You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2014/05/05 17:15:56 UTC
git commit: https://issues.apache.org/jira/browse/AMQ-5171
Repository: activemq
Updated Branches:
refs/heads/trunk 94b404d0a -> 53b12820c
https://issues.apache.org/jira/browse/AMQ-5171
Make the type suffix configurable. Clean up logging calls.
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/53b12820
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/53b12820
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/53b12820
Branch: refs/heads/trunk
Commit: 53b12820c20ae69116ae7447f2b5f54bb023cbd1
Parents: 94b404d
Author: Timothy Bish <ta...@gmai.com>
Authored: Mon May 5 11:15:42 2014 -0400
Committer: Timothy Bish <ta...@gmai.com>
Committed: Mon May 5 11:15:42 2014 -0400
----------------------------------------------------------------------
.../zeroconf/ZeroconfDiscoveryAgent.java | 54 ++++++++++++--------
1 file changed, 32 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/53b12820/activemq-client/src/main/java/org/apache/activemq/transport/discovery/zeroconf/ZeroconfDiscoveryAgent.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/transport/discovery/zeroconf/ZeroconfDiscoveryAgent.java b/activemq-client/src/main/java/org/apache/activemq/transport/discovery/zeroconf/ZeroconfDiscoveryAgent.java
index 714ca39..9557b22 100755
--- a/activemq-client/src/main/java/org/apache/activemq/transport/discovery/zeroconf/ZeroconfDiscoveryAgent.java
+++ b/activemq-client/src/main/java/org/apache/activemq/transport/discovery/zeroconf/ZeroconfDiscoveryAgent.java
@@ -23,6 +23,7 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
+
import javax.jmdns.JmDNS;
import javax.jmdns.ServiceEvent;
import javax.jmdns.ServiceInfo;
@@ -37,10 +38,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * A {@link DiscoveryAgent} using <a href="http://www.zeroconf.org/">Zeroconf</a>
- * via the <a href="http://jmdns.sf.net/">jmDNS</a> library
- *
- *
+ * A {@link DiscoveryAgent} using <a
+ * href="http://www.zeroconf.org/">Zeroconf</a> via the <a
+ * href="http://jmdns.sf.net/">jmDNS</a> library
*/
public class ZeroconfDiscoveryAgent implements DiscoveryAgent, ServiceListener {
private static final Logger LOG = LoggerFactory.getLogger(ZeroconfDiscoveryAgent.class);
@@ -52,27 +52,30 @@ public class ZeroconfDiscoveryAgent implements DiscoveryAgent, ServiceListener {
private String localhost;
private int weight;
private int priority;
+ private String typeSuffix = TYPE_SUFFIX;
private DiscoveryListener listener;
private String group = "default";
- private final CopyOnWriteArrayList<ServiceInfo> serviceInfos = new CopyOnWriteArrayList<ServiceInfo>();
+ private final CopyOnWriteArrayList<ServiceInfo> serviceInfos =
+ new CopyOnWriteArrayList<ServiceInfo>();
// DiscoveryAgent interface
// -------------------------------------------------------------------------
+ @Override
public void start() throws Exception {
if (group == null) {
throw new IOException("You must specify a group to discover");
}
String type = getType();
if (!type.endsWith(".")) {
- LOG.warn("The type '" + type + "' should end with '.' to be a valid Rendezvous type");
+ LOG.warn("The type '{}' should end with '.' to be a valid Rendezvous type", type);
type += ".";
}
try {
// force lazy construction
getJmdns();
if (listener != null) {
- LOG.info("Discovering service of type: " + type);
+ LOG.info("Discovering service of type: {}", type);
jmdns.addServiceListener(type, this);
}
} catch (IOException e) {
@@ -80,6 +83,7 @@ public class ZeroconfDiscoveryAgent implements DiscoveryAgent, ServiceListener {
}
}
+ @Override
public void stop() {
if (jmdns != null) {
for (Iterator<ServiceInfo> iter = serviceInfos.iterator(); iter.hasNext();) {
@@ -90,13 +94,14 @@ public class ZeroconfDiscoveryAgent implements DiscoveryAgent, ServiceListener {
// Close it down async since this could block for a while.
final JmDNS closeTarget = jmdns;
Thread thread = new Thread() {
+ @Override
public void run() {
try {
if (JmDNSFactory.onClose(getLocalAddress())) {
closeTarget.close();
};
} catch (IOException e) {
- LOG.debug("Error closing JmDNS " + getLocalhost() + ". This exception will be ignored.", e);
+ LOG.debug("Error closing JmDNS {}. This exception will be ignored.", getLocalhost(), e);
}
}
};
@@ -108,8 +113,9 @@ public class ZeroconfDiscoveryAgent implements DiscoveryAgent, ServiceListener {
}
}
+ @Override
public void registerService(String name) throws IOException {
- ServiceInfo si = createServiceInfo(name, new HashMap());
+ ServiceInfo si = createServiceInfo(name, new HashMap<String, Object>());
serviceInfos.add(si);
getJmdns().registerService(si);
}
@@ -117,9 +123,7 @@ public class ZeroconfDiscoveryAgent implements DiscoveryAgent, ServiceListener {
// ServiceListener interface
// -------------------------------------------------------------------------
public void addService(JmDNS jmDNS, String type, String name) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("addService with type: " + type + " name: " + name);
- }
+ LOG.debug("addService with type: {} name: {}", type, name);
if (listener != null) {
listener.onServiceAdd(new DiscoveryEvent(name));
}
@@ -127,22 +131,23 @@ public class ZeroconfDiscoveryAgent implements DiscoveryAgent, ServiceListener {
}
public void removeService(JmDNS jmDNS, String type, String name) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("removeService with type: " + type + " name: " + name);
- }
+ LOG.debug("removeService with type: {} name: {}", type, name);
if (listener != null) {
listener.onServiceRemove(new DiscoveryEvent(name));
}
}
+ @Override
public void serviceAdded(ServiceEvent event) {
addService(event.getDNS(), event.getType(), event.getName());
}
+ @Override
public void serviceRemoved(ServiceEvent event) {
removeService(event.getDNS(), event.getType(), event.getName());
}
+ @Override
public void serviceResolved(ServiceEvent event) {
}
@@ -199,12 +204,8 @@ public class ZeroconfDiscoveryAgent implements DiscoveryAgent, ServiceListener {
// -------------------------------------------------------------------------
protected ServiceInfo createServiceInfo(String name, Map map) {
int port = MapHelper.getInt(map, "port", 0);
-
String type = getType();
-
- if (LOG.isDebugEnabled()) {
- LOG.debug("Registering service type: " + type + " name: " + name + " details: " + map);
- }
+ LOG.debug("Registering service type: {} name: {} details: {}", new Object[]{type, name, map});
return ServiceInfo.create(type, name + "." + type, port, weight, priority, "");
}
@@ -219,6 +220,7 @@ public class ZeroconfDiscoveryAgent implements DiscoveryAgent, ServiceListener {
return InetAddress.getLocalHost();
}
+ @Override
public void setDiscoveryListener(DiscoveryListener listener) {
this.listener = listener;
}
@@ -231,12 +233,20 @@ public class ZeroconfDiscoveryAgent implements DiscoveryAgent, ServiceListener {
this.group = group;
}
+ public void setType(String typeSuffix) {
+ this.typeSuffix = typeSuffix;
+ }
+
public String getType() {
- return "_" + group + "." + TYPE_SUFFIX;
+ if (typeSuffix == null || typeSuffix.isEmpty()) {
+ typeSuffix = TYPE_SUFFIX;
+ }
+
+ return "_" + group + "." + typeSuffix;
}
+ @Override
public void serviceFailed(DiscoveryEvent event) throws IOException {
// TODO: is there a way to notify the JmDNS that the service failed?
}
-
}