1 #! /bin/sh
   2 
   3 # Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
   4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5 #
   6 # This code is free software; you can redistribute it and/or modify it
   7 # under the terms of the GNU General Public License version 2 only, as
   8 # published by the Free Software Foundation.
   9 #
  10 # This code is distributed in the hope that it will be useful, but WITHOUT
  11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13 # version 2 for more details (a copy is included in the LICENSE file that
  14 # accompanied this code).
  15 #
  16 # You should have received a copy of the GNU General Public License version
  17 # 2 along with this work; if not, write to the Free Software Foundation,
  18 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19 #
  20 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21 # or visit www.oracle.com if you need additional information or have any
  22 # questions.
  23 
  24 # @test
  25 # @summary Basic test of repo on file system
  26 # @run shell hello-repo.sh
  27 
  28 set -e
  29 
  30 BIN=${TESTJAVA:-../../../../build}/bin
  31 SRC=${TESTSRC:-.}
  32 VMOPTS="${TESTVMOPTS} -esa -ea"
  33 
  34 mk() {
  35   d=`dirname $1`
  36   if [ ! -d $d ]; then mkdir -p $d; fi
  37   cat - >$1
  38 }
  39 
  40 rm -rf z.*
  41 
  42 mk z.src/app/module-info.java <<EOF
  43 module app @ 1.0 {
  44     requires foolib;
  45     class com.app.Main;
  46 }
  47 EOF
  48 
  49 mk z.src/app/com/app/Main.java <<EOF
  50 package com.app;
  51 public class Main {
  52     public static void main(String[] args) {
  53         System.out.println("Hello");
  54     }
  55 }
  56 EOF
  57 
  58 mk z.src/foolib/module-info.java <<EOF
  59 module foolib @ 1.0 {
  60 }
  61 EOF
  62 
  63 mkdir z.mods
  64 $BIN/javac -source 8 -d z.mods -modulepath z.modules \
  65     `find z.src -name '*.java'`
  66 
  67 mkdir z.pkgs
  68 $BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/app jmod app
  69 $BIN/jpkg ${TESTTOOLVMOPTS} -d z.pkgs -m z.mods/foolib jmod foolib
  70 
  71 $BIN/jrepo ${TESTTOOLVMOPTS} z.repo create
  72 $BIN/jrepo ${TESTTOOLVMOPTS} z.repo add z.pkgs/*.jmod
  73 
  74 $BIN/jmod ${TESTTOOLVMOPTS} create -L z.mlib
  75 $BIN/jmod ${TESTTOOLVMOPTS} add-repo -L z.mlib z.repo
  76 $BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install -n app
  77 $BIN/jmod ${TESTTOOLVMOPTS} -L z.mlib install app
  78 $BIN/java ${VMOPTS} -L z.mlib -m app