You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2015/08/20 14:39:44 UTC

[06/16] incubator-brooklyn git commit: Delete deprecated UsageManager.UsageListener

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 <al...@gmail.com>
Authored: Wed Aug 19 18:35:05 2015 +0100
Committer: Aled Sage <al...@gmail.com>
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() {