Package org.jclouds.osgi
Class MetadataBundleListener
- java.lang.Object
-
- org.jclouds.osgi.MetadataBundleListener
-
- All Implemented Interfaces:
EventListener,org.osgi.framework.BundleListener
public class MetadataBundleListener extends Object implements org.osgi.framework.BundleListener
ABundleListenerthat listens forBundleEventand searches forProviderMetadataandApiMetadatain newly installed Bundles. This is used as a workaround for OSGi environments where the ServiceLoader cannot cross bundle boundaries.
-
-
Constructor Summary
Constructors Constructor Description MetadataBundleListener()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddApiListenerListener(ApiListener listener)Adds aApiListenerand notifies it of existingApiMetadata.voidaddProviderListener(ProviderListener listener)Adds aProviderListenerand notifies it of existingProviderMetadata.voidbundleChanged(org.osgi.framework.BundleEvent event)Iterable<ApiMetadata>listApiMetadata(org.osgi.framework.Bundle bundle)Creates an instance ofApiMetadatafrom theBundle.Iterable<ProviderMetadata>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.
-
-
-
Method Detail
-
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
public Iterable<ProviderMetadata> listProviderMetadata(org.osgi.framework.Bundle bundle)
Creates an instance ofProviderMetadatafrom theBundle.- Parameters:
bundle-- Returns:
-
listApiMetadata
public Iterable<ApiMetadata> listApiMetadata(org.osgi.framework.Bundle bundle)
Creates an instance ofApiMetadatafrom theBundle.- Parameters:
bundle-- Returns:
-
addProviderListener
public void addProviderListener(ProviderListener listener)
Adds aProviderListenerand notifies it of existingProviderMetadata.- Parameters:
listener- The listener.
-
removeProviderListener
public void removeProviderListener(ProviderListener listener)
Removes theProviderListener- Parameters:
listener- The listener
-
addApiListenerListener
public void addApiListenerListener(ApiListener listener)
Adds aApiListenerand notifies it of existingApiMetadata.- Parameters:
listener-
-
removeApiListenerListener
public void removeApiListenerListener(ApiListener listener)
Removes theApiListener- Parameters:
listener-
-
-