26
27 import java.io.DataOutputStream;
28
29 import java.io.IOException;
30 import java.util.ArrayList;
31 import java.util.LinkedHashMap;
32 import java.util.List;
33 import java.util.Map;
34 import java.util.Map.Entry;
35 import jdk.tools.jlink.builder.ImageBuilder;
36 import jdk.tools.jlink.plugin.Plugin;
37 import jdk.tools.jlink.plugin.PluginException;
38 import jdk.tools.jlink.plugin.Plugin.Category;
39 import jdk.tools.jlink.plugin.ResourcePool;
40
41 /**
42 * Plugins configuration.
43 */
44 public final class ImagePluginConfiguration {
45
46 private static final List<Category> CATEGORIES_ORDER = new ArrayList<>();
47
48 static {
49 CATEGORIES_ORDER.add(Category.FILTER);
50 CATEGORIES_ORDER.add(Category.TRANSFORMER);
51 CATEGORIES_ORDER.add(Category.MODULEINFO_TRANSFORMER);
52 CATEGORIES_ORDER.add(Category.SORTER);
53 CATEGORIES_ORDER.add(Category.COMPRESSOR);
54 CATEGORIES_ORDER.add(Category.METAINFO_ADDER);
55 CATEGORIES_ORDER.add(Category.VERIFIER);
56 CATEGORIES_ORDER.add(Category.PROCESSOR);
57 CATEGORIES_ORDER.add(Category.PACKAGER);
58 }
59
60 private ImagePluginConfiguration() {
61 }
62
63 /*
64 * Create a stack of plugins from a a configuration.
65 */
66 public static ImagePluginStack parseConfiguration(Jlink.PluginsConfiguration pluginsConfiguration)
67 throws Exception {
68 if (pluginsConfiguration == null) {
69 return new ImagePluginStack();
70 }
71 Map<Category, List<Plugin>> plugins = new LinkedHashMap<>();
72 for (Category cat : CATEGORIES_ORDER) {
73 plugins.put(cat, new ArrayList<>());
74 }
|
26
27 import java.io.DataOutputStream;
28
29 import java.io.IOException;
30 import java.util.ArrayList;
31 import java.util.LinkedHashMap;
32 import java.util.List;
33 import java.util.Map;
34 import java.util.Map.Entry;
35 import jdk.tools.jlink.builder.ImageBuilder;
36 import jdk.tools.jlink.plugin.Plugin;
37 import jdk.tools.jlink.plugin.PluginException;
38 import jdk.tools.jlink.plugin.Plugin.Category;
39 import jdk.tools.jlink.plugin.ResourcePool;
40
41 /**
42 * Plugins configuration.
43 */
44 public final class ImagePluginConfiguration {
45
46 // Order in which plugins are applied. Note that COMPRESSOR type plugins should come
47 // after any plugin that reads .class resources and operate on binary data.
48 // Plugin.Category enum element order matches this order for ease of read.
49 private static final List<Category> CATEGORIES_ORDER = new ArrayList<>();
50
51 static {
52 CATEGORIES_ORDER.add(Category.FILTER);
53 CATEGORIES_ORDER.add(Category.TRANSFORMER);
54 CATEGORIES_ORDER.add(Category.MODULEINFO_TRANSFORMER);
55 CATEGORIES_ORDER.add(Category.SORTER);
56 CATEGORIES_ORDER.add(Category.METAINFO_ADDER);
57 CATEGORIES_ORDER.add(Category.COMPRESSOR);
58 CATEGORIES_ORDER.add(Category.VERIFIER);
59 CATEGORIES_ORDER.add(Category.PROCESSOR);
60 CATEGORIES_ORDER.add(Category.PACKAGER);
61 }
62
63 private ImagePluginConfiguration() {
64 }
65
66 /*
67 * Create a stack of plugins from a a configuration.
68 */
69 public static ImagePluginStack parseConfiguration(Jlink.PluginsConfiguration pluginsConfiguration)
70 throws Exception {
71 if (pluginsConfiguration == null) {
72 return new ImagePluginStack();
73 }
74 Map<Category, List<Plugin>> plugins = new LinkedHashMap<>();
75 for (Category cat : CATEGORIES_ORDER) {
76 plugins.put(cat, new ArrayList<>());
77 }
|