Package org.jclouds.osgi
Class MetadataBundleListener
java.lang.Object
org.jclouds.osgi.MetadataBundleListener
- All Implemented Interfaces:
EventListener,org.osgi.framework.BundleListener
A
BundleListener that listens for BundleEvent and searches for
ProviderMetadata and ApiMetadata in newly installed Bundles.
This is used as a workaround for OSGi environments where the ServiceLoader cannot cross bundle boundaries.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddApiListenerListener(ApiListener listener) Adds aApiListenerand notifies it of existingApiMetadata.voidaddProviderListener(ProviderListener listener) Adds aProviderListenerand notifies it of existingProviderMetadata.voidbundleChanged(org.osgi.framework.BundleEvent event) listApiMetadata(org.osgi.framework.Bundle bundle) Creates an instance ofApiMetadatafrom theBundle.listProviderMetadata(org.osgi.framework.Bundle bundle) Creates an instance ofProviderMetadatafrom theBundle.voidremoveApiListenerListener(ApiListener listener) Removes theApiListenervoidremoveProviderListener(ProviderListener listener) Removes theProviderListenervoidstart(org.osgi.framework.BundleContext bundleContext) Starts the listener.voidstop(org.osgi.framework.BundleContext bundleContext) Stops the listener.
-
Constructor Details
-
MetadataBundleListener
public MetadataBundleListener()
-
-
Method Details
-
start
public void start(org.osgi.framework.BundleContext bundleContext) Starts the listener. Checks the bundles that are already active and registersProviderMetadataandApiMetadatafound. Registers the itself as aBundleListener.- Parameters:
bundleContext-
-
stop
public void stop(org.osgi.framework.BundleContext bundleContext) Stops the listener. Removes itself from theBundleListeners. Clears metadata maps and listeners lists.- Parameters:
bundleContext-
-
bundleChanged
public void bundleChanged(org.osgi.framework.BundleEvent event) - Specified by:
bundleChangedin interfaceorg.osgi.framework.BundleListener
-
listProviderMetadata
Creates an instance ofProviderMetadatafrom theBundle.- Parameters:
bundle-- Returns:
-
listApiMetadata
Creates an instance ofApiMetadatafrom theBundle.- Parameters:
bundle-- Returns:
-
addProviderListener
Adds aProviderListenerand notifies it of existingProviderMetadata.- Parameters:
listener- The listener.
-
removeProviderListener
Removes theProviderListener- Parameters:
listener- The listener
-
addApiListenerListener
Adds aApiListenerand notifies it of existingApiMetadata.- Parameters:
listener-
-
removeApiListenerListener
Removes theApiListener- Parameters:
listener-
-