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);
         }
     }
 

Reply via email to