[1/2] brooklyn-library git commit: Fix NPE generating Nginx config when no SSL configured

2016-08-15 Thread grkvlt
Repository: brooklyn-library
Updated Branches:
  refs/heads/master 69efaf576 -> 138f6b32e


Fix NPE generating Nginx config when no SSL configured


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

Branch: refs/heads/master
Commit: 03fede0de3699a0a663d244c21ab1e3288573133
Parents: 69efaf5
Author: Andrew Donald Kennedy 
Authored: Mon Aug 15 12:18:32 2016 +0100
Committer: Andrew Donald Kennedy 
Committed: Mon Aug 15 12:18:32 2016 +0100

--
 .../brooklyn/entity/proxy/nginx/NginxDefaultConfigGenerator.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/03fede0d/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxDefaultConfigGenerator.java
--
diff --git 
a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxDefaultConfigGenerator.java
 
b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxDefaultConfigGenerator.java
index bbe81aa..341bf67 100644
--- 
a/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxDefaultConfigGenerator.java
+++ 
b/software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/nginx/NginxDefaultConfigGenerator.java
@@ -78,7 +78,9 @@ public class NginxDefaultConfigGenerator implements 
NginxConfigFileGenerator {
 config.append("  }\n");
 config.append("  server {\n");
 config.append(getCodeForServerConfig());
-appendCodeForProxySSLConfig(nginx.getId(), config, "", 
globalSslConfig);
+if (globalSslConfig != null) {
+appendCodeForProxySSLConfig(nginx.getId(), config, "", 
globalSslConfig);
+}
 config.append("listen "+nginx.getPort()+";\n");
 if (nginx.getDomain()!=null)
 config.append("server_name "+nginx.getDomain()+";\n");



[2/2] brooklyn-library git commit: This closes #59

2016-08-15 Thread grkvlt
This closes #59

* github/pr/59:
  Fix NPE generating Nginx config when no SSL configured


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

Branch: refs/heads/master
Commit: 138f6b32ebfe8a9d6da4b1324b4f3a481c0756aa
Parents: 69efaf5 03fede0
Author: Andrew Donald Kennedy 
Authored: Mon Aug 15 14:15:56 2016 +0100
Committer: Andrew Donald Kennedy 
Committed: Mon Aug 15 14:15:56 2016 +0100

--
 .../brooklyn/entity/proxy/nginx/NginxDefaultConfigGenerator.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
--




[4/4] brooklyn-server git commit: This closes #291

2016-08-15 Thread aledsage
This closes #291


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

Branch: refs/heads/master
Commit: 374e01f41812fcb82af3d3e2ee9b9b863e4c06e2
Parents: 215c02c 26af0a2
Author: Aled Sage 
Authored: Mon Aug 15 11:31:13 2016 +0100
Committer: Aled Sage 
Committed: Mon Aug 15 11:31:13 2016 +0100

--
 .../spi/dsl/methods/BrooklynDslCommon.java  | 133 +++
 .../brooklyn/camp/brooklyn/ObjectsYamlTest.java |  64 +
 .../brooklyn/core/entity/EntityFunctions.java   |  54 +++-
 .../brooklyn/core/entity/EntityPredicates.java  |  72 --
 .../core/entity/EntityFunctionsTest.java|  14 +-
 .../core/entity/EntityPredicatesTest.java   |  58 ++--
 6 files changed, 348 insertions(+), 47 deletions(-)
--




[3/4] brooklyn-server git commit: Improved $brooklyn:object() DSL.

2016-08-15 Thread aledsage
Improved $brooklyn:object() DSL.

- Support parameterised constructors
- Support static factory methods


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

Branch: refs/heads/master
Commit: 26af0a214f4ecfd593e821bf77bac5d9b8c7d116
Parents: f3f3993
Author: Alasdair Hodge 
Authored: Fri Aug 5 14:26:55 2016 +0100
Committer: Alasdair Hodge 
Committed: Fri Aug 5 15:46:49 2016 +0100

--
 .../spi/dsl/methods/BrooklynDslCommon.java  | 133 +++
 .../brooklyn/camp/brooklyn/ObjectsYamlTest.java |  64 +
 2 files changed, 173 insertions(+), 24 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/26af0a21/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
--
diff --git 
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
 
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
index 23cc3a3..d6dfddd 100644
--- 
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
+++ 
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java
@@ -19,6 +19,7 @@
 package org.apache.brooklyn.camp.brooklyn.spi.dsl.methods;
 
 import static com.google.common.base.Preconditions.checkNotNull;
+import static org.apache.brooklyn.camp.brooklyn.spi.dsl.DslUtils.resolved;
 
 import java.util.Arrays;
 import java.util.Iterator;
@@ -38,10 +39,8 @@ import 
org.apache.brooklyn.camp.brooklyn.BrooklynCampReservedKeys;
 import 
org.apache.brooklyn.camp.brooklyn.spi.creation.BrooklynYamlTypeInstantiator;
 import org.apache.brooklyn.camp.brooklyn.spi.creation.EntitySpecConfiguration;
 import org.apache.brooklyn.camp.brooklyn.spi.dsl.BrooklynDslDeferredSupplier;
-import org.apache.brooklyn.camp.brooklyn.spi.dsl.DslUtils;
 import org.apache.brooklyn.camp.brooklyn.spi.dsl.methods.DslComponent.Scope;
 import org.apache.brooklyn.core.config.external.ExternalConfigSupplier;
-import org.apache.brooklyn.core.entity.AbstractEntity;
 import org.apache.brooklyn.core.entity.EntityDynamicType;
 import org.apache.brooklyn.core.entity.EntityInternal;
 import org.apache.brooklyn.core.mgmt.internal.ExternalConfigSupplierRegistry;
@@ -66,6 +65,7 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Function;
 import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 
@@ -178,6 +178,9 @@ public class BrooklynDslCommon {
 public static Object object(Map arguments) {
 ConfigBag config = ConfigBag.newInstance(arguments);
 String typeName = 
BrooklynYamlTypeInstantiator.InstantiatorFromKey.extractTypeName("object", 
config).orNull();
+List constructorArgs = (List) 
config.getStringKeyMaybe("constructor.args").or(ImmutableList.of());
+String factoryMethodName = (String) 
config.getStringKeyMaybe("factoryMethod.name").orNull();
+List factoryMethodArgs = (List) 
config.getStringKeyMaybe("factoryMethod.args").or(ImmutableList.of());
 Map objectFields = (Map) 
config.getStringKeyMaybe("object.fields").or(MutableMap.of());
 Map brooklynConfig = (Map) 
config.getStringKeyMaybe(BrooklynCampReservedKeys.BROOKLYN_CONFIG).or(MutableMap.of());
 
@@ -187,17 +190,24 @@ public class BrooklynDslCommon {
 type = new 
ClassLoaderUtils(BrooklynDslCommon.class).loadClass(mappedTypeName);
 } catch (ClassNotFoundException e) {
 LOG.debug("Cannot load class " + typeName + " for DLS object; 
assuming it is in OSGi bundle; will defer its loading");
-return new DslObject(mappedTypeName, objectFields, brooklynConfig);
+return new DslObject(mappedTypeName, constructorArgs, 
objectFields, brooklynConfig);
 }
 
 if (!Reflections.hasNoArgConstructor(type)) {
 throw new IllegalStateException(String.format("Cannot construct %s 
bean: No public no-arg constructor available", type));
 }
-if ((objectFields.isEmpty() || 
DslUtils.resolved(objectFields.values())) &&
-(brooklynConfig.isEmpty() || 
DslUtils.resolved(brooklynConfig.values( {
-return DslObject.create(type, objectFields, brooklynConfig);
+if (resolved(constructorArgs) && resolved(factoryMethodArgs) && 
resolved(objectFields.values()) && resolved(brooklynConfig.valu

[1/4] brooklyn-server git commit: Convenience predicates to test attributes + config by name.

2016-08-15 Thread aledsage
Repository: brooklyn-server
Updated Branches:
  refs/heads/master 215c02cb5 -> 374e01f41


Convenience predicates to test attributes + config by name.


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

Branch: refs/heads/master
Commit: f3f39938d75aaa4ebb1132952493a186399ad30f
Parents: 3364786
Author: Alasdair Hodge 
Authored: Fri Aug 5 14:26:20 2016 +0100
Committer: Alasdair Hodge 
Committed: Fri Aug 5 15:46:48 2016 +0100

--
 .../brooklyn/core/entity/EntityPredicates.java  | 72 +---
 .../core/entity/EntityPredicatesTest.java   | 58 +---
 2 files changed, 112 insertions(+), 18 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/f3f39938/core/src/main/java/org/apache/brooklyn/core/entity/EntityPredicates.java
--
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/entity/EntityPredicates.java 
b/core/src/main/java/org/apache/brooklyn/core/entity/EntityPredicates.java
index a618784..41f016c 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/EntityPredicates.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/EntityPredicates.java
@@ -29,6 +29,8 @@ import org.apache.brooklyn.api.location.Location;
 import org.apache.brooklyn.api.sensor.AttributeSensor;
 import org.apache.brooklyn.config.ConfigKey;
 import org.apache.brooklyn.config.ConfigKey.HasConfigKey;
+import org.apache.brooklyn.core.config.ConfigKeys;
+import org.apache.brooklyn.core.sensor.Sensors;
 import org.apache.brooklyn.util.collections.CollectionFunctionals;
 import org.apache.brooklyn.util.guava.SerializablePredicate;
 import org.apache.brooklyn.util.javalang.Reflections;
@@ -171,11 +173,35 @@ public class EntityPredicates {
 }
 
 // ---
-
+
+public static Predicate attributeNotNull(final String 
attributeName) {
+return attributeSatisfies(attributeName, Predicates.notNull());
+}
+
+public static  Predicate attributeNotNull(final 
AttributeSensor attribute) {
+return attributeSatisfies(attribute, Predicates.notNull());
+}
+
+public static Predicate attributeEqualTo(final String 
attributeName, final Object val) {
+return attributeSatisfies(attributeName, Predicates.equalTo(val));
+}
+
 public static  Predicate attributeEqualTo(final 
AttributeSensor attribute, final T val) {
 return attributeSatisfies(attribute, Predicates.equalTo(val));
 }
-
+
+public static  Predicate attributeNotEqualTo(final String 
attributeName, final Object val) {
+return attributeSatisfies(attributeName, 
Predicates.not(Predicates.equalTo(val)));
+}
+
+public static  Predicate attributeNotEqualTo(final 
AttributeSensor attribute, final T val) {
+return attributeSatisfies(attribute, 
Predicates.not(Predicates.equalTo(val)));
+}
+
+public static Predicate attributeSatisfies(final String 
attributeName, final Predicate condition) {
+return new AttributeSatisfies(Sensors.newSensor(Object.class, 
attributeName), condition);
+}
+
 public static  Predicate attributeSatisfies(final 
AttributeSensor attribute, final Predicate condition) {
 return new AttributeSatisfies(attribute, condition);
 }
@@ -208,24 +234,52 @@ public class EntityPredicates {
 };
 }
 
-public static  Predicate attributeNotEqualTo(final 
AttributeSensor attribute, final T val) {
-return attributeSatisfies(attribute, 
Predicates.not(Predicates.equalTo(val)));
+// ---
+
+public static  Predicate configNotNull(final String 
configKeyName) {
+return configSatisfies(configKeyName, Predicates.notNull());
 }
 
-// ---
+public static  Predicate configNotNull(final ConfigKey 
configKey) {
+return configSatisfies(configKey, Predicates.notNull());
+}
 
-public static  Predicate configEqualTo(final ConfigKey 
configKey, final T val) {
-return configSatisfies(configKey, Predicates.equalTo(val));
+public static  Predicate configNotNull(final HasConfigKey 
configKey) {
+return configNotNull(configKey.getConfigKey());
 }
 
-public static  Predicate configSatisfies(final ConfigKey 
configKey, final Predicate condition) {
-return new ConfigKeySatisfies(configKey, condition);
+public static  Predicate configEqualTo(final String 
configKeyName, final Object val) {
+return configSatisfies(configKeyName, Predicates.equalTo(val));
+}
+
+public static  Predicate con

[2/4] brooklyn-server git commit: Convenience functions to access attributes + config by name.

2016-08-15 Thread aledsage
Convenience functions to access attributes + config by name.


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

Branch: refs/heads/master
Commit: 33647865f41649f48ce38cbda41a8cd4d9b0e94b
Parents: ddb6acc
Author: Alasdair Hodge 
Authored: Fri Aug 5 14:25:48 2016 +0100
Committer: Alasdair Hodge 
Committed: Fri Aug 5 15:46:48 2016 +0100

--
 .../brooklyn/core/entity/EntityFunctions.java   | 54 +++-
 .../core/entity/EntityFunctionsTest.java| 14 +++--
 2 files changed, 63 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/33647865/core/src/main/java/org/apache/brooklyn/core/entity/EntityFunctions.java
--
diff --git 
a/core/src/main/java/org/apache/brooklyn/core/entity/EntityFunctions.java 
b/core/src/main/java/org/apache/brooklyn/core/entity/EntityFunctions.java
index c65a176..7d8fa3d 100644
--- a/core/src/main/java/org/apache/brooklyn/core/entity/EntityFunctions.java
+++ b/core/src/main/java/org/apache/brooklyn/core/entity/EntityFunctions.java
@@ -31,7 +31,9 @@ import org.apache.brooklyn.api.mgmt.ManagementContext;
 import org.apache.brooklyn.api.objs.Identifiable;
 import org.apache.brooklyn.api.sensor.AttributeSensor;
 import org.apache.brooklyn.config.ConfigKey;
+import org.apache.brooklyn.core.config.ConfigKeys;
 import org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogic;
+import org.apache.brooklyn.core.sensor.Sensors;
 import org.apache.brooklyn.util.core.flags.TypeCoercions;
 import org.apache.brooklyn.util.guava.Functionals;
 
@@ -141,7 +143,11 @@ public class EntityFunctions {
 }
 return new AppsSupplier();
 }
-
+
+public static Function attribute(String attributeName) {
+return attribute(Sensors.newSensor(Object.class, attributeName));
+}
+
 public static  Function attribute(AttributeSensor 
attribute) {
 return new GetEntityAttributeFunction(checkNotNull(attribute, 
"attribute"));
 }
@@ -156,6 +162,26 @@ public class EntityFunctions {
 }
 }
 
+public static Function attribute(String attributeName, 
String format) {
+return attribute(Sensors.newSensor(Object.class, attributeName), 
format);
+}
+
+public static Function attribute(AttributeSensor 
attribute, String format) {
+return new FormatEntityAttributeFunction(checkNotNull(attribute, 
"attribute"), checkNotNull(format, "format"));
+}
+
+protected static class FormatEntityAttributeFunction implements 
Function {
+private final AttributeSensor attribute;
+private final String format;
+protected FormatEntityAttributeFunction(AttributeSensor attribute, 
String format) {
+this.attribute = attribute;
+this.format = format;
+}
+@Override public String apply(Entity input) {
+return (input == null) ? null : String.format(format, 
input.getAttribute(attribute));
+}
+}
+
 public static  Function attribute(Entity entity, 
AttributeSensor attribute) {
 return new GetFixedEntityAttributeFunction<>(entity, attribute);
 }
@@ -172,6 +198,10 @@ public class EntityFunctions {
 }
 }
 
+public static Function config(String keyName) {
+return config(ConfigKeys.newConfigKey(Object.class, keyName));
+}
+
 public static  Function config(ConfigKey key) {
 return new GetEntityConfigFunction(checkNotNull(key, "key"));
 }
@@ -188,6 +218,28 @@ public class EntityFunctions {
 }
 }
 
+public static Function config(String keyName, String 
format) {
+return config(ConfigKeys.newConfigKey(Object.class, keyName), format);
+}
+
+public static Function config(ConfigKey key, String 
format) {
+return new FormatEntityConfigFunction(checkNotNull(key, "key"), 
checkNotNull(format, "format"));
+}
+
+protected static class FormatEntityConfigFunction implements 
Function {
+private final ConfigKey key;
+private final String format;
+
+protected FormatEntityConfigFunction(ConfigKey key, String format) {
+this.key = key;
+this.format = format;
+}
+
+@Override public String apply(Entity input) {
+return (input == null) ? null : String.format(format, 
input.getConfig(key));
+}
+}
+
 public static Function displayName() {
 return GetEntityDisplayName.INSTANCE;
 }

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/33647865/core/src/test/java/org/apache/brooklyn/core/enti