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-
 
 - 
 
 -