aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordustContributor <hctf90@gmail.com>2018-07-24 04:16:31 -0300
committerDecebal Suiu <decebal.suiu@gmail.com>2018-07-24 10:16:31 +0300
commitbca953698f5546a69e7f627d33fd0d71cd3f3b43 (patch)
tree1c0e2cd6d3a16b89a92bc6f9f3edb8436955a9b3
parent1d31281196681ac3f553eb7727d2819ae8e2df09 (diff)
downloadpf4j-bca953698f5546a69e7f627d33fd0d71cd3f3b43.tar.gz
pf4j-bca953698f5546a69e7f627d33fd0d71cd3f3b43.zip
Allow a way to query all extension classes for a given plugin (#233)
-rw-r--r--pf4j/src/main/java/org/pf4j/AbstractPluginManager.java12
-rw-r--r--pf4j/src/main/java/org/pf4j/PluginManager.java2
2 files changed, 14 insertions, 0 deletions
diff --git a/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java b/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java
index 17116ae..f2578d8 100644
--- a/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java
+++ b/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java
@@ -522,6 +522,18 @@ public abstract class AbstractPluginManager implements PluginManager {
return pluginClassLoaders.get(pluginId);
}
+ @SuppressWarnings("rawtypes")
+ @Override
+ public List<Class<?>> getExtensionClasses(String pluginId) {
+ List<ExtensionWrapper> extensionsWrapper = extensionFinder.find(pluginId);
+ List<Class<?>> extensionClasses = new ArrayList<>(extensionsWrapper.size());
+ for (ExtensionWrapper extensionWrapper : extensionsWrapper) {
+ Class<?> c = extensionWrapper.getDescriptor().extensionClass;
+ extensionClasses.add(c);
+ }
+ return extensionClasses;
+ }
+
@SuppressWarnings("unchecked")
@Override
public <T> List<Class<T>> getExtensionClasses(Class<T> type) {
diff --git a/pf4j/src/main/java/org/pf4j/PluginManager.java b/pf4j/src/main/java/org/pf4j/PluginManager.java
index eaa605f..52fb85b 100644
--- a/pf4j/src/main/java/org/pf4j/PluginManager.java
+++ b/pf4j/src/main/java/org/pf4j/PluginManager.java
@@ -131,6 +131,8 @@ public interface PluginManager {
ClassLoader getPluginClassLoader(String pluginId);
+ List<Class<?>> getExtensionClasses(String pluginId);
+
<T> List<Class<T>> getExtensionClasses(Class<T> type);
<T> List<Class<T>> getExtensionClasses(Class<T> type, String pluginId);