< prev index next >
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/ImagePluginStack.java
Print this page
@@ -170,28 +170,36 @@
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,10 +274,11 @@
}
if (resPool instanceof OrderedResourcePoolManager.OrderedResourcePool) {
frozenOrder = ((OrderedResourcePoolManager.OrderedResourcePool)resPool).getOrderedList();
}
}
+
return resPool;
}
/**
* This pool wrap the original pool and automatically uncompress ResourcePoolEntry
@@ -456,11 +465,15 @@
public void storeFiles(ResourcePool original, ResourcePool transformed,
BasicImageWriter writer)
throws Exception {
Objects.requireNonNull(original);
Objects.requireNonNull(transformed);
- imageBuilder.storeFiles(new LastPoolManager(transformed).resourcePool());
+ 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 >