< prev index next >
src/jdk.jlink/share/classes/jdk/tools/jlink/internal/Jlink.java
Print this page
*** 25,34 ****
--- 25,35 ----
package jdk.tools.jlink.internal;
import java.lang.reflect.Layer;
import java.nio.ByteOrder;
import java.nio.file.Path;
+ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
*** 276,292 ****
--- 277,313 ----
* @param pluginsConfig Plugins config, can be null
* @throws PluginException
*/
public void build(JlinkConfiguration config, PluginsConfiguration pluginsConfig) {
Objects.requireNonNull(config);
+ if (pluginsConfig == null) {
+ pluginsConfig = new PluginsConfiguration();
+ }
+
+ // add all auto-enabled plugins from boot layer
+ pluginsConfig = addAutoEnabledPlugins(pluginsConfig);
+
try {
JlinkTask.createImage(config, pluginsConfig);
} catch (Exception ex) {
throw new PluginException(ex);
}
}
+ private PluginsConfiguration addAutoEnabledPlugins(PluginsConfiguration pluginsConfig) {
+ List<Plugin> plugins = new ArrayList<>(pluginsConfig.getPlugins());
+ List<Plugin> bootPlugins = PluginRepository.getPlugins(Layer.boot());
+ for (Plugin bp : bootPlugins) {
+ if (Utils.isAutoEnabled(bp)) {
+ bp.configure(Collections.emptyMap());
+ plugins.add(bp);
+ }
+ }
+ return new PluginsConfiguration(plugins, pluginsConfig.getImageBuilder(),
+ pluginsConfig.getLastSorterPluginName());
+ }
+
/**
* Post process the image with a plugin configuration.
*
* @param image Existing image.
* @param plugins Plugins cannot be null
< prev index next >