From a8f00177d9306b949c60f5549c6b374557b750ef Mon Sep 17 00:00:00 2001 From: decebals Date: Thu, 30 May 2019 22:01:58 +0300 Subject: [PATCH] Improve PluginJar --- .../test/java/org/pf4j/plugin/PluginJar.java | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/pf4j/src/test/java/org/pf4j/plugin/PluginJar.java b/pf4j/src/test/java/org/pf4j/plugin/PluginJar.java index d486ef8..366c22a 100644 --- a/pf4j/src/test/java/org/pf4j/plugin/PluginJar.java +++ b/pf4j/src/test/java/org/pf4j/plugin/PluginJar.java @@ -17,6 +17,7 @@ package org.pf4j.plugin; import org.pf4j.ManifestPluginDescriptorFinder; +import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.nio.file.Path; @@ -51,6 +52,10 @@ public class PluginJar { return path; } + public File file() { + return path.toFile(); + } + public String pluginClass() { return pluginClass; } @@ -81,7 +86,7 @@ public class PluginJar { private String pluginClass; private String pluginVersion; - private Map attributes; + private Map manifestAttributes = new LinkedHashMap<>(); public Builder(Path path, String pluginId) { this.path = path; @@ -102,9 +107,20 @@ public class PluginJar { /** * Add extra attributes to the {@code manifest} file. + * As possible attribute name please see {@link ManifestPluginDescriptorFinder}. + */ + public Builder manifestAttributes(Map manifestAttributes) { + this.manifestAttributes.putAll(manifestAttributes); + + return this; + } + + /** + * Add extra attribute to the {@code manifest} file. + * As possible attribute name please see {@link ManifestPluginDescriptorFinder}. */ - public Builder attributes(Map attributes) { - this.attributes = attributes; + public Builder manifestAttribute(String name, String value) { + manifestAttributes.put(name, value); return this; } @@ -122,11 +138,12 @@ public class PluginJar { if (pluginClass != null) { map.put(ManifestPluginDescriptorFinder.PLUGIN_CLASS, pluginClass); } - if (attributes != null) { - map.putAll(attributes); + if (manifestAttributes != null) { + map.putAll(manifestAttributes); } - JarOutputStream outputStream = new JarOutputStream(new FileOutputStream(path.toFile()), createManifest(map)); + Manifest manifest = createManifest(map); + JarOutputStream outputStream = new JarOutputStream(new FileOutputStream(path.toFile()), manifest); outputStream.close(); }