Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/support/DatagramConnectorDelegate.java Mon Apr 2 22:25:09 2007 @@ -231,7 +231,7 @@ // The normal is OP_READ and, if there are write requests in the // session's write queue, set OP_WRITE to trigger flushing. int ops = SelectionKey.OP_READ; - Queue writeRequestQueue = session.getWriteRequestQueue(); + Queue<WriteRequest> writeRequestQueue = session.getWriteRequestQueue(); synchronized( writeRequestQueue ) { if( !writeRequestQueue.isEmpty() ) @@ -299,12 +299,12 @@ } } - private void processReadySessions( Set keys ) + private void processReadySessions( Set<SelectionKey> keys ) { - Iterator it = keys.iterator(); + Iterator<SelectionKey> it = keys.iterator(); while( it.hasNext() ) { - SelectionKey key = ( SelectionKey ) it.next(); + SelectionKey key = it.next(); it.remove(); DatagramSessionImpl session = ( DatagramSessionImpl ) key.attachment(); @@ -368,14 +368,14 @@ { DatagramChannel ch = session.getChannel(); - Queue writeRequestQueue = session.getWriteRequestQueue(); + Queue<WriteRequest> writeRequestQueue = session.getWriteRequestQueue(); WriteRequest req; for( ;; ) { synchronized( writeRequestQueue ) { - req = ( WriteRequest ) writeRequestQueue.peek(); + req = writeRequestQueue.peek(); } if( req == null )
Modified: mina/trunk/core/src/main/java/org/apache/mina/util/AvailablePortFinder.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/util/AvailablePortFinder.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/util/AvailablePortFinder.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/util/AvailablePortFinder.java Mon Apr 2 22:25:09 2007 @@ -60,7 +60,7 @@ * * WARNING: this can take a very long time. */ - public static Set getAvailablePorts() + public static Set<Integer> getAvailablePorts() { return getAvailablePorts(MIN_PORT_NUMBER, MAX_PORT_NUMBER); } Modified: mina/trunk/core/src/main/java/org/apache/mina/util/ExpirationListener.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/util/ExpirationListener.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/util/ExpirationListener.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/util/ExpirationListener.java Mon Apr 2 22:25:09 2007 @@ -22,10 +22,10 @@ /** * A listener for expired object events. * - * @author The Apache MINA Project ([email protected]) + * @author The Apache Directory Project ([email protected]) * TODO Make this a inner interface of ExpiringMap */ -public interface ExpirationListener +public interface ExpirationListener<E> { - void expired(Object expiredObject); + void expired(E expiredObject); } Modified: mina/trunk/core/src/main/java/org/apache/mina/util/ExpiringMap.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/util/ExpiringMap.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/util/ExpiringMap.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/util/ExpiringMap.java Mon Apr 2 22:25:09 2007 @@ -6,21 +6,20 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations - * under the License. - * + * under the License. + * */ package org.apache.mina.util; import java.util.Collection; -import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -30,10 +29,10 @@ /** * A map with expiration. - * - * @author The Apache MINA Project ([email protected]) + * + * @author The Apache Directory Project ([email protected]) */ -public class ExpiringMap implements Map +public class ExpiringMap<K, V> implements Map<K, V> { public static final int DEFAULT_TIME_TO_LIVE = 60; @@ -41,7 +40,7 @@ private static volatile int expirerCount = 1; - private final ConcurrentHashMap<Object, ExpiringObject> delegate; + private final ConcurrentHashMap<K, ExpiringObject> delegate; private final CopyOnWriteArrayList<ExpirationListener> expirationListeners; @@ -59,11 +58,11 @@ public ExpiringMap( int timeToLive, int expirationInterval ) { - this( new ConcurrentHashMap<Object, ExpiringObject>(), new CopyOnWriteArrayList<ExpirationListener>(), timeToLive, expirationInterval ); + this( new ConcurrentHashMap<K, ExpiringObject>(), new CopyOnWriteArrayList<ExpirationListener>(), timeToLive, expirationInterval ); } private ExpiringMap( - ConcurrentHashMap<Object, ExpiringObject> delegate, CopyOnWriteArrayList<ExpirationListener> expirationListeners, + ConcurrentHashMap<K, ExpiringObject> delegate, CopyOnWriteArrayList<ExpirationListener> expirationListeners, int timeToLive, int expirationInterval ) { this.delegate = delegate; @@ -74,29 +73,41 @@ expirer.setExpirationInterval( expirationInterval ); } - public Object put( Object key, Object value ) + public V put( K key, V value ) { - return delegate.put( key, new ExpiringObject( key, value, System.currentTimeMillis() ) ); + ExpiringObject answer = delegate.put( + key, new ExpiringObject( key, value, System.currentTimeMillis() ) ); + if( answer == null ) + { + return null; + } + + return answer.getValue(); } - public Object get( Object key ) + public V get( Object key ) { - Object object = delegate.get( key ); + ExpiringObject object = delegate.get( key ); if( object != null ) { - ExpiringObject expObject = ( ExpiringObject ) object; - expObject.setLastAccessTime( System.currentTimeMillis() ); + object.setLastAccessTime( System.currentTimeMillis() ); - return expObject.getValue(); + return object.getValue(); } - return object; + return null; } - public Object remove( Object key ) + public V remove( Object key ) { - return delegate.remove( key ); + ExpiringObject answer = delegate.remove( key ); + if( answer == null ) + { + return null; + } + + return answer.getValue(); } public boolean containsKey( Object key ) @@ -124,60 +135,51 @@ delegate.clear(); } - public int hashCode() + @Override + public int hashCode() { return delegate.hashCode(); } - public Set keySet() + public Set<K> keySet() { return delegate.keySet(); } + @Override public boolean equals( Object obj ) { return delegate.equals( obj ); } - public void putAll( Map inMap ) + public void putAll( Map<? extends K, ? extends V> inMap ) { - synchronized( inMap ) + for( Entry<? extends K, ? extends V> e: inMap.entrySet() ) { - Iterator inMapKeysIt = inMap.keySet().iterator(); - - while( inMapKeysIt.hasNext() ) - { - Object key = inMapKeysIt.next(); - Object value = inMap.get( key ); - - if( value instanceof ExpiringObject ) - { - delegate.put( key, ( ExpiringObject ) value ); - } - } + this.put( e.getKey(), e.getValue() ); } } - public Collection values() + public Collection<V> values() { - return delegate.values(); + throw new UnsupportedOperationException(); } - public Set entrySet() + public Set<Map.Entry<K, V>> entrySet() { - return delegate.entrySet(); + throw new UnsupportedOperationException(); } - public void addExpirationListener( ExpirationListener listener ) + public void addExpirationListener( ExpirationListener<? extends V> listener ) { expirationListeners.add( listener ); } - public void removeExpirationListener( ExpirationListener listener ) + public void removeExpirationListener( ExpirationListener<? extends V> listener ) { expirationListeners.remove( listener ); } - + public Expirer getExpirer() { return expirer; @@ -205,15 +207,15 @@ private class ExpiringObject { - private Object key; + private K key; - private Object value; + private V value; private long lastAccessTime; private ReadWriteLock lastAccessTimeLock = new ReentrantReadWriteLock(); - public ExpiringObject( Object key, Object value, long lastAccessTime ) + ExpiringObject( K key, V value, long lastAccessTime ) { if( value == null ) { @@ -253,21 +255,23 @@ } } - public Object getKey() + public K getKey() { return key; } - public Object getValue() + public V getValue() { return value; } + @Override public boolean equals( Object obj ) { return value.equals( obj ); } + @Override public int hashCode() { return value.hashCode(); @@ -312,28 +316,18 @@ { long timeNow = System.currentTimeMillis(); - Iterator expiringObjectsIterator = delegate.values().iterator(); - - while( expiringObjectsIterator.hasNext() ) - { - ExpiringObject expObject = ( ExpiringObject ) expiringObjectsIterator.next(); + for (ExpiringObject o : delegate.values()) { - if( timeToLiveMillis <= 0 ) + if (timeToLiveMillis <= 0) continue; - long timeIdle = timeNow - expObject.getLastAccessTime(); - - if( timeIdle >= timeToLiveMillis ) - { - delegate.remove( expObject.getKey() ); - - Iterator listenerIterator = expirationListeners.iterator(); + long timeIdle = timeNow - o.getLastAccessTime(); - while( listenerIterator.hasNext() ) - { - ExpirationListener listener = ( ExpirationListener ) listenerIterator.next(); + if (timeIdle >= timeToLiveMillis) { + delegate.remove(o.getKey()); - listener.expired( expObject.getValue() ); + for (ExpirationListener<V> listener : expirationListeners) { + listener.expired(o.getValue()); } } } Modified: mina/trunk/core/src/test/java/org/apache/mina/filter/StreamWriteFilterTest.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/StreamWriteFilterTest.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/test/java/org/apache/mina/filter/StreamWriteFilterTest.java (original) +++ mina/trunk/core/src/test/java/org/apache/mina/filter/StreamWriteFilterTest.java Mon Apr 2 22:25:09 2007 @@ -256,7 +256,7 @@ { StreamWriteFilter filter = new StreamWriteFilter(); - Queue queue = new LinkedList(); + Queue<WriteRequest> queue = new LinkedList<WriteRequest>(); InputStream stream = new ByteArrayInputStream( new byte[ 5 ] ); /* Modified: mina/trunk/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java (original) +++ mina/trunk/core/src/test/java/org/apache/mina/filter/codec/CumulativeProtocolDecoderTest.java Mon Apr 2 22:25:09 2007 @@ -148,7 +148,7 @@ values.add( message ); } - public List getValues() + public List<Object> getValues() { return values; } Modified: mina/trunk/core/src/test/java/org/apache/mina/filter/codec/serialization/ObjectSerializationTest.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/codec/serialization/ObjectSerializationTest.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/test/java/org/apache/mina/filter/codec/serialization/ObjectSerializationTest.java (original) +++ mina/trunk/core/src/test/java/org/apache/mina/filter/codec/serialization/ObjectSerializationTest.java Mon Apr 2 22:25:09 2007 @@ -66,7 +66,7 @@ encoder.encode( session, expected, out ); Assert.assertEquals( 1, out.getBufferQueue().size() ); - ByteBuffer buf = ( ByteBuffer ) out.getBufferQueue().poll(); + ByteBuffer buf = out.getBufferQueue().poll(); testDecoderAndInputStream( expected, buf ); } Modified: mina/trunk/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineDecoderTest.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineDecoderTest.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineDecoderTest.java (original) +++ mina/trunk/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineDecoderTest.java Mon Apr 2 22:25:09 2007 @@ -330,7 +330,7 @@ messageQueue.offer( message ); } - public Queue getMessageQueue() + public Queue<Object> getMessageQueue() { return messageQueue; } Modified: mina/trunk/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineEncoderTest.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineEncoderTest.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineEncoderTest.java (original) +++ mina/trunk/core/src/test/java/org/apache/mina/filter/codec/textline/TextLineEncoderTest.java Mon Apr 2 22:25:09 2007 @@ -65,7 +65,7 @@ encoder.encode( session, "ABC", out ); Assert.assertEquals( 1, out.getBufferQueue().size() ); - ByteBuffer buf = ( ByteBuffer ) out.getBufferQueue().poll(); + ByteBuffer buf = out.getBufferQueue().poll(); Assert.assertEquals( 5, buf.remaining() ); Assert.assertEquals( 'A', buf.get() ); Assert.assertEquals( 'B', buf.get() ); Modified: mina/trunk/core/src/test/java/org/apache/mina/handler/demux/DemuxingIoHandlerTest.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/handler/demux/DemuxingIoHandlerTest.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/test/java/org/apache/mina/handler/demux/DemuxingIoHandlerTest.java (original) +++ mina/trunk/core/src/test/java/org/apache/mina/handler/demux/DemuxingIoHandlerTest.java Mon Apr 2 22:25:09 2007 @@ -76,6 +76,7 @@ session = ( IoSession ) MockControl.createControl( IoSession.class ).getMock(); } + @SuppressWarnings("unchecked") public void testFindHandlerByClass() throws Exception { /* @@ -134,6 +135,7 @@ mockHandler3.verify(); } + @SuppressWarnings("unchecked") public void testFindHandlerByInterface() throws Exception { /* Modified: mina/trunk/core/src/test/java/org/apache/mina/transport/socket/nio/SocketBindTest.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/transport/socket/nio/SocketBindTest.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/test/java/org/apache/mina/transport/socket/nio/SocketBindTest.java (original) +++ mina/trunk/core/src/test/java/org/apache/mina/transport/socket/nio/SocketBindTest.java Mon Apr 2 22:25:09 2007 @@ -74,7 +74,7 @@ // Wait for the server side sessions to be created. Thread.sleep( 500 ); - Collection managedSessions = acceptor.getManagedSessions(); + Collection<IoSession> managedSessions = acceptor.getManagedSessions(); Assert.assertEquals( 5, managedSessions.size() ); acceptor.unbind(); Modified: mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeBindTest.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeBindTest.java?view=diff&rev=525038&r1=525037&r2=525038 ============================================================================== --- mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeBindTest.java (original) +++ mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeBindTest.java Mon Apr 2 22:25:09 2007 @@ -75,7 +75,7 @@ // Wait for the server side sessions to be created. Thread.sleep( 500 ); - Collection managedSessions = acceptor.getManagedSessions(); + Collection<IoSession> managedSessions = acceptor.getManagedSessions(); Assert.assertEquals( 5, managedSessions.size() ); // Make sure it's the server side sessions we get when calling getManagedSessions() for( int i = 0; i < sessions.length; i++ )
