[jboss-cvs] JBossAS SVN: r58818 - trunk/varia/src/main/org/jboss/tools

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Dec 3 12:26:23 EST 2006


Author: scott.stark at jboss.org
Date: 2006-12-03 12:26:21 -0500 (Sun, 03 Dec 2006)
New Revision: 58818

Modified:
   trunk/varia/src/main/org/jboss/tools/ClassVersionInfo.java
Log:
Add a main so this can be used to print the serialVersionUID info.

Modified: trunk/varia/src/main/org/jboss/tools/ClassVersionInfo.java
===================================================================
--- trunk/varia/src/main/org/jboss/tools/ClassVersionInfo.java	2006-12-02 04:09:03 UTC (rev 58817)
+++ trunk/varia/src/main/org/jboss/tools/ClassVersionInfo.java	2006-12-03 17:26:21 UTC (rev 58818)
@@ -23,6 +23,8 @@
 
 import java.io.ObjectStreamClass;
 import java.io.Serializable;
+import java.net.URL;
+import java.security.CodeSource;
 
 /**
  * Encapsulates a class serialVersionUID and codebase.
@@ -39,12 +41,16 @@
    /** The binary class name */
    private String name;
    private boolean hasExplicitSerialVersionUID;
+   private transient URL location;
 
    public ClassVersionInfo(String name, ClassLoader loader)
       throws ClassNotFoundException
    {
       this.name = name;
       Class c = loader.loadClass(name);
+      CodeSource cs = c.getProtectionDomain().getCodeSource();
+      if( cs != null )
+         location = cs.getLocation();
       if( c.isInterface() == false )
       {
          ObjectStreamClass osc = ObjectStreamClass.lookup(c);
@@ -87,7 +93,27 @@
       tmp.append(hasExplicitSerialVersionUID);
       tmp.append(", name=");
       tmp.append(name);
+      tmp.append(", location=");
+      tmp.append(location);
       tmp.append('}');
       return tmp.toString();
    }
+
+   /**
+    * Usage: ClassVersionInfo class-name
+    * 
+    * Locate the class name on the thread context class loader classpath
+    * and print its version info.
+    *  
+    * @param args [0] = class-name
+    */
+   public static void main(String[] args)
+      throws Exception
+   {
+      if( args.length == 0 )
+         throw new IllegalStateException("Usage: ...ClassVersionInfo class-name");
+      ClassLoader loader = Thread.currentThread().getContextClassLoader();
+      ClassVersionInfo info = new ClassVersionInfo(args[0], loader);
+      System.out.println(info);
+   }
 }




More information about the jboss-cvs-commits mailing list