You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@river.apache.org by Peter Firmstone <ji...@zeus.net.au> on 2010/10/31 07:23:11 UTC

Re: svn commit: r1029112 - in /incubator/river/jtsk/trunk/src: com/sun/jini/jeri/internal/http/ com/sun/jini/jeri/internal/mux/ com/sun/jini/jeri/internal/runtime/ net/jini/jeri/ net/jini/jeri/connection/ net/jini/jeri/kerberos/ net/jini/jeri/ssl/

Remind: When removing unused imports don't forget to check for javadoc 
references too.  I haven't checked your work, just something I 
remembered since Jonathan recently added a lot of imports required by 
javadoc.

Cheers,

Peter.

sijskes@apache.org wrote:
> Author: sijskes
> Date: Sat Oct 30 16:42:08 2010
> New Revision: 1029112
>
> URL: http://svn.apache.org/viewvc?rev=1029112&view=rev
> Log:
> removed unused imports
>
> Modified:
>     incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/http/HttpClientManager.java
>     incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/http/ServerInfo.java
>     incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/Mux.java
>     incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/SocketChannelConnectionIO.java
>     incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/StreamConnectionIO.java
>     incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/BASE64Encoder.java
>     incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/BasicExportTable.java
>     incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/DgcClient.java
>     incubator/river/jtsk/trunk/src/net/jini/jeri/BasicILFactory.java
>     incubator/river/jtsk/trunk/src/net/jini/jeri/BasicObjectEndpoint.java
>     incubator/river/jtsk/trunk/src/net/jini/jeri/connection/ConnectionManager.java
>     incubator/river/jtsk/trunk/src/net/jini/jeri/connection/ServerConnectionManager.java
>     incubator/river/jtsk/trunk/src/net/jini/jeri/kerberos/KerberosServerEndpoint.java
>     incubator/river/jtsk/trunk/src/net/jini/jeri/ssl/SslServerEndpointImpl.java
>
> Modified: incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/http/HttpClientManager.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/http/HttpClientManager.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/http/HttpClientManager.java (original)
> +++ incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/http/HttpClientManager.java Sat Oct 30 16:42:08 2010
> @@ -21,9 +21,7 @@ package com.sun.jini.jeri.internal.http;
>  import com.sun.jini.collection.SoftCache;
>  import com.sun.jini.thread.Executor;
>  import com.sun.jini.thread.GetThreadPoolAction;
> -import java.util.HashMap;
>  import java.util.HashSet;
> -import java.util.Map;
>  import java.util.Set;
>  
>  /**
>
> Modified: incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/http/ServerInfo.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/http/ServerInfo.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/http/ServerInfo.java (original)
> +++ incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/http/ServerInfo.java Sat Oct 30 16:42:08 2010
> @@ -28,7 +28,6 @@ import java.security.MessageDigest;
>  import java.security.NoSuchAlgorithmException;
>  import java.security.PrivilegedAction;
>  import java.util.ArrayList;
> -import java.util.Arrays;
>  import java.util.HashMap;
>  import java.util.List;
>  import java.util.Map;
>
> Modified: incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/Mux.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/Mux.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/Mux.java (original)
> +++ incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/Mux.java Sat Oct 30 16:42:08 2010
> @@ -33,7 +33,6 @@ import java.nio.charset.CharsetDecoder;
>  import java.nio.charset.CharsetEncoder;
>  import java.security.AccessController;
>  import java.util.BitSet;
> -import java.util.Collection;
>  import java.util.HashMap;
>  import java.util.LinkedList;
>  import java.util.Map;
>
> Modified: incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/SocketChannelConnectionIO.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/SocketChannelConnectionIO.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/SocketChannelConnectionIO.java (original)
> +++ incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/SocketChannelConnectionIO.java Sat Oct 30 16:42:08 2010
> @@ -25,7 +25,6 @@ import java.io.IOException;
>  import java.nio.ByteBuffer;
>  import java.nio.channels.SelectionKey;
>  import java.nio.channels.SocketChannel;
> -import java.security.AccessController;
>  import java.util.Iterator;
>  import java.util.LinkedList;
>  import java.util.logging.Level;
>
> Modified: incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/StreamConnectionIO.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/StreamConnectionIO.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/StreamConnectionIO.java (original)
> +++ incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/mux/StreamConnectionIO.java Sat Oct 30 16:42:08 2010
> @@ -21,7 +21,6 @@ package com.sun.jini.jeri.internal.mux;
>  import com.sun.jini.logging.Levels;
>  import com.sun.jini.thread.Executor;
>  import com.sun.jini.thread.GetThreadPoolAction;
> -import java.io.BufferedOutputStream;
>  import java.io.EOFException;
>  import java.io.IOException;
>  import java.io.InputStream;
>
> Modified: incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/BASE64Encoder.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/BASE64Encoder.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/BASE64Encoder.java (original)
> +++ incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/BASE64Encoder.java Sat Oct 30 16:42:08 2010
> @@ -18,9 +18,7 @@
>  package com.sun.jini.jeri.internal.runtime;
>  
>  import java.io.IOException;
> -import java.io.InputStream;
>  import java.io.OutputStream;
> -import java.io.PrintStream;
>  
>  /**
>   * This class implements a BASE64 Character encoder as specified in RFC1521.
>
> Modified: incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/BasicExportTable.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/BasicExportTable.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/BasicExportTable.java (original)
> +++ incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/BasicExportTable.java Sat Oct 30 16:42:08 2010
> @@ -33,7 +33,6 @@ import net.jini.jeri.Endpoint;
>  import net.jini.jeri.InvocationDispatcher;
>  import net.jini.jeri.RequestDispatcher;
>  import net.jini.jeri.ServerEndpoint;
> -import net.jini.jeri.ServerEndpoint.ListenContext;
>  import net.jini.jeri.ServerEndpoint.ListenCookie;
>  import net.jini.jeri.ServerEndpoint.ListenEndpoint;
>  import net.jini.jeri.ServerEndpoint.ListenHandle;
>
> Modified: incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/DgcClient.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/DgcClient.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/DgcClient.java (original)
> +++ incubator/river/jtsk/trunk/src/com/sun/jini/jeri/internal/runtime/DgcClient.java Sat Oct 30 16:42:08 2010
> @@ -29,7 +29,6 @@ import java.util.Arrays;
>  import java.util.Collection;
>  import java.util.logging.Level;
>  import java.util.logging.Logger;
> -import javax.security.auth.Subject;
>  import net.jini.id.Uuid;
>  import net.jini.id.UuidFactory;
>  import net.jini.jeri.BasicInvocationHandler;
>
> Modified: incubator/river/jtsk/trunk/src/net/jini/jeri/BasicILFactory.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/net/jini/jeri/BasicILFactory.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/net/jini/jeri/BasicILFactory.java (original)
> +++ incubator/river/jtsk/trunk/src/net/jini/jeri/BasicILFactory.java Sat Oct 30 16:42:08 2010
> @@ -21,7 +21,6 @@ package net.jini.jeri;
>  import java.lang.reflect.InvocationHandler;
>  import java.lang.reflect.Method;
>  import java.lang.reflect.Proxy;
> -import java.security.Permission;
>  import java.rmi.Remote;
>  import java.rmi.server.ExportException;
>  import java.security.Permission;
>
> Modified: incubator/river/jtsk/trunk/src/net/jini/jeri/BasicObjectEndpoint.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/net/jini/jeri/BasicObjectEndpoint.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/net/jini/jeri/BasicObjectEndpoint.java (original)
> +++ incubator/river/jtsk/trunk/src/net/jini/jeri/BasicObjectEndpoint.java Sat Oct 30 16:42:08 2010
> @@ -29,7 +29,6 @@ import java.io.ObjectInputValidation;
>  import java.io.ObjectOutputStream;
>  import java.io.Serializable;
>  import java.rmi.NoSuchObjectException;
> -import java.rmi.Remote;
>  import java.rmi.RemoteException;
>  import java.rmi.UnmarshalException;
>  import java.util.ArrayList;
>
> Modified: incubator/river/jtsk/trunk/src/net/jini/jeri/connection/ConnectionManager.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/net/jini/jeri/connection/ConnectionManager.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/net/jini/jeri/connection/ConnectionManager.java (original)
> +++ incubator/river/jtsk/trunk/src/net/jini/jeri/connection/ConnectionManager.java Sat Oct 30 16:42:08 2010
> @@ -38,7 +38,6 @@ import java.util.Set;
>  import java.util.logging.Level;
>  import java.util.logging.Logger;
>  import net.jini.core.constraint.InvocationConstraints;
> -import net.jini.jeri.Endpoint;
>  import net.jini.jeri.OutboundRequest;
>  import net.jini.jeri.OutboundRequestIterator;
>  
>
> Modified: incubator/river/jtsk/trunk/src/net/jini/jeri/connection/ServerConnectionManager.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/net/jini/jeri/connection/ServerConnectionManager.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/net/jini/jeri/connection/ServerConnectionManager.java (original)
> +++ incubator/river/jtsk/trunk/src/net/jini/jeri/connection/ServerConnectionManager.java Sat Oct 30 16:42:08 2010
> @@ -31,7 +31,6 @@ import net.jini.core.constraint.Invocati
>  import net.jini.io.UnsupportedConstraintException;
>  import net.jini.jeri.InboundRequest;
>  import net.jini.jeri.RequestDispatcher;
> -import net.jini.jeri.ServerEndpoint;
>  
>  /**
>   * Provides server-side connection management using the <a
>
> Modified: incubator/river/jtsk/trunk/src/net/jini/jeri/kerberos/KerberosServerEndpoint.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/net/jini/jeri/kerberos/KerberosServerEndpoint.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/net/jini/jeri/kerberos/KerberosServerEndpoint.java (original)
> +++ incubator/river/jtsk/trunk/src/net/jini/jeri/kerberos/KerberosServerEndpoint.java Sat Oct 30 16:42:08 2010
> @@ -59,7 +59,6 @@ import java.net.UnknownHostException;
>  import java.nio.channels.SocketChannel;
>  import java.security.AccessControlContext;
>  import java.security.AccessController;
> -import java.util.ArrayList;
>  import java.util.Collection;
>  import java.util.HashSet;
>  import java.util.Iterator;
>
> Modified: incubator/river/jtsk/trunk/src/net/jini/jeri/ssl/SslServerEndpointImpl.java
> URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/net/jini/jeri/ssl/SslServerEndpointImpl.java?rev=1029112&r1=1029111&r2=1029112&view=diff
> ==============================================================================
> --- incubator/river/jtsk/trunk/src/net/jini/jeri/ssl/SslServerEndpointImpl.java (original)
> +++ incubator/river/jtsk/trunk/src/net/jini/jeri/ssl/SslServerEndpointImpl.java Sat Oct 30 16:42:08 2010
> @@ -60,7 +60,6 @@ import java.util.logging.Level;
>  import java.util.logging.Logger;
>  import javax.net.ServerSocketFactory;
>  import javax.net.SocketFactory;
> -import javax.net.ssl.SSLContext;
>  import javax.net.ssl.SSLPeerUnverifiedException;
>  import javax.net.ssl.SSLSession;
>  import javax.net.ssl.SSLSocket;
>
>
>
>   


Re: svn commit: r1029112 - in /incubator/river/jtsk/trunk/src: com/sun/jini/jeri/internal/http/ com/sun/jini/jeri/internal/mux/ com/sun/jini/jeri/internal/runtime/ net/jini/jeri/ net/jini/jeri/connection/ net/jini/jeri/kerberos/ net/jini/jeri/ssl/

Posted by Jonathan Costers <jo...@googlemail.com>.
Exactly. There doesn't seem to be an issue so far (looking at the test
results), but I do remember myself running into trouble removing some of
these imports at one time.
Only time will tell I guess

2010/10/31 Sim IJskes - QCG <si...@qcg.nl>

> Ive assumed, that the classdep macro works on classes instead of the source
> files, if thats true, no harm will be caused.
>
> If we have a clear suspicion classdep does not work correctly anymore, we
> can always checkout a revision from before the remove imports and compare
> the deps files, right?
>
> Gr. Sim
>
>
> On 10/31/2010 04:12 PM, Jonathan Costers wrote:
>
>> Also, removing these imports could have infuence on classdep operations?
>> So removing a seemingly unused import could cause certain classes not
>> being
>> picked up by classdep.
>> Not 100% sure about this though ...
>>
>> 2010/10/31 Sim IJskes - QCG<si...@qcg.nl>
>>
>>  On 10/31/2010 07:23 AM, Peter Firmstone wrote:
>>>
>>>  Remind: When removing unused imports don't forget to check for javadoc
>>>> references too. I haven't checked your work, just something I remembered
>>>> since Jonathan recently added a lot of imports required by javadoc.
>>>>
>>>>
>>> OK, what commit revision are you talking about? And how does it manifest
>>> itself when i've removed to much imports?
>>>
>>> Gr. Sim
>>>
>>>
>>>
>>
>

Re: svn commit: r1029112 - in /incubator/river/jtsk/trunk/src: com/sun/jini/jeri/internal/http/ com/sun/jini/jeri/internal/mux/ com/sun/jini/jeri/internal/runtime/ net/jini/jeri/ net/jini/jeri/connection/ net/jini/jeri/kerberos/ net/jini/jeri/ssl/

Posted by Sim IJskes - QCG <si...@qcg.nl>.
Ive assumed, that the classdep macro works on classes instead of the 
source files, if thats true, no harm will be caused.

If we have a clear suspicion classdep does not work correctly anymore, 
we can always checkout a revision from before the remove imports and 
compare the deps files, right?

Gr. Sim

On 10/31/2010 04:12 PM, Jonathan Costers wrote:
> Also, removing these imports could have infuence on classdep operations?
> So removing a seemingly unused import could cause certain classes not being
> picked up by classdep.
> Not 100% sure about this though ...
>
> 2010/10/31 Sim IJskes - QCG<si...@qcg.nl>
>
>> On 10/31/2010 07:23 AM, Peter Firmstone wrote:
>>
>>> Remind: When removing unused imports don't forget to check for javadoc
>>> references too. I haven't checked your work, just something I remembered
>>> since Jonathan recently added a lot of imports required by javadoc.
>>>
>>
>> OK, what commit revision are you talking about? And how does it manifest
>> itself when i've removed to much imports?
>>
>> Gr. Sim
>>
>>
>


Re: svn commit: r1029112 - in /incubator/river/jtsk/trunk/src: com/sun/jini/jeri/internal/http/ com/sun/jini/jeri/internal/mux/ com/sun/jini/jeri/internal/runtime/ net/jini/jeri/ net/jini/jeri/connection/ net/jini/jeri/kerberos/ net/jini/jeri/ssl/

Posted by Peter Firmstone <ji...@zeus.net.au>.
Jonathan Costers wrote:
> Also, removing these imports could have infuence on classdep operations?
> So removing a seemingly unused import could cause certain classes not being
> picked up by classdep.
> Not 100% sure about this though ...
>
> 2010/10/31 Sim IJskes - QCG <si...@qcg.nl>
>
>   
>> On 10/31/2010 07:23 AM, Peter Firmstone wrote:
>>
>>     
>>> Remind: When removing unused imports don't forget to check for javadoc
>>> references too. I haven't checked your work, just something I remembered
>>> since Jonathan recently added a lot of imports required by javadoc.
>>>
>>>       
>> OK, what commit revision are you talking about? And how does it manifest
>> itself when i've removed to much imports?
>>
>> Gr. Sim
>>
>>
>>     
>
>   

I can clarify this for you, the following code responsible for 
discovering dependencies, it comes with comments from Tim Blackman and 
myself, it was based on an original example from ASM.

Unused imports aren't included.

Cheers,

Peter.

package com.sun.jini.tool.classdepend;

/***
 * ASM examples: examples showing how ASM can be used
 * Copyright (c) 2000-2005 INRIA, France Telecom
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the copyright holders nor the names of its
 *    contributors may be used to endorse or promote products derived from
 *    this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
"AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.
 */

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.FieldVisitor;
import org.objectweb.asm.Label;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Type;
import org.objectweb.asm.signature.SignatureReader;
import org.objectweb.asm.signature.SignatureVisitor;

/**
 *
 *
 */
abstract class AbstractDependencyVisitor extends AbstractVisitor {

    AbstractDependencyVisitor() { }

    abstract protected void addName(String name);

    /* -- ClassVisitor -- */

    public void visit(int version, int access, String name, String 
signature,
              String superName, String[] interfaces)
    {
    if (signature == null) {
        addNameInternal(superName);
        addNames(interfaces);
    } else {
        addSignature(signature);
    }
    }
   
    public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
    addDesc(desc);
    return this;
    }

    public FieldVisitor visitField(int access, String name, String desc,
                   String signature, Object value)
    {
    if (signature == null) {
        addDesc(desc);
    } else {
        addTypeSignature(signature);
    }
    if (value instanceof Type) {
            addType((Type) value);
        }
    return this;
    }
   
    public MethodVisitor visitMethod(int access, String name, String desc,
                     String signature, String[] exceptions)
    {
        if (signature == null) {
            addMethodDesc(desc);
        } else {
            addSignature(signature);
        }
        addNames(exceptions);
        return this;
    }

    public void visitInnerClass(String name, String outerName,
                String innerName, int access)
    {
    /* XXX: Do we need to consider inner classes?
         * Yes the old ClassDep tool includes them */
        addNameInternal(outerName);
    addNameInternal(name);
    }

    /* -- MethodVisitor -- */

    public AnnotationVisitor visitParameterAnnotation(int parameter,
                              String desc,
                              boolean visible)
    {
        addDesc(desc);
        return this;
    }

    public void visitTypeInsn(int opcode, String desc) {
        if (desc.charAt(0) == '[') {
            addDesc(desc);
        } else {
            addNameInternal(desc);
    }
    }

    public void visitFieldInsn(int opcode, String owner, String name,
                   String desc)
    {
        addNameInternal(owner);
        addDesc(desc);
    }
   
    String pattern = "^\\[{0,2}L{0,1}(\\w+[/.]{1}[\\w$\\d/.]+);{0,1}$";
    Pattern arrayOfObjects = Pattern.compile(pattern);
    public void visitMethodInsn(int opcode, String owner, String name,
                String desc)
    {
        /* This filters out Generic's and primitive owners.
         *
         * Also when the owner is an array, containing Objects and
         * the method name is clone(), (I think it's got something to do
         * with cloning array's, this must be a new java 5 language feature
         * I tested 1.4 code without this ever occurring)     
         * we can't get the Object's type
         * using Type.getType(owner) due to the nature of
         * the ASM Core API requiring bytecode be read sequentially.
         * This only occurs with clone() which returns java.lang.Object
         */
        Matcher match = arrayOfObjects.matcher(owner);
        while (match.find()){
            String object = match.group(1);
            addNameInternal(object);
        }
        addMethodDesc(desc);
    }

    public void visitLdcInsn(Object cst) {
        if (cst instanceof Type) {
            addType((Type) cst);
    }
    }

    public void visitMultiANewArrayInsn(String desc, int dims) {
        addDesc(desc);
    }

    public void visitLocalVariable(String name, String desc, String 
signature,
                   Label start, Label end, int index)
    {
    if (signature != null) {
        addTypeSignature(signature);
    }
    }

    public void visitTryCatchBlock(Label start, Label end, Label handler,
                   String type)
    {
        addNameInternal(type);
    }

    /* -- AnnotationVisitor -- */

    public void visit(String name, Object value) {
        if (value instanceof Type) {
            addType((Type) value);
    }
    }

    public void visitEnum(String name, String desc, String value) {
        addDesc(desc);
    }

    public AnnotationVisitor visitAnnotation(String name, String desc) {
        addDesc(desc);
        return this;
    }

    /* -- SignatureVisitor -- */

    public void visitTypeVariable(String name) {
        /* XXX: Need to do something? */
        //System.out.println(name);
    }

    public void visitClassType(String name) {
        addNameInternal(name);
    }

    public void visitInnerClassType(String name) {
        // This is not a fully qualified class name, ignore.
    }

    /* -- Utilities -- */

    private void addNameInternal(String name) {
        if (name != null) {
        addName(name.replace('/', '.'));
    }
    }

    private void addNames(String[] names) {
    if (names != null) {
            int l = names.length;
        for (int i = 0; i < l; i++) {
                String name = names[i];
        addNameInternal(name);
        }
    }
    }

    private void addDesc(String desc) {
        addType(Type.getType(desc));
    }

    private void addMethodDesc(String desc) {
        addType(Type.getReturnType(desc));
        Type [] type = Type.getArgumentTypes(desc);
        int l = type.length;
    for (int i = 0; i < l; i++) {           
            addType(type[i]);
    }
    }

    private void addType(Type t) {
        switch (t.getSort()) {
            case Type.ARRAY:
                addType(t.getElementType());
                break;
            case Type.OBJECT:
                addNameInternal(t.getClassName());
                break;
        }
    }

    private void addSignature(String signature) {
    new SignatureReader(signature).accept(this);
    }

    private void addTypeSignature(String signature) {
    new SignatureReader(signature).acceptType(this);
    }
}


Re: svn commit: r1029112 - in /incubator/river/jtsk/trunk/src: com/sun/jini/jeri/internal/http/ com/sun/jini/jeri/internal/mux/ com/sun/jini/jeri/internal/runtime/ net/jini/jeri/ net/jini/jeri/connection/ net/jini/jeri/kerberos/ net/jini/jeri/ssl/

Posted by Jonathan Costers <jo...@googlemail.com>.
Also, removing these imports could have infuence on classdep operations?
So removing a seemingly unused import could cause certain classes not being
picked up by classdep.
Not 100% sure about this though ...

2010/10/31 Sim IJskes - QCG <si...@qcg.nl>

> On 10/31/2010 07:23 AM, Peter Firmstone wrote:
>
>> Remind: When removing unused imports don't forget to check for javadoc
>> references too. I haven't checked your work, just something I remembered
>> since Jonathan recently added a lot of imports required by javadoc.
>>
>
> OK, what commit revision are you talking about? And how does it manifest
> itself when i've removed to much imports?
>
> Gr. Sim
>
>

Re: svn commit: r1029112 - in /incubator/river/jtsk/trunk/src: com/sun/jini/jeri/internal/http/ com/sun/jini/jeri/internal/mux/ com/sun/jini/jeri/internal/runtime/ net/jini/jeri/ net/jini/jeri/connection/ net/jini/jeri/kerberos/ net/jini/jeri/ssl/

Posted by Sim IJskes - QCG <si...@qcg.nl>.
On 10/31/2010 07:23 AM, Peter Firmstone wrote:
> Remind: When removing unused imports don't forget to check for javadoc
> references too. I haven't checked your work, just something I remembered
> since Jonathan recently added a lot of imports required by javadoc.

OK, what commit revision are you talking about? And how does it manifest 
itself when i've removed to much imports?

Gr. Sim