summaryrefslogtreecommitdiffstats
path: root/src/demos/misc/VersionInfo.java
blob: 589d89960edab1d1d86d3150fd7e99d0a6d85ee6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

package demos.misc;

/**
 * VersionInfo.java <BR>
 * author: Travis Bryson <P>
 *
 * This program returns the version and implementation information for the Java 
 * Bindings for OpenGL (R) implementation found in the CLASSPATH.  This information
 * is also found in the manifest for jogl.jar, and this program uses the 
 * java.lang.Package class to retrieve it programatically.  
**/

public class VersionInfo {
    public VersionInfo() {
	ClassLoader classLoader = getClass().getClassLoader();
	pkgInfo(classLoader, "javax.media.opengl", "GL");
    }

    static void pkgInfo(ClassLoader classLoader,
			String pkgName,
			String className) {

	try {
	    classLoader.loadClass(pkgName + "." + className);

	    Package p = Package.getPackage(pkgName);
	    if (p == null) {
		System.out.println("WARNING: Package.getPackage(" +
				   pkgName +
				   ") is null");
	    }
	    else {
		System.out.println(p);
		System.out.println("Specification Title = " +
				   p.getSpecificationTitle());
		System.out.println("Specification Vendor = " +
				   p.getSpecificationVendor());
		System.out.println("Specification Version = " +
				   p.getSpecificationVersion());

		System.out.println("Implementation Vendor = " +
				   p.getImplementationVendor());
		System.out.println("Implementation Version = " +
				   p.getImplementationVersion());
	    }
	}
	catch (ClassNotFoundException e) {
	    System.out.println("Unable to load " + pkgName);
	}

	System.out.println();
    }

    public static void main(String[] args) {
	new VersionInfo();
    }
}