22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 # @test 27 # @bug 4991526 6514993 7197662 28 # @summary Unit test for Preferences jar providers 29 # 30 # @build PrefsSpi 31 # @run shell PrefsSpi.sh 32 # @author Martin Buchholz 33 34 # Command-line usage: sh PrefsSpi.sh /path/to/build 35 36 if [ -z "$TESTJAVA" ]; then 37 if [ $# -lt 1 ]; then exit 1; fi 38 TESTJAVA="$1"; shift 39 TESTSRC="`pwd`" 40 TESTCLASSES="`pwd`" 41 fi 42 43 java="$TESTJAVA/bin/java" 44 javac="$TESTJAVA/bin/javac" 45 jar="$TESTJAVA/bin/jar" 46 47 Die() { printf "%s\n" "$*"; exit 1; } 48 49 Sys() { 50 printf "%s\n" "$*"; "$@"; rc="$?"; 51 test "$rc" -eq 0 || Die "Command \"$*\" failed with exitValue $rc"; 52 } 53 54 cat > StubPreferences.java <<'EOF' 55 import java.util.prefs.*; 56 57 public class StubPreferences extends AbstractPreferences { 58 public StubPreferences() { super(null, ""); } 59 public String getSpi(String x) { return null; } 60 public void putSpi(String x, String y) { } 61 public void removeSpi(String x) { } 62 public AbstractPreferences childSpi(String x) { return null; } 63 public void removeNodeSpi() { } 64 public String[] keysSpi() { return null; } 65 public String[] childrenNamesSpi() { return null; } 66 public void syncSpi() { } 67 public void flushSpi() { } 68 } 69 EOF 70 71 cat > StubPreferencesFactory.java <<'EOF' 72 import java.util.prefs.*; 73 74 public class StubPreferencesFactory implements PreferencesFactory { 75 public Preferences userRoot() { return new StubPreferences(); } 76 public Preferences systemRoot() { return new StubPreferences(); } 77 } 78 EOF 79 80 Sys rm -rf jarDir extDir 81 Sys mkdir -p jarDir/META-INF/services extDir 82 echo "StubPreferencesFactory" \ 83 > "jarDir/META-INF/services/java.util.prefs.PreferencesFactory" 84 Sys "$javac" -d jarDir StubPreferencesFactory.java StubPreferences.java 85 86 (cd jarDir && "$jar" "cf" "../extDir/PrefsSpi.jar" ".") 87 88 case "`uname`" in Windows*|CYGWIN* ) CPS=';';; *) CPS=':';; esac 89 90 Sys "$java" ${TESTVMOPTS} "-cp" "$TESTCLASSES${CPS}extDir/PrefsSpi.jar" \ 91 -Djava.util.prefs.PreferencesFactory=StubPreferencesFactory \ 92 -Djava.util.prefs.userRoot=. \ 93 PrefsSpi "StubPreferences" 94 Sys "$java" ${TESTVMOPTS} "-cp" "$TESTCLASSES" \ 95 -Djava.util.prefs.userRoot=. \ 96 PrefsSpi "java.util.prefs.*" 97 Sys "$java" ${TESTVMOPTS} "-cp" "$TESTCLASSES${CPS}extDir/PrefsSpi.jar" \ 98 -Djava.util.prefs.userRoot=. \ 99 PrefsSpi "StubPreferences" 100 Sys "$java" ${TESTVMOPTS} "-cp" "$TESTCLASSES" "-Djava.ext.dirs=extDir" \ 101 -Djava.util.prefs.userRoot=. \ 102 PrefsSpi "StubPreferences" 103 104 rm -rf jarDir extDir | 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 # @test 27 # @bug 4991526 6514993 7197662 28 # @summary Unit test for Preferences jar providers 29 # 30 # @build PrefsSpi 31 # @run shell PrefsSpi.sh 32 # @author Martin Buchholz 33 34 # Command-line usage: sh PrefsSpi.sh /path/to/build 35 36 if [ -z "$TESTJAVA" ]; then 37 if [ $# -lt 1 ]; then exit 1; fi 38 TESTJAVA="$1"; shift 39 TESTSRC="`pwd`" 40 TESTCLASSES="`pwd`" 41 fi 42 if [ -z "$COMPILEJAVA" ]; then 43 COMPILEJAVA="${TESTJAVA}" 44 fi 45 46 java="$TESTJAVA/bin/java" 47 javac="$COMPILEJAVA/bin/javac" 48 jar="$COMPILEJAVA/bin/jar" 49 50 Die() { printf "%s\n" "$*"; exit 1; } 51 52 Sys() { 53 printf "%s\n" "$*"; "$@"; rc="$?"; 54 test "$rc" -eq 0 || Die "Command \"$*\" failed with exitValue $rc"; 55 } 56 57 cat > StubPreferences.java <<'EOF' 58 import java.util.prefs.*; 59 60 public class StubPreferences extends AbstractPreferences { 61 public StubPreferences() { super(null, ""); } 62 public String getSpi(String x) { return null; } 63 public void putSpi(String x, String y) { } 64 public void removeSpi(String x) { } 65 public AbstractPreferences childSpi(String x) { return null; } 66 public void removeNodeSpi() { } 67 public String[] keysSpi() { return null; } 68 public String[] childrenNamesSpi() { return null; } 69 public void syncSpi() { } 70 public void flushSpi() { } 71 } 72 EOF 73 74 cat > StubPreferencesFactory.java <<'EOF' 75 import java.util.prefs.*; 76 77 public class StubPreferencesFactory implements PreferencesFactory { 78 public Preferences userRoot() { return new StubPreferences(); } 79 public Preferences systemRoot() { return new StubPreferences(); } 80 } 81 EOF 82 83 Sys rm -rf jarDir extDir 84 Sys mkdir -p jarDir/META-INF/services extDir 85 echo "StubPreferencesFactory" \ 86 > "jarDir/META-INF/services/java.util.prefs.PreferencesFactory" 87 Sys "$javac" ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d jarDir StubPreferencesFactory.java StubPreferences.java 88 89 (cd jarDir && "$jar" ${TESTTOOLVMOPTS} "cf" "../extDir/PrefsSpi.jar" ".") 90 91 case "`uname`" in Windows*|CYGWIN* ) CPS=';';; *) CPS=':';; esac 92 93 Sys "$java" ${TESTVMOPTS} "-cp" "$TESTCLASSES${CPS}extDir/PrefsSpi.jar" \ 94 -Djava.util.prefs.PreferencesFactory=StubPreferencesFactory \ 95 -Djava.util.prefs.userRoot=. \ 96 PrefsSpi "StubPreferences" 97 Sys "$java" ${TESTVMOPTS} "-cp" "$TESTCLASSES" \ 98 -Djava.util.prefs.userRoot=. \ 99 PrefsSpi "java.util.prefs.*" 100 Sys "$java" ${TESTVMOPTS} "-cp" "$TESTCLASSES${CPS}extDir/PrefsSpi.jar" \ 101 -Djava.util.prefs.userRoot=. \ 102 PrefsSpi "StubPreferences" 103 Sys "$java" ${TESTVMOPTS} "-cp" "$TESTCLASSES" "-Djava.ext.dirs=extDir" \ 104 -Djava.util.prefs.userRoot=. \ 105 PrefsSpi "StubPreferences" 106 107 rm -rf jarDir extDir |