Browse Source

Possible fix for #156

pull/159/head
Decebal Suiu 7 years ago
parent
commit
c7a95d5ea0
  1. 4
      pf4j/src/main/java/ro/fortsoft/pf4j/DefaultExtensionFinder.java
  2. 11
      pf4j/src/main/java/ro/fortsoft/pf4j/LegacyExtensionFinder.java
  3. 8
      pf4j/src/main/java/ro/fortsoft/pf4j/ServiceProviderExtensionFinder.java

4
pf4j/src/main/java/ro/fortsoft/pf4j/DefaultExtensionFinder.java

@ -21,8 +21,8 @@ import java.util.List;
import java.util.Set; import java.util.Set;
/** /**
* The default implementation for ExtensionFinder. * The default implementation for {@link ExtensionFinder}.
* It's a compound ExtensionFinder. * It's a compound {@code ExtensionFinder}.
* *
* @author Decebal Suiu * @author Decebal Suiu
*/ */

11
pf4j/src/main/java/ro/fortsoft/pf4j/LegacyExtensionFinder.java

@ -23,6 +23,7 @@ import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.io.Reader; import java.io.Reader;
import java.net.URL; import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
@ -31,8 +32,8 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
/** /**
* All extensions declared in a plugin are indexed in a file "META-INF/extensions.idx". * All extensions declared in a plugin are indexed in a file {@code META-INF/extensions.idx}.
* This class lookup extensions in all extensions index files "META-INF/extensions.idx". * This class lookup extensions in all extensions index files {@code META-INF/extensions.idx}.
* *
* @author Decebal Suiu * @author Decebal Suiu
*/ */
@ -55,9 +56,10 @@ public class LegacyExtensionFinder extends AbstractExtensionFinder {
while (urls.hasMoreElements()) { while (urls.hasMoreElements()) {
URL url = urls.nextElement(); URL url = urls.nextElement();
log.debug("Read '{}'", url.getFile()); log.debug("Read '{}'", url.getFile());
Reader reader = new InputStreamReader(url.openStream(), "UTF-8"); try (Reader reader = new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)) {
LegacyExtensionStorage.read(reader, bucket); LegacyExtensionStorage.read(reader, bucket);
} }
}
debugExtensions(bucket); debugExtensions(bucket);
@ -84,8 +86,9 @@ public class LegacyExtensionFinder extends AbstractExtensionFinder {
URL url = ((PluginClassLoader) plugin.getPluginClassLoader()).findResource(getExtensionsResource()); URL url = ((PluginClassLoader) plugin.getPluginClassLoader()).findResource(getExtensionsResource());
if (url != null) { if (url != null) {
log.debug("Read '{}'", url.getFile()); log.debug("Read '{}'", url.getFile());
Reader reader = new InputStreamReader(url.openStream(), "UTF-8"); try (Reader reader = new InputStreamReader(url.openStream(), StandardCharsets.UTF_8)) {
LegacyExtensionStorage.read(reader, bucket); LegacyExtensionStorage.read(reader, bucket);
}
} else { } else {
log.debug("Cannot find '{}'", getExtensionsResource()); log.debug("Cannot find '{}'", getExtensionsResource());
} }

8
pf4j/src/main/java/ro/fortsoft/pf4j/ServiceProviderExtensionFinder.java

@ -41,8 +41,8 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
/** /**
* The ServiceLoader base implementation for ExtensionFinder. * The {@link java.util.ServiceLoader} base implementation for {@link ExtensionFinder}.
* This class lookup extensions in all extensions index files "META-INF/services". * This class lookup extensions in all extensions index files {@code META-INF/services}.
* *
* @author Decebal Suiu * @author Decebal Suiu
*/ */
@ -133,8 +133,10 @@ public class ServiceProviderExtensionFinder extends AbstractExtensionFinder {
@Override @Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
log.debug("Read '{}'", file); log.debug("Read '{}'", file);
Reader reader = Files.newBufferedReader(file, StandardCharsets.UTF_8); try (Reader reader = Files.newBufferedReader(file, StandardCharsets.UTF_8)) {
ServiceProviderExtensionStorage.read(reader, result); ServiceProviderExtensionStorage.read(reader, result);
}
return FileVisitResult.CONTINUE; return FileVisitResult.CONTINUE;
} }

Loading…
Cancel
Save