/** * Adds a {@link ProviderListener} and notifies it of existing {@link ProviderMetadata}. * * @param listener * The listener. */ public synchronized void addProviderListener(ProviderListener listener) { providerListeners.add(listener); for (ProviderMetadata metadata : providerMetadataMap.values()) { listener.added(metadata); } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} registered under the {@link Bundle} id. If metadata * are found they are removed the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} * and {@link ApiListener} are notified. * * @param bundle */ private synchronized void removeBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : providerMetadataMap.removeAll(bundle.getBundleId())) { ProviderRegistry.unregisterProvider(providerMetadata); for (ProviderListener listener : providerListeners) { listener.removed(providerMetadata); } } for (ApiMetadata apiMetadata : apiMetadataMap.removeAll(bundle.getBundleId())) { ApiRegistry.unRegisterApi(apiMetadata); for (ApiListener listener : apiListeners) { listener.removed(apiMetadata); } } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} registered under the {@link Bundle} id. If metadata * are found they are removed the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} * and {@link ApiListener} are notified. * * @param bundle */ private synchronized void removeBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : providerMetadataMap.removeAll(bundle.getBundleId())) { ProviderRegistry.unregisterProvider(providerMetadata); for (ProviderListener listener : providerListeners) { listener.removed(providerMetadata); } } for (ApiMetadata apiMetadata : apiMetadataMap.removeAll(bundle.getBundleId())) { ApiRegistry.unRegisterApi(apiMetadata); for (ApiListener listener : apiListeners) { listener.removed(apiMetadata); } } }
/** * Adds a {@link ProviderListener} and notifies it of existing {@link ProviderMetadata}. * * @param listener * The listener. */ public synchronized void addProviderListener(ProviderListener listener) { providerListeners.add(listener); for (ProviderMetadata metadata : providerMetadataMap.values()) { listener.added(metadata); } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} registered under the {@link Bundle} id. If metadata * are found they are removed the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} * and {@link ApiListener} are notified. * * @param bundle */ private synchronized void removeBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : providerMetadataMap.removeAll(bundle.getBundleId())) { ProviderRegistry.unregisterProvider(providerMetadata); for (ProviderListener listener : providerListeners) { listener.removed(providerMetadata); } } for (ApiMetadata apiMetadata : apiMetadataMap.removeAll(bundle.getBundleId())) { ApiRegistry.unRegisterApi(apiMetadata); for (ApiListener listener : apiListeners) { listener.removed(apiMetadata); } } }
/** * Adds a {@link ProviderListener} and notifies it of existing {@link ProviderMetadata}. * * @param listener * The listener. */ public synchronized void addProviderListener(ProviderListener listener) { providerListeners.add(listener); for (ProviderMetadata metadata : providerMetadataMap.values()) { listener.added(metadata); } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} registered under the {@link Bundle} id. If metadata * are found they are removed the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} * and {@link ApiListener} are notified. * * @param bundle */ private synchronized void removeBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : providerMetadataMap.removeAll(bundle.getBundleId())) { ProviderRegistry.unregisterProvider(providerMetadata); for (ProviderListener listener : providerListeners) { listener.removed(providerMetadata); } } for (ApiMetadata apiMetadata : apiMetadataMap.removeAll(bundle.getBundleId())) { ApiRegistry.unRegisterApi(apiMetadata); for (ApiListener listener : apiListeners) { listener.removed(apiMetadata); } } }
/** * Adds a {@link ProviderListener} and notifies it of existing {@link ProviderMetadata}. * * @param listener * The listener. */ public synchronized void addProviderListener(ProviderListener listener) { providerListeners.add(listener); for (ProviderMetadata metadata : providerMetadataMap.values()) { listener.added(metadata); } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} registered under the {@link Bundle} id. If metadata * are found they are removed the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} * and {@link ApiListener} are notified. * * @param bundle */ private synchronized void removeBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : providerMetadataMap.removeAll(bundle.getBundleId())) { ProviderRegistry.unregisterProvider(providerMetadata); for (ProviderListener listener : providerListeners) { listener.removed(providerMetadata); } } for (ApiMetadata apiMetadata : apiMetadataMap.removeAll(bundle.getBundleId())) { ApiRegistry.unRegisterApi(apiMetadata); for (ApiListener listener : apiListeners) { listener.removed(apiMetadata); } } }
/** * Adds a {@link ProviderListener} and notifies it of existing {@link ProviderMetadata}. * * @param listener * The listener. */ public synchronized void addProviderListener(ProviderListener listener) { providerListeners.add(listener); for (ProviderMetadata metadata : providerMetadataMap.values()) { listener.added(metadata); } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} registered under the {@link Bundle} id. If metadata * are found they are removed the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} * and {@link ApiListener} are notified. * * @param bundle */ private synchronized void removeBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : providerMetadataMap.removeAll(bundle.getBundleId())) { ProviderRegistry.unregisterProvider(providerMetadata); for (ProviderListener listener : providerListeners) { listener.removed(providerMetadata); } } for (ApiMetadata apiMetadata : apiMetadataMap.removeAll(bundle.getBundleId())) { ApiRegistry.unRegisterApi(apiMetadata); for (ApiListener listener : apiListeners) { listener.removed(apiMetadata); } } }
/** * Adds a {@link ProviderListener} and notifies it of existing {@link ProviderMetadata}. * * @param listener * The listener. */ public synchronized void addProviderListener(ProviderListener listener) { providerListeners.add(listener); for (ProviderMetadata metadata : providerMetadataMap.values()) { listener.added(metadata); } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} inside the {@link Bundle}. If metadata are found * they are registered in the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} and * {@link ApiListener} are notified. * * @param bundle */ private synchronized void addBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : listProviderMetadata(bundle)) { if (providerMetadata != null) { ProviderRegistry.registerProvider(providerMetadata); providerMetadataMap.put(bundle.getBundleId(), providerMetadata); for (ProviderListener listener : providerListeners) { listener.added(providerMetadata); } } } for (ApiMetadata apiMetadata : listApiMetadata(bundle)) { if (apiMetadata != null) { ApiRegistry.registerApi(apiMetadata); apiMetadataMap.put(bundle.getBundleId(), apiMetadata); for (ApiListener listener : apiListeners) { listener.added(apiMetadata); } } } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} inside the {@link Bundle}. If metadata are found * they are registered in the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} and * {@link ApiListener} are notified. * * @param bundle */ private synchronized void addBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : listProviderMetadata(bundle)) { if (providerMetadata != null) { ProviderRegistry.registerProvider(providerMetadata); providerMetadataMap.put(bundle.getBundleId(), providerMetadata); for (ProviderListener listener : providerListeners) { listener.added(providerMetadata); } } } for (ApiMetadata apiMetadata : listApiMetadata(bundle)) { if (apiMetadata != null) { ApiRegistry.registerApi(apiMetadata); apiMetadataMap.put(bundle.getBundleId(), apiMetadata); for (ApiListener listener : apiListeners) { listener.added(apiMetadata); } } } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} inside the {@link Bundle}. If metadata are found * they are registered in the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} and * {@link ApiListener} are notified. * * @param bundle */ private synchronized void addBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : listProviderMetadata(bundle)) { if (providerMetadata != null) { ProviderRegistry.registerProvider(providerMetadata); providerMetadataMap.put(bundle.getBundleId(), providerMetadata); for (ProviderListener listener : providerListeners) { listener.added(providerMetadata); } } } for (ApiMetadata apiMetadata : listApiMetadata(bundle)) { if (apiMetadata != null) { ApiRegistry.registerApi(apiMetadata); apiMetadataMap.put(bundle.getBundleId(), apiMetadata); for (ApiListener listener : apiListeners) { listener.added(apiMetadata); } } } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} inside the {@link Bundle}. If metadata are found * they are registered in the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} and * {@link ApiListener} are notified. * * @param bundle */ private synchronized void addBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : listProviderMetadata(bundle)) { if (providerMetadata != null) { ProviderRegistry.registerProvider(providerMetadata); providerMetadataMap.put(bundle.getBundleId(), providerMetadata); for (ProviderListener listener : providerListeners) { listener.added(providerMetadata); } } } for (ApiMetadata apiMetadata : listApiMetadata(bundle)) { if (apiMetadata != null) { ApiRegistry.registerApi(apiMetadata); apiMetadataMap.put(bundle.getBundleId(), apiMetadata); for (ApiListener listener : apiListeners) { listener.added(apiMetadata); } } } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} inside the {@link Bundle}. If metadata are found * they are registered in the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} and * {@link ApiListener} are notified. * * @param bundle */ private synchronized void addBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : listProviderMetadata(bundle)) { if (providerMetadata != null) { ProviderRegistry.registerProvider(providerMetadata); providerMetadataMap.put(bundle.getBundleId(), providerMetadata); for (ProviderListener listener : providerListeners) { listener.added(providerMetadata); } } } for (ApiMetadata apiMetadata : listApiMetadata(bundle)) { if (apiMetadata != null) { ApiRegistry.registerApi(apiMetadata); apiMetadataMap.put(bundle.getBundleId(), apiMetadata); for (ApiListener listener : apiListeners) { listener.added(apiMetadata); } } } }
/** * Searches for {@link ProviderMetadata} and {@link ApiMetadata} inside the {@link Bundle}. If metadata are found * they are registered in the {@link ProviderRegistry} and {@link ApiRegistry}. Also the {@link ProviderListener} and * {@link ApiListener} are notified. * * @param bundle */ private synchronized void addBundle(Bundle bundle) { for (ProviderMetadata providerMetadata : listProviderMetadata(bundle)) { if (providerMetadata != null) { ProviderRegistry.registerProvider(providerMetadata); providerMetadataMap.put(bundle.getBundleId(), providerMetadata); for (ProviderListener listener : providerListeners) { listener.added(providerMetadata); } } } for (ApiMetadata apiMetadata : listApiMetadata(bundle)) { if (apiMetadata != null) { ApiRegistry.registerApi(apiMetadata); apiMetadataMap.put(bundle.getBundleId(), apiMetadata); for (ApiListener listener : apiListeners) { listener.added(apiMetadata); } } } }
@Test public void testProviderListener() throws Exception { MetadataBundleListener listener = new MetadataBundleListener(); ProviderListener providerListener = createMock(ProviderListener.class); listener.addProviderListener(providerListener); Bundle bundle = createMock(Bundle.class); expect(bundle.getBundleId()).andReturn(10L).anyTimes(); expect(bundle.getEntry("/META-INF/services/org.jclouds.providers.ProviderMetadata")).andReturn( getClass().getResource("/META-INF/services/org.jclouds.providers.ProviderMetadata")).anyTimes(); expect(bundle.getEntry("/META-INF/services/org.jclouds.apis.ApiMetadata")).andReturn(null).anyTimes(); expect(bundle.loadClass("org.jclouds.providers.JcloudsTestBlobStoreProviderMetadata")).andReturn( JcloudsTestBlobStoreProviderMetadata.class).anyTimes(); expect(bundle.loadClass("org.jclouds.providers.JcloudsTestComputeProviderMetadata")).andReturn( JcloudsTestComputeProviderMetadata.class).anyTimes(); expect(bundle.loadClass("org.jclouds.providers.JcloudsTestYetAnotherComputeProviderMetadata")).andReturn( JcloudsTestYetAnotherComputeProviderMetadata.class).anyTimes(); providerListener.added(anyObject(JcloudsTestBlobStoreProviderMetadata.class)); expectLastCall().times(1); providerListener.added(anyObject(JcloudsTestComputeProviderMetadata.class)); expectLastCall().times(1); providerListener.added(anyObject(JcloudsTestYetAnotherComputeProviderMetadata.class)); expectLastCall().times(1); replay(bundle, providerListener); BundleEvent event = new BundleEvent(BundleEvent.STARTED, bundle); listener.bundleChanged(event); verify(bundle, providerListener); }
@SuppressWarnings("rawtypes") @Test public void testProviderListener() throws Exception { MetadataBundleListener listener = new MetadataBundleListener(); ProviderListener providerListener = createMock(ProviderListener.class); listener.addProviderListener(providerListener); Bundle bundle = createMock(Bundle.class); expect(bundle.getBundleId()).andReturn(10L).anyTimes(); expect(bundle.getEntry("/META-INF/services/org.jclouds.providers.ProviderMetadata")).andReturn( getClass().getResource("/META-INF/services/org.jclouds.providers.ProviderMetadata")).anyTimes(); expect(bundle.getEntry("/META-INF/services/org.jclouds.apis.ApiMetadata")).andReturn(null).anyTimes(); expect((Class) bundle.loadClass("org.jclouds.providers.JcloudsTestBlobStoreProviderMetadata")).andReturn( JcloudsTestBlobStoreProviderMetadata.class).anyTimes(); expect((Class) bundle.loadClass("org.jclouds.providers.JcloudsTestComputeProviderMetadata")).andReturn( JcloudsTestComputeProviderMetadata.class).anyTimes(); expect((Class) bundle.loadClass("org.jclouds.providers.JcloudsTestYetAnotherComputeProviderMetadata")).andReturn( JcloudsTestYetAnotherComputeProviderMetadata.class).anyTimes(); providerListener.added(anyObject(JcloudsTestBlobStoreProviderMetadata.class)); expectLastCall().times(1); providerListener.added(anyObject(JcloudsTestComputeProviderMetadata.class)); expectLastCall().times(1); providerListener.added(anyObject(JcloudsTestYetAnotherComputeProviderMetadata.class)); expectLastCall().times(1); replay(bundle, providerListener); BundleEvent event = new BundleEvent(BundleEvent.STARTED, bundle); listener.bundleChanged(event); verify(bundle, providerListener); }