You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sj...@apache.org on 2015/09/17 15:27:56 UTC
[4/7] incubator-brooklyn git commit: addresses PR review comments
addresses PR review comments
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/e4067e58
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/e4067e58
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/e4067e58
Branch: refs/heads/master
Commit: e4067e58bb293fea00ad9a60da52b1da1f2667cf
Parents: 3bb9cfc
Author: Robert Moss <ro...@gmail.com>
Authored: Wed Sep 16 15:04:42 2015 +0100
Committer: Robert Moss <ro...@gmail.com>
Committed: Wed Sep 16 15:35:29 2015 +0100
----------------------------------------------------------------------
.../nosql/mongodb/MongoDBReplicaSetImpl.java | 60 +++++++++++---------
1 file changed, 32 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/e4067e58/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBReplicaSetImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBReplicaSetImpl.java b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBReplicaSetImpl.java
index 59e6524..2c95d02 100644
--- a/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBReplicaSetImpl.java
+++ b/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/mongodb/MongoDBReplicaSetImpl.java
@@ -54,7 +54,7 @@ import org.apache.brooklyn.util.text.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.api.client.util.Sets;
+import com.google.common.collect.Sets;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
@@ -142,15 +142,17 @@ public class MongoDBReplicaSetImpl extends DynamicClusterImpl implements MongoDB
.publishing(MongoDBAuthenticationMixins.ROOT_USERNAME)
.fromMembers()
.valueToReportIfNoSensors(null)
- .computing(new Function<Collection<String>, String>() {
- @Override
- public String apply(Collection<String> input) {
- if (input==null || input.isEmpty()) return null;
- // when authentication is used all members have the same value
- return Iterables.getFirst(input, null);
- }})
+ .computing(new RootUsernameReducer())
.build());
- };
+ }
+
+ public static class RootUsernameReducer implements Function<Collection<String>, String>{
+ @Override
+ public String apply(Collection<String> input) {
+ // when authentication is used all members have the same value
+ return (input == null || input.isEmpty()) ? null : Iterables.getFirst(input, null);
+ };
+ }
/** @return {@link #NON_PRIMARY_REMOVAL_STRATEGY} */
@Override
@@ -397,26 +399,9 @@ public class MongoDBReplicaSetImpl extends DynamicClusterImpl implements MongoDB
.build());
addEnricher(Enrichers.builder()
- .aggregating(MongoDBServer.MONGO_SERVER_ENDPOINT)
+ .transforming(REPLICA_SET_ENDPOINTS)
.publishing(DATASTORE_URL)
- .fromMembers()
- .valueToReportIfNoSensors(null)
- .computing(new Function<Collection<String>, String>() {
- @Override
- public String apply(Collection<String> input) {
- Set<String> endpoints = Sets.newHashSet();
- for (String endpoint: input) {
- if (!Strings.isBlank(endpoint)) {
-
- endpoints.add(endpoint);
- }
- }
- String credentials = MongoDBAuthenticationUtils.usesAuthentication(MongoDBReplicaSetImpl.this) ?
- String.format("%s:%s@",
- config().get(MongoDBAuthenticationMixins.ROOT_USERNAME),
- config().get(MongoDBAuthenticationMixins.ROOT_PASSWORD)) : "";
- return String.format("mongodb://%s%s", credentials, Strings.join(endpoints, ","));
- }})
+ .computing(new EndpointsToDatastoreUrlMapper(this))
.build());
subscribeToMembers(this, MongoDBServer.IS_PRIMARY_FOR_REPLICA_SET, new SensorEventListener<Boolean>() {
@@ -427,6 +412,25 @@ public class MongoDBReplicaSetImpl extends DynamicClusterImpl implements MongoDB
});
}
+
+ public static class EndpointsToDatastoreUrlMapper implements Function<Collection<String>, String> {
+
+ private Entity entity;
+
+ public EndpointsToDatastoreUrlMapper(Entity entity) {
+ this.entity = entity;
+ }
+
+ @Override
+ public String apply(Collection<String> input) {
+ String credentials = MongoDBAuthenticationUtils.usesAuthentication(entity)
+ ? String.format("%s:%s@",
+ entity.config().get(MongoDBAuthenticationMixins.ROOT_USERNAME),
+ entity.config().get(MongoDBAuthenticationMixins.ROOT_PASSWORD))
+ : "";
+ return String.format("mongodb://%s%s", credentials, Strings.join(input, ","));
+ }
+ }
@Override
public void stop() {