]> source.dussan.org Git - pf4j.git/commitdiff
Polishing (extract duplicate code in internal method, remove unneeded null check...
authorDecebal Suiu <decebal.suiu@gmail.com>
Fri, 28 Dec 2018 21:17:34 +0000 (23:17 +0200)
committerDecebal Suiu <decebal.suiu@gmail.com>
Fri, 28 Dec 2018 21:17:34 +0000 (23:17 +0200)
pf4j/src/main/java/org/pf4j/LegacyExtensionFinder.java
pf4j/src/main/java/org/pf4j/ServiceProviderExtensionFinder.java

index 9995d89b353f15835c19c91384878a7a37959e6e..5e682f3009a54aa825d7481a0de55b6824d4416c 100644 (file)
@@ -15,9 +15,9 @@
  */
 package org.pf4j;
 
+import org.pf4j.processor.LegacyExtensionStorage;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.pf4j.processor.LegacyExtensionStorage;
 
 import java.io.IOException;
 import java.io.InputStreamReader;
@@ -53,13 +53,7 @@ public class LegacyExtensionFinder extends AbstractExtensionFinder {
         Set<String> bucket = new HashSet<>();
         try {
             Enumeration<URL> urls = getClass().getClassLoader().getResources(getExtensionsResource());
-            while (urls.hasMoreElements()) {
-                URL url = urls.nextElement();
-                log.debug("Read '{}'", url.getFile());
-                try (Reader reader = new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)) {
-                    LegacyExtensionStorage.read(reader, bucket);
-                }
-            }
+            collectExtensions(urls, bucket);
 
             debugExtensions(bucket);
 
@@ -84,16 +78,10 @@ public class LegacyExtensionFinder extends AbstractExtensionFinder {
 
             try {
                 Enumeration<URL> urls = ((PluginClassLoader) plugin.getPluginClassLoader()).findResources(getExtensionsResource());
-                if (urls == null || !urls.hasMoreElements()) {
-                    log.debug("Cannot find '{}'", getExtensionsResource());
+                if (urls.hasMoreElements()) {
+                    collectExtensions(urls, bucket);
                 } else {
-                    while (urls.hasMoreElements()) {
-                        URL url = urls.nextElement();
-                        log.debug("Read '{}'", url.getFile());
-                        try (Reader reader = new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)) {
-                            LegacyExtensionStorage.read(reader, bucket);
-                        }
-                    }
+                    log.debug("Cannot find '{}'", getExtensionsResource());
                 }
 
                 debugExtensions(bucket);
@@ -107,6 +95,16 @@ public class LegacyExtensionFinder extends AbstractExtensionFinder {
         return result;
     }
 
+    private void collectExtensions(Enumeration<URL> urls, Set<String> bucket) throws IOException {
+        while (urls.hasMoreElements()) {
+            URL url = urls.nextElement();
+            log.debug("Read '{}'", url.getFile());
+            try (Reader reader = new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)) {
+                LegacyExtensionStorage.read(reader, bucket);
+            }
+        }
+    }
+
     private static String getExtensionsResource() {
         return LegacyExtensionStorage.EXTENSIONS_RESOURCE;
     }
index bfa8f5a79965ec40ec67a441bdbd911cf93661e7..66efb8d2203a71cf4fd222e1814c7c99ad1dd391 100644 (file)
@@ -63,14 +63,7 @@ public class ServiceProviderExtensionFinder extends AbstractExtensionFinder {
         try {
             URL url = getClass().getClassLoader().getResource(getExtensionsResource());
             if (url != null) {
-                Path extensionPath;
-                if (url.toURI().getScheme().equals("jar")) {
-                    extensionPath = FileUtils.getPath(url.toURI(), getExtensionsResource());
-                } else {
-                    extensionPath = Paths.get(url.toURI());
-                }
-
-                bucket.addAll(readExtensions(extensionPath));
+                collectExtensions(url, bucket);
             }
 
             debugExtensions(bucket);
@@ -96,20 +89,13 @@ public class ServiceProviderExtensionFinder extends AbstractExtensionFinder {
 
             try {
                 Enumeration<URL> urls = ((PluginClassLoader) plugin.getPluginClassLoader()).findResources(getExtensionsResource());
-                if (urls == null || !urls.hasMoreElements()) {
-                    log.debug("Cannot find '{}'", getExtensionsResource());
-                } else {
+                if (urls.hasMoreElements()) {
                     while (urls.hasMoreElements()) {
                         URL url = urls.nextElement();
-                        Path extensionPath;
-                        if (url.toURI().getScheme().equals("jar")) {
-                            extensionPath = FileUtils.getPath(url.toURI(), getExtensionsResource());
-                        } else {
-                            extensionPath = Paths.get(url.toURI());
-                        }
-
-                        bucket.addAll(readExtensions(extensionPath));
+                        collectExtensions(url, bucket);
                     }
+                } else {
+                    log.debug("Cannot find '{}'", getExtensionsResource());
                 }
 
                 debugExtensions(bucket);
@@ -123,6 +109,17 @@ public class ServiceProviderExtensionFinder extends AbstractExtensionFinder {
         return result;
     }
 
+    private void collectExtensions(URL url, Set<String> bucket) throws URISyntaxException, IOException {
+        Path extensionPath;
+        if (url.toURI().getScheme().equals("jar")) {
+            extensionPath = FileUtils.getPath(url.toURI(), getExtensionsResource());
+        } else {
+            extensionPath = Paths.get(url.toURI());
+        }
+
+        bucket.addAll(readExtensions(extensionPath));
+    }
+
     private static String getExtensionsResource() {
         return ServiceProviderExtensionStorage.EXTENSIONS_RESOURCE;
     }