You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by gr...@apache.org on 2014/10/12 02:11:17 UTC
[7/8] git commit: Move first member sensors to Group and fix
InetAddress rendering
Move first member sensors to Group and fix InetAddress rendering
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/c78f7a5c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/c78f7a5c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/c78f7a5c
Branch: refs/heads/master
Commit: c78f7a5cd75800c311fde0895a6680b9e494662e
Parents: 0793f3b
Author: Andrew Kennedy <gr...@apache.org>
Authored: Fri Oct 10 08:12:51 2014 +0100
Committer: Andrew Kennedy <gr...@apache.org>
Committed: Fri Oct 10 21:37:55 2014 +0100
----------------------------------------------------------------------
.../main/java/brooklyn/entity/basic/AbstractGroup.java | 7 ++++++-
.../java/brooklyn/entity/basic/AbstractGroupImpl.java | 11 +++++++++++
.../main/java/brooklyn/entity/group/DynamicCluster.java | 6 ------
.../java/brooklyn/entity/group/DynamicClusterImpl.java | 8 --------
core/src/main/java/brooklyn/event/basic/Sensors.java | 10 ++++++++++
5 files changed, 27 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c78f7a5c/core/src/main/java/brooklyn/entity/basic/AbstractGroup.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractGroup.java b/core/src/main/java/brooklyn/entity/basic/AbstractGroup.java
index 67e4cf5..ec4ed8b 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractGroup.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractGroup.java
@@ -32,7 +32,6 @@ import brooklyn.event.basic.Sensors;
import com.google.common.base.Predicate;
import com.google.common.reflect.TypeToken;
-
/**
* Represents a group of entities - sub-classes can support dynamically changing membership,
* ad hoc groupings, etc.
@@ -49,6 +48,12 @@ public interface AbstractGroup extends Entity, Group, Changeable {
AttributeSensor<Collection<Entity>> GROUP_MEMBERS = Sensors.newSensor(
new TypeToken<Collection<Entity>>() { }, "group.members", "Members of the group");
+ AttributeSensor<Boolean> FIRST_MEMBER = Sensors.newBooleanSensor(
+ "cluster.first", "Set on an entity if it is the first member of a cluster");
+
+ AttributeSensor<Entity> FIRST = Sensors.newSensor(Entity.class,
+ "cluster.first.entity", "The first member of the cluster");
+
ConfigKey<Boolean> MEMBER_DELEGATE_CHILDREN = ConfigKeys.newBooleanConfigKey(
"group.members.delegate", "Add delegate child entities for members of the group", Boolean.FALSE);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c78f7a5c/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java b/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
index bff6e2c..7da2094 100644
--- a/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
+++ b/core/src/main/java/brooklyn/entity/basic/AbstractGroupImpl.java
@@ -116,6 +116,17 @@ public abstract class AbstractGroupImpl extends AbstractEntity implements Abstra
log.debug("Group {} ignoring new member {}, because it is no longer managed", this, member);
return false;
}
+
+ Entity first = getAttribute(FIRST);
+ if (first == null) {
+ ((EntityLocal) member).setAttribute(FIRST_MEMBER, true);
+ ((EntityLocal) member).setAttribute(FIRST, member);
+ setAttribute(FIRST, member);
+ } else {
+ ((EntityLocal) member).setAttribute(FIRST_MEMBER, false);
+ ((EntityLocal) member).setAttribute(FIRST, first);
+ }
+
member.addGroup((Group)getProxyIfAvailable());
boolean changed = members.add(member);
if (changed) {
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c78f7a5c/core/src/main/java/brooklyn/entity/group/DynamicCluster.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/group/DynamicCluster.java b/core/src/main/java/brooklyn/entity/group/DynamicCluster.java
index bf46ebb..764704e 100644
--- a/core/src/main/java/brooklyn/entity/group/DynamicCluster.java
+++ b/core/src/main/java/brooklyn/entity/group/DynamicCluster.java
@@ -169,12 +169,6 @@ public interface DynamicCluster extends AbstractGroup, Cluster, MemberReplaceabl
AttributeSensor<Boolean> CLUSTER_MEMBER = Sensors.newBooleanSensor(
"cluster.member", "Set on an entity if it is a member of a cluster");
- AttributeSensor<Boolean> FIRST_MEMBER = Sensors.newBooleanSensor(
- "cluster.first", "Set on an entity if it is the first member of a cluster");
-
- AttributeSensor<Entity> FIRST = Sensors.newSensor(Entity.class,
- "cluster.first.entity", "The first member of the cluster");
-
AttributeSensor<Entity> CLUSTER = Sensors.newSensor(Entity.class,
"cluster.entity", "The cluster an entity is a member of");
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c78f7a5c/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java b/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
index 9940d6e..9cf8170 100644
--- a/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
+++ b/core/src/main/java/brooklyn/entity/group/DynamicClusterImpl.java
@@ -741,14 +741,6 @@ public class DynamicClusterImpl extends AbstractGroupImpl implements DynamicClus
((EntityLocal) entity).setAttribute(CLUSTER_MEMBER, true);
((EntityLocal) entity).setAttribute(CLUSTER, this);
- synchronized (this) {
- if (getAttribute(FIRST) == null) {
- setAttribute(FIRST, entity);
- ((EntityLocal) entity).setAttribute(FIRST_MEMBER, true);
- } else {
- ((EntityLocal) entity).setAttribute(FIRST_MEMBER, false);
- }
- }
Entities.manage(entity);
addMember(entity);
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/c78f7a5c/core/src/main/java/brooklyn/event/basic/Sensors.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/brooklyn/event/basic/Sensors.java b/core/src/main/java/brooklyn/event/basic/Sensors.java
index f21dfbd..ac22e2c 100644
--- a/core/src/main/java/brooklyn/event/basic/Sensors.java
+++ b/core/src/main/java/brooklyn/event/basic/Sensors.java
@@ -18,9 +18,12 @@
*/
package brooklyn.event.basic;
+import java.net.InetAddress;
import java.net.URI;
import java.net.URL;
+import javax.annotation.Nullable;
+
import brooklyn.config.render.RendererHints;
import brooklyn.event.AttributeSensor;
import brooklyn.util.net.UserAndHostAndPort;
@@ -28,6 +31,7 @@ import brooklyn.util.text.StringFunctions;
import brooklyn.util.time.Duration;
import brooklyn.util.time.Time;
+import com.google.common.base.Function;
import com.google.common.net.HostAndPort;
import com.google.common.reflect.TypeToken;
@@ -101,6 +105,12 @@ public class Sensors {
RendererHints.register(Duration.class, RendererHints.displayValue(Time.fromDurationToTimeStringRounded()));
RendererHints.register(HostAndPort.class, RendererHints.displayValue(StringFunctions.toStringFunction()));
RendererHints.register(UserAndHostAndPort.class, RendererHints.displayValue(StringFunctions.toStringFunction()));
+ RendererHints.register(InetAddress.class, RendererHints.displayValue(new Function<InetAddress,String>() {
+ @Override
+ public String apply(@Nullable InetAddress input) {
+ return input == null ? null : input.getHostAddress();
+ }
+ }));
RendererHints.register(URL.class, RendererHints.displayValue(StringFunctions.toStringFunction()));
RendererHints.register(URL.class, RendererHints.openWithUrl(StringFunctions.toStringFunction()));