< prev index next >

test/jdk/java/util/jar/JarFile/mrjar/MultiReleaseJarProperties.java

Print this page


   1 /*
   2  * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /*
  25  * @test
  26  * @bug 8132734 8144062
  27  * @summary Test the System properties for JarFile that support multi-release jar files
  28  * @library /lib/testlibrary/java/util/jar
  29  * @build Compiler JarBuilder CreateMultiReleaseTestJars
  30  * @run testng MultiReleaseJarProperties
  31  * @run testng/othervm -Djdk.util.jar.version=0 MultiReleaseJarProperties
  32  * @run testng/othervm -Djdk.util.jar.version=8 MultiReleaseJarProperties
  33  * @run testng/othervm -Djdk.util.jar.version=9 MultiReleaseJarProperties
  34  * @run testng/othervm -Djdk.util.jar.version=10 MultiReleaseJarProperties
  35  * @run testng/othervm -Djdk.util.jar.version=100 MultiReleaseJarProperties
  36  * @run testng/othervm -Djdk.util.jar.version=8 -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
  37  * @run testng/othervm -Djdk.util.jar.version=9 -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
  38  * @run testng/othervm -Djdk.util.jar.version=10 -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
  39  * @run testng/othervm -Djdk.util.jar.version=8 -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
  40  * @run testng/othervm -Djdk.util.jar.version=9 -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
  41  * @run testng/othervm -Djdk.util.jar.version=10 -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
  42  * @run testng/othervm -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
  43  * @run testng/othervm -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
  44  */
  45 
  46 import java.io.File;


  69     protected int rtVersion;
  70     boolean force;
  71     protected ClassLoader cldr;
  72     protected Class<?> rootClass;
  73 
  74     @BeforeClass
  75     public void initialize() throws Exception {
  76         CreateMultiReleaseTestJars creator =  new CreateMultiReleaseTestJars();
  77         creator.compileEntries();
  78         creator.buildMultiReleaseJar();
  79         int RUNTIME_VERSION = Runtime.version().major();
  80         rtVersion = Integer.getInteger("jdk.util.jar.version", RUNTIME_VERSION);
  81         String mrprop = System.getProperty("jdk.util.jar.enableMultiRelease", "");
  82         if (mrprop.equals("false")) {
  83             rtVersion = BASE_VERSION;
  84         } else if (rtVersion < BASE_VERSION) {
  85             rtVersion = BASE_VERSION;
  86         } else if (rtVersion > RUNTIME_VERSION) {
  87             rtVersion = RUNTIME_VERSION;
  88         }

  89         force = mrprop.equals("force");
  90 
  91         initializeClassLoader();
  92     }
  93 
  94     protected void initializeClassLoader() throws Exception {
  95         URL[] urls = new URL[]{multirelease.toURI().toURL()};
  96         cldr = new URLClassLoader(urls);
  97         // load any class, Main is convenient and in the root entries
  98         rootClass = cldr.loadClass("version.Main");
  99     }
 100 
 101     @AfterClass
 102     public void close() throws IOException {
 103         ((URLClassLoader)cldr).close();
 104         Files.delete(multirelease.toPath());
 105     }
 106 
 107     /*
 108      * jdk.util.jar.enableMultiRelease=force is a no-op for URLClassLoader


   1 /*
   2  * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /*
  25  * @test
  26  * @bug 8132734 8144062 8194070
  27  * @summary Test the System properties for JarFile that support multi-release jar files
  28  * @library /lib/testlibrary/java/util/jar
  29  * @build Compiler JarBuilder CreateMultiReleaseTestJars
  30  * @run testng MultiReleaseJarProperties
  31  * @run testng/othervm -Djdk.util.jar.version=0   MultiReleaseJarProperties
  32  * @run testng/othervm -Djdk.util.jar.version=8   MultiReleaseJarProperties
  33  * @run testng/othervm -Djdk.util.jar.version=9   MultiReleaseJarProperties
  34  * @run testng/othervm -Djdk.util.jar.version=10  MultiReleaseJarProperties
  35  * @run testng/othervm -Djdk.util.jar.version=100 MultiReleaseJarProperties
  36  * @run testng/othervm -Djdk.util.jar.version=8   -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
  37  * @run testng/othervm -Djdk.util.jar.version=9   -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
  38  * @run testng/othervm -Djdk.util.jar.version=10  -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
  39  * @run testng/othervm -Djdk.util.jar.version=8   -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
  40  * @run testng/othervm -Djdk.util.jar.version=9   -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
  41  * @run testng/othervm -Djdk.util.jar.version=10  -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
  42  * @run testng/othervm -Djdk.util.jar.enableMultiRelease=false MultiReleaseJarProperties
  43  * @run testng/othervm -Djdk.util.jar.enableMultiRelease=force MultiReleaseJarProperties
  44  */
  45 
  46 import java.io.File;


  69     protected int rtVersion;
  70     boolean force;
  71     protected ClassLoader cldr;
  72     protected Class<?> rootClass;
  73 
  74     @BeforeClass
  75     public void initialize() throws Exception {
  76         CreateMultiReleaseTestJars creator =  new CreateMultiReleaseTestJars();
  77         creator.compileEntries();
  78         creator.buildMultiReleaseJar();
  79         int RUNTIME_VERSION = Runtime.version().major();
  80         rtVersion = Integer.getInteger("jdk.util.jar.version", RUNTIME_VERSION);
  81         String mrprop = System.getProperty("jdk.util.jar.enableMultiRelease", "");
  82         if (mrprop.equals("false")) {
  83             rtVersion = BASE_VERSION;
  84         } else if (rtVersion < BASE_VERSION) {
  85             rtVersion = BASE_VERSION;
  86         } else if (rtVersion > RUNTIME_VERSION) {
  87             rtVersion = RUNTIME_VERSION;
  88         }
  89         rtVersion = Math.min(rtVersion, 10); // Tests should be augmented for later releases
  90         force = mrprop.equals("force");
  91 
  92         initializeClassLoader();
  93     }
  94 
  95     protected void initializeClassLoader() throws Exception {
  96         URL[] urls = new URL[]{multirelease.toURI().toURL()};
  97         cldr = new URLClassLoader(urls);
  98         // load any class, Main is convenient and in the root entries
  99         rootClass = cldr.loadClass("version.Main");
 100     }
 101 
 102     @AfterClass
 103     public void close() throws IOException {
 104         ((URLClassLoader)cldr).close();
 105         Files.delete(multirelease.toPath());
 106     }
 107 
 108     /*
 109      * jdk.util.jar.enableMultiRelease=force is a no-op for URLClassLoader


< prev index next >