You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2015/09/17 12:30:59 UTC
[2/5] incubator-brooklyn git commit: Cassandra: effector impl not
anonymous inner class
Cassandra: effector impl not anonymous inner class
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/a5c4b166
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/a5c4b166
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/a5c4b166
Branch: refs/heads/master
Commit: a5c4b166ca6638ad8035e52d2d41e12ba9a205cd
Parents: bc5c9e4
Author: Aled Sage <al...@gmail.com>
Authored: Tue Sep 15 09:20:33 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Sep 15 09:20:33 2015 +0100
----------------------------------------------------------------------
.../nosql/cassandra/CassandraNodeImpl.java | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/a5c4b166/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
index 578fa6b..dddc1cd 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/cassandra/CassandraNodeImpl.java
@@ -97,12 +97,15 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
public void init() {
super.init();
- getMutableEntityType().addEffector(EXECUTE_SCRIPT, new EffectorBody<String>() {
+ // TODO PERSISTENCE WORKAROUND kept anonymous class in case referenced in persisted state
+ new EffectorBody<String>() {
@Override
public String call(ConfigBag parameters) {
return executeScript((String)parameters.getStringKey("commands"));
}
- });
+ };
+
+ getMutableEntityType().addEffector(EXECUTE_SCRIPT, new ExecuteScriptEffectorBody(this));
Entities.checkRequiredUrl(this, getCassandraConfigTemplateUrl());
Entities.getRequiredUrlConfig(this, CASSANDRA_RACKDC_CONFIG_TEMPLATE_URL);
@@ -110,6 +113,18 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
connectEnrichers();
}
+ private static class ExecuteScriptEffectorBody extends EffectorBody<String> {
+ private final CassandraNode entity;
+
+ public ExecuteScriptEffectorBody(CassandraNode entity) {
+ this.entity = entity;
+ }
+ @Override
+ public String call(ConfigBag parameters) {
+ return entity.executeScript((String)parameters.getStringKey("commands"));
+ }
+ }
+
/**
* Some clouds (e.g. Rackspace) give us VMs that have two nics: one for private and one for public.
* If the private IP is used then it doesn't work, even for a cluster purely internal to Rackspace!
@@ -246,6 +261,7 @@ public class CassandraNodeImpl extends SoftwareProcessImpl implements CassandraN
String subnetAddress = getAttribute(CassandraNode.SUBNET_ADDRESS);
return Strings.isNonBlank(subnetAddress) ? subnetAddress : getAttribute(CassandraNode.ADDRESS);
}
+
@Override public String getBroadcastAddress() {
String sensorName = getConfig(BROADCAST_ADDRESS_SENSOR);
if (Strings.isNonBlank(sensorName))