diff options
author | Decebal Suiu <decebal.suiu@gmail.com> | 2017-12-16 10:29:56 +0200 |
---|---|---|
committer | Decebal Suiu <decebal.suiu@gmail.com> | 2017-12-16 10:29:56 +0200 |
commit | b7a858835f8f06cee8d00b2faacb12e94c2172a2 (patch) | |
tree | 5cb49e8b2ece4486208720286e963efcb9098857 /pf4j/src/main | |
parent | 2bdcb6c462d9fc40c6962c8109f30029706e9609 (diff) | |
parent | 5b192003f42c99b85131387017292955278eb0a8 (diff) | |
download | pf4j-b7a858835f8f06cee8d00b2faacb12e94c2172a2.tar.gz pf4j-b7a858835f8f06cee8d00b2faacb12e94c2172a2.zip |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'pf4j/src/main')
5 files changed, 228 insertions, 151 deletions
diff --git a/pf4j/src/main/java/org/pf4j/DefaultPluginDescriptor.java b/pf4j/src/main/java/org/pf4j/DefaultPluginDescriptor.java new file mode 100644 index 0000000..5fa2935 --- /dev/null +++ b/pf4j/src/main/java/org/pf4j/DefaultPluginDescriptor.java @@ -0,0 +1,211 @@ +/* + * Copyright 2012 Decebal Suiu + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.pf4j; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * A plugin descriptor contains information about a plug-in obtained + * from the manifest (META-INF) file. + * + * @author Decebal Suiu + */ +public class DefaultPluginDescriptor implements PluginDescriptor { + + private String pluginId; + private String pluginDescription; + private String pluginClass; + private String version; + private String requires = "*"; // SemVer format + private String provider; + private List<PluginDependency> dependencies; + private String license; + + public DefaultPluginDescriptor() { + dependencies = new ArrayList<>(); + } + + /** + * @param pluginId + * @param pluginDescription + * @param pluginClass + * @param version + * @param requires + * @param provider + * @param license + */ + public DefaultPluginDescriptor(String pluginId, String pluginDescription, String pluginClass, String version, String requires, String provider, String license) { + this(); + this.pluginId = pluginId; + this.pluginDescription = pluginDescription; + this.pluginClass = pluginClass; + this.version = version; + this.requires = requires; + this.provider = provider; + this.license = license; + } + + public void addDependency(PluginDependency dependency) { + this.dependencies.add(dependency); + } + + /** + * Returns the unique identifier of this plugin. + */ + @Override + public String getPluginId() { + return pluginId; + } + + /** + * Returns the description of this plugin. + */ + @Override + public String getPluginDescription() { + return pluginDescription; + } + + /** + * Returns the name of the class that implements Plugin interface. + */ + @Override + public String getPluginClass() { + return pluginClass; + } + + /** + * Returns the version of this plugin. + */ + @Override + public String getVersion() { + return version; + } + + /** + * Returns string version of requires + * + * @return String with requires expression on SemVer format + */ + @Override + public String getRequires() { + return requires; + } + + /** + * Returns the provider name of this plugin. + */ + @Override + public String getProvider() { + return provider; + } + + /** + * Returns the legal license of this plugin, e.g. "Apache-2.0", "MIT" etc + */ + @Override + public String getLicense() { + return license; + } + + /** + * Returns all dependencies declared by this plugin. + * Returns an empty array if this plugin does not declare any require. + */ + @Override + public List<PluginDependency> getDependencies() { + return dependencies; + } + + @Override + public String toString() { + return "PluginDescriptor [pluginId=" + pluginId + ", pluginClass=" + + pluginClass + ", version=" + version + ", provider=" + + provider + ", dependencies=" + dependencies + ", description=" + + pluginDescription + ", requires=" + requires + ", license=" + + license + "]"; + } + + protected DefaultPluginDescriptor setPluginId(String pluginId) { + this.pluginId = pluginId; + + return this; + } + + protected PluginDescriptor setPluginDescription(String pluginDescription) { + this.pluginDescription = pluginDescription; + + return this; + } + + protected PluginDescriptor setPluginClass(String pluginClassName) { + this.pluginClass = pluginClassName; + + return this; + } + + + protected DefaultPluginDescriptor setPluginVersion(String version) { + this.version = version; + + return this; + } + + protected PluginDescriptor setProvider(String provider) { + this.provider = provider; + + return this; + } + + protected PluginDescriptor setRequires(String requires) { + this.requires = requires; + + return this; + } + + protected PluginDescriptor setDependencies(String dependencies) { + if (dependencies != null) { + dependencies = dependencies.trim(); + if (dependencies.isEmpty()) { + this.dependencies = Collections.emptyList(); + } else { + this.dependencies = new ArrayList<>(); + String[] tokens = dependencies.split(","); + for (String dependency : tokens) { + dependency = dependency.trim(); + if (!dependency.isEmpty()) { + this.dependencies.add(new PluginDependency(dependency)); + } + } + if (this.dependencies.isEmpty()) { + this.dependencies = Collections.emptyList(); + } + } + } else { + this.dependencies = Collections.emptyList(); + } + + return this; + } + + public PluginDescriptor setLicense(String license) { + this.license = license; + + return this; + } + +} diff --git a/pf4j/src/main/java/org/pf4j/DefaultPluginManager.java b/pf4j/src/main/java/org/pf4j/DefaultPluginManager.java index 660950f..0e08984 100644 --- a/pf4j/src/main/java/org/pf4j/DefaultPluginManager.java +++ b/pf4j/src/main/java/org/pf4j/DefaultPluginManager.java @@ -52,7 +52,7 @@ public class DefaultPluginManager extends AbstractPluginManager { } @Override - protected CompoundPluginDescriptorFinder createPluginDescriptorFinder() { + protected PluginDescriptorFinder createPluginDescriptorFinder() { return new CompoundPluginDescriptorFinder() .add(new PropertiesPluginDescriptorFinder()) .add(new ManifestPluginDescriptorFinder()); diff --git a/pf4j/src/main/java/org/pf4j/ManifestPluginDescriptorFinder.java b/pf4j/src/main/java/org/pf4j/ManifestPluginDescriptorFinder.java index aa9a929..1e09067 100644 --- a/pf4j/src/main/java/org/pf4j/ManifestPluginDescriptorFinder.java +++ b/pf4j/src/main/java/org/pf4j/ManifestPluginDescriptorFinder.java @@ -88,7 +88,7 @@ public class ManifestPluginDescriptorFinder implements PluginDescriptorFinder { } protected PluginDescriptor createPluginDescriptor(Manifest manifest) { - PluginDescriptor pluginDescriptor = createPluginDescriptorInstance(); + DefaultPluginDescriptor pluginDescriptor = createPluginDescriptorInstance(); // TODO validate !!! Attributes attributes = manifest.getMainAttributes(); @@ -125,8 +125,8 @@ public class ManifestPluginDescriptorFinder implements PluginDescriptorFinder { return pluginDescriptor; } - protected PluginDescriptor createPluginDescriptorInstance() { - return new PluginDescriptor(); + protected DefaultPluginDescriptor createPluginDescriptorInstance() { + return new DefaultPluginDescriptor(); } } diff --git a/pf4j/src/main/java/org/pf4j/PluginDescriptor.java b/pf4j/src/main/java/org/pf4j/PluginDescriptor.java index 6dddbbf..ab08d68 100644 --- a/pf4j/src/main/java/org/pf4j/PluginDescriptor.java +++ b/pf4j/src/main/java/org/pf4j/PluginDescriptor.java @@ -1,5 +1,5 @@ /* - * Copyright 2012 Decebal Suiu + * Copyright 2015 Decebal Suiu * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,8 +15,6 @@ */ package org.pf4j; -import java.util.ArrayList; -import java.util.Collections; import java.util.List; /** @@ -25,153 +23,21 @@ import java.util.List; * * @author Decebal Suiu */ -public class PluginDescriptor { +public interface PluginDescriptor { - private String pluginId; - private String pluginDescription; - private String pluginClass; - private String version; - private String requires = "*"; // SemVer format - private String provider; - private List<PluginDependency> dependencies; - private String license; + String getPluginId(); - public PluginDescriptor() { - dependencies = new ArrayList<>(); - } + String getPluginDescription(); - /** - * Returns the unique identifier of this plugin. - */ - public String getPluginId() { - return pluginId; - } + String getPluginClass(); - /** - * Returns the description of this plugin. - */ - public String getPluginDescription() { - return pluginDescription; - } + String getVersion(); - /** - * Returns the name of the class that implements Plugin interface. - */ - public String getPluginClass() { - return pluginClass; - } + String getRequires(); - /** - * Returns the version of this plugin. - */ - public String getVersion() { - return version; - } + String getProvider(); - /** - * Returns string version of requires - * @return String with requires expression on SemVer format - */ - public String getRequires() { - return requires; - } - - /** - * Returns the provider name of this plugin. - */ - public String getProvider() { - return provider; - } - - /** - * Returns the legal license of this plugin, e.g. "Apache-2.0", "MIT" etc - */ - public String getLicense() { - return license; - } - - /** - * Returns all dependencies declared by this plugin. - * Returns an empty array if this plugin does not declare any require. - */ - public List<PluginDependency> getDependencies() { - return dependencies; - } - - @Override - public String toString() { - return "PluginDescriptor [pluginId=" + pluginId + ", pluginClass=" - + pluginClass + ", version=" + version + ", provider=" - + provider + ", dependencies=" + dependencies + ", description=" - + pluginDescription + ", requires=" + requires + ", license=" - + license + "]"; - } - - PluginDescriptor setPluginId(String pluginId) { - this.pluginId = pluginId; - - return this; - } - - PluginDescriptor setPluginDescription(String pluginDescription) { - this.pluginDescription = pluginDescription; - - return this; - } - - PluginDescriptor setPluginClass(String pluginClassName) { - this.pluginClass = pluginClassName; - - return this; - } - - PluginDescriptor setPluginVersion(String version) { - this.version = version; - - return this; - } - - PluginDescriptor setProvider(String provider) { - this.provider = provider; - - return this; - } - - PluginDescriptor setRequires(String requires) { - this.requires = requires; - - return this; - } - - PluginDescriptor setDependencies(String dependencies) { - if (dependencies != null) { - dependencies = dependencies.trim(); - if (dependencies.isEmpty()) { - this.dependencies = Collections.emptyList(); - } else { - this.dependencies = new ArrayList<>(); - String[] tokens = dependencies.split(","); - for (String dependency : tokens) { - dependency = dependency.trim(); - if (!dependency.isEmpty()) { - this.dependencies.add(new PluginDependency(dependency)); - } - } - if (this.dependencies.isEmpty()) { - this.dependencies = Collections.emptyList(); - } - } - } else { - this.dependencies = Collections.emptyList(); - } - - return this; - } - - public PluginDescriptor setLicense(String license) { - this.license = license; - - return this; - } + String getLicense(); + List<PluginDependency> getDependencies(); } diff --git a/pf4j/src/main/java/org/pf4j/PropertiesPluginDescriptorFinder.java b/pf4j/src/main/java/org/pf4j/PropertiesPluginDescriptorFinder.java index 4148287..9357bc3 100644 --- a/pf4j/src/main/java/org/pf4j/PropertiesPluginDescriptorFinder.java +++ b/pf4j/src/main/java/org/pf4j/PropertiesPluginDescriptorFinder.java @@ -95,7 +95,7 @@ public class PropertiesPluginDescriptorFinder implements PluginDescriptorFinder } protected PluginDescriptor createPluginDescriptor(Properties properties) { - PluginDescriptor pluginDescriptor = createPluginDescriptorInstance(); + DefaultPluginDescriptor pluginDescriptor = createPluginDescriptorInstance(); // TODO validate !!! String id = properties.getProperty("plugin.id"); @@ -132,8 +132,8 @@ public class PropertiesPluginDescriptorFinder implements PluginDescriptorFinder return pluginDescriptor; } - protected PluginDescriptor createPluginDescriptorInstance() { - return new PluginDescriptor(); + protected DefaultPluginDescriptor createPluginDescriptorInstance() { + return new DefaultPluginDescriptor(); } } |