public final class PluginRegistryImpl extends java.lang.Object implements PluginRegistry
Configuration parameters
This registry implementation supports following configuration parameters:
true.registering
or un-registering plug-ins.
If this is false, the registration errors will be stored
in the internal report that is available with
PluginRegistry.checkIntegrity(PathResolver) method.
The default parameter value is false.ObjectFactory.createRegistry()PluginRegistry.RegistryChangeData, PluginRegistry.RegistryChangeListener| Constructor and Description |
|---|
PluginRegistryImpl()
Creates plug-in registry object.
|
| Modifier and Type | Method and Description |
|---|---|
IntegrityCheckReport |
checkIntegrity(PathResolver pathResolver)
Performs integrity check of all registered plug-ins and generates result
as a collection of standard report items.
|
IntegrityCheckReport |
checkIntegrity(PathResolver pathResolver,
boolean includeRegistrationReport)
Performs integrity check of all registered plug-ins and generates result
as a collection of standard report items.
|
void |
configure(ExtendedProperties config)
Configures this registry instance.
|
java.lang.String |
extractId(java.lang.String uniqueId)
Extracts plug-in element ID from some unique identifier.
|
java.lang.String |
extractPluginId(java.lang.String uniqueId)
Extracts plug-in ID from some unique identifier.
|
Version |
extractVersion(java.lang.String uniqueId)
Extracts plug-in version identifier from some unique identifier (plug-in
or plug-in fragment).
|
java.util.Collection<PluginDescriptor> |
getDependingPlugins(PluginDescriptor descr)
Utility method that recursively collects all plug-ins that depends on the
given plug-in.
|
ExtensionPoint |
getExtensionPoint(java.lang.String uniqueId)
Looks for extension point.
|
ExtensionPoint |
getExtensionPoint(java.lang.String pluginId,
java.lang.String pointId)
Looks for extension point.
|
PluginDescriptor |
getPluginDescriptor(java.lang.String pluginId)
Returns descriptor of plug-in with given ID.
|
java.util.Collection<PluginDescriptor> |
getPluginDescriptors()
Returns collection of descriptors of all plug-ins that was successfully
populated by this registry.
|
java.util.Collection<PluginFragment> |
getPluginFragments()
Returns collection of descriptors of all plug-in fragments that was
successfully populated by this registry.
|
IntegrityCheckReport |
getRegistrationReport() |
boolean |
isExtensionPointAvailable(java.lang.String uniqueId)
Checks if extension point exists and is in valid state.
|
boolean |
isExtensionPointAvailable(java.lang.String pluginId,
java.lang.String pointId)
Checks if extension point exists and is in valid state.
|
boolean |
isPluginDescriptorAvailable(java.lang.String pluginId)
Checks if plug-in exists and is in valid state.
|
java.lang.String |
makeUniqueId(java.lang.String pluginId,
java.lang.String id)
Constructs unique identifier for some plug-in element from it's ID.
|
java.lang.String |
makeUniqueId(java.lang.String pluginId,
Version version)
Constructs unique identifier for plug-in with given ID.
|
ManifestInfo |
readManifestInfo(java.net.URL url)
Reads basic information from a plug-in or plug-in fragment manifest.
|
java.util.Map<java.lang.String,Identity> |
register(java.net.URL[] manifests)
General algorithm:
Collect all currently registered extension points.
Parse given URL's as XML content files and separate them on plug-in
and plug-in fragment descriptors.
Process new plug-in descriptors first:
Instantiate new PluginDescriptorImpl object.
Handle versions correctly - register new descriptor as most
recent version or as an old version.
If other versions of the same plug-in already registered, take
their fragments and register them with this version.
Process new plug-in fragments next:
Instantiate new PluginFragmentImpl object.
Check if older version of the same fragment already registered.
|
void |
registerListener(PluginRegistry.RegistryChangeListener listener)
Registers plug-in registry change event listener.
|
java.util.Collection<java.lang.String> |
unregister(java.lang.String[] ids)
Unregisters plug-ins and plug-in fragments with given ID's (including
depending plug-ins and plug-in fragments).
|
void |
unregisterListener(PluginRegistry.RegistryChangeListener listener)
Unregisters registry change event listener.
|
public void configure(ExtendedProperties config)
PluginRegistryobject factory implementation.configure in interface PluginRegistryconfig - registry configuration dataPluginRegistry.configure(
ExtendedProperties)public ManifestInfo readManifestInfo(java.net.URL url) throws ManifestProcessingException
PluginRegistryreadManifestInfo in interface PluginRegistryurl - manifest data URLManifestProcessingException - if manifest data can't be readPluginRegistry.readManifestInfo(
java.net.URL)public java.util.Map<java.lang.String,Identity> register(java.net.URL[] manifests) throws ManifestProcessingException
register in interface PluginRegistrymanifests - array of manifest locationsManifestProcessingException - if manifest processing error has occurred (optional behavior)PluginRegistry.register(java.net.URL[])public java.util.Collection<java.lang.String> unregister(java.lang.String[] ids)
PluginRegistryunregister in interface PluginRegistryids - ID's of plug-ins and plug-in fragments to be unregisteredPluginRegistry.unregister(java.lang.String[])public ExtensionPoint getExtensionPoint(java.lang.String pluginId, java.lang.String pointId)
PluginRegistryIllegalArgumentException if requested extension point can't be
found or is in invalid state.getExtensionPoint in interface PluginRegistrypluginId - plug-in IDpointId - extension point IDPluginRegistry.getExtensionPoint(
java.lang.String, java.lang.String)public ExtensionPoint getExtensionPoint(java.lang.String uniqueId)
PluginRegistrygetExtensionPoint in interface PluginRegistryuniqueId - extension point unique IDPluginRegistry.getExtensionPoint(java.lang.String)public boolean isExtensionPointAvailable(java.lang.String pluginId,
java.lang.String pointId)
PluginRegistrytrue, the method
PluginRegistry.getExtensionPoint(String, String) should always return valid
extension point.isExtensionPointAvailable in interface PluginRegistrypluginId - plug-in IDpointId - extension point IDtrue if extension point exists and validPluginRegistry.isExtensionPointAvailable(
java.lang.String, java.lang.String)public boolean isExtensionPointAvailable(java.lang.String uniqueId)
PluginRegistryisExtensionPointAvailable in interface PluginRegistryuniqueId - extension point unique IDtrue if extension point exists and validPluginRegistry.isExtensionPointAvailable(
java.lang.String)public PluginDescriptor getPluginDescriptor(java.lang.String pluginId)
PluginRegistryIllegalArgumentException. In other words, this method shouldn't
return null.getPluginDescriptor in interface PluginRegistrypluginId - plug-id IDPluginRegistry.getPluginDescriptor(java.lang.String)public boolean isPluginDescriptorAvailable(java.lang.String pluginId)
PluginRegistrytrue, the method PluginRegistry.getPluginDescriptor(String)
should always return valid plug-in descriptor.isPluginDescriptorAvailable in interface PluginRegistrypluginId - plug-in IDtrue if plug-in exists and validPluginRegistry.isPluginDescriptorAvailable(java.lang.String)public java.util.Collection<PluginDescriptor> getPluginDescriptors()
PluginRegistrygetPluginDescriptors in interface PluginRegistryPluginDescriptor objectsPluginRegistry.getPluginDescriptors()public java.util.Collection<PluginFragment> getPluginFragments()
PluginRegistrygetPluginFragments in interface PluginRegistryPluginFragment objectsPluginRegistry.getPluginFragments()public java.util.Collection<PluginDescriptor> getDependingPlugins(PluginDescriptor descr)
PluginRegistrygetDependingPlugins in interface PluginRegistrydescr - descriptor of plug-in to collect dependencies forplug-in descriptors that
depend on given plug-inPluginRegistry.getDependingPlugins(
org.java.plugin.registry.PluginDescriptor)public IntegrityCheckReport checkIntegrity(PathResolver pathResolver)
PluginRegistrycheckIntegrity in interface PluginRegistrypathResolver - optional path resolverPluginRegistry.checkIntegrity(
org.java.plugin.PathResolver)public IntegrityCheckReport checkIntegrity(PathResolver pathResolver, boolean includeRegistrationReport)
PluginRegistrycheckIntegrity in interface PluginRegistrypathResolver - optional path resolverincludeRegistrationReport - if true, the plug-ins registration report will
be included into resulting reportPluginRegistry.checkIntegrity(
org.java.plugin.PathResolver, boolean)public IntegrityCheckReport getRegistrationReport()
getRegistrationReport in interface PluginRegistryPluginRegistry.getRegistrationReport()public java.lang.String makeUniqueId(java.lang.String pluginId,
java.lang.String id)
PluginRegistrymakeUniqueId in interface PluginRegistrypluginId - plug-in IDid - element IDPluginRegistry.makeUniqueId(
java.lang.String, java.lang.String)public java.lang.String makeUniqueId(java.lang.String pluginId,
Version version)
PluginRegistrymakeUniqueId in interface PluginRegistrypluginId - plug-in IDversion - plug-in version identifierPluginRegistry.makeUniqueId(
java.lang.String, org.java.plugin.registry.Version)public java.lang.String extractPluginId(java.lang.String uniqueId)
PluginRegistryextractPluginId in interface PluginRegistryuniqueId - unique IDPluginRegistry.extractPluginId(java.lang.String)public java.lang.String extractId(java.lang.String uniqueId)
PluginRegistryextractId in interface PluginRegistryuniqueId - unique IDPluginRegistry.extractId(java.lang.String)public Version extractVersion(java.lang.String uniqueId)
PluginRegistryextractVersion in interface PluginRegistryuniqueId - unique IDPluginRegistry.extractVersion(java.lang.String)public void registerListener(PluginRegistry.RegistryChangeListener listener)
PluginRegistryIllegalArgumentException.registerListener in interface PluginRegistrylistener - new registry change event listenerPluginRegistry.registerListener(
org.java.plugin.registry.PluginRegistry.RegistryChangeListener)public void unregisterListener(PluginRegistry.RegistryChangeListener listener)
PluginRegistryIllegalArgumentException.unregisterListener in interface PluginRegistrylistener - registered listenerPluginRegistry.unregisterListener(
org.java.plugin.registry.PluginRegistry.RegistryChangeListener)Copyright © 2004-2007 Dmitry Olshansky. All Rights Reserved.