Package aQute.bnd.build
Class WorkspaceExternalPluginHandler
java.lang.Object
aQute.bnd.build.WorkspaceExternalPluginHandler
- All Implemented Interfaces:
AutoCloseable
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class
Class loader that can be used to create a proxy in cases where the interface classes are not visible from the class loader of the first interface class. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T,
R> Result<R> call
(String pluginName, Class<T> c, FunctionWithException<T, Result<R>> f) call
(String mainClass, org.osgi.framework.VersionRange range, Processor context, Map<String, String> attrs, List<String> args, InputStream stdin, OutputStream stdout, OutputStream stderr) void
close()
getImplementations
(Class<T> interf, Attrs attrs) Returns list of external plugin proxies that implement the given interface.private Result<Processor.CL>
getLoader
(org.osgi.resource.Capability cap) private static Method
private ProgressPlugin.Task
-
Field Details
-
logger
static final org.slf4j.Logger logger -
close
-
workspace
-
loaders
-
-
Constructor Details
-
WorkspaceExternalPluginHandler
WorkspaceExternalPluginHandler(Workspace workspace)
-
-
Method Details
-
call
-
call
public Result<Integer> call(String mainClass, org.osgi.framework.VersionRange range, Processor context, Map<String, String> attrs, List<String> args, InputStream stdin, OutputStream stdout, OutputStream stderr) -
getTask
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
-
getImplementations
Returns list of external plugin proxies that implement the given interface. The proxies will load the actual plugin on demand when used. That is, the plugins will be quite cheap unless used.- Parameters:
interf
- the interface listed in `-plugin`.attrs
- the attributes from the that interface, the name specifies the name of the plugin, wildcards allowed- Returns:
- a list of plugins loaded from the external plugin set
-
load
-
getLoader
-
getMethod
-