aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns')
-rw-r--r--src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSCache.java20
-rw-r--r--src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSOutgoing.java8
-rw-r--r--src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSRecord.java21
-rw-r--r--src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSState.java4
-rw-r--r--src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/JmDNS.java218
-rw-r--r--src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/ServiceInfo.java34
6 files changed, 137 insertions, 168 deletions
diff --git a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSCache.java b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSCache.java
index 65a9a48..f6608f7 100644
--- a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSCache.java
+++ b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSCache.java
@@ -69,7 +69,7 @@ class DNSCache
* name.
* Values are linked lists of CacheNode instances.
*/
- private HashMap hashtable;
+ private HashMap<String, CacheNode> hashtable;
/**
* Cache nodes are used to implement storage of multiple DNSEntry's of the
@@ -86,7 +86,7 @@ class DNSCache
this.value = value;
String SLevel = System.getProperty("jmdns.debug");
if (SLevel == null) SLevel = "INFO";
- this.logger.setLevel(Level.parse(SLevel));
+ logger.setLevel(Level.parse(SLevel));
}
public CacheNode next()
@@ -107,7 +107,7 @@ class DNSCache
*/
public DNSCache(final int size)
{
- hashtable = new HashMap(size);
+ hashtable = new HashMap<String, CacheNode>(size);
String SLevel = System.getProperty("jmdns.debug");
if (SLevel == null) SLevel = "INFO";
@@ -131,7 +131,7 @@ class DNSCache
{
//logger.log("DNSCache.add("+entry.getName()+")");
CacheNode newValue = new CacheNode(entry);
- CacheNode node = (CacheNode) hashtable.get(entry.getName());
+ CacheNode node = hashtable.get(entry.getName());
if (node == null)
{
hashtable.put(entry.getName(), newValue);
@@ -151,7 +151,7 @@ class DNSCache
*/
public synchronized boolean remove(DNSEntry entry)
{
- CacheNode node = (CacheNode) hashtable.get(entry.getName());
+ CacheNode node = hashtable.get(entry.getName());
if (node != null)
{
if (node.value == entry)
@@ -244,7 +244,7 @@ class DNSCache
*/
public synchronized CacheNode find(String name)
{
- return (CacheNode) hashtable.get(name);
+ return hashtable.get(name);
}
/**
@@ -252,9 +252,9 @@ class DNSCache
*/
public synchronized void print()
{
- for (Iterator i = iterator(); i.hasNext();)
+ for (Iterator<CacheNode> i = iterator(); i.hasNext();)
{
- for (CacheNode n = (CacheNode) i.next(); n != null; n = n.next)
+ for (CacheNode n = i.next(); n != null; n = n.next)
{
logger.info(n.value.toString());
}
@@ -265,9 +265,9 @@ class DNSCache
{
StringBuffer aLog = new StringBuffer();
aLog.append("\t---- cache ----");
- for (Iterator i = iterator(); i.hasNext();)
+ for (Iterator<CacheNode> i = iterator(); i.hasNext();)
{
- for (CacheNode n = (CacheNode) i.next(); n != null; n = n.next)
+ for (CacheNode n = i.next(); n != null; n = n.next)
{
aLog.append("\n\t\t" + n.value);
}
diff --git a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSOutgoing.java b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSOutgoing.java
index 6eb3782..44e9687 100644
--- a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSOutgoing.java
+++ b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSOutgoing.java
@@ -25,7 +25,7 @@ final class DNSOutgoing
private int numAnswers;
private int numAuthorities;
private int numAdditionals;
- private Hashtable names;
+ private Hashtable<String, Integer> names;
byte data[];
int off;
@@ -51,7 +51,7 @@ final class DNSOutgoing
this.flags = flags;
this.multicast = multicast;
- names = new Hashtable();
+ names = new Hashtable<String, Integer>();
data = new byte[DNSConstants.MAX_MSG_TYPICAL];
off = 12;
}
@@ -117,7 +117,7 @@ final class DNSOutgoing
}
}
- private LinkedList authorativeAnswers = new LinkedList();
+ private LinkedList<DNSRecord> authorativeAnswers = new LinkedList<DNSRecord>();
/**
* Add an authorative answer to the message.
@@ -246,7 +246,7 @@ final class DNSOutgoing
writeByte(0);
return;
}
- Integer offset = (Integer) names.get(name);
+ Integer offset = names.get(name);
if (offset != null)
{
int val = offset.intValue();
diff --git a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSRecord.java b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSRecord.java
index c009a91..35c0769 100644
--- a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSRecord.java
+++ b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSRecord.java
@@ -5,7 +5,6 @@ package net.java.sip.communicator.impl.protocol.zeroconf.jmdns;
import java.io.*;
import java.net.*;
-import java.util.*;
import java.util.logging.*;
/**
@@ -97,7 +96,7 @@ public abstract class DNSRecord extends DNSEntry
{
for (int i = msg.numAnswers; i-- > 0;)
{
- if (suppressedBy((DNSRecord) msg.answers.get(i)))
+ if (suppressedBy(msg.answers.get(i)))
{
return true;
}
@@ -355,12 +354,8 @@ public abstract class DNSRecord extends DNSEntry
// We lost the tie-break. We have to choose a different name.
dns.getLocalHost().incrementHostName();
dns.getCache().clear();
- for (Iterator i = dns.services.values().iterator();
- i.hasNext();)
- {
- ServiceInfo info = (ServiceInfo) i.next();
+ for (ServiceInfo info : dns.services.values())
info.revertState();
- }
}
dns.revertState();
return true;
@@ -388,12 +383,8 @@ public abstract class DNSRecord extends DNSEntry
{
dns.getLocalHost().incrementHostName();
dns.getCache().clear();
- for (Iterator i = dns.services.values().iterator();
- i.hasNext();)
- {
- ServiceInfo info = (ServiceInfo) i.next();
+ for (ServiceInfo info : dns.services.values())
info.revertState();
- }
}
dns.revertState();
return true;
@@ -663,7 +654,7 @@ public abstract class DNSRecord extends DNSEntry
boolean handleQuery(JmDNS dns, long expirationTime)
{
- ServiceInfo info = (ServiceInfo) dns.services.get(name.toLowerCase());
+ ServiceInfo info = dns.services.get(name.toLowerCase());
if (info != null &&
(port != info.port ||
!server.equalsIgnoreCase(dns.getLocalHost().getName())))
@@ -700,7 +691,7 @@ public abstract class DNSRecord extends DNSEntry
boolean handleResponse(JmDNS dns)
{
- ServiceInfo info = (ServiceInfo) dns.services.get(name.toLowerCase());
+ ServiceInfo info = dns.services.get(name.toLowerCase());
if (info != null &&
(port != info.port || !server.equalsIgnoreCase(dns.getLocalHost().getName())))
{
@@ -729,7 +720,7 @@ public abstract class DNSRecord extends DNSEntry
DNSOutgoing out)
throws IOException
{
- ServiceInfo info = (ServiceInfo) dns.services.get(name.toLowerCase());
+ ServiceInfo info = dns.services.get(name.toLowerCase());
if (info != null)
{
if (this.port == info.port != server.equals(dns.getLocalHost().getName()))
diff --git a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSState.java b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSState.java
index 08068eb..095873e 100644
--- a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSState.java
+++ b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/DNSState.java
@@ -69,7 +69,7 @@ public class DNSState
public final DNSState advance()
{
return (isProbing() || isAnnouncing()) ?
- (DNSState) sequence.get(ordinal + 1) :
+ sequence.get(ordinal + 1) :
this;
}
@@ -121,4 +121,4 @@ public class DNSState
{
return ordinal - state.ordinal;
}
-} \ No newline at end of file
+}
diff --git a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/JmDNS.java b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/JmDNS.java
index 7b9c86f..30ac500 100644
--- a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/JmDNS.java
+++ b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/JmDNS.java
@@ -59,7 +59,7 @@ public class JmDNS
/**
* Holds instances of ServiceTypeListener's.
*/
- private List typeListeners;
+ private List<ServiceTypeListener> typeListeners;
/**
@@ -73,7 +73,7 @@ public class JmDNS
* fully qualified service name.
* Values are instances of ServiceInfo.
*/
- Map services;
+ Map<String, ServiceInfo> services;
/**
* This hashtable holds the service types that have been registered or
@@ -82,11 +82,7 @@ public class JmDNS
* fully qualified service type.
* Values hold the fully qualified service type.
*/
- Map serviceTypes;
- /**
- * This is the shutdown hook, we registered with the java runtime.
- */
- private Thread shutdown;
+ Map<String, String> serviceTypes;
/**
* Handle on the local host
@@ -159,7 +155,7 @@ public class JmDNS
*
* @see #list
*/
- private HashMap serviceCollectors = new HashMap();
+ private HashMap<String, ServiceCollector> serviceCollectors = new HashMap<String, ServiceCollector>();
/**
* Create an instance of JmDNS.
@@ -168,7 +164,7 @@ public class JmDNS
public JmDNS()
throws IOException
{
- String SLevel = System.getProperty("jmdns.debug");
+ //String SLevel = System.getProperty("jmdns.debug");
logger.debug("JmDNS instance created");
try
@@ -224,12 +220,12 @@ public class JmDNS
cache = new DNSCache(100);
- listeners = Collections.synchronizedList(new ArrayList());
- serviceListeners = new HashMap();
- typeListeners = new ArrayList();
+ listeners = Collections.synchronizedList(new ArrayList<DNSListener>());
+ serviceListeners = new HashMap<String, List<ServiceListener>>();
+ typeListeners = new ArrayList<ServiceTypeListener>();
- services = new Hashtable(20);
- serviceTypes = new Hashtable(20);
+ services = new Hashtable<String, ServiceInfo>(20);
+ serviceTypes = new Hashtable<String, String>(20);
// REMIND: If I could pass in a name for the Timer thread,
// I would pass 'JmDNS.Timer'.
@@ -244,16 +240,16 @@ public class JmDNS
start(services.values());
}
- private void start(Collection serviceInfos)
+ private void start(Collection<ServiceInfo> serviceInfos)
{
state = DNSState.PROBING_1;
incomingListener.start();
new Prober().start();
- for (Iterator iterator = serviceInfos.iterator(); iterator.hasNext();)
+ for (ServiceInfo serviceInfo : serviceInfos)
{
try
{
- registerService(new ServiceInfo((ServiceInfo) iterator.next()));
+ registerService(new ServiceInfo(serviceInfo));
}
catch (Exception exception)
{
@@ -489,17 +485,16 @@ public class JmDNS
void handleServiceResolved(ServiceInfo info)
{
- List list = (List) serviceListeners.get(info.type.toLowerCase());
+ List<ServiceListener> list = serviceListeners.get(info.type.toLowerCase());
if (list != null)
{
ServiceEvent event =
new ServiceEvent(this, info.type, info.getName(), info);
// Iterate on a copy in case listeners will modify it
- final ArrayList listCopy = new ArrayList(list);
- for (Iterator iterator = listCopy.iterator(); iterator.hasNext();)
- {
- ((ServiceListener) iterator.next()).serviceResolved(event);
- }
+ List<ServiceListener> listCopy
+ = new ArrayList<ServiceListener> (list);
+ for (ServiceListener serviceListener : listCopy)
+ serviceListener.serviceResolved(event);
}
}
@@ -519,11 +514,10 @@ public class JmDNS
}
// report cached service types
- for (Iterator iterator = serviceTypes.values().iterator();
- iterator.hasNext();)
+ for (String serviceType : serviceTypes.values())
{
listener.serviceTypeAdded(
- new ServiceEvent(this, (String) iterator.next(), null, null));
+ new ServiceEvent(this, serviceType, null, null));
}
new TypeResolver().start();
@@ -560,17 +554,16 @@ public class JmDNS
list = serviceListeners.get(lotype);
if (list == null)
{
- list = Collections.synchronizedList(new LinkedList());
+ list = Collections.synchronizedList(new LinkedList<ServiceListener>());
serviceListeners.put(lotype, list);
}
list.add(listener);
}
// report cached service types
- for (Iterator i = cache.iterator(); i.hasNext();)
+ for (Iterator<DNSCache.CacheNode> i = cache.iterator(); i.hasNext();)
{
- for (DNSCache.CacheNode n =
- (DNSCache.CacheNode) i.next(); n != null; n = n.next())
+ for (DNSCache.CacheNode n = i.next(); n != null; n = n.next())
{
DNSRecord rec = (DNSRecord) n.getValue();
if (rec.type == DNSConstants.TYPE_SRV)
@@ -699,15 +692,15 @@ public class JmDNS
return;
}
- Collection list;
+ Collection<ServiceInfo> list;
synchronized (this)
{
- list = new LinkedList(services.values());
+ list = new LinkedList<ServiceInfo>(services.values());
services.clear();
}
- for (Iterator iterator = list.iterator(); iterator.hasNext();)
+ for (Iterator<ServiceInfo> iterator = list.iterator(); iterator.hasNext();)
{
- ((ServiceInfo) iterator.next()).cancel();
+ iterator.next().cancel();
}
@@ -728,8 +721,6 @@ public class JmDNS
{
// empty
}
-
-
}
/**
@@ -746,18 +737,16 @@ public class JmDNS
if ((type.indexOf("._mdns._udp.") < 0) &&
!type.endsWith(".in-addr.arpa."))
{
- Collection list;
+ Collection<ServiceTypeListener> list;
synchronized (this)
{
serviceTypes.put(name, type);
- list = new LinkedList(typeListeners);
+ list = new LinkedList<ServiceTypeListener>(typeListeners);
}
- for (Iterator iterator = list.iterator(); iterator.hasNext();)
- {
- ((ServiceTypeListener) iterator.next()).
- serviceTypeAdded(
+ for (ServiceTypeListener listener : list)
+ listener
+ .serviceTypeAdded(
new ServiceEvent(this, type, null, null));
- }
}
}
}
@@ -901,24 +890,20 @@ public class JmDNS
//System.out.println("OUT OF MUTEX!!!!!");
- for (Iterator<DNSListener> iterator = listenerList.iterator();
- iterator.hasNext();)
- {
- DNSListener listener = (DNSListener) iterator.next();
+ for (DNSListener listener : listenerList)
listener.updateRecord(this, now, rec);
- }
+
if (rec.type == DNSConstants.TYPE_PTR ||
rec.type == DNSConstants.TYPE_SRV)
{
- List serviceListenerList = null;
+ List<ServiceListener> serviceListenerList = null;
synchronized (this)
{
- serviceListenerList =
- (List) serviceListeners.get(rec.name.toLowerCase());
+ serviceListenerList = serviceListeners.get(rec.name.toLowerCase());
// Iterate on a copy in case listeners will modify it
if (serviceListenerList != null)
{
- serviceListenerList = new ArrayList(serviceListenerList);
+ serviceListenerList = new ArrayList<ServiceListener>(serviceListenerList);
}
}
if (serviceListenerList != null)
@@ -936,10 +921,10 @@ public class JmDNS
type,
toUnqualifiedName(type, name),
null);
- for (Iterator iterator = serviceListenerList.iterator();
+ for (Iterator<ServiceListener> iterator = serviceListenerList.iterator();
iterator.hasNext();)
{
- ((ServiceListener) iterator.next()).serviceAdded(event);
+ iterator.next().serviceAdded(event);
}
}
else
@@ -951,11 +936,10 @@ public class JmDNS
type,
toUnqualifiedName(type, name),
null);
- for (Iterator iterator = serviceListenerList.iterator();
+ for (Iterator<ServiceListener> iterator = serviceListenerList.iterator();
iterator.hasNext();)
{
- ((ServiceListener) iterator.next()).
- serviceRemoved(event);
+ iterator.next().serviceRemoved(event);
}
}
}
@@ -976,16 +960,15 @@ public class JmDNS
logger.trace("JMDNS/handleResponse received " +
msg.answers.size()+ " messages");
- for (Iterator i = msg.answers.iterator(); i.hasNext();)
- { DNSRecord rec = (DNSRecord)i.next();
+ for (DNSRecord rec : msg.answers)
+ {
logger.trace("PRINT: "+ rec);
//cache.add(rec);
}
- for (Iterator i = msg.answers.iterator(); i.hasNext();)
+ for (DNSRecord rec : msg.answers)
{
boolean isInformative = false;
- DNSRecord rec = (DNSRecord) i.next();
boolean expired = rec.isExpired(now);
logger.trace("JMDNS received : " + rec + " expired: "+expired);
@@ -1097,9 +1080,8 @@ public class JmDNS
boolean serviceConflictDetected = false;
long expirationTime = System.currentTimeMillis() +
DNSConstants.KNOWN_ANSWER_TTL;
- for (Iterator i = in.answers.iterator(); i.hasNext();)
+ for (DNSRecord answer : in.answers)
{
- DNSRecord answer = (DNSRecord) i.next();
if ((answer.getType() == DNSConstants.TYPE_A) ||
(answer.getType() == DNSConstants.TYPE_AAAA))
{
@@ -1345,10 +1327,10 @@ public class JmDNS
// Associate services to this, if they need probing
synchronized (JmDNS.this)
{
- for (Iterator iterator = services.values().iterator();
+ for (Iterator<ServiceInfo> iterator = services.values().iterator();
iterator.hasNext();)
{
- ServiceInfo info = (ServiceInfo) iterator.next();
+ ServiceInfo info = iterator.next();
if (info.getState() == DNSState.PROBING_1)
{
info.task = this;
@@ -1447,14 +1429,14 @@ public class JmDNS
// Defensively copy the services into a local list,
// to prevent race conditions with methods registerService
// and unregisterService.
- List list;
+ List<ServiceInfo> list;
synchronized (JmDNS.this)
{
- list = new LinkedList(services.values());
+ list = new LinkedList<ServiceInfo>(services.values());
}
- for (Iterator i = list.iterator(); i.hasNext();)
+ for (Iterator<ServiceInfo> i = list.iterator(); i.hasNext();)
{
- ServiceInfo info = (ServiceInfo) i.next();
+ ServiceInfo info = i.next();
synchronized (info)
{
@@ -1545,9 +1527,9 @@ public class JmDNS
// Associate services to this, if they need announcing
synchronized (JmDNS.this)
{
- for (Iterator s = services.values().iterator(); s.hasNext();)
+ for (Iterator<ServiceInfo> s = services.values().iterator(); s.hasNext();)
{
- ServiceInfo info = (ServiceInfo) s.next();
+ ServiceInfo info = s.next();
if (info.getState() == DNSState.ANNOUNCING_1)
{
info.task = this;
@@ -1617,14 +1599,14 @@ public class JmDNS
// Defensively copy the services into a local list,
// to prevent race conditions with methods registerService
// and unregisterService.
- List list;
+ List<ServiceInfo> list;
synchronized (JmDNS.this)
{
- list = new ArrayList(services.values());
+ list = new ArrayList<ServiceInfo>(services.values());
}
- for (Iterator i = list.iterator(); i.hasNext();)
+ for (Iterator<ServiceInfo> i = list.iterator(); i.hasNext();)
{
- ServiceInfo info = (ServiceInfo) i.next();
+ ServiceInfo info = i.next();
synchronized (info)
{
if (info.getState() == taskState && info.task == this)
@@ -1716,9 +1698,9 @@ public class JmDNS
// Associate services to this, if they need renewal
synchronized (JmDNS.this)
{
- for (Iterator s = services.values().iterator(); s.hasNext();)
+ for (Iterator<ServiceInfo> s = services.values().iterator(); s.hasNext();)
{
- ServiceInfo info = (ServiceInfo) s.next();
+ ServiceInfo info = s.next();
if (info.getState() == DNSState.ANNOUNCED)
{
info.task = this;
@@ -1788,14 +1770,14 @@ public class JmDNS
// Defensively copy the services into a local list,
// to prevent race conditions with methods registerService
// and unregisterService.
- List list;
+ List<ServiceInfo> list;
synchronized (JmDNS.this)
{
- list = new ArrayList(services.values());
+ list = new ArrayList<ServiceInfo>(services.values());
}
- for (Iterator i = list.iterator(); i.hasNext();)
+ for (Iterator<ServiceInfo> i = list.iterator(); i.hasNext();)
{
- ServiceInfo info = (ServiceInfo) i.next();
+ ServiceInfo info = i.next();
synchronized (info)
{
if (info.getState() == taskState && info.task == this)
@@ -1894,9 +1876,8 @@ public class JmDNS
// We respond after 20-120 ms if the query is truncated.
boolean iAmTheOnlyOne = true;
- for (Iterator i = in.questions.iterator(); i.hasNext();)
+ for (DNSEntry entry : in.questions)
{
- DNSEntry entry = (DNSEntry) i.next();
if (entry instanceof DNSQuestion)
{
DNSQuestion q = (DNSQuestion) entry;
@@ -1954,7 +1935,7 @@ public class JmDNS
for (Iterator<DNSEntry> iterator = in.questions.iterator();
iterator.hasNext();)
{
- DNSEntry entry = (DNSEntry) iterator.next();
+ DNSEntry entry = iterator.next();
if (entry instanceof DNSQuestion)
{
DNSQuestion q = (DNSQuestion) entry;
@@ -2029,12 +2010,11 @@ public class JmDNS
// Answer a query for services of a given type
// find matching services
- for (Iterator serviceIterator =
+ for (Iterator<ServiceInfo> serviceIterator =
services.values().iterator();
serviceIterator.hasNext();)
{
- ServiceInfo info =
- (ServiceInfo) serviceIterator.next();
+ ServiceInfo info = serviceIterator.next();
if (info.getState() == DNSState.ANNOUNCED)
{
if (q.name.equalsIgnoreCase(info.type))
@@ -2089,7 +2069,7 @@ public class JmDNS
DNSConstants.TYPE_PTR,
DNSConstants.CLASS_IN,
DNSConstants.DNS_TTL,
- (String) serviceTypeIterator.next()));
+ serviceTypeIterator.next()));
}
}
break;
@@ -2098,8 +2078,7 @@ public class JmDNS
case DNSConstants.TYPE_ANY:
case DNSConstants.TYPE_TXT:
{
- ServiceInfo info =
- (ServiceInfo) services.get(q.name.toLowerCase());
+ ServiceInfo info = services.get(q.name.toLowerCase());
if (info != null &&
info.getState() == DNSState.ANNOUNCED)
{
@@ -2154,9 +2133,8 @@ public class JmDNS
// remove known answers, if the ttl is at least half of
// the correct value. (See Draft Cheshire chapter 7.1.).
- for (Iterator i = in.answers.iterator(); i.hasNext();)
+ for (DNSRecord knownAnswer : in.answers)
{
- DNSRecord knownAnswer = (DNSRecord) i.next();
if (knownAnswer.ttl > DNSConstants.DNS_TTL / 2 &&
answers.remove(knownAnswer))
{
@@ -2182,7 +2160,7 @@ public class JmDNS
for (Iterator<DNSQuestion> i = questions.iterator();
i.hasNext();)
{
- out.addQuestion((DNSQuestion) i.next());
+ out.addQuestion(i.next());
}
for (Iterator<DNSRecord> i = answers.iterator();
i.hasNext();)
@@ -2241,8 +2219,7 @@ public class JmDNS
"_services._mdns._udp.local.",
DNSConstants.TYPE_PTR,
DNSConstants.CLASS_IN));
- for (Iterator iterator = serviceTypes.values().iterator();
- iterator.hasNext();)
+ for (String serviceType : serviceTypes.values())
{
out.addAnswer(
new DNSRecord.Pointer(
@@ -2250,7 +2227,7 @@ public class JmDNS
DNSConstants.TYPE_PTR,
DNSConstants.CLASS_IN,
DNSConstants.DNS_TTL,
- (String) iterator.next()), 0);
+ serviceType), 0);
}
send(out);
}
@@ -2321,9 +2298,9 @@ public class JmDNS
type,
DNSConstants.TYPE_PTR,
DNSConstants.CLASS_IN));
- for (Iterator s = services.values().iterator(); s.hasNext();)
+ for (Iterator<ServiceInfo> s = services.values().iterator(); s.hasNext();)
{
- final ServiceInfo info = (ServiceInfo) s.next();
+ final ServiceInfo info = s.next();
try
{
out.addAnswer(
@@ -2517,10 +2494,9 @@ public class JmDNS
this.lock = lock;
}
- public Canceler(Collection infos, Object lock)
+ public Canceler(Collection<ServiceInfo> infos, Object lock)
{
- this.infos =
- (ServiceInfo[]) infos.toArray(new ServiceInfo[infos.size()]);
+ this.infos = infos.toArray(new ServiceInfo[infos.size()]);
this.lock = lock;
}
@@ -2618,7 +2594,7 @@ public class JmDNS
state = DNSState.CANCELED; // This protects against recursive calls
// We need to keep a copy for reregistration
- Collection oldServiceInfos = new ArrayList(services.values());
+ Collection<ServiceInfo> oldServiceInfos = new ArrayList<ServiceInfo>(services.values());
// Cancel all services
unregisterAllServices();
@@ -2697,20 +2673,20 @@ public class JmDNS
aLog.append("\t---- Services -----");
if (services != null)
{
- for (Iterator k = services.keySet().iterator(); k.hasNext();)
+ for (Map.Entry<String, ServiceInfo> entry : services.entrySet())
{
- Object key = k.next();
- aLog.append("\n\t\tService: " + key + ": " + services.get(key));
+ aLog.append("\n\t\tService: " + entry.getKey() + ": "
+ + entry.getValue());
}
}
aLog.append("\n");
aLog.append("\t---- Types ----");
if (serviceTypes != null)
{
- for (Iterator k = serviceTypes.keySet().iterator(); k.hasNext();)
+ for (Map.Entry<String, String> entry : serviceTypes.entrySet())
{
- Object key = k.next();
- aLog.append("\n\t\tType: " + key + ": " + serviceTypes.get(key));
+ aLog.append("\n\t\tType: " + entry.getKey() + ": "
+ + entry.getValue());
}
}
aLog.append("\n");
@@ -2721,11 +2697,11 @@ public class JmDNS
{
synchronized (serviceCollectors)
{
- for (Iterator k = serviceCollectors.keySet().iterator(); k.hasNext();)
+ for (Map.Entry<String, ServiceCollector> entry
+ : serviceCollectors.entrySet())
{
- Object key = k.next();
- aLog.append("\n\t\tService Collector: " + key + ": " +
- serviceCollectors.get(key));
+ aLog.append("\n\t\tService Collector: " + entry.getKey()
+ + ": " + entry.getValue());
}
serviceCollectors.clear();
}
@@ -2754,7 +2730,7 @@ public class JmDNS
boolean newCollectorCreated;
synchronized (serviceCollectors)
{
- collector = (ServiceCollector) serviceCollectors.get(type);
+ collector = serviceCollectors.get(type);
if (collector == null)
{
collector = new ServiceCollector(type);
@@ -2796,9 +2772,9 @@ public class JmDNS
logger.debug("disposeServiceCollectors()");
synchronized (serviceCollectors)
{
- for (Iterator i = serviceCollectors.values().iterator(); i.hasNext();)
+ for (Iterator<ServiceCollector> i = serviceCollectors.values().iterator(); i.hasNext();)
{
- ServiceCollector collector = (ServiceCollector) i.next();
+ ServiceCollector collector = i.next();
removeServiceListener(collector.type, collector);
}
serviceCollectors.clear();
@@ -2817,7 +2793,7 @@ public class JmDNS
/**
* A set of collected service instance names.
*/
- private Map infos = Collections.synchronizedMap(new HashMap());
+ private Map<String, ServiceInfo> infos = Collections.synchronizedMap(new HashMap<String, ServiceInfo>());
public String type;
@@ -2870,7 +2846,7 @@ public class JmDNS
{
synchronized (infos)
{
- return (ServiceInfo[]) infos.values().
+ return infos.values().
toArray(new ServiceInfo[infos.size()]);
}
}
@@ -2880,10 +2856,10 @@ public class JmDNS
StringBuffer aLog = new StringBuffer();
synchronized (infos)
{
- for (Iterator k = infos.keySet().iterator(); k.hasNext();)
+ for (Map.Entry<String, ServiceInfo> entry : infos.entrySet())
{
- Object key = k.next();
- aLog.append("\n\t\tService: " + key + ": " + infos.get(key));
+ aLog.append("\n\t\tService: " + entry.getKey() + ": "
+ + entry.getValue());
}
}
return aLog.toString();
@@ -3001,6 +2977,6 @@ public class JmDNS
*/
public ServiceInfo getLocalService(String FQN)
{
- return (ServiceInfo)services.get(FQN);
+ return services.get(FQN);
}
}
diff --git a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/ServiceInfo.java b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/ServiceInfo.java
index 7523916..eea0022 100644
--- a/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/ServiceInfo.java
+++ b/src/net/java/sip/communicator/impl/protocol/zeroconf/jmdns/ServiceInfo.java
@@ -46,7 +46,7 @@ public class ServiceInfo implements DNSListener
int weight;
int priority;
byte text[];
- Hashtable props;
+ private Map<String, Object> props;
InetAddress addr;
@@ -107,7 +107,7 @@ public class ServiceInfo implements DNSListener
*/
public ServiceInfo(String type, String name,
int port, int weight,
- int priority, Hashtable props)
+ int priority, Map<String, Object> props)
{
this(type, name, port, weight, priority, new byte[0]);
if (props != null)
@@ -115,10 +115,10 @@ public class ServiceInfo implements DNSListener
try
{
ByteArrayOutputStream out = new ByteArrayOutputStream(256);
- for (Enumeration e = props.keys(); e.hasMoreElements();)
+ for (Map.Entry<String, Object> prop : props.entrySet())
{
- String key = (String) e.nextElement();
- Object val = props.get(key);
+ String key = prop.getKey();
+ Object val = prop.getValue();
ByteArrayOutputStream out2 = new ByteArrayOutputStream(100);
writeUTF(out2, key);
if (val instanceof String)
@@ -413,13 +413,15 @@ public class ServiceInfo implements DNSListener
}
/**
- * Enumeration of the property names.
- * @return Enumeration of the property names.
+ * Iterator<String> of the property names.
+ * @return Iterator<String> of the property names.
*/
- public Enumeration getPropertyNames()
+ public Iterator<String> getPropertyNames()
{
- Hashtable props = getProperties();
- return (props != null) ? props.keys() : new Vector().elements();
+ Map<String, Object> properties = getProperties();
+ Iterable<String> propertyNames
+ = (properties != null) ? properties.keySet() : new Vector<String>();
+ return propertyNames.iterator();
}
/**
@@ -505,11 +507,11 @@ public class ServiceInfo implements DNSListener
return buf.toString();
}
- synchronized Hashtable getProperties()
+ synchronized Map<String, Object> getProperties()
{
if ((props == null) && (text != null))
{
- Hashtable props = new Hashtable();
+ Map<String, Object> props = new Hashtable<String, Object>();
int off = 0;
while (off < text.length)
{
@@ -715,17 +717,17 @@ public class ServiceInfo implements DNSListener
* (for example in case of a status change).
* @param props Hashtable containing all the new properties to set
*/
- public void setProps(Hashtable props)
+ public void setProps(Map<String, Object> props)
{
if (props != null)
{
try
{
ByteArrayOutputStream out = new ByteArrayOutputStream(256);
- for (Enumeration e = props.keys(); e.hasMoreElements();)
+ for (Map.Entry<String, Object> prop : props.entrySet())
{
- String key = (String) e.nextElement();
- Object val = props.get(key);
+ String key = prop.getKey();
+ Object val = prop.getValue();
ByteArrayOutputStream out2 = new ByteArrayOutputStream(100);
writeUTF(out2, key);