/** * Adds a {@link ApiListener} and notifies it of existing {@link ApiMetadata}. * * @param listener */ public synchronized void addApiListenerListener(ApiListener listener) { apiListeners.add(listener); for (ApiMetadata metadata : apiMetadataMap.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 ApiListener} and notifies it of existing {@link ApiMetadata}. * * @param listener */ public synchronized void addApiListenerListener(ApiListener listener) { apiListeners.add(listener); for (ApiMetadata metadata : apiMetadataMap.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 ApiListener} and notifies it of existing {@link ApiMetadata}. * * @param listener */ public synchronized void addApiListenerListener(ApiListener listener) { apiListeners.add(listener); for (ApiMetadata metadata : apiMetadataMap.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 ApiListener} and notifies it of existing {@link ApiMetadata}. * * @param listener */ public synchronized void addApiListenerListener(ApiListener listener) { apiListeners.add(listener); for (ApiMetadata metadata : apiMetadataMap.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 ApiListener} and notifies it of existing {@link ApiMetadata}. * * @param listener */ public synchronized void addApiListenerListener(ApiListener listener) { apiListeners.add(listener); for (ApiMetadata metadata : apiMetadataMap.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 ApiListener} and notifies it of existing {@link ApiMetadata}. * * @param listener */ public synchronized void addApiListenerListener(ApiListener listener) { apiListeners.add(listener); for (ApiMetadata metadata : apiMetadataMap.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 testApiListener() throws Exception { MetadataBundleListener listener = new MetadataBundleListener(); ApiListener apiListener = createMock(ApiListener.class); listener.addApiListenerListener(apiListener); Bundle bundle = createMock(Bundle.class); expect(bundle.getBundleId()).andReturn(10L).anyTimes(); expect(bundle.getEntry("/META-INF/services/org.jclouds.providers.ProviderMetadata")).andReturn(null).anyTimes(); expect(bundle.getEntry("/META-INF/services/org.jclouds.apis.ApiMetadata")).andReturn( getClass().getResource("/META-INF/services/org.jclouds.apis.ApiMetadata")).anyTimes(); expect(bundle.loadClass("org.jclouds.apis.JcloudsTestBlobStoreApiMetadata")).andReturn( JcloudsTestBlobStoreApiMetadata.class).anyTimes(); expect(bundle.loadClass("org.jclouds.apis.JcloudsTestComputeApiMetadata")).andReturn( JcloudsTestComputeApiMetadata.class).anyTimes(); expect(bundle.loadClass("org.jclouds.apis.JcloudsTestYetAnotherComputeApiMetadata")).andReturn( JcloudsTestYetAnotherComputeApiMetadata.class).anyTimes(); apiListener.added(anyObject(JcloudsTestBlobStoreApiMetadata.class)); expectLastCall().times(1); apiListener.added(anyObject(JcloudsTestBlobStoreApiMetadata.class)); expectLastCall().times(1); apiListener.added(anyObject(JcloudsTestComputeApiMetadata.class)); expectLastCall().times(1); replay(bundle, apiListener); BundleEvent event = new BundleEvent(BundleEvent.STARTED, bundle); listener.bundleChanged(event); verify(bundle, apiListener); }
@SuppressWarnings("rawtypes") @Test public void testApiListener() throws Exception { MetadataBundleListener listener = new MetadataBundleListener(); ApiListener apiListener = createMock(ApiListener.class); listener.addApiListenerListener(apiListener); Bundle bundle = createMock(Bundle.class); expect(bundle.getBundleId()).andReturn(10L).anyTimes(); expect(bundle.getEntry("/META-INF/services/org.jclouds.providers.ProviderMetadata")).andReturn(null).anyTimes(); expect(bundle.getEntry("/META-INF/services/org.jclouds.apis.ApiMetadata")).andReturn( getClass().getResource("/META-INF/services/org.jclouds.apis.ApiMetadata")).anyTimes(); expect((Class) bundle.loadClass("org.jclouds.apis.JcloudsTestBlobStoreApiMetadata")).andReturn( JcloudsTestBlobStoreApiMetadata.class).anyTimes(); expect((Class) bundle.loadClass("org.jclouds.apis.JcloudsTestComputeApiMetadata")).andReturn( JcloudsTestComputeApiMetadata.class).anyTimes(); expect((Class) bundle.loadClass("org.jclouds.apis.JcloudsTestYetAnotherComputeApiMetadata")).andReturn( JcloudsTestYetAnotherComputeApiMetadata.class).anyTimes(); apiListener.added(anyObject(JcloudsTestBlobStoreApiMetadata.class)); expectLastCall().times(1); apiListener.added(anyObject(JcloudsTestBlobStoreApiMetadata.class)); expectLastCall().times(1); apiListener.added(anyObject(JcloudsTestComputeApiMetadata.class)); expectLastCall().times(1); replay(bundle, apiListener); BundleEvent event = new BundleEvent(BundleEvent.STARTED, bundle); listener.bundleChanged(event); verify(bundle, apiListener); }