18812 Support building with alternate java implementations osol_173
authorDavid Powell <david.e.powell@oracle.com>
Thu, 11 Aug 2011 15:41:42 -0700
changeset 764 ebb25c1dac73
parent 763 94428b581c8c
child 765 5a2fb2f89217
18812 Support building with alternate java implementations
usr/src/Makefile.env
usr/src/java/adr/org/opensolaris/os/adr/APIVersion.java
usr/src/java/build-common.xml
usr/src/java/rad/org/opensolaris/os/rad/ContainerException.java
usr/src/java/rad/org/opensolaris/os/rad/EnumMapper.java
usr/src/java/rad/org/opensolaris/os/rad/PlainEnumMapper.java
usr/src/java/rad/org/opensolaris/os/rad/jmx/IncompatibleVersionException.java
usr/src/java/rad/org/opensolaris/os/rad/jmx/JMXEnumMapper.java
usr/src/java/rad/org/opensolaris/os/rad/jmx/RadJMX.java
usr/src/java/rad/org/opensolaris/os/rad/jmx/RadNotification.java
usr/src/lib/libUnixDomainSocket_jni/Makefile.com
usr/src/test/radtest/java.py
--- a/usr/src/Makefile.env	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/Makefile.env	Thu Aug 11 15:41:42 2011 -0700
@@ -110,14 +110,19 @@
 CTFCONVERT = /opt/onbld/bin/$(ISA)/ctfconvert
 
 # Set here explicitly to avoid compiling with newer class version
-JAVAC = /usr/bin/javac
-JAR = /usr/bin/jar
-JAVADOC = /usr/bin/javadoc
-JAVAH = /usr/bin/javah
+JDK_HOME = /usr
+JAVA_HOME = /usr
+
+JAVAC = $(JDK_HOME)/bin/javac
+JAR = $(JDK_HOME)/bin/jar
+JAVADOC = $(JDK_HOME)/bin/javadoc
+JAVAH = $(JDK_HOME)/bin/javah
+
+JAVA = $(JAVA_HOME)/bin/java
 
 # Consumers must depend on java (or java/adr)
 ADRLOC=$(SRC)/java/adr/adr.jar
-ADRGEN=java -classpath $(ADRLOC) org.opensolaris.os.adr.adrgen.ADRGen
+ADRGEN=$(JAVA) -classpath $(ADRLOC) org.opensolaris.os.adr.adrgen.ADRGen
 
 # Lint
 LINTFLAGS = -s -errtags=yes -errsecurity=core -errwarn=%all
--- a/usr/src/java/adr/org/opensolaris/os/adr/APIVersion.java	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/java/adr/org/opensolaris/os/adr/APIVersion.java	Thu Aug 11 15:41:42 2011 -0700
@@ -25,7 +25,7 @@
 
 package org.opensolaris.os.adr;
 
-public class APIVersion implements Comparable {
+public class APIVersion implements Comparable<APIVersion> {
 
     private int major_;
     private int minor_;
@@ -57,10 +57,9 @@
      */
 
     @Override
-    public int compareTo(Object o) throws ClassCastException {
-	if (this == o)
+    public int compareTo(APIVersion v) throws ClassCastException {
+	if (this == v)
 	    return 0;
-	APIVersion v = (APIVersion) o;
 	int diff = stability_.compareTo(v.getStability());
 	if (diff == 0) {
 	    diff = major_ - v.getMajor();
--- a/usr/src/java/build-common.xml	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/java/build-common.xml	Thu Aug 11 15:41:42 2011 -0700
@@ -71,47 +71,38 @@
 	<macrodef name="generate.adr">
 		<attribute name="api" />
 		<sequential>
-			<exec executable="/usr/bin/java">
-				<arg value="-classpath" />
-				<arg value="${ws.java}/adr/adr.jar" />
-				<arg value=
-				    "org.opensolaris.os.adr.adrgen.ADRGen" />
+			<java fork="yes" classpath="${ws.java}/adr/adr.jar"
+			    classname="org.opensolaris.os.adr.adrgen.ADRGen">
 				<arg value="-j" />
 				<arg value="${proj.gen}" />
 				<arg value="${ws.apis}/@{api}" />
-			</exec>
+			</java>
 		</sequential>
 	</macrodef>
 
 	<macrodef name="generate.adropt">
 		<attribute name="api" />
 		<sequential>
-			<exec executable="/usr/bin/java">
-				<arg value="-classpath" />
-				<arg value="${ws.java}/adr/adr.jar" />
-				<arg value=
-				    "org.opensolaris.os.adr.adrgen.ADRGen" />
+			<java fork="yes" classpath="${ws.java}/adr/adr.jar"
+			    classname="org.opensolaris.os.adr.adrgen.ADRGen">
 				<arg value="-N" />
 				<arg value="-j" />
 				<arg value="${proj.gen}" />
 				<arg value="${ws.apis}/@{api}" />
-			</exec>
+			</java>
 		</sequential>
 	</macrodef>
 
 	<macrodef name="generate.adrimpl">
 		<attribute name="api" />
 		<sequential>
-			<exec executable="/usr/bin/java">
-				<arg value="-classpath" />
-				<arg value="${ws.java}/adr/adr.jar" />
-				<arg value=
-				    "org.opensolaris.os.adr.adrgen.ADRGen" />
+			<java fork="yes" classpath="${ws.java}/adr/adr.jar"
+			    classname="org.opensolaris.os.adr.adrgen.ADRGen">
 				<arg value="-j" />
 				<arg value="${proj.gen}" />
 				<arg value="-i" />
 				<arg value="${ws.apis}/@{api}" />
-			</exec>
+			</java>
 		</sequential>
 	</macrodef>
 
--- a/usr/src/java/rad/org/opensolaris/os/rad/ContainerException.java	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/java/rad/org/opensolaris/os/rad/ContainerException.java	Thu Aug 11 15:41:42 2011 -0700
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.rad;
@@ -70,7 +69,7 @@
 	    new CompositeDataInvocationHandler(payload_);
 	try {
 	    return (T)Proxy.newProxyInstance(c.getClassLoader(),
-		new Class[] { c }, handler);
+		new Class<?>[] { c }, handler);
 	} catch (Exception e) {
 	    return null;
 	}
--- a/usr/src/java/rad/org/opensolaris/os/rad/EnumMapper.java	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/java/rad/org/opensolaris/os/rad/EnumMapper.java	Thu Aug 11 15:41:42 2011 -0700
@@ -54,7 +54,7 @@
 	client_ = client;
     }
 
-    public abstract OpenType toOpenType(EnumType type);
+    public abstract OpenType<?> toOpenType(EnumType type);
     public abstract Object fromWire(Type.EnumType type, Type.EnumValue value)
 	throws OpenDataException;
     public abstract String toWire(Type.EnumType type, Object data);
--- a/usr/src/java/rad/org/opensolaris/os/rad/PlainEnumMapper.java	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/java/rad/org/opensolaris/os/rad/PlainEnumMapper.java	Thu Aug 11 15:41:42 2011 -0700
@@ -35,7 +35,7 @@
  * The default EnumMapper.  Maps enumeration values to strings.
  */
 public class PlainEnumMapper extends EnumMapper {
-    public OpenType toOpenType(EnumType type) {
+    public OpenType<?> toOpenType(EnumType type) {
 	return SimpleType.STRING;
     }
 
--- a/usr/src/java/rad/org/opensolaris/os/rad/jmx/IncompatibleVersionException.java	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/java/rad/org/opensolaris/os/rad/jmx/IncompatibleVersionException.java	Thu Aug 11 15:41:42 2011 -0700
@@ -29,11 +29,11 @@
 import org.opensolaris.os.adr.APIVersion;
 
 public class IncompatibleVersionException extends JMException {
-    private Class iface_;
+    private Class<?> iface_;
     private APIVersion cver_;
     private APIVersion sver_;
 
-    IncompatibleVersionException(Class iface, APIVersion cver,
+    IncompatibleVersionException(Class<?> iface, APIVersion cver,
 	APIVersion sver, String msg) {
 	super(msg);
 	iface_ = iface;
@@ -41,13 +41,13 @@
 	sver_ = sver;
     }
 
-    IncompatibleVersionException(Class iface, APIVersion cver,
+    IncompatibleVersionException(Class<?> iface, APIVersion cver,
 	APIVersion sver) {
 	this(iface, cver, sver, String.format("Incompatible versions: " +
 	    "%s Client [%s], Server = [%s].", iface.getName(), cver, sver));
     }
 
-    public Class getInterfaceClass() {
+    public Class<?> getInterfaceClass() {
 	return iface_;
     }
 
--- a/usr/src/java/rad/org/opensolaris/os/rad/jmx/JMXEnumMapper.java	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/java/rad/org/opensolaris/os/rad/jmx/JMXEnumMapper.java	Thu Aug 11 15:41:42 2011 -0700
@@ -41,7 +41,7 @@
  */
 public class JMXEnumMapper extends PlainEnumMapper {
     @Override
-    public OpenType toOpenType(EnumType type) {
+    public OpenType<?> toOpenType(EnumType type) {
 	if (type.getFallback() == null)
 	    return super.toOpenType(type);
 
--- a/usr/src/java/rad/org/opensolaris/os/rad/jmx/RadJMX.java	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/java/rad/org/opensolaris/os/rad/jmx/RadJMX.java	Thu Aug 11 15:41:42 2011 -0700
@@ -26,11 +26,7 @@
 package org.opensolaris.os.rad.jmx;
 
 import java.io.IOException;
-import java.lang.annotation.*;
-import java.util.*;
 import javax.management.*;
-import javax.management.openmbean.OpenMBeanInfo;
-import javax.management.openmbean.OpenMBeanInfoSupport;
 import org.opensolaris.os.adr.*;
 import org.opensolaris.os.rad.Versions;
 import org.opensolaris.os.rad.Version;
@@ -121,8 +117,9 @@
 	return APIVersion.getNone(s);
     }
 
-    private static void assertCompatible(Class interfaceClass, Stability stab,
-	Versions vers, Descriptor desc) throws IncompatibleVersionException {
+    private static void assertCompatible(Class<?> interfaceClass,
+	Stability stab, Versions vers, Descriptor desc)
+	throws IncompatibleVersionException {
 
 	APIVersion vc = getClientVersion(stab, vers);
 	APIVersion vs = APIVersion.getNone(stab);
--- a/usr/src/java/rad/org/opensolaris/os/rad/jmx/RadNotification.java	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/java/rad/org/opensolaris/os/rad/jmx/RadNotification.java	Thu Aug 11 15:41:42 2011 -0700
@@ -20,8 +20,7 @@
  */
 
 /*
- * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
  */
 
 package org.opensolaris.os.rad.jmx;
@@ -66,7 +65,7 @@
 	    new CompositeDataInvocationHandler((CompositeData)ud);
 	try {
 	    return (T)Proxy.newProxyInstance(c.getClassLoader(),
-		new Class[] { c }, handler);
+		new Class<?>[] { c }, handler);
 	} catch (Exception e) {
 	    return null;
 	}
--- a/usr/src/lib/libUnixDomainSocket_jni/Makefile.com	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/lib/libUnixDomainSocket_jni/Makefile.com	Thu Aug 11 15:41:42 2011 -0700
@@ -62,7 +62,7 @@
 		jar tf "$$f"; \
 	done | $(GREP) '/$(@:%.h=%).class' | \
 	$(SED) 's/\.class$$//; s#/#.#g' | \
-	$(XARGS) echo javah -classpath $(CLASS_PATH) -o $@ | \
+	$(XARGS) echo $(JAVAH) -classpath $(CLASS_PATH) -o $@ | \
 	while read line; \
 	do \
 		echo "$$line"; \
--- a/usr/src/test/radtest/java.py	Tue Aug 09 12:37:14 2011 -0400
+++ b/usr/src/test/radtest/java.py	Thu Aug 11 15:41:42 2011 -0700
@@ -59,8 +59,9 @@
 	def run_common(self, dir, jargs, pargs):
 		root = os.getenv("ROOT")
 		classpath = self.make_classpath(root, dir)
+		javacmd = os.getenv("JAVA_HOME", "/usr") + "/bin/java"
 
-		args = ["java", "-classpath", classpath, "testutil.TestExec"]
+		args = [javacmd, "-classpath", classpath, "testutil.TestExec"]
 		args.extend(jargs)
 		args.extend(self.findtests(dir))