test/org/openjdk/jigsaw/hello-repo.sh
Print this page
*** 20,30 ****
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
# @test
! # @summary Basic test of repo on file system
# @run shell hello-repo.sh
set -e
BIN=${TESTJAVA:-../../../../build}/bin
--- 20,30 ----
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
# @test
! # @summary Basic test of repo on file system, and resolver filtering on OS/ARCH
# @run shell hello-repo.sh
set -e
BIN=${TESTJAVA:-../../../../build}/bin
*** 35,44 ****
--- 35,51 ----
d=`dirname $1`
if [ ! -d $d ]; then mkdir -p $d; fi
cat - >$1
}
+ compare() {
+ if [ "$1" != "$2" ]; then
+ echo "FAIL: expected [$1], got [$2]"
+ exit 1
+ fi
+ }
+
rm -rf z.*
mk z.src/app/module-info.java <<EOF
module app @ 1.0 {
requires foolib;
*** 46,78 ****
}
EOF
mk z.src/app/com/app/Main.java <<EOF
package com.app;
public class Main {
public static void main(String[] args) {
! System.out.println("Hello");
}
}
EOF
! mk z.src/foolib/module-info.java <<EOF
module foolib @ 1.0 {
}
EOF
mkdir z.mods
$BIN/javac -source 8 -d z.mods -modulepath z.modules \
! `find z.src -name '*.java'`
mkdir z.pkgs
$BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/app jmod app
! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/foolib jmod foolib
$BIN/jrepo ${TESTTOOLVMOPTS} z.repo create
$BIN/jrepo ${TESTTOOLVMOPTS} z.repo add z.pkgs/*.jmod
$BIN/jmod ${TESTTOOLVMOPTS} create -L z.mlib
$BIN/jmod ${TESTTOOLVMOPTS} add-repo -L z.mlib z.repo
$BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install -n app
$BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install app
! $BIN/java ${VMOPTS} -L z.mlib -m app
--- 53,135 ----
}
EOF
mk z.src/app/com/app/Main.java <<EOF
package com.app;
+ import java.lang.reflect.Module;
public class Main {
public static void main(String[] args) {
! System.out.println("Hello, " + com.foolib.Lib.text());
}
}
EOF
! mk z.src/foolib1/module-info.java <<EOF
module foolib @ 1.0 {
+ exports com.foolib;
}
EOF
+ mk z.src/foolib1/com/foolib/Lib.java <<EOF
+ package com.foolib;
+ public class Lib {
+ public static String text() {
+ return "foolib @ 1";
+ }
+ }
+ EOF
+
+ mk z.src/foolib2/module-info.java <<EOF
+ module foolib @ 2.0 {
+ exports com.foolib;
+ }
+ EOF
+
+ mk z.src/foolib2/com/foolib/Lib.java <<EOF
+ package com.foolib;
+ public class Lib {
+ public static String text() {
+ return "foolib @ 2";
+ }
+ }
+ EOF
+
+ ## Two versions of foolib in the repo, ensure resolver picks the correct version
+
mkdir z.mods
$BIN/javac -source 8 -d z.mods -modulepath z.modules \
! `find z.src/app z.src/foolib1 -name '*.java'`
! mkdir z.mods/foolib2
! $BIN/javac -source 8 -d z.mods/foolib2 `find z.src/foolib2 -name '*.java'`
mkdir z.pkgs
$BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/app jmod app
! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/foolib1 jmod foolib
! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/foolib2 jmod foolib
$BIN/jrepo ${TESTTOOLVMOPTS} z.repo create
$BIN/jrepo ${TESTTOOLVMOPTS} z.repo add z.pkgs/*.jmod
$BIN/jmod ${TESTTOOLVMOPTS} create -L z.mlib
$BIN/jmod ${TESTTOOLVMOPTS} add-repo -L z.mlib z.repo
$BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install -n app
$BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install app
! OUT=`$BIN/java ${VMOPTS} -L z.mlib -m app | tr -d ' \n\r'`
! compare Hello,foolib@2 $OUT
!
! ## create OS/ARCH specific library and jmods
! mkdir z.arch_pkgs
! rm -rf z.mlib z.repo
! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.arch_pkgs -os Bos -arch Barch -m z.mods/app jmod app
! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.arch_pkgs -os Bos -arch Barch -m z.mods/foolib1 jmod foolib
! $BIN/jpkg ${TESTTOOLVMOPTS} -d z.arch_pkgs -os Cos -arch Carch -m z.mods/foolib2 jmod foolib
!
! $BIN/jrepo ${TESTTOOLVMOPTS} z.repo create
! $BIN/jrepo ${TESTTOOLVMOPTS} z.repo add z.arch_pkgs/*.jmod
!
! $BIN/jmod ${TESTTOOLVMOPTS} create -L z.mlib -os Bos -arch Barch
! $BIN/jmod ${TESTTOOLVMOPTS} add-repo -L z.mlib z.repo
! $BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install -n app
! $BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install app
! OUT=`$BIN/java ${VMOPTS} -L z.mlib -m app | tr -d ' \n\r'`
! compare Hello,foolib@1 $OUT
!