Browse Source

Polishing (extract duplicate code in internal method, remove unneeded null check) #262

pull/276/head
Decebal Suiu 6 years ago
parent
commit
58f7c85ab9
  1. 32
      pf4j/src/main/java/org/pf4j/LegacyExtensionFinder.java
  2. 35
      pf4j/src/main/java/org/pf4j/ServiceProviderExtensionFinder.java

32
pf4j/src/main/java/org/pf4j/LegacyExtensionFinder.java

@ -15,9 +15,9 @@
*/ */
package org.pf4j; package org.pf4j;
import org.pf4j.processor.LegacyExtensionStorage;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.pf4j.processor.LegacyExtensionStorage;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@ -53,13 +53,7 @@ public class LegacyExtensionFinder extends AbstractExtensionFinder {
Set<String> bucket = new HashSet<>(); Set<String> bucket = new HashSet<>();
try { try {
Enumeration<URL> urls = getClass().getClassLoader().getResources(getExtensionsResource()); Enumeration<URL> urls = getClass().getClassLoader().getResources(getExtensionsResource());
while (urls.hasMoreElements()) { collectExtensions(urls, bucket);
URL url = urls.nextElement();
log.debug("Read '{}'", url.getFile());
try (Reader reader = new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)) {
LegacyExtensionStorage.read(reader, bucket);
}
}
debugExtensions(bucket); debugExtensions(bucket);
@ -84,16 +78,10 @@ public class LegacyExtensionFinder extends AbstractExtensionFinder {
try { try {
Enumeration<URL> urls = ((PluginClassLoader) plugin.getPluginClassLoader()).findResources(getExtensionsResource()); Enumeration<URL> urls = ((PluginClassLoader) plugin.getPluginClassLoader()).findResources(getExtensionsResource());
if (urls == null || !urls.hasMoreElements()) { if (urls.hasMoreElements()) {
log.debug("Cannot find '{}'", getExtensionsResource()); collectExtensions(urls, bucket);
} else { } else {
while (urls.hasMoreElements()) { log.debug("Cannot find '{}'", getExtensionsResource());
URL url = urls.nextElement();
log.debug("Read '{}'", url.getFile());
try (Reader reader = new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)) {
LegacyExtensionStorage.read(reader, bucket);
}
}
} }
debugExtensions(bucket); debugExtensions(bucket);
@ -107,6 +95,16 @@ public class LegacyExtensionFinder extends AbstractExtensionFinder {
return result; 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() { private static String getExtensionsResource() {
return LegacyExtensionStorage.EXTENSIONS_RESOURCE; return LegacyExtensionStorage.EXTENSIONS_RESOURCE;
} }

35
pf4j/src/main/java/org/pf4j/ServiceProviderExtensionFinder.java

@ -63,14 +63,7 @@ public class ServiceProviderExtensionFinder extends AbstractExtensionFinder {
try { try {
URL url = getClass().getClassLoader().getResource(getExtensionsResource()); URL url = getClass().getClassLoader().getResource(getExtensionsResource());
if (url != null) { if (url != null) {
Path extensionPath; collectExtensions(url, bucket);
if (url.toURI().getScheme().equals("jar")) {
extensionPath = FileUtils.getPath(url.toURI(), getExtensionsResource());
} else {
extensionPath = Paths.get(url.toURI());
}
bucket.addAll(readExtensions(extensionPath));
} }
debugExtensions(bucket); debugExtensions(bucket);
@ -96,20 +89,13 @@ public class ServiceProviderExtensionFinder extends AbstractExtensionFinder {
try { try {
Enumeration<URL> urls = ((PluginClassLoader) plugin.getPluginClassLoader()).findResources(getExtensionsResource()); Enumeration<URL> urls = ((PluginClassLoader) plugin.getPluginClassLoader()).findResources(getExtensionsResource());
if (urls == null || !urls.hasMoreElements()) { if (urls.hasMoreElements()) {
log.debug("Cannot find '{}'", getExtensionsResource());
} else {
while (urls.hasMoreElements()) { while (urls.hasMoreElements()) {
URL url = urls.nextElement(); URL url = urls.nextElement();
Path extensionPath; collectExtensions(url, bucket);
if (url.toURI().getScheme().equals("jar")) {
extensionPath = FileUtils.getPath(url.toURI(), getExtensionsResource());
} else {
extensionPath = Paths.get(url.toURI());
}
bucket.addAll(readExtensions(extensionPath));
} }
} else {
log.debug("Cannot find '{}'", getExtensionsResource());
} }
debugExtensions(bucket); debugExtensions(bucket);
@ -123,6 +109,17 @@ public class ServiceProviderExtensionFinder extends AbstractExtensionFinder {
return result; 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() { private static String getExtensionsResource() {
return ServiceProviderExtensionStorage.EXTENSIONS_RESOURCE; return ServiceProviderExtensionStorage.EXTENSIONS_RESOURCE;
} }

Loading…
Cancel
Save