JDK-6581453 : Java DB missing in file based JDK 6 U2 distributions
  • Type: Bug
  • Component: install
  • Sub-Component: install
  • Affected Version: 6u2
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • OS: generic,linux,solaris
  • CPU: generic,x86,sparc
  • Submitted: 2007-07-17
  • Updated: 2011-01-26
  • Resolved: 2007-09-10
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7
6u3 b01Fixed 7Fixed
Related Reports
Relates :  
Description
Java DB is missing in the file based JDK 6 U2 distributions

   jdk-6u2-solaris-sparc.sh
   jdk-6u2-solaris-i586.sh
   jdk-6u2-linux-i586.bin

Suggest bundling and reusing existing Java DB file based installers
(see http://developer.sun.com/javadb/downloads).
Also: support David Katleman's suggesting of having Java DB installed next to jdk, i.e:

   <inst.dir>/
     jdk1.6.x_ybz/
     javadb/

(which will match the intent and current implementation of the Java DB stand-alone installers)

Comments
SUGGESTED FIX Webrev pointer http://javaweb.sfbay/jdk/eng/integrations/webrev/6u3
28-08-2007

SUGGESTED FIX Solution for the self extracting archive bundles was to return the db directory to the jdk, as was done in GA for 6. --- Bundles.gmk Mon Aug 27 16:15:16 2007 *** 5,14 **** --- 5,21 ---- # SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. # # Makefile shared for the unix'es + # Defining Solaris 64bit + ifeq ($(PLATFORM), solaris) + ifeq ($(ARCH_DATA_MODEL), 64) + SOLARIS64 = true + endif + endif + ###################################################### # JRE Bundles ###################################################### bundle-jre: @# *** 55,64 **** --- 62,83 ---- @# Generate the self-extracting tar files... @# $(RM) -r $(OUTPUTDIR)/$(JDK_TEMPORARY_DIR) $(OUTPUTDIR)/$(JDK_BUNDLE_NAME).zip $(MKDIR) -p $(OUTPUTDIR)/$(JDK_TEMPORARY_DIR) $(CD) $(JDK_IMAGE_DIR) ; $(FIND) . | $(CPIO) -pdum $(ABS_OUTPUTDIR)/$(JDK_TEMPORARY_DIR) + @# + @# Insert JavaDB into db directory for non SOLARIS64 archives. + @# + ifndef SOLARIS64 + $(MKDIR) -p $(OUTPUTDIR)/$(JDK_TEMPORARY_DIR)/db + $(CP) $(COPKG_JAVADB_DIR)/common/*.zip $(OUTPUTDIR)/$(JDK_TEMPORARY_DIR)/db + $(CD) $(OUTPUTDIR)/$(JDK_TEMPORARY_DIR)/db ; \ + for db in javadb*.zip ; do \ + $(UNZIP) -o $$db ; \ + $(RM) $$db ; \ + done + endif for i in $(JDK_PACKED_JARS); do \ if [ -f $(OUTPUTDIR)/$(JDK_TEMPORARY_DIR)/$$i ]; then \ $(RM) $(OUTPUTDIR)/$(JDK_TEMPORARY_DIR)/$$i ; \ $(CP) $(PACKED_JDK_JARDIR)/`$(DIRNAME) $$i`/`$(BASENAME) $$i .jar`$(PACK_SUFFIX) \ $(OUTPUTDIR)/$(JDK_TEMPORARY_DIR)/`$(DIRNAME) $$i` ; \
28-08-2007

SUGGESTED FIX Simpler: put everything back where it was pre U2, i.e continue using the $JAVA_HOME/db install point for Java DB in the file based/"user" bundles.
21-08-2007

SUGGESTED FIX I suggest the following method: JDK team pick up existing Java DB self-extracting file based installers (SFXIs), e.g javadb-10_2_2_0-linux.bin javadb-10_2_2_0-solaris-sparc.sh javadb-10_2_2_0-solaris-x86.sh and include them in the JDK zip bundles that are the basis of their SFXI. When that SFXI is run, there will at one point be something like this laid out on disk: ./jdkx.y.z_uu/ ./javadb-10_2_2_0-linux.bin This minimal code will then unzip Java DB into ./javadb: chmod u+x ./javadb-10_2_2_0-linux.bin rm ./javadb-10_2_2_0-linux.bin A more elaborate scheme can check for any existing Java DB install in that location: In the shell script stub prepended to the JDK SFXI, run code e.g like this (after the jdk bits have been installed so we know there is a java executable there): JAVADB_VERSION=10.2.2.0 JAVADB_INSTALLER=javadb-10_2_2_0-linux.bin if [ -f ${JAVADB_INSTALLER} -a -f ./javadb/lib/derby.jar ] ; then EXISTING_JAVADB_VERSION=`./jdkx.y.z_uu/bin/java -cp ./javadb/lib/derby.jar org.apache.derby.tools.sysinfo | sed -n 's|.*lib/derby\.jar] *||p' | awk '{ print $1 }'` if [ ${EXISTING_JAVADB_VERSION} < ${JAVADB_VERSION} ] ; then ACTION="upgrade to" elif [ ${EXISTING_JAVADB_VERSION} > ${JAVADB_VERSION} ] ; then ACTION="downgrade to" else ACTION="reinstall" fi echo Java DB ${EXISTING_JAVADB_VERSION} is already installed in directory javadb. printf "Do you want to %s version %s? [yes/no] " ${ACTION} ${JAVADB_VERSION} read ANSWER case ${ANSWER} in [yY] | [yY][eE][sS] ) rm -rf ./javadb chmod u+x ${JAVADB_INSTALLER} ./${JAVADB_INSTALLER} ;; * ) Existing Java DB ${EXISTING_JAVADB_VERSION} installation preserved. ;; esac elif [ -f ${JAVADB_INSTALLER} ] ; then chmod u+x ${JAVADB_INSTALLER} ./${JAVADB_INSTALLER} else echo ERROR: Java DB installer ${JAVADB_INSTALLER} is missing fi
19-07-2007

EVALUATION Partial Evaluation: The decision was made to co-package Java DB with Java SE. This was implented for the "system" bundles for the Unix variants - packages containing Linux RPMs and Solaris packages. There is no clear precedent/method to co-package in a simple tar/zip bundle. Design alternatives are being evaluated. Depending upon the resultant design, the CCC may need to approve this (probably) and perhaps even PSARC (not likely).
18-07-2007