Delete deprecated UsageManager.UsageListener - Instead, use org.apache.brooklyn.core.mgmt.usage.UsageListener
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/1ffacc62 Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/1ffacc62 Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/1ffacc62 Branch: refs/heads/master Commit: 1ffacc629fa1725121ee3d7d57f2d349d2aede4f Parents: 147f9ec Author: Aled Sage <[email protected]> Authored: Wed Aug 19 18:35:05 2015 +0100 Committer: Aled Sage <[email protected]> Committed: Thu Aug 20 12:04:12 2015 +0100 ---------------------------------------------------------------------- .../core/mgmt/internal/LocalUsageManager.java | 55 +++++--------- .../internal/NonDeploymentUsageManager.java | 17 +---- .../brooklyn/core/mgmt/usage/UsageManager.java | 77 ++------------------ .../usage/ApplicationUsageTrackingTest.java | 44 ----------- .../mgmt/usage/LocationUsageTrackingTest.java | 42 +---------- .../usage/RecordingLegacyUsageListener.java | 70 ------------------ .../core/mgmt/usage/RecordingUsageListener.java | 3 +- .../test/core/mgmt/usage/UsageListenerTest.java | 39 +--------- 8 files changed, 34 insertions(+), 313 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ffacc62/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalUsageManager.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalUsageManager.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalUsageManager.java index ba47c02..6793bfc 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalUsageManager.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalUsageManager.java @@ -46,6 +46,7 @@ import org.apache.brooklyn.core.mgmt.ManagementContextInjectable; import org.apache.brooklyn.core.mgmt.entitlement.Entitlements; import org.apache.brooklyn.core.mgmt.usage.ApplicationUsage; import org.apache.brooklyn.core.mgmt.usage.LocationUsage; +import org.apache.brooklyn.core.mgmt.usage.UsageListener; import org.apache.brooklyn.core.mgmt.usage.UsageManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -77,7 +78,7 @@ public class LocalUsageManager implements UsageManager { private static final Logger log = LoggerFactory.getLogger(LocalUsageManager.class); - private static class ApplicationMetadataImpl implements org.apache.brooklyn.core.mgmt.usage.UsageListener.ApplicationMetadata { + private static class ApplicationMetadataImpl implements UsageListener.ApplicationMetadata { private final Application app; private String applicationId; private String applicationName; @@ -113,7 +114,7 @@ public class LocalUsageManager implements UsageManager { } } - private static class LocationMetadataImpl implements org.apache.brooklyn.core.mgmt.usage.UsageListener.LocationMetadata { + private static class LocationMetadataImpl implements UsageListener.LocationMetadata { private final Location loc; private String locationId; private Map<String, String> metadata; @@ -137,17 +138,13 @@ public class LocalUsageManager implements UsageManager { // Register a coercion from String->UsageListener, so that USAGE_LISTENERS defined in brooklyn.properties // will be instantiated, given their class names. static { - TypeCoercions.registerAdapter(String.class, org.apache.brooklyn.core.mgmt.usage.UsageListener.class, new Function<String, org.apache.brooklyn.core.mgmt.usage.UsageListener>() { - @Override public org.apache.brooklyn.core.mgmt.usage.UsageListener apply(String input) { + TypeCoercions.registerAdapter(String.class, UsageListener.class, new Function<String, UsageListener>() { + @Override public UsageListener apply(String input) { // TODO Want to use classLoader = mgmt.getCatalog().getRootClassLoader(); ClassLoader classLoader = LocalUsageManager.class.getClassLoader(); Optional<Object> result = Reflections.invokeConstructorWithArgs(classLoader, input); if (result.isPresent()) { - if (result.get() instanceof org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener) { - return new org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener.UsageListenerAdapter((org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener) result.get()); - } else { - return (org.apache.brooklyn.core.mgmt.usage.UsageListener) result.get(); - } + return (UsageListener) result.get(); } else { throw new IllegalStateException("Failed to create UsageListener from class name '"+input+"' using no-arg constructor"); } @@ -165,7 +162,7 @@ public class LocalUsageManager implements UsageManager { private final Object mutex = new Object(); - private final List<org.apache.brooklyn.core.mgmt.usage.UsageListener> listeners = Lists.newCopyOnWriteArrayList(); + private final List<UsageListener> listeners = Lists.newCopyOnWriteArrayList(); private final AtomicInteger listenerQueueSize = new AtomicInteger(); @@ -184,14 +181,12 @@ public class LocalUsageManager implements UsageManager { if (listener instanceof ManagementContextInjectable) { ((ManagementContextInjectable)listener).injectManagementContext(managementContext); } - if (listener instanceof org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener) { - addUsageListener((org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener)listener); - } else if (listener instanceof org.apache.brooklyn.core.mgmt.usage.UsageListener) { - addUsageListener((org.apache.brooklyn.core.mgmt.usage.UsageListener)listener); + if (listener instanceof UsageListener) { + addUsageListener((UsageListener)listener); } else if (listener == null) { throw new NullPointerException("null listener in config "+UsageManager.USAGE_LISTENERS); } else { - throw new ClassCastException("listener "+listener+" of type "+listener.getClass()+" is not of type "+org.apache.brooklyn.core.mgmt.usage.UsageListener.class.getName()); + throw new ClassCastException("listener "+listener+" of type "+listener.getClass()+" is not of type "+UsageListener.class.getName()); } } } @@ -204,7 +199,7 @@ public class LocalUsageManager implements UsageManager { log.info("Usage manager waiting for "+listenerQueueSize+" listener events for up to "+timeout); } List<ListenableFuture<?>> futures = Lists.newArrayList(); - for (final org.apache.brooklyn.core.mgmt.usage.UsageListener listener : listeners) { + for (final UsageListener listener : listeners) { ListenableFuture<?> future = listenerExecutor.submit(new Runnable() { public void run() { if (listener instanceof Closeable) { @@ -227,8 +222,8 @@ public class LocalUsageManager implements UsageManager { } } - private void execOnListeners(final Function<org.apache.brooklyn.core.mgmt.usage.UsageListener, Void> job) { - for (final org.apache.brooklyn.core.mgmt.usage.UsageListener listener : listeners) { + private void execOnListeners(final Function<UsageListener, Void> job) { + for (final UsageListener listener : listeners) { listenerQueueSize.incrementAndGet(); listenerExecutor.execute(new Runnable() { public void run() { @@ -257,8 +252,8 @@ public class LocalUsageManager implements UsageManager { usage.addEvent(event); eventMap.put(app.getId(), usage); - execOnListeners(new Function<org.apache.brooklyn.core.mgmt.usage.UsageListener, Void>() { - public Void apply(org.apache.brooklyn.core.mgmt.usage.UsageListener listener) { + execOnListeners(new Function<UsageListener, Void>() { + public Void apply(UsageListener listener) { listener.onApplicationEvent(new ApplicationMetadataImpl(Entities.proxy(app)), event); return null; } @@ -319,8 +314,8 @@ public class LocalUsageManager implements UsageManager { usage.addEvent(event); usageMap.put(loc.getId(), usage); - execOnListeners(new Function<org.apache.brooklyn.core.mgmt.usage.UsageListener, Void>() { - public Void apply(org.apache.brooklyn.core.mgmt.usage.UsageListener listener) { + execOnListeners(new Function<UsageListener, Void>() { + public Void apply(UsageListener listener) { listener.onLocationEvent(new LocationMetadataImpl(loc), event); return null; } @@ -397,24 +392,12 @@ public class LocalUsageManager implements UsageManager { } @Override - @Deprecated - public void addUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener listener) { - addUsageListener(new org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener.UsageListenerAdapter(listener)); - } - - @Override - @Deprecated - public void removeUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener listener) { - removeUsageListener(new org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener.UsageListenerAdapter(listener)); - } - - @Override - public void addUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageListener listener) { + public void addUsageListener(UsageListener listener) { listeners.add(listener); } @Override - public void removeUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageListener listener) { + public void removeUsageListener(UsageListener listener) { listeners.remove(listener); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ffacc62/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/NonDeploymentUsageManager.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/NonDeploymentUsageManager.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/NonDeploymentUsageManager.java index df28363..abf602c 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/NonDeploymentUsageManager.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/NonDeploymentUsageManager.java @@ -25,6 +25,7 @@ import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.core.entity.lifecycle.Lifecycle; import org.apache.brooklyn.core.mgmt.usage.ApplicationUsage; import org.apache.brooklyn.core.mgmt.usage.LocationUsage; +import org.apache.brooklyn.core.mgmt.usage.UsageListener; import org.apache.brooklyn.core.mgmt.usage.UsageManager; import com.google.common.base.Predicate; @@ -101,19 +102,7 @@ public class NonDeploymentUsageManager implements UsageManager { } @Override - @Deprecated - public void addUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener listener) { - addUsageListener(new org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener.UsageListenerAdapter(listener)); - } - - @Override - @Deprecated - public void removeUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener listener) { - removeUsageListener(new org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener.UsageListenerAdapter(listener)); - } - - @Override - public void addUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageListener listener) { + public void addUsageListener(UsageListener listener) { if (isInitialManagementContextReal()) { initialManagementContext.getUsageManager().addUsageListener(listener); } else { @@ -122,7 +111,7 @@ public class NonDeploymentUsageManager implements UsageManager { } @Override - public void removeUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageListener listener) { + public void removeUsageListener(UsageListener listener) { if (isInitialManagementContextReal()) { initialManagementContext.getUsageManager().removeUsageListener(listener); } else { http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ffacc62/core/src/main/java/org/apache/brooklyn/core/mgmt/usage/UsageManager.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/usage/UsageManager.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/usage/UsageManager.java index 919c867..1bc7d78 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/usage/UsageManager.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/usage/UsageManager.java @@ -18,10 +18,7 @@ */ package org.apache.brooklyn.core.mgmt.usage; -import static com.google.common.base.Preconditions.checkNotNull; - import java.util.List; -import java.util.Map; import java.util.Set; import org.apache.brooklyn.api.entity.Application; @@ -29,14 +26,9 @@ import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.config.ConfigKey; import org.apache.brooklyn.core.config.ConfigKeys; import org.apache.brooklyn.core.entity.lifecycle.Lifecycle; -import org.apache.brooklyn.core.mgmt.usage.ApplicationUsage; -import org.apache.brooklyn.core.mgmt.usage.LocationUsage; -import org.apache.brooklyn.core.mgmt.usage.ApplicationUsage.ApplicationEvent; -import org.apache.brooklyn.core.mgmt.usage.LocationUsage.LocationEvent; import org.apache.brooklyn.util.time.Duration; import com.google.common.annotations.Beta; -import com.google.common.base.Objects; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableList; import com.google.common.reflect.TypeToken; @@ -45,10 +37,10 @@ import com.google.common.reflect.TypeToken; public interface UsageManager { @SuppressWarnings("serial") - public static final ConfigKey<List<org.apache.brooklyn.core.mgmt.usage.UsageListener>> USAGE_LISTENERS = ConfigKeys.newConfigKey( - new TypeToken<List<org.apache.brooklyn.core.mgmt.usage.UsageListener>>() {}, + public static final ConfigKey<List<UsageListener>> USAGE_LISTENERS = ConfigKeys.newConfigKey( + new TypeToken<List<UsageListener>>() {}, "brooklyn.usageManager.listeners", "Optional usage listeners (i.e. for metering)", - ImmutableList.<org.apache.brooklyn.core.mgmt.usage.UsageListener>of()); + ImmutableList.<UsageListener>of()); public static final ConfigKey<Duration> USAGE_LISTENER_TERMINATION_TIMEOUT = ConfigKeys.newConfigKey( Duration.class, @@ -57,51 +49,6 @@ public interface UsageManager { Duration.TEN_SECONDS); /** - * @since 0.7.0 - * @deprecated since 0.7.0; use {@link org.apache.brooklyn.core.mgmt.internal.UsageListener}; see {@link UsageListenerAdapter} - */ - public interface UsageListener { - public static final UsageListener NOOP = new UsageListener() { - @Override public void onApplicationEvent(String applicationId, String applicationName, String entityType, - String catalogItemId, Map<String, String> metadata, ApplicationEvent event) {} - @Override public void onLocationEvent(String locationId, Map<String, String> metadata, LocationEvent event) {} - }; - - public static class UsageListenerAdapter implements org.apache.brooklyn.core.mgmt.usage.UsageListener { - private final UsageListener listener; - - public UsageListenerAdapter(UsageListener listener) { - this.listener = checkNotNull(listener, "listener"); - } - - @Override - public void onApplicationEvent(ApplicationMetadata app, ApplicationEvent event) { - listener.onApplicationEvent(app.getApplicationId(), app.getApplicationName(), app.getEntityType(), app.getCatalogItemId(), app.getMetadata(), event); - } - - @Override - public void onLocationEvent(LocationMetadata loc, LocationEvent event) { - listener.onLocationEvent(loc.getLocationId(), loc.getMetadata(), event); - } - - @Override - public boolean equals(Object obj) { - return (obj instanceof UsageListenerAdapter) && listener.equals(((UsageListenerAdapter)obj).listener); - } - - @Override - public int hashCode() { - return Objects.hashCode(listener); - } - } - - void onApplicationEvent(String applicationId, String applicationName, String entityType, String catalogItemId, - Map<String, String> metadata, ApplicationEvent event); - - void onLocationEvent(String locationId, Map<String, String> metadata, LocationEvent event); - } - - /** * Adds this application event to the usage record for the given app (creating the usage * record if one does not already exist). */ @@ -136,30 +83,16 @@ public interface UsageManager { Set<ApplicationUsage> getApplicationUsage(Predicate<? super ApplicationUsage> filter); /** - * @since 0.7.0 - * @deprecated since 0.7.0; use {@link #removeUsageListener(org.apache.brooklyn.core.mgmt.internal.UsageListener)}; - * see {@link org.apache.brooklyn.core.mgmt.internal.UsageManager.UsageListener.UsageListenerAdapter} - */ - void addUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener listener); - - /** - * @since 0.7.0 - * @deprecated since 0.7.0; use {@link #removeUsageListener(org.apache.brooklyn.core.mgmt.internal.UsageListener)} - */ - @Deprecated - void removeUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener listener); - - /** * Adds the given listener, to be notified on recording of application/location events. * The listener notifications may be asynchronous. * * As of 0.7.0, the listener is not persisted so will be lost on restart/rebind. This * behaviour may change in a subsequent release. */ - void addUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageListener listener); + void addUsageListener(UsageListener listener); /** * Removes the given listener. */ - void removeUsageListener(org.apache.brooklyn.core.mgmt.usage.UsageListener listener); + void removeUsageListener(UsageListener listener); } http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ffacc62/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/ApplicationUsageTrackingTest.java ---------------------------------------------------------------------- diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/ApplicationUsageTrackingTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/ApplicationUsageTrackingTest.java index e727891..6f11431 100644 --- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/ApplicationUsageTrackingTest.java +++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/ApplicationUsageTrackingTest.java @@ -25,7 +25,6 @@ import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; import java.util.List; -import java.util.Map; import java.util.Set; import org.apache.brooklyn.api.entity.Application; @@ -86,49 +85,6 @@ public class ApplicationUsageTrackingTest { } @Test - @SuppressWarnings("deprecation") - public void testAddAndRemoveLegacyUsageListener() throws Exception { - final RecordingLegacyUsageListener listener = new RecordingLegacyUsageListener(); - mgmt.getUsageManager().addUsageListener(listener); - - app = TestApplication.Factory.newManagedInstanceForTests(mgmt); - app.setCatalogItemId("testCatalogItem"); - app.start(ImmutableList.<Location>of()); - - Asserts.succeedsEventually(new Runnable() { - @Override public void run() { - List<List<?>> events = listener.getApplicationEvents(); - assertEquals(events.size(), 2, "events="+events); // expect STARTING and RUNNING - - String appId = (String) events.get(0).get(1); - String appName = (String) events.get(0).get(2); - String entityType = (String) events.get(0).get(3); - String catalogItemId = (String) events.get(0).get(4); - Map<?,?> metadata = (Map<?, ?>) events.get(0).get(5); - ApplicationEvent appEvent = (ApplicationEvent) events.get(0).get(6); - - assertEquals(appId, app.getId(), "events="+events); - assertNotNull(appName, "events="+events); - assertEquals(catalogItemId, app.getCatalogItemId(), "events="+events); - assertNotNull(entityType, "events="+events); - assertNotNull(metadata, "events="+events); - assertEquals(appEvent.getState(), Lifecycle.STARTING, "events="+events); - }}); - - - // Remove the listener; will get no more notifications - listener.clearEvents(); - mgmt.getUsageManager().removeUsageListener(listener); - - app.start(ImmutableList.<Location>of()); - Asserts.succeedsContinually(new Runnable() { - @Override public void run() { - List<List<?>> events = listener.getLocationEvents(); - assertEquals(events.size(), 0, "events="+events); - }}); - } - - @Test public void testAddAndRemoveUsageListener() throws Exception { final RecordingUsageListener listener = new RecordingUsageListener(); mgmt.getUsageManager().addUsageListener(listener); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ffacc62/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/LocationUsageTrackingTest.java ---------------------------------------------------------------------- diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/LocationUsageTrackingTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/LocationUsageTrackingTest.java index bb8b597..13b1c54 100644 --- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/LocationUsageTrackingTest.java +++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/LocationUsageTrackingTest.java @@ -31,18 +31,18 @@ import org.apache.brooklyn.api.entity.EntitySpec; import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.api.location.LocationSpec; import org.apache.brooklyn.api.location.NoMachinesAvailableException; -import org.apache.brooklyn.core.mgmt.usage.UsageListener.LocationMetadata; import org.apache.brooklyn.core.entity.lifecycle.Lifecycle; import org.apache.brooklyn.core.mgmt.usage.LocationUsage; import org.apache.brooklyn.core.mgmt.usage.LocationUsage.LocationEvent; +import org.apache.brooklyn.core.mgmt.usage.UsageListener.LocationMetadata; import org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport; import org.apache.brooklyn.entity.software.base.SoftwareProcessEntityTest; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; import org.apache.brooklyn.location.localhost.LocalhostMachineProvisioningLocation; import org.apache.brooklyn.location.ssh.SshMachineLocation; import org.apache.brooklyn.test.Asserts; import org.apache.brooklyn.util.time.Time; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; @@ -67,42 +67,6 @@ public class LocationUsageTrackingTest extends BrooklynAppUnitTestSupport { } @Test - @SuppressWarnings("deprecation") - public void testAddAndRemoveLegacyUsageListener() throws Exception { - final RecordingLegacyUsageListener listener = new RecordingLegacyUsageListener(); - mgmt.getUsageManager().addUsageListener(listener); - - app.createAndManageChild(EntitySpec.create(SoftwareProcessEntityTest.MyService.class)); - app.start(ImmutableList.of(loc)); - final SshMachineLocation machine = Iterables.getOnlyElement(loc.getAllMachines()); - - Asserts.succeedsEventually(new Runnable() { - @Override public void run() { - List<List<?>> events = listener.getLocationEvents(); - String locId = (String) events.get(0).get(1); - LocationEvent locEvent = (LocationEvent) events.get(0).get(3); - Map<?,?> metadata = (Map<?, ?>) events.get(0).get(2); - - assertEquals(events.size(), 1, "events="+events); - assertEquals(locId, machine.getId(), "events="+events); - assertNotNull(metadata, "events="+events); - assertEquals(locEvent.getApplicationId(), app.getId(), "events="+events); - assertEquals(locEvent.getState(), Lifecycle.CREATED, "events="+events); - }}); - - // Remove the listener; will get no more notifications - listener.clearEvents(); - mgmt.getUsageManager().removeUsageListener(listener); - - app.stop(); - Asserts.succeedsContinually(new Runnable() { - @Override public void run() { - List<List<?>> events = listener.getLocationEvents(); - assertEquals(events.size(), 0, "events="+events); - }}); - } - - @Test public void testAddAndRemoveUsageListener() throws Exception { final RecordingUsageListener listener = new RecordingUsageListener(); mgmt.getUsageManager().addUsageListener(listener); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ffacc62/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/RecordingLegacyUsageListener.java ---------------------------------------------------------------------- diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/RecordingLegacyUsageListener.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/RecordingLegacyUsageListener.java deleted file mode 100644 index 3a3d95b..0000000 --- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/RecordingLegacyUsageListener.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.brooklyn.entity.software.base.test.core.mgmt.usage; - -import java.util.List; -import java.util.Map; - -import org.apache.brooklyn.core.mgmt.usage.ApplicationUsage.ApplicationEvent; -import org.apache.brooklyn.core.mgmt.usage.LocationUsage.LocationEvent; -import org.apache.brooklyn.util.collections.MutableList; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; - -@Deprecated -public class RecordingLegacyUsageListener implements org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener { - - private final List<List<?>> events = Lists.newCopyOnWriteArrayList(); - - @Override - public void onApplicationEvent(String applicationId, String applicationName, String entityType, - String catalogItemId, Map<String, String> metadata, ApplicationEvent event) { - events.add(MutableList.of("application", applicationId, applicationName, entityType, catalogItemId, metadata, event)); - } - - @Override - public void onLocationEvent(String locationId, Map<String, String> metadata, LocationEvent event) { - events.add(MutableList.of("location", locationId, metadata, event)); - } - - public void clearEvents() { - events.clear(); - } - - public List<List<?>> getEvents() { - return ImmutableList.copyOf(events); - } - - public List<List<?>> getLocationEvents() { - List<List<?>> result = Lists.newArrayList(); - for (List<?> event : events) { - if (event.get(0).equals("location")) result.add(event); - } - return ImmutableList.copyOf(result); - } - - public List<List<?>> getApplicationEvents() { - List<List<?>> result = Lists.newArrayList(); - for (List<?> event : events) { - if (event.get(0).equals("application")) result.add(event); - } - return ImmutableList.copyOf(result); - } -} http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ffacc62/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/RecordingUsageListener.java ---------------------------------------------------------------------- diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/RecordingUsageListener.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/RecordingUsageListener.java index 539d204..3a54178 100644 --- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/RecordingUsageListener.java +++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/RecordingUsageListener.java @@ -22,12 +22,13 @@ import java.util.List; import org.apache.brooklyn.core.mgmt.usage.ApplicationUsage.ApplicationEvent; import org.apache.brooklyn.core.mgmt.usage.LocationUsage.LocationEvent; +import org.apache.brooklyn.core.mgmt.usage.UsageListener; import org.apache.brooklyn.util.collections.MutableList; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; -public class RecordingUsageListener implements org.apache.brooklyn.core.mgmt.usage.UsageListener { +public class RecordingUsageListener implements UsageListener { private final List<List<?>> events = Lists.newCopyOnWriteArrayList(); http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/1ffacc62/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/UsageListenerTest.java ---------------------------------------------------------------------- diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/UsageListenerTest.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/UsageListenerTest.java index 7a55018..b517920 100644 --- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/UsageListenerTest.java +++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/core/mgmt/usage/UsageListenerTest.java @@ -32,6 +32,7 @@ import org.apache.brooklyn.api.location.Location; import org.apache.brooklyn.core.entity.Entities; import org.apache.brooklyn.core.internal.BrooklynProperties; import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal; +import org.apache.brooklyn.core.mgmt.usage.UsageListener; import org.apache.brooklyn.core.mgmt.usage.UsageManager; import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests; import org.apache.brooklyn.core.test.entity.TestApplication; @@ -55,7 +56,6 @@ public class UsageListenerTest { @BeforeMethod(alwaysRun=true) public void setUp() throws Exception { - RecordingStaticLegacyUsageListener.clearInstances(); RecordingStaticUsageListener.clearInstances(); } @@ -67,28 +67,11 @@ public class UsageListenerTest { LOG.error("Caught exception in tearDown method", t); } finally { mgmt = null; - RecordingStaticLegacyUsageListener.clearInstances(); RecordingStaticUsageListener.clearInstances(); } } @Test - public void testAddLegacyUsageListenerViaProperties() throws Exception { - BrooklynProperties brooklynProperties = BrooklynProperties.Factory.newEmpty(); - brooklynProperties.put(UsageManager.USAGE_LISTENERS, RecordingStaticLegacyUsageListener.class.getName()); - mgmt = LocalManagementContextForTests.newInstance(brooklynProperties); - - app = TestApplication.Factory.newManagedInstanceForTests(mgmt); - app.start(ImmutableList.<Location>of()); - - Asserts.succeedsEventually(new Runnable() { - @Override public void run() { - List<List<?>> events = RecordingStaticLegacyUsageListener.getInstance().getApplicationEvents(); - assertTrue(events.size() > 0, "events="+events); // expect some events - }}); - } - - @Test public void testAddUsageListenerViaProperties() throws Exception { BrooklynProperties brooklynProperties = BrooklynProperties.Factory.newEmpty(); brooklynProperties.put(UsageManager.USAGE_LISTENERS, RecordingStaticUsageListener.class.getName()); @@ -104,25 +87,7 @@ public class UsageListenerTest { }}); } - public static class RecordingStaticLegacyUsageListener extends RecordingLegacyUsageListener implements org.apache.brooklyn.core.mgmt.usage.UsageManager.UsageListener { - private static final List<RecordingStaticLegacyUsageListener> STATIC_INSTANCES = Lists.newCopyOnWriteArrayList(); - - public static RecordingStaticLegacyUsageListener getInstance() { - return Iterables.getOnlyElement(STATIC_INSTANCES); - } - - public static void clearInstances() { - STATIC_INSTANCES.clear(); - } - - public RecordingStaticLegacyUsageListener() { - // Bad to leak a ref to this before constructor finished, but we'll live with it because - // it's just test code! - STATIC_INSTANCES.add(this); - } - } - - public static class RecordingStaticUsageListener extends RecordingUsageListener implements org.apache.brooklyn.core.mgmt.usage.UsageListener { + public static class RecordingStaticUsageListener extends RecordingUsageListener implements UsageListener { private static final List<RecordingStaticUsageListener> STATIC_INSTANCES = Lists.newCopyOnWriteArrayList(); public static RecordingStaticUsageListener getInstance() {
