0N/A#
3261N/A# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
0N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A#
0N/A# This code is free software; you can redistribute it and/or modify it
0N/A# under the terms of the GNU General Public License version 2 only, as
0N/A# published by the Free Software Foundation.
0N/A#
0N/A# This code is distributed in the hope that it will be useful, but WITHOUT
0N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A# version 2 for more details (a copy is included in the LICENSE file that
0N/A# accompanied this code).
0N/A#
0N/A# You should have received a copy of the GNU General Public License version
0N/A# 2 along with this work; if not, write to the Free Software Foundation,
0N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A#
2362N/A# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A# or visit www.oracle.com if you need additional information or have any
2362N/A# questions.
0N/A#
0N/A
0N/A# @test
0N/A# @bug 4087295 4785472
0N/A# @summary Enable resolveClass() to accommodate package renaming.
0N/A# This fix enables one to implement a resolveClass method that maps a
0N/A# Serialiazable class within a serialization stream to the same class
0N/A# in a different package within the JVM runtime. See run shell script
0N/A# for instructions on how to run this test.
0N/A
0N/A
0N/Aif [ "${TESTJAVA}" = "" ]
0N/Athen
0N/A echo "TESTJAVA not set. Test cannot execute. Failed."
0N/A exit 1
0N/Afi
0N/A
0N/A
0N/AOS=`uname -s`
0N/A# Need to determine the classpath separator and filepath separator based on the
0N/A# operating system.
0N/Acase "$OS" in
4638N/ASunOS | Linux | Darwin )
0N/A PS=":" ;;
2071N/AWindows* | CYGWIN* )
0N/A PS=";" ;;
0N/A* )
0N/A echo "Unrecognized system!"
0N/A exit 1 ;;
0N/Aesac
0N/A
0N/AJAVA=${TESTJAVA}/bin/java
0N/AJAVAC=${TESTJAVA}/bin/javac
0N/AMKDIR=mkdir
0N/ARDEL="rm -r"
0N/A
4638N/Aif [ -d ${TESTCLASSES}/oclasses ]
0N/Athen
4638N/A ${RDEL} ${TESTCLASSES}/oclasses
0N/Afi
4638N/Aif [ -d ${TESTCLASSES}/nclasses ]
0N/Athen
4638N/A ${RDEL} ${TESTCLASSES}/nclasses
0N/Afi
4638N/Aif [ -d ${TESTCLASSES}/share ]
0N/Athen
4638N/A ${RDEL} ${TESTCLASSES}/share
0N/Afi
4638N/Aif [ -f ${TESTCLASSES}/stream.ser ]
0N/Athen
0N/A ${RDEL} ${TESTCLASSES}/stream.ser
0N/Afi
0N/A
0N/Amkdir ${TESTCLASSES}/oclasses
0N/Amkdir ${TESTCLASSES}/share
0N/Amkdir ${TESTCLASSES}/nclasses
0N/A
0N/A# Build sources
4638N/Aset -e
0N/A${JAVAC} -d ${TESTCLASSES}/share ${TESTSRC}/extension/ExtendedObjectInputStream.java
0N/ACLASSPATH=${TESTCLASSES}/share; export CLASSPATH;
0N/A${JAVAC} -d ${TESTCLASSES}/oclasses ${TESTSRC}/test/SerialDriver.java
0N/ACLASSPATH=${TESTCLASSES}/share; export CLASSPATH;
0N/A${JAVAC} -d ${TESTCLASSES}/nclasses ${TESTSRC}/install/SerialDriver.java
0N/A
0N/A# Run Case 1. Map test.SerialDriver within stream to install.SerialDriver.
2071N/ACLASSPATH="${TESTCLASSES}/oclasses${PS}${TESTCLASSES}/share"; export CLASSPATH;
0N/A${JAVA} test.SerialDriver -s
2071N/ACLASSPATH="${TESTCLASSES}/nclasses${PS}${TESTCLASSES}/share"; export CLASSPATH;
0N/A${JAVA} install.SerialDriver -d
0N/Arm stream.ser
0N/A
0N/A# Run Case 2. Map install.SerialDriver within stream to test.SerialDriver.
2071N/ACLASSPATH="${TESTCLASSES}/nclasses${PS}${TESTCLASSES}/share"; export CLASSPATH;
0N/A${JAVA} install.SerialDriver -s
2071N/ACLASSPATH="${TESTCLASSES}/oclasses${PS}${TESTCLASSES}/share"; export CLASSPATH;
0N/A${JAVA} test.SerialDriver -d