Need reviewers and comments: 6989472: Provide simple jdk identification information in the install image

Kelly O'Hair kelly.ohair at oracle.com
Mon Nov 29 22:44:31 UTC 2010


Need reviewers and comments:
   6989472: Provide simple jdk identification information in the  
install image
   http://cr.openjdk.java.net/~ohair/openjdk7/jdk_release/webrev/

With JDK6 Updates we purposely resisted many rebranding changes that  
could impacted
customers, however at one point we had accidently changed the Windows  
DLL/EXE
COMPANY value thinking that no one would be looking at it.
We were wrong and this change cause Eclipse failures, so we are  
looking for a solution, see:
    https://bugs.eclipse.org/bugs/show_bug.cgi?id=321390
So we went back and change JDK6 Updates back the way it was, and  
learned a valuable lesson.

But we have and will change JDK7 in this regard, so we wanted a better  
way for an app to
know what it had it's hands on without using platform specific  
information in the binary files.

The above change creates a small text file called "jdk.release" at the  
top of the install image
with some basic values that could help direct any app using the jdk in  
constructing a command
line or even being assured that this jdk install image will even work  
on your existing system.
In the Eclipse case it was looking for "Sun", but I suspect it really  
wanted to know if the VM was
"Hotspot" because I think it was trying to set a Hotspot specific  
PermGen option.
In any case I think this jdk.release file should provide the necessary  
answers in the future.

The make variable COMPANY_NAME determines the vendor name during a  
build,
so a Linux 64bit build from a make command line like:
    make COMPANY_NAME="Test Company Name"
should result in a jdk.release file that looks something like:

os.name = Linux
os.version = 2.6
os.arch = amd64
java.vendor = Test Company Name
java.version = 1.7.0-internal
java.vm.vendor = Test Company Name
java.vm.name = Hotspot(TM)
java.vm.version = 20.0-b02

A formal Oracle jdk7 EA build on Linux 64bit should look something like:

os.name = Linux
os.version = 2.6
os.arch = amd64
java.vendor = Oracle Corporation
java.version = 1.7.0-ea
java.vm.vendor = Oracle Corporation
java.vm.name = Hotspot(TM)
java.vm.version = 20.0-b02

Comments are welcome. Although, polite constructive comments are  
probably more what I'd like to see. ;^)

-kto




More information about the build-dev mailing list