< prev index next >

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

Print this page

        

*** 170,197 **** private final ImageBuilder imageBuilder; private final Plugin lastSorter; private final List<Plugin> plugins = new ArrayList<>(); private final List<ResourcePrevisitor> resourcePrevisitors = new ArrayList<>(); ! public ImagePluginStack() { this(null, Collections.emptyList(), null); } public ImagePluginStack(ImageBuilder imageBuilder, List<Plugin> plugins, Plugin lastSorter) { this.imageBuilder = Objects.requireNonNull(imageBuilder); this.lastSorter = lastSorter; this.plugins.addAll(Objects.requireNonNull(plugins)); plugins.stream().forEach((p) -> { Objects.requireNonNull(p); if (p instanceof ResourcePrevisitor) { resourcePrevisitors.add((ResourcePrevisitor) p); } }); } public void operate(ImageProvider provider) throws Exception { ExecutableImage img = provider.retrieve(this); List<String> arguments = new ArrayList<>(); --- 170,205 ---- private final ImageBuilder imageBuilder; private final Plugin lastSorter; private final List<Plugin> plugins = new ArrayList<>(); private final List<ResourcePrevisitor> resourcePrevisitors = new ArrayList<>(); ! private final Set<String> rootModules; public ImagePluginStack() { this(null, Collections.emptyList(), null); } public ImagePluginStack(ImageBuilder imageBuilder, List<Plugin> plugins, Plugin lastSorter) { + this(imageBuilder, plugins, lastSorter, null); + } + + public ImagePluginStack(ImageBuilder imageBuilder, + List<Plugin> plugins, + Plugin lastSorter, + Set<String> rootModules) { this.imageBuilder = Objects.requireNonNull(imageBuilder); this.lastSorter = lastSorter; this.plugins.addAll(Objects.requireNonNull(plugins)); plugins.stream().forEach((p) -> { Objects.requireNonNull(p); if (p instanceof ResourcePrevisitor) { resourcePrevisitors.add((ResourcePrevisitor) p); } }); + this.rootModules = rootModules; } public void operate(ImageProvider provider) throws Exception { ExecutableImage img = provider.retrieve(this); List<String> arguments = new ArrayList<>();
*** 266,275 **** --- 274,284 ---- } if (resPool instanceof OrderedResourcePoolManager.OrderedResourcePool) { frozenOrder = ((OrderedResourcePoolManager.OrderedResourcePool)resPool).getOrderedList(); } } + return resPool; } /** * This pool wrap the original pool and automatically uncompress ResourcePoolEntry
*** 456,466 **** public void storeFiles(ResourcePool original, ResourcePool transformed, BasicImageWriter writer) throws Exception { Objects.requireNonNull(original); Objects.requireNonNull(transformed); ! imageBuilder.storeFiles(new LastPoolManager(transformed).resourcePool()); } public ExecutableImage getExecutableImage() throws IOException { return imageBuilder.getExecutableImage(); } --- 465,479 ---- public void storeFiles(ResourcePool original, ResourcePool transformed, BasicImageWriter writer) throws Exception { Objects.requireNonNull(original); Objects.requireNonNull(transformed); ! ResourcePool lastPool = new LastPoolManager(transformed).resourcePool(); ! if (rootModules != null) { ! ResourcePoolConfiguration.validate(lastPool, rootModules); ! } ! imageBuilder.storeFiles(lastPool); } public ExecutableImage getExecutableImage() throws IOException { return imageBuilder.getExecutableImage(); }
< prev index next >