]> source.dussan.org Git - pf4j.git/commitdiff
Minor improvement and refactoring
authorDecebal Suiu <decebal.suiu@gmail.com>
Sun, 17 Dec 2017 10:54:25 +0000 (12:54 +0200)
committerDecebal Suiu <decebal.suiu@gmail.com>
Sun, 17 Dec 2017 10:54:25 +0000 (12:54 +0200)
pf4j/src/main/java/org/pf4j/AbstractPluginManager.java
pf4j/src/main/java/org/pf4j/ManifestPluginDescriptorFinder.java
pf4j/src/main/java/org/pf4j/PropertiesPluginDescriptorFinder.java
pf4j/src/main/java/org/pf4j/util/FileUtils.java
pf4j/src/main/java/org/pf4j/util/StringUtils.java

index ea944324fb87075958af9a032992eb351f48ae77..21df9c00be47500b86d9425c246183e77cf34b3f 100644 (file)
@@ -849,11 +849,11 @@ public abstract class AbstractPluginManager implements PluginManager {
      * @throws PluginException if validation fails
      */
     protected void validatePluginDescriptor(PluginDescriptor descriptor) throws PluginException {
-        if (StringUtils.isEmpty(descriptor.getPluginId())) {
+        if (StringUtils.isNullOrEmpty(descriptor.getPluginId())) {
             throw new PluginException("Field 'id' cannot be empty");
         }
 
-        if (StringUtils.isEmpty(descriptor.getPluginClass())) {
+        if (StringUtils.isNullOrEmpty(descriptor.getPluginClass())) {
             throw new PluginException("Field 'class' cannot be empty");
         }
 
index 1e09067b8af7c38b3418d92b64e4482ffc4d897f..e2bac20a1f9858badb932af46441978925c62f89 100644 (file)
@@ -96,7 +96,7 @@ public class ManifestPluginDescriptorFinder implements PluginDescriptorFinder {
         pluginDescriptor.setPluginId(id);
 
         String description = attributes.getValue("Plugin-Description");
-        if (StringUtils.isEmpty(description)) {
+        if (StringUtils.isNullOrEmpty(description)) {
             pluginDescriptor.setPluginDescription("");
         } else {
             pluginDescriptor.setPluginDescription(description);
@@ -106,7 +106,7 @@ public class ManifestPluginDescriptorFinder implements PluginDescriptorFinder {
         pluginDescriptor.setPluginClass(clazz);
 
         String version = attributes.getValue("Plugin-Version");
-        if (StringUtils.isNotEmpty(version)) {
+        if (StringUtils.isNotNullOrEmpty(version)) {
             pluginDescriptor.setPluginVersion(version);
         }
 
@@ -116,7 +116,7 @@ public class ManifestPluginDescriptorFinder implements PluginDescriptorFinder {
         pluginDescriptor.setDependencies(dependencies);
 
         String requires = attributes.getValue("Plugin-Requires");
-        if (StringUtils.isNotEmpty(requires)) {
+        if (StringUtils.isNotNullOrEmpty(requires)) {
             pluginDescriptor.setRequires(requires);
         }
 
index 9357bc3e94400fceb5288ae630a1e269ba4fde07..80026b95bf189eb35eda530cf7d6de146d4a3d3b 100644 (file)
@@ -102,7 +102,7 @@ public class PropertiesPluginDescriptorFinder implements PluginDescriptorFinder
         pluginDescriptor.setPluginId(id);
 
         String description = properties.getProperty("plugin.description");
-        if (StringUtils.isEmpty(description)) {
+        if (StringUtils.isNullOrEmpty(description)) {
             pluginDescriptor.setPluginDescription("");
         } else {
             pluginDescriptor.setPluginDescription(description);
@@ -112,7 +112,7 @@ public class PropertiesPluginDescriptorFinder implements PluginDescriptorFinder
         pluginDescriptor.setPluginClass(clazz);
 
         String version = properties.getProperty("plugin.version");
-        if (StringUtils.isNotEmpty(version)) {
+        if (StringUtils.isNotNullOrEmpty(version)) {
             pluginDescriptor.setPluginVersion(version);
         }
 
@@ -123,7 +123,7 @@ public class PropertiesPluginDescriptorFinder implements PluginDescriptorFinder
         pluginDescriptor.setDependencies(dependencies);
 
         String requires = properties.getProperty("plugin.requires");
-        if (StringUtils.isNotEmpty(requires)) {
+        if (StringUtils.isNotNullOrEmpty(requires)) {
             pluginDescriptor.setRequires(requires);
         }
 
index 0c54e0a0adff2283cf6c2ba663244301a9976299..6da79e075468d18cb274d2083584797860f65dc2 100644 (file)
@@ -43,7 +43,6 @@ import java.util.List;
  */
 public class FileUtils {
 
-    private static final String SLASH = "/";
     private static final Logger log = LoggerFactory.getLogger(FileUtils.class);
 
     public static List<String> readLines(Path path, boolean ignoreComments) throws IOException {
@@ -217,10 +216,9 @@ public class FileUtils {
     public static Path getPath(Path path, String first, String... more) throws IOException {
         URI uri = path.toUri();
         if (isJarFile(path)) {
-            String pathString = path.toString().replace("\\", SLASH);
-            if(!pathString.startsWith(SLASH)){
-                pathString = SLASH + pathString;
-            }
+            String pathString = path.toString();
+            // transformation for Windows OS
+            pathString = StringUtils.addStart(pathString.replace("\\", "/"), "/");
             uri = URI.create("jar:file:" + pathString);
         }
 
index 49657d5248ec997a0f3f073e626a47c035c96374..04fc4ec6d7416ffcfd258db0bf86a6de0671c692 100644 (file)
@@ -20,12 +20,12 @@ package org.pf4j.util;
  */
 public class StringUtils {
 
-       public static boolean isEmpty(String str) {
+       public static boolean isNullOrEmpty(String str) {
                return (str == null) || str.isEmpty();
        }
 
-    public static boolean isNotEmpty(String str) {
-        return !isEmpty(str);
+    public static boolean isNotNullOrEmpty(String str) {
+        return !isNullOrEmpty(str);
     }
 
     /**
@@ -37,4 +37,40 @@ public class StringUtils {
         return String.format(str, args);
     }
 
+    /**
+     * <p>Adds a substring only if the source string does not already start with the substring,
+     * otherwise returns the source string.</p>
+     * <p/>
+     * <p>A {@code null} source string will return {@code null}.
+     * An empty ("") source string will return the empty string.
+     * A {@code null} search string will return the source string.</p>
+     * <p/>
+     * <pre>
+     * StringUtils.addStart(null, *)      = *
+     * StringUtils.addStart("", *)        = *
+     * StringUtils.addStart(*, null)      = *
+     * StringUtils.addStart("domain.com", "www.")  = "www.domain.com"
+     * StringUtils.addStart("abc123", "abc")    = "abc123"
+     * </pre>
+     *
+     * @param str the source String to search, may be null
+     * @param add the String to search for and add, may be null
+     * @return the substring with the string added if required
+     */
+    public static String addStart(String str, String add) {
+        if (isNullOrEmpty(add)) {
+            return str;
+        }
+
+        if (isNullOrEmpty(str)) {
+            return add;
+        }
+
+        if (!str.startsWith(add)) {
+            return add + str;
+        }
+
+        return str;
+    }
+
 }