--- a/jdk/test/tools/jlink/plugins/FileCopierPluginTest.java Tue Dec 06 14:54:11 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * 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 Test files copy plugin
- * @author Jean-Francois Denise
- * @modules jdk.jlink/jdk.tools.jlink.internal
- * jdk.jlink/jdk.tools.jlink.builder
- * jdk.jlink/jdk.tools.jlink.internal.plugins
- * @run main FileCopierPluginTest
- */
-
-import java.io.File;
-import java.net.URI;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import jdk.tools.jlink.internal.ResourcePoolManager;
-import jdk.tools.jlink.builder.DefaultImageBuilder;
-
-import jdk.tools.jlink.internal.plugins.FileCopierPlugin;
-import jdk.tools.jlink.plugin.PluginException;
-import jdk.tools.jlink.plugin.ResourcePoolEntry;
-import jdk.tools.jlink.plugin.ResourcePool;
-
-public class FileCopierPluginTest {
-
- public static void main(String[] args) throws Exception {
- new FileCopierPluginTest().test();
- }
-
- /**
- * 3 cases - Absolute, no target ==> copy in image root dir - Absolute and
- * target ==> copy in image root dir/target - Relative ==> copy from JDK
- * home dir.
- *
- * @throws Exception
- */
- public void test() throws Exception {
- FileCopierPlugin plug = new FileCopierPlugin();
- String content = "You \n should \n be \bthere.\n";
- String name = "sample.txt";
- File src = new File("src");
- src.mkdir();
- // Need a fake bin
- File bin = new File("bin");
- bin.mkdir();
-
- File txt = new File(src, name);
- txt.createNewFile();
-
- String target = "target" + File.separator + name;
- Files.write(txt.toPath(), content.getBytes());
- File lic = new File(System.getProperty("java.home"), "LICENSE.txt");
- StringBuilder builder = new StringBuilder();
- int expected = lic.exists() ? 4 : 3;
- if (lic.exists()) {
- builder.append("LICENSE.txt,");
- }
- builder.append(txt.getAbsolutePath()+",");
- builder.append(txt.getAbsolutePath() + "=" + target+",");
- builder.append(src.getAbsolutePath() + "=src2");
-
- Map<String, String> conf = new HashMap<>();
- conf.put(FileCopierPlugin.NAME, builder.toString());
- plug.configure(conf);
- ResourcePoolManager poolMgr = new ResourcePoolManager();
- // java.base/module-info.class is used to add "release" file
- // We read it from jrt-fs and add a ResourcePoolEntry
- poolMgr.add(
- ResourcePoolEntry.create("/java.base/module-info.class",
- ResourcePoolEntry.Type.CLASS_OR_RESOURCE, getJavaBaseModuleInfo()));
- expected++;
- ResourcePool pool = plug.transform(
- new ResourcePoolManager().resourcePool(),
- poolMgr.resourcePoolBuilder());
- if (pool.entryCount() != expected) {
- throw new AssertionError("Wrong number of added files");
- }
- pool.entries().forEach(f -> {
- if (!f.type().equals(ResourcePoolEntry.Type.OTHER) &&
- !f.type().equals(ResourcePoolEntry.Type.CLASS_OR_RESOURCE)) {
- throw new AssertionError("Invalid type " + f.type()
- + " for file " + f.path());
- }
- if (f.content() == null) {
- throw new AssertionError("Null stream for file " + f.path());
- }
- });
- Path root = new File(".").toPath();
- DefaultImageBuilder imgbuilder = new DefaultImageBuilder(root);
- imgbuilder.storeFiles(pool);
-
- if (lic.exists()) {
- File license = new File(root.toFile(), "LICENSE.txt");
- if (!license.exists() || license.length() == 0) {
- throw new AssertionError("Invalid license file "
- + license.getAbsoluteFile());
- }
- }
-
- File sample1 = new File(root.toFile(), txt.getName());
- if (!sample1.exists() || sample1.length() == 0) {
- throw new AssertionError("Invalide sample1 file "
- + sample1.getAbsoluteFile());
- }
- if (!new String(Files.readAllBytes(sample1.toPath())).equals(content)) {
- throw new AssertionError("Invalid Content in sample1");
- }
-
- File sample2 = new File(root.toFile(), target);
- if (!sample2.exists() || sample2.length() == 0) {
- throw new AssertionError("Invalide sample2 file "
- + sample2.getAbsoluteFile());
- }
- if (!new String(Files.readAllBytes(sample2.toPath())).equals(content)) {
- throw new AssertionError("Invalid Content in sample2");
- }
-
- File src2 = new File(root.toFile(), "src2");
- if (!src2.exists() || src2.list().length != 1) {
- throw new AssertionError("Invalide src2 dir "
- + src2.getAbsoluteFile());
- }
- File f = src2.listFiles()[0];
- if (!f.getName().equals(txt.getName())) {
- throw new AssertionError("Invalide file name in src2 dir "
- + f.getAbsoluteFile());
- }
- if (!new String(Files.readAllBytes(f.toPath())).equals(content)) {
- throw new AssertionError("Invalid Content in src2 dir");
- }
- }
-
- // read java.base/module-info.class from jrt-fs
- private static Path getJavaBaseModuleInfo() {
- return Paths.get(URI.create("jrt:/modules/java.base/module-info.class"));
- }
-}