< prev index next >

src/jdk.jlink/share/classes/jdk/tools/jlink/internal/Jlink.java

Print this page

        

@@ -25,11 +25,13 @@
 package jdk.tools.jlink.internal;
 
 import java.lang.module.Configuration;
 import java.lang.module.ModuleFinder;
 import java.nio.ByteOrder;
+import java.nio.file.Files;
 import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;

@@ -144,48 +146,31 @@
     /**
      * Jlink configuration. Instances of this class are used to configure jlink.
      */
     public static final class JlinkConfiguration {
 
-        private final List<Path> modulepaths;
         private final Path output;
         private final Set<String> modules;
-        private final Set<String> limitmods;
         private final ByteOrder endian;
         private final ModuleFinder finder;
 
         /**
          * jlink configuration,
          *
          * @param output Output directory, must not exist.
-         * @param modulepaths Modules paths
          * @param modules The possibly-empty set of root modules to resolve
-         * @param limitmods Limit the universe of observable modules
          * @param endian Jimage byte order. Native order by default
+         * @param finder the ModuleFinder for this configuration
          */
         public JlinkConfiguration(Path output,
-                                  List<Path> modulepaths,
                                   Set<String> modules,
-                                  Set<String> limitmods,
-                                  ByteOrder endian) {
-            if (Objects.requireNonNull(modulepaths).isEmpty()) {
-                throw new IllegalArgumentException("Empty module path");
-            }
-
+                                  ByteOrder endian,
+                                  ModuleFinder finder) {
             this.output = output;
-            this.modulepaths = modulepaths;
             this.modules = Objects.requireNonNull(modules);
-            this.limitmods = Objects.requireNonNull(limitmods);
             this.endian = Objects.requireNonNull(endian);
-            this.finder = moduleFinder();
-        }
-
-        /**
-         * @return the modulepaths
-         */
-        public List<Path> getModulepaths() {
-            return modulepaths;
+            this.finder = finder;
         }
 
         /**
          * @return the byte ordering
          */

@@ -206,17 +191,10 @@
         public Set<String> getModules() {
             return modules;
         }
 
         /**
-         * @return the limitmods
-         */
-        public Set<String> getLimitmods() {
-            return limitmods;
-        }
-
-        /**
          * Returns {@link ModuleFinder} that finds all observable modules
          * for this jlink configuration.
          */
         public ModuleFinder finder() {
             return finder;

@@ -242,41 +220,20 @@
             return Configuration.empty().resolve(finder,
                                                  ModuleFinder.of(),
                                                  modules);
         }
 
-        private ModuleFinder moduleFinder() {
-            Path[] entries = modulepaths.toArray(new Path[0]);
-            ModuleFinder finder = ModulePath.of(Runtime.version(), true, entries);
-            if (!limitmods.isEmpty()) {
-                finder = JlinkTask.limitFinder(finder, limitmods, modules);
-            }
-            return finder;
-        }
-
         @Override
         public String toString() {
             StringBuilder builder = new StringBuilder();
 
             builder.append("output=").append(output).append("\n");
-            StringBuilder pathsBuilder = new StringBuilder();
-            for (Path p : modulepaths) {
-                pathsBuilder.append(p).append(",");
-            }
-            builder.append("modulepaths=").append(pathsBuilder).append("\n");
-
             StringBuilder modsBuilder = new StringBuilder();
             for (String p : modules) {
                 modsBuilder.append(p).append(",");
             }
             builder.append("modules=").append(modsBuilder).append("\n");
-
-            StringBuilder limitsBuilder = new StringBuilder();
-            for (String p : limitmods) {
-                limitsBuilder.append(p).append(",");
-            }
-            builder.append("limitmodules=").append(limitsBuilder).append("\n");
             builder.append("endian=").append(endian).append("\n");
             return builder.toString();
         }
     }
 
< prev index next >