This is an automated email from the ASF dual-hosted git repository.
heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git
The following commit(s) were added to refs/heads/master by this push:
new 150698a use supplied DSL string when generating toString for complex
dsl objects
new 437c229 Merge branch 'master' of
https://gitbox.apache.org/repos/asf/brooklyn-server
150698a is described below
commit 150698a1eba5f83e68daefc380cdea4d178d9880
Author: Alex Heneveld <[email protected]>
AuthorDate: Tue Dec 15 15:26:08 2020 +0000
use supplied DSL string when generating toString for complex dsl objects
---
.../camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java | 2 +-
.../camp/brooklyn/spi/dsl/DslDeferredFunctionCall.java | 4 ++++
.../camp/brooklyn/spi/dsl/methods/BrooklynDslCommon.java | 10 +++++++++-
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
index 83100cb..e3bb054 100644
---
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
+++
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
@@ -80,7 +80,7 @@ public abstract class BrooklynDslDeferredSupplier<T>
implements DeferredSupplier
// xstream deserialization should use the toString, and skips transients;
// jackson deserialization includes this, and relies on it if reading an
Object,
// but if reading to a Supplier it will correctly instantiate based on the
type field.
- private transient Object dsl = null;
+ protected transient Object dsl = null;
public BrooklynDslDeferredSupplier() {
PlanInterpretationNode sourceNode =
BrooklynDslInterpreter.currentNode();
diff --git
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslDeferredFunctionCall.java
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslDeferredFunctionCall.java
index 9ef74d0..5d90cb6 100644
---
a/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslDeferredFunctionCall.java
+++
b/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/DslDeferredFunctionCall.java
@@ -34,6 +34,7 @@ import org.apache.brooklyn.util.core.task.ValueResolver;
import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.guava.Maybe;
import org.apache.brooklyn.util.javalang.Reflections;
+import org.apache.brooklyn.util.text.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -239,6 +240,9 @@ public class DslDeferredFunctionCall extends
BrooklynDslDeferredSupplier<Object>
@Override
public String toString() {
+ // prefer the dsl set on us, if set
+ if (dsl instanceof String && Strings.isNonBlank((String)dsl)) return
(String)dsl;
+
return DslToStringHelpers.fn(DslToStringHelpers.internal(object) + "."
+ fnName, args);
}
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 61f906f..0a5f434 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
@@ -73,6 +73,7 @@ import org.apache.brooklyn.util.javalang.coerce.TypeCoercer;
import org.apache.brooklyn.util.net.Urls;
import org.apache.brooklyn.util.os.Os;
import org.apache.brooklyn.util.text.StringEscapes.JavaStringEscapes;
+import org.apache.brooklyn.util.text.Strings;
import org.apache.brooklyn.util.yaml.Yamls;
import org.apache.commons.beanutils.BeanUtils;
import org.slf4j.Logger;
@@ -835,7 +836,14 @@ public class BrooklynDslCommon {
@Override
public String toString() {
- return DslToStringHelpers.fn("object", type != null ?
type.getName() : typeName);
+ // prefer the dsl set on us, if set
+ if (dsl instanceof String && Strings.isNonBlank((String)dsl))
return (String)dsl;
+
+ Object arg = type != null ? type.getName() : typeName;
+ if (!constructorArgs.isEmpty()) {
+ arg =
MutableList.of(arg).appendAll(constructorArgs).toString();
+ }
+ return DslToStringHelpers.fn("object", arg);
}
}