[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