aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pf4j/src/main/java/ro/fortsoft/pf4j/ManifestPluginDescriptorFinder.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/pf4j/src/main/java/ro/fortsoft/pf4j/ManifestPluginDescriptorFinder.java b/pf4j/src/main/java/ro/fortsoft/pf4j/ManifestPluginDescriptorFinder.java
index de0f84e..394773c 100644
--- a/pf4j/src/main/java/ro/fortsoft/pf4j/ManifestPluginDescriptorFinder.java
+++ b/pf4j/src/main/java/ro/fortsoft/pf4j/ManifestPluginDescriptorFinder.java
@@ -58,7 +58,7 @@ public abstract class ManifestPluginDescriptorFinder implements PluginDescriptor
String version = attributes.getValue("Plugin-Version");
if (StringUtils.isNotEmpty(version)) {
- pluginDescriptor.setPluginVersion(Version.valueOf(version));
+ pluginDescriptor.setPluginVersion(createPluginVersion(version));
}
String provider = attributes.getValue("Plugin-Provider");
@@ -76,6 +76,17 @@ public abstract class ManifestPluginDescriptorFinder implements PluginDescriptor
return pluginDescriptor;
}
+ /**
+ * Parse version to semver {@link Version} object.
+ * Example : 1.1.1.RC1 -> 1.1.1-RC1.
+ * This may be override to use a custom parsing to semver Version.
+ * @param version given string to be the plugin version
+ * @return a semver version
+ */
+ protected Version createPluginVersion(String version) {
+ return Version.valueOf(version);
+ }
+
protected PluginDescriptor createPluginDescriptorInstance() {
return new PluginDescriptor();
}