Author: rwinston
Date: Fri Aug 25 14:51:30 2006
New Revision: 436969
URL: http://svn.apache.org/viewvc?rev=436969&view=rev
Log:
* Import cleanup
* Use CopyOnWriteArrayList to store listener list
* Make ListenerList.java implement Iterable<EventListener>
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/FingerClient.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ProtocolCommandSupport.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/TimeTCPClient.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/bsd/RExecClient.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/io/CopyStreamAdapter.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/nntp/NNTP.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/nntp/NNTPClient.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/NTPUDPClient.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/TimeInfo.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/TimeStamp.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/pop3/POP3.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/pop3/POP3Client.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/smtp/SMTP.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/smtp/SMTPClient.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/Telnet.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/TelnetClient.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/TelnetInputStream.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/tftp/TFTP.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/tftp/TFTPClient.java
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/util/ListenerList.java
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/FingerClient.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/FingerClient.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/FingerClient.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/FingerClient.java
Fri Aug 25 14:51:30 2006
@@ -15,12 +15,12 @@
*/
package org.apache.commons.net;
+import java.io.BufferedOutputStream;
import java.io.BufferedReader;
+import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.BufferedOutputStream;
-import java.io.DataOutputStream;
/***
* The FingerClient class implements the client side of the Internet Finger
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ProtocolCommandSupport.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ProtocolCommandSupport.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ProtocolCommandSupport.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ProtocolCommandSupport.java
Fri Aug 25 14:51:30 2006
@@ -17,6 +17,8 @@
import java.io.Serializable;
import java.util.Enumeration;
+import java.util.EventListener;
+
import org.apache.commons.net.util.ListenerList;
/***
@@ -62,18 +64,13 @@
***/
public void fireCommandSent(String command, String message)
{
- Enumeration en;
ProtocolCommandEvent event;
- ProtocolCommandListener listener;
-
- en = __listeners.getListeners();
event = new ProtocolCommandEvent(__source, command, message);
- while (en.hasMoreElements())
+ for (EventListener listener : __listeners)
{
- listener = (ProtocolCommandListener)en.nextElement();
- listener.protocolCommandSent(event);
+ ((ProtocolCommandListener)listener).protocolCommandSent(event);
}
}
@@ -92,18 +89,12 @@
***/
public void fireReplyReceived(int replyCode, String message)
{
- Enumeration en;
ProtocolCommandEvent event;
- ProtocolCommandListener listener;
-
- en = __listeners.getListeners();
-
event = new ProtocolCommandEvent(__source, replyCode, message);
- while (en.hasMoreElements())
+ for (EventListener listener : __listeners)
{
- listener = (ProtocolCommandListener)en.nextElement();
- listener.protocolReplyReceived(event);
+ ((ProtocolCommandListener)listener).protocolReplyReceived(event);
}
}
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/TimeTCPClient.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/TimeTCPClient.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/TimeTCPClient.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/TimeTCPClient.java
Fri Aug 25 14:51:30 2006
@@ -15,9 +15,9 @@
*/
package org.apache.commons.net;
+import java.io.DataInputStream;
import java.io.IOException;
import java.util.Date;
-import java.io.DataInputStream;
/***
* The TimeTCPClient class is a TCP implementation of a client for the
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/bsd/RExecClient.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/bsd/RExecClient.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/bsd/RExecClient.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/bsd/RExecClient.java
Fri Aug 25 14:51:30 2006
@@ -17,11 +17,12 @@
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
-import org.apache.commons.net.io.SocketInputStream;
+
import org.apache.commons.net.SocketClient;
-import java.io.OutputStream;
+import org.apache.commons.net.io.SocketInputStream;
/***
* RExecClient implements the rexec() facility that first appeared in
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/io/CopyStreamAdapter.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/io/CopyStreamAdapter.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/io/CopyStreamAdapter.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/io/CopyStreamAdapter.java
Fri Aug 25 14:51:30 2006
@@ -16,6 +16,8 @@
package org.apache.commons.net.io;
import java.util.Enumeration;
+import java.util.EventListener;
+
import org.apache.commons.net.util.ListenerList;
/**
@@ -83,20 +85,16 @@
public void bytesTransferred(long totalBytesTransferred,
int bytesTransferred, long streamSize)
{
- Enumeration listeners;
CopyStreamEvent event;
- listeners = internalListeners.getListeners();
-
event = new CopyStreamEvent(this,
totalBytesTransferred,
bytesTransferred,
streamSize);
- while (listeners.hasMoreElements())
+ for (EventListener listener : internalListeners)
{
- ((CopyStreamListener) (listeners.nextElement())).
- bytesTransferred(event);
+ ((CopyStreamListener) (listener)).bytesTransferred(event);
}
}
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/nntp/NNTP.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/nntp/NNTP.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/nntp/NNTP.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/nntp/NNTP.java
Fri Aug 25 14:51:30 2006
@@ -20,9 +20,10 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
+
import org.apache.commons.net.MalformedServerReplyException;
-import org.apache.commons.net.ProtocolCommandSupport;
import org.apache.commons.net.ProtocolCommandListener;
+import org.apache.commons.net.ProtocolCommandSupport;
import org.apache.commons.net.SocketClient;
/***
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/nntp/NNTPClient.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/nntp/NNTPClient.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/nntp/NNTPClient.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/nntp/NNTPClient.java
Fri Aug 25 14:51:30 2006
@@ -22,10 +22,11 @@
import java.io.Writer;
import java.util.StringTokenizer;
import java.util.Vector;
+
+import org.apache.commons.net.MalformedServerReplyException;
import org.apache.commons.net.io.DotTerminatedMessageReader;
import org.apache.commons.net.io.DotTerminatedMessageWriter;
import org.apache.commons.net.io.Util;
-import org.apache.commons.net.MalformedServerReplyException;
/***
* NNTPClient encapsulates all the functionality necessary to post and
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/NTPUDPClient.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/NTPUDPClient.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/NTPUDPClient.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/NTPUDPClient.java
Fri Aug 25 14:51:30 2006
@@ -18,6 +18,7 @@
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.InetAddress;
+
import org.apache.commons.net.DatagramSocketClient;
/***
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/TimeInfo.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/TimeInfo.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/TimeInfo.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/TimeInfo.java
Fri Aug 25 14:51:30 2006
@@ -15,8 +15,8 @@
* limitations under the License.
*/
-import java.util.List;
import java.util.ArrayList;
+import java.util.List;
/**
* Wrapper class to network time packet messages (NTP, etc) that computes
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/TimeStamp.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/TimeStamp.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/TimeStamp.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/ntp/TimeStamp.java
Fri Aug 25 14:51:30 2006
@@ -16,12 +16,12 @@
*/
-import java.util.TimeZone;
-import java.util.Date;
-import java.util.Locale;
import java.lang.ref.SoftReference;
-import java.text.SimpleDateFormat;
import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+import java.util.TimeZone;
/***
* TimeStamp class represents the Network Time Protocol (NTP) timestamp
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/pop3/POP3.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/pop3/POP3.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/pop3/POP3.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/pop3/POP3.java
Fri Aug 25 14:51:30 2006
@@ -21,9 +21,9 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
-import java.lang.StringBuffer;
import java.util.Enumeration;
import java.util.Vector;
+
import org.apache.commons.net.MalformedServerReplyException;
import org.apache.commons.net.ProtocolCommandListener;
import org.apache.commons.net.ProtocolCommandSupport;
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/pop3/POP3Client.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/pop3/POP3Client.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/pop3/POP3Client.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/pop3/POP3Client.java
Fri Aug 25 14:51:30 2006
@@ -21,6 +21,7 @@
import java.security.NoSuchAlgorithmException;
import java.util.Enumeration;
import java.util.StringTokenizer;
+
import org.apache.commons.net.io.DotTerminatedMessageReader;
/***
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/smtp/SMTP.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/smtp/SMTP.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/smtp/SMTP.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/smtp/SMTP.java
Fri Aug 25 14:51:30 2006
@@ -22,6 +22,7 @@
import java.io.OutputStreamWriter;
import java.util.Enumeration;
import java.util.Vector;
+
import org.apache.commons.net.MalformedServerReplyException;
import org.apache.commons.net.ProtocolCommandListener;
import org.apache.commons.net.ProtocolCommandSupport;
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/smtp/SMTPClient.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/smtp/SMTPClient.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/smtp/SMTPClient.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/smtp/SMTPClient.java
Fri Aug 25 14:51:30 2006
@@ -18,6 +18,7 @@
import java.io.IOException;
import java.io.Writer;
import java.net.InetAddress;
+
import org.apache.commons.net.io.DotTerminatedMessageWriter;
/***
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/Telnet.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/Telnet.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/Telnet.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/Telnet.java
Fri Aug 25 14:51:30 2006
@@ -17,8 +17,9 @@
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
-import java.io.OutputStream;
import java.io.IOException;
+import java.io.OutputStream;
+
import org.apache.commons.net.SocketClient;
/**
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/TelnetClient.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/TelnetClient.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/TelnetClient.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/TelnetClient.java
Fri Aug 25 14:51:30 2006
@@ -19,6 +19,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+
import org.apache.commons.net.io.FromNetASCIIInputStream;
import org.apache.commons.net.io.ToNetASCIIOutputStream;
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/TelnetInputStream.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/TelnetInputStream.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/TelnetInputStream.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/telnet/TelnetInputStream.java
Fri Aug 25 14:51:30 2006
@@ -86,6 +86,7 @@
int priority;
__isClosed = false;
+ // TODO remove this
// Need to set a higher priority in case JVM does not use pre-emptive
// threads. This should prevent scheduler induced deadlock (rather
than
// deadlock caused by a bug in this code).
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/tftp/TFTP.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/tftp/TFTP.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/tftp/TFTP.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/tftp/TFTP.java
Fri Aug 25 14:51:30 2006
@@ -19,6 +19,7 @@
import java.io.InterruptedIOException;
import java.net.DatagramPacket;
import java.net.SocketException;
+
import org.apache.commons.net.DatagramSocketClient;
/***
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/tftp/TFTPClient.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/tftp/TFTPClient.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/tftp/TFTPClient.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/tftp/TFTPClient.java
Fri Aug 25 14:51:30 2006
@@ -22,6 +22,7 @@
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
+
import org.apache.commons.net.io.FromNetASCIIOutputStream;
import org.apache.commons.net.io.ToNetASCIIInputStream;
Modified:
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/util/ListenerList.java
URL:
http://svn.apache.org/viewvc/jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/util/ListenerList.java?rev=436969&r1=436968&r2=436969&view=diff
==============================================================================
---
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/util/ListenerList.java
(original)
+++
jakarta/commons/proper/net/branches/JDK_1_5_BRANCH/src/java/org/apache/commons/net/util/ListenerList.java
Fri Aug 25 14:51:30 2006
@@ -18,39 +18,45 @@
import java.io.Serializable;
import java.util.Enumeration;
import java.util.EventListener;
+import java.util.Iterator;
import java.util.Vector;
+import java.util.concurrent.CopyOnWriteArrayList;
/**
* @author Daniel F. Savarese
*/
-public class ListenerList implements Serializable
+public class ListenerList implements Serializable, Iterable<EventListener>
{
- private Vector __listeners;
+ private final CopyOnWriteArrayList<EventListener> __listeners;
public ListenerList()
{
- __listeners = new Vector();
+ __listeners = new CopyOnWriteArrayList<EventListener>();
}
public synchronized void addListener(EventListener listener)
{
- __listeners.addElement(listener);
+ __listeners.add(listener);
}
public synchronized void removeListener(EventListener listener)
{
- __listeners.removeElement(listener);
- }
-
- public synchronized Enumeration getListeners()
- {
- return ((Vector)__listeners.clone()).elements();
+ __listeners.remove(listener);
}
public int getListenerCount()
{
return __listeners.size();
+ }
+
+ /**
+ * Return an [EMAIL PROTECTED] Iterator} for the [EMAIL PROTECTED]
EventListener} instances
+ *
+ * TODO Check that this is a good defensive strategy
+ */
+ public Iterator<EventListener> iterator() {
+ return __listeners.iterator();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]