Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 77a7f6f68 -> c900f32a4


Adds name of currently logged in user to LocationEvent and ApplicationEvent


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/92968446
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/92968446
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/92968446

Branch: refs/heads/master
Commit: 92968446336e15e28ac7d609a7e9e7e556c2d0a4
Parents: 77a7f6f
Author: Martin Harris <[email protected]>
Authored: Tue Mar 31 16:50:42 2015 +0100
Committer: Martin Harris <[email protected]>
Committed: Tue Mar 31 16:50:42 2015 +0100

----------------------------------------------------------------------
 .../management/internal/LocalUsageManager.java  | 14 ++++++++--
 .../management/usage/ApplicationUsage.java      | 22 +++++++++++-----
 .../management/usage/LocationUsage.java         | 27 ++++++++++++++------
 3 files changed, 47 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/92968446/core/src/main/java/brooklyn/management/internal/LocalUsageManager.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/brooklyn/management/internal/LocalUsageManager.java 
b/core/src/main/java/brooklyn/management/internal/LocalUsageManager.java
index 02fef4a..68f5088 100644
--- a/core/src/main/java/brooklyn/management/internal/LocalUsageManager.java
+++ b/core/src/main/java/brooklyn/management/internal/LocalUsageManager.java
@@ -44,6 +44,8 @@ import brooklyn.location.Location;
 import brooklyn.location.basic.LocationConfigKeys;
 import brooklyn.location.basic.LocationInternal;
 import brooklyn.management.ManagementContextInjectable;
+import brooklyn.management.entitlement.EntitlementContext;
+import brooklyn.management.entitlement.Entitlements;
 import brooklyn.management.usage.ApplicationUsage;
 import brooklyn.management.usage.LocationUsage;
 import brooklyn.util.exceptions.Exceptions;
@@ -250,7 +252,7 @@ public class LocalUsageManager implements UsageManager {
             if (usage == null) {
                 usage = new ApplicationUsage(app.getId(), 
app.getDisplayName(), app.getEntityType().getName(), 
((EntityInternal)app).toMetadataRecord());
             }
-            final ApplicationUsage.ApplicationEvent event = new 
ApplicationUsage.ApplicationEvent(state);
+            final ApplicationUsage.ApplicationEvent event = new 
ApplicationUsage.ApplicationEvent(state, getUser());
             usage.addEvent(event);        
             eventMap.put(app.getId(), usage);
 
@@ -300,7 +302,7 @@ public class LocalUsageManager implements UsageManager {
             Entity caller = (Entity) callerContext;
             String entityTypeName = caller.getEntityType().getName();
             String appId = caller.getApplicationId();
-            final LocationUsage.LocationEvent event = new 
LocationUsage.LocationEvent(state, caller.getId(), entityTypeName, appId);
+            final LocationUsage.LocationEvent event = new 
LocationUsage.LocationEvent(state, caller.getId(), entityTypeName, appId, 
getUser());
             
             ConcurrentMap<String, LocationUsage> usageMap = 
managementContext.getStorage().<String, 
LocationUsage>getMap(LOCATION_USAGE_KEY);
             synchronized (mutex) {
@@ -409,4 +411,12 @@ public class LocalUsageManager implements UsageManager {
     public void removeUsageListener(brooklyn.management.internal.UsageListener 
listener) {
         listeners.remove(listener);
     }
+
+    private String getUser() {
+        EntitlementContext entitlementContext = 
Entitlements.getEntitlementContext();
+        if (entitlementContext != null) {
+            return entitlementContext.user();
+        }
+        return null;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/92968446/core/src/main/java/brooklyn/management/usage/ApplicationUsage.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/usage/ApplicationUsage.java 
b/core/src/main/java/brooklyn/management/usage/ApplicationUsage.java
index 3dd30f4..7186783 100644
--- a/core/src/main/java/brooklyn/management/usage/ApplicationUsage.java
+++ b/core/src/main/java/brooklyn/management/usage/ApplicationUsage.java
@@ -38,14 +38,20 @@ public class ApplicationUsage {
     public static class ApplicationEvent {
         private final Date date;
         private final Lifecycle state;
+        private final String user;
 
-        public ApplicationEvent(Lifecycle state) {
-            this(new Date(), state);
+        public ApplicationEvent(Lifecycle state, String user) {
+            this(new Date(), state, user);
         }
 
         public ApplicationEvent(Date date, Lifecycle state) {
+            this(date,state, null);
+        }
+
+        public ApplicationEvent(Date date, Lifecycle state, String user) {
             this.date = checkNotNull(date, "date");
             this.state = checkNotNull(state, "state");
+            this.user = user;
         }
 
         public Date getDate() {
@@ -55,22 +61,26 @@ public class ApplicationUsage {
         public Lifecycle getState() {
             return state;
         }
-        
+
+        public String getUser() {
+            return user;
+        }
+
         @Override
         public boolean equals(Object other) {
             if (!(other instanceof ApplicationEvent)) return false;
             ApplicationEvent o = (ApplicationEvent) other;
-            return Objects.equal(date, o.date) && Objects.equal(state, 
o.state);
+            return Objects.equal(date, o.date) && Objects.equal(state, 
o.state) && Objects.equal(user, o.user);
         }
 
         @Override
         public int hashCode() {
-            return Objects.hashCode(date, state);
+            return Objects.hashCode(date, state, user);
         }
         
         @Override
         public String toString() {
-            return Objects.toStringHelper(this).add("date", date).add("state", 
state).toString();
+            return Objects.toStringHelper(this).add("date", date).add("state", 
state).add("entitlementContext", user).toString();
         }
     }
     

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/92968446/core/src/main/java/brooklyn/management/usage/LocationUsage.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/management/usage/LocationUsage.java 
b/core/src/main/java/brooklyn/management/usage/LocationUsage.java
index a8323d2..fbca540 100644
--- a/core/src/main/java/brooklyn/management/usage/LocationUsage.java
+++ b/core/src/main/java/brooklyn/management/usage/LocationUsage.java
@@ -41,17 +41,19 @@ public class LocationUsage {
         private final String entityId;
         private final String entityType;
         private final String applicationId;
+        private final String user;
 
-        public LocationEvent(Lifecycle state, String entityId, String 
entityType, String applicationId) {
-            this(new Date(), state, entityId, entityType, applicationId);
+        public LocationEvent(Lifecycle state, String entityId, String 
entityType, String applicationId, String user) {
+            this(new Date(), state, entityId, entityType, applicationId, user);
         }
         
-        public LocationEvent(Date date, Lifecycle state, String entityId, 
String entityType, String applicationId) {
+        public LocationEvent(Date date, Lifecycle state, String entityId, 
String entityType, String applicationId, String user) {
             this.date = checkNotNull(date, "date");
             this.state = checkNotNull(state, "state");
             this.entityId = checkNotNull(entityId, "entityId");
             this.entityType = checkNotNull(entityType, "entityType");
             this.applicationId = checkNotNull(applicationId, "applicationId 
(entity "+entityId+")");
+            this.user = user;
         }
 
         public Date getDate() {
@@ -73,25 +75,34 @@ public class LocationUsage {
         public String getApplicationId() {
             return applicationId;
         }
-        
+
+        public String getUser() {
+            return user;
+        }
+
         @Override
         public boolean equals(Object other) {
             if (!(other instanceof LocationEvent)) return false;
             LocationEvent o = (LocationEvent) other;
             return Objects.equal(date, o.date) && Objects.equal(state, 
o.state) 
                     && Objects.equal(entityId, o.entityId) && 
Objects.equal(entityType, o.entityType)
-                    && Objects.equal(applicationId, o.applicationId);
+                    && Objects.equal(applicationId, o.applicationId) && 
Objects.equal(user, o.user);
         }
 
         @Override
         public int hashCode() {
-            return Objects.hashCode(date, state, entityId, entityType, 
applicationId);
+            return Objects.hashCode(date, state, entityId, entityType, 
applicationId, user);
         }
         
         @Override
         public String toString() {
-            return Objects.toStringHelper(this).add("date", date).add("state", 
state).add("entityId", entityId)
-                    .add("appId", applicationId).toString();
+            return Objects.toStringHelper(this)
+                    .add("date", date)
+                    .add("state", state)
+                    .add("entityId", entityId)
+                    .add("appId", applicationId)
+                    .add("user", user)
+                    .toString();
         }
     }
     

Reply via email to