[05/13] brooklyn-server git commit: Add context to main stdout appender

2018-02-15 Thread tbouron
Add context to main stdout appender


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

Branch: refs/heads/master
Commit: d45633380dff9cc098784e85fab8ddd9c7d1fbba
Parents: 11740cc
Author: Geoff Macartney 
Authored: Tue Jan 23 12:24:25 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../src/main/resources/brooklyn/logback-appender-stdout.xml| 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/d4563338/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml
--
diff --git 
a/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml
 
b/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml
index 0763e3b..e612042 100644
--- 
a/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml
+++ 
b/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml
@@ -21,7 +21,7 @@
 
   
 
-  %d %-5level %msg%n%xEx{0}
+  %d %-5level %X{entity.ids} %msg%n%xEx{0}
 
 
 INFO



[11/13] brooklyn-server git commit: Remove redundant cast

2018-02-15 Thread tbouron
Remove redundant cast


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

Branch: refs/heads/master
Commit: 56bacd83daef1bb3d4596fbf0448909ea8c36e48
Parents: 661e40f
Author: Geoff Macartney 
Authored: Fri Jan 26 17:54:32 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../src/main/java/org/apache/brooklyn/test/LogWatcher.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/56bacd83/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
--
diff --git 
a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java 
b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
index aa8aa0b..d41e1fa 100644
--- a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
+++ b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
@@ -216,7 +216,7 @@ public class LogWatcher implements Closeable {
 logger.addAppender(this.appender);
 logger.setLevel(this.loggerLevel);
 logger.setAdditive(false);
-watchedLoggers.add((ch.qos.logback.classic.Logger) logger);
+watchedLoggers.add(logger);
 }
 }
 



[1/2] brooklyn-server git commit: BROOKLYN-576: decrease debug logging for resolved DSL

2018-02-15 Thread tbouron
Repository: brooklyn-server
Updated Branches:
  refs/heads/master d62a7b946 -> 1fcc80eca


BROOKLYN-576: decrease debug logging for resolved DSL


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

Branch: refs/heads/master
Commit: 33e0eeaaf43e3209cc16b7c5e531c1bccdd1589b
Parents: d62a7b9
Author: Aled Sage 
Authored: Wed Feb 14 13:56:05 2018 +
Committer: Aled Sage 
Committed: Wed Feb 14 13:56:05 2018 +

--
 .../camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/33e0eeaa/camp/camp-brooklyn/src/main/java/org/apache/brooklyn/camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java
--
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 626f41d..9358e30 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
@@ -117,12 +117,12 @@ public abstract class BrooklynDslDeferredSupplier 
implements DeferredSupplier
 throw Exceptions.propagate(e);
 }
 
-if (log.isDebugEnabled()) {
+if (log.isTraceEnabled()) {
 // https://issues.apache.org/jira/browse/BROOKLYN-269
 // We must not log sensitve data, such as from $brooklyn:external, 
or if the value
 // is to be used as a password etc. Unfortunately we don't know 
the context, so can't
 // use Sanitizer.sanitize.
-log.debug("Resolved "+dsl);
+log.trace("Resolved "+dsl);
 }
 return result;
 }



[2/2] brooklyn-server git commit: This closes #948

2018-02-15 Thread tbouron
This closes #948


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

Branch: refs/heads/master
Commit: 1fcc80eca96db76e831b8492713005abbd1fb1f6
Parents: d62a7b9 33e0eea
Author: Thomas Bouron 
Authored: Thu Feb 15 10:13:47 2018 +
Committer: Thomas Bouron 
Committed: Thu Feb 15 10:13:47 2018 +

--
 .../camp/brooklyn/spi/dsl/BrooklynDslDeferredSupplier.java   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--




[04/13] brooklyn-server git commit: Add code that gives a working MDC output in test

2018-02-15 Thread tbouron
Add code that gives a working MDC output in test

2018-01-23 11:52:20,118 INFO  [i6hk2jll5n, z2scr3kczj, hn242jl6bi] Hello 
from entity hn242jl6bi
2018-01-23 11:52:20,118 INFO  [i6hk2jll5n, z2scr3kczj]   Hello from entity 
z2scr3kczj
2018-01-23 11:52:20,118 INFO  [i6hk2jll5n] Hello world
2018-01-23 11:52:20,128 INFO  [i6hk2jll5n] Goodbye cruel world
2018-01-23 11:52:20,128 INFO  [i6hk2jll5n, z2scr3kczj]   Goodbye from entity 
z2scr3kczj
2018-01-23 11:52:20,129 INFO  [i6hk2jll5n, z2scr3kczj, hn242jl6bi] Goodbye 
from entity hn242jl6bi


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

Branch: refs/heads/master
Commit: 11740cc65a1121a0c272e78f68fd5dac012b8fb9
Parents: 1f9446e
Author: Geoff Macartney 
Authored: Fri Jan 19 18:01:55 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../util/core/task/BasicExecutionContext.java   |  42 +-
 .../core/entity/ApplicationLoggingTest.java | 151 +++
 .../brooklyn/logback-appender-stdout.xml|  35 +
 pom.xml |   2 +-
 4 files changed, 227 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/11740cc6/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java
--
diff --git 
a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java
 
b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java
index 32ca5b7..2575464 100644
--- 
a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java
+++ 
b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java
@@ -19,9 +19,11 @@
 package org.apache.brooklyn.util.core.task;
 
 import java.lang.reflect.Proxy;
+import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Deque;
 import java.util.LinkedHashSet;
 import java.util.Map;
 import java.util.Set;
@@ -33,6 +35,7 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.brooklyn.api.entity.Entity;
 import org.apache.brooklyn.api.mgmt.ExecutionContext;
@@ -55,6 +58,7 @@ import org.apache.brooklyn.util.time.CountdownTimer;
 import org.apache.brooklyn.util.time.Duration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
 
 import com.google.common.annotations.Beta;
 import com.google.common.base.Function;
@@ -66,10 +70,12 @@ import com.google.common.collect.Iterables;
  * (so that it can look like an {@link Executor} and also supply {@link 
ExecutorService#submit(Callable)}
  */
 public class BasicExecutionContext extends AbstractExecutionContext {
-
+
 private static final Logger log = 
LoggerFactory.getLogger(BasicExecutionContext.class);
 
 static final ThreadLocal perThreadExecutionContext 
= new ThreadLocal();
+public static final String ENTITY_IDS = "entity.ids";
+
 public static BasicExecutionContext getCurrentExecutionContext() { return 
perThreadExecutionContext.get(); }
 
 final ExecutionManager executionManager;
@@ -221,9 +227,16 @@ public class BasicExecutionContext extends 
AbstractExecutionContext {
 
 SimpleFuture future = new SimpleFuture<>();
 Throwable error = null;
+final Set taskTags = task.getTags();
+Entity target = BrooklynTaskTags.getWrappedEntityOfType(taskTags, 
BrooklynTaskTags.TARGET_ENTITY);
+final AtomicReference loggingContext = new 
AtomicReference<>();
+
 try {
 
((BasicExecutionManager)executionManager).afterSubmitRecordFuture(task, future);
 
((BasicExecutionManager)executionManager).beforeStartInSameThreadTask(null, 
task);
+if (target != null) {
+loggingContext.set(MDC.putCloseable(ENTITY_IDS, 
idStack(target).toString()));
+}
 return future.set(job.call());
 
 } catch (Exception e) {
@@ -237,6 +250,10 @@ public class BasicExecutionContext extends 
AbstractExecutionContext {
 try {
 
((BasicExecutionManager)executionManager).afterEndInSameThreadTask(null, task, 
error);
 } finally {
+final MDC.MDCCloseable context = loggingContext.get();
+  

[03/13] brooklyn-server git commit: Format line

2018-02-15 Thread tbouron
Format line


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

Branch: refs/heads/master
Commit: 2c81f63ed63c92e494abdbcb12eeb65fd4643c99
Parents: 56bacd8
Author: Geoff Macartney 
Authored: Fri Jan 26 17:54:54 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../src/main/java/org/apache/brooklyn/test/LogWatcher.java| 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/2c81f63e/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
--
diff --git 
a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java 
b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
index d41e1fa..6eaefa3 100644
--- a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
+++ b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
@@ -212,7 +212,8 @@ public class LogWatcher implements Closeable {
 this.appender.start();
 
 for (String loggerName : loggerNames) {
-final ch.qos.logback.classic.Logger logger = 
(ch.qos.logback.classic.Logger)LoggerFactory.getLogger(checkNotNull(loggerName, 
"loggerName"));
+final ch.qos.logback.classic.Logger logger =
+
(ch.qos.logback.classic.Logger)LoggerFactory.getLogger(checkNotNull(loggerName, 
"loggerName"));
 logger.addAppender(this.appender);
 logger.setLevel(this.loggerLevel);
 logger.setAdditive(false);



[08/13] brooklyn-server git commit: Re-use pattern layout from logback-appender-stdout.xml

2018-02-15 Thread tbouron
Re-use pattern layout from logback-appender-stdout.xml


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

Branch: refs/heads/master
Commit: 661e40fc18805b975cd46f8e4e3b3d97b12258c6
Parents: df73520
Author: Geoff Macartney 
Authored: Fri Jan 26 17:53:59 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../main/java/org/apache/brooklyn/test/LogWatcher.java| 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/661e40fc/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
--
diff --git 
a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java 
b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
index 176b295..aa8aa0b 100644
--- a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
+++ b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
@@ -33,6 +33,7 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.BiPredicate;
+import java.util.regex.Pattern;
 
 import org.apache.brooklyn.util.time.Time;
 import org.slf4j.Logger;
@@ -51,6 +52,7 @@ import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
 import ch.qos.logback.classic.spi.ILoggingEvent;
 import ch.qos.logback.classic.spi.IThrowableProxy;
 import ch.qos.logback.classic.spi.StackTraceElementProxy;
+import ch.qos.logback.core.Appender;
 import ch.qos.logback.core.ConsoleAppender;
 import ch.qos.logback.core.OutputStreamAppender;
 
@@ -195,7 +197,13 @@ public class LogWatcher implements Closeable {
 }
 };
 
-ple.setPattern(" %d{ISO8601} %X{entity.ids} %-5.5p %3X{bundle.id} 
%c{1.} [%.16t] %m%n");
+// The code below makes the assumption that the (test) logger 
configuration has a console appender
+// for root, with a pattern layout encoder, and re-uses its encoder 
pattern.
+// This is (at time of writing) as defined in 
logback-appender-stdout.xml.
+final Appender appender = 
lc.getLogger("ROOT").getAppender("STDOUT");
+final ConsoleAppender stdout = ConsoleAppender.class.cast(appender);
+final PatternLayoutEncoder stdoutEncoder = 
PatternLayoutEncoder.class.cast(stdout.getEncoder());
+ple.setPattern(stdoutEncoder.getPattern());
 ple.setContext(lc);
 ple.start();
 



[12/13] brooklyn-server git commit: Tidy up a bit

2018-02-15 Thread tbouron
Tidy up a bit


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

Branch: refs/heads/master
Commit: 83875637e119a76f73a976f883fc6aaa0460382b
Parents: 19b06ba
Author: Geoff Macartney 
Authored: Sat Jan 27 16:31:52 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../core/entity/ApplicationLoggingTest.java | 36 +++-
 .../org/apache/brooklyn/test/LogWatcher.java|  6 ++--
 2 files changed, 14 insertions(+), 28 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/83875637/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
--
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
 
b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
index 2e74593..4c075aa 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
@@ -18,9 +18,8 @@
  */
 package org.apache.brooklyn.core.entity;
 
-import static com.google.common.base.Predicates.and;
 import static 
org.apache.brooklyn.test.LogWatcher.EventPredicates.containsMessage;
-import static 
org.apache.brooklyn.test.LogWatcher.EventPredicates.matchesPatterns;
+import static 
org.apache.brooklyn.test.LogWatcher.EventPredicates.matchingRegexes;
 
 import java.util.ArrayDeque;
 import java.util.Collection;
@@ -41,17 +40,14 @@ import org.apache.brooklyn.core.test.entity.TestEntityImpl;
 import org.apache.brooklyn.test.LogWatcher;
 import org.apache.brooklyn.util.collections.QuorumCheck;
 import org.apache.brooklyn.util.exceptions.Exceptions;
-import org.apache.brooklyn.util.text.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.annotations.Test;
 
-import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 import com.google.common.collect.ImmutableList;
 
 import ch.qos.logback.classic.Level;
-import ch.qos.logback.classic.spi.ILoggingEvent;
 
 @Test
 public class ApplicationLoggingTest extends BrooklynAppUnitTestSupport {
@@ -156,14 +152,19 @@ public class ApplicationLoggingTest extends 
BrooklynAppUnitTestSupport {
 assertHealthEventually(app, Lifecycle.RUNNING, true);
 app.stop();
 assertHealthEventually(app, Lifecycle.STOPPED, false);
-watcher.assertHasEvent(matchesPatterns(".*" + 
app.getApplicationId() + ".*Hello world.*"));
-watcher.assertHasEvent(matchesPatterns(".*"
-+ ImmutableList.of(app.getId(), entity.getId()).toString()
-+ ".*from entity.*" + entity.getId() + ".*"));
-watcher.assertHasEvent(matchesPatterns(".*" +
+
+// Look for output like
+// 2018-01-27 16:25:52,386 INFO  [dwym20xr82, b1babwc34d, 
se1d2nn62j] Hello from entity se1d2nn62j
+// 2018-01-27 16:25:52,388 INFO  [dwym20xr82, b1babwc34d]   Hello 
from entity b1babwc34d
+// 2018-01-27 16:25:52,389 INFO  [dwym20xr82] Hello world
+// 2018-01-27 16:25:52,399 INFO  [dwym20xr82] Goodbye cruel world
+// 2018-01-27 16:25:52,400 INFO  [dwym20xr82, b1babwc34d]   
Goodbye from entity b1babwc34d
+// 2018-01-27 16:25:52,401 INFO  [dwym20xr82, b1babwc34d, 
se1d2nn62j] Goodbye from entity se1d2nn62j
+watcher.assertHasEvent(matchingRegexes(".*" + 
app.getApplicationId() + ".*Hello world.*"));;
+watcher.assertHasEvent(matchingRegexes(".*" +
 ImmutableList.of(app.getId(), entity.getId()).toString()
 + ".*from entity.*" + entity.getId() + ".*"));
-watcher.assertHasEvent(matchesPatterns(".*" +
+watcher.assertHasEvent(matchingRegexes(".*" +
 ImmutableList.of(app.getId(), entity.getId(), 
child.getId()).toString()
 + ".*from entity.*" + child.getId() + ".*"));
 } finally {
@@ -171,19 +172,6 @@ public class ApplicationLoggingTest extends 
BrooklynAppUnitTestSupport {
 }
 }
 
-
-@Test
-public void testOne() {
-LogWatcher watcher = new LogWatcher(LOG.getName(), Level.DEBUG, 
Predicates.alwaysTrue());
-
-watcher.start();
-try {
-LOG.error("Test message");
-} finally {
-watcher.close();
-}
-}
-
 private void assertHealthEventually(Entity entity, Lifecycle 

[06/13] brooklyn-server git commit: Assert on log output

2018-02-15 Thread tbouron
Assert on log output


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

Branch: refs/heads/master
Commit: 643aa9c1e4643b37ec96f7dcebfcf4cb3c78c6bd
Parents: d456333
Author: Geoff Macartney 
Authored: Fri Jan 26 17:38:34 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../core/entity/ApplicationLoggingTest.java |  51 +++-
 .../brooklyn/logback-appender-stdout.xml|  35 -
 .../org/apache/brooklyn/test/LogWatcher.java| 131 ---
 3 files changed, 129 insertions(+), 88 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/643aa9c1/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
--
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
 
b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
index 3fc57ec..2e74593 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
@@ -18,6 +18,10 @@
  */
 package org.apache.brooklyn.core.entity;
 
+import static com.google.common.base.Predicates.and;
+import static 
org.apache.brooklyn.test.LogWatcher.EventPredicates.containsMessage;
+import static 
org.apache.brooklyn.test.LogWatcher.EventPredicates.matchesPatterns;
+
 import java.util.ArrayDeque;
 import java.util.Collection;
 import java.util.Deque;
@@ -34,15 +38,21 @@ import org.apache.brooklyn.core.test.entity.TestApplication;
 import org.apache.brooklyn.core.test.entity.TestApplicationImpl;
 import org.apache.brooklyn.core.test.entity.TestEntity;
 import org.apache.brooklyn.core.test.entity.TestEntityImpl;
+import org.apache.brooklyn.test.LogWatcher;
 import org.apache.brooklyn.util.collections.QuorumCheck;
 import org.apache.brooklyn.util.exceptions.Exceptions;
+import org.apache.brooklyn.util.text.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
 import org.testng.annotations.Test;
 
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
 import com.google.common.collect.ImmutableList;
 
+import ch.qos.logback.classic.Level;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+
 @Test
 public class ApplicationLoggingTest extends BrooklynAppUnitTestSupport {
 private static final Logger LOG = 
LoggerFactory.getLogger(ApplicationLoggingTest.class);
@@ -131,18 +141,49 @@ public class ApplicationLoggingTest extends 
BrooklynAppUnitTestSupport {
 
 @Test
 public void testLogging() throws Exception {
+String loggerName = ApplicationLoggingTest.class.getName();
+ch.qos.logback.classic.Level logLevel = 
ch.qos.logback.classic.Level.INFO;
 
 Deque ids = new ArrayDeque<>();
 ids.push(app.getId());
 final TestEntityWithLogging entity = 
app.createAndManageChild(EntitySpec.create(TestEntityWithLogging.class));
 final TestEntityWithLogging child = 
entity.addChild(EntitySpec.create(EntitySpec.create(TestEntityWithLogging.class)));
-app.start(ImmutableList.of(app.newSimulatedLocation()));
-assertHealthEventually(app, Lifecycle.RUNNING, true);
-app.stop();
-assertHealthEventually(app, Lifecycle.STOPPED, false);
+LogWatcher watcher = new LogWatcher(loggerName, logLevel, 
containsMessage(app.getId()));
+
+watcher.start();
+try {
+app.start(ImmutableList.of(app.newSimulatedLocation()));
+assertHealthEventually(app, Lifecycle.RUNNING, true);
+app.stop();
+assertHealthEventually(app, Lifecycle.STOPPED, false);
+watcher.assertHasEvent(matchesPatterns(".*" + 
app.getApplicationId() + ".*Hello world.*"));
+watcher.assertHasEvent(matchesPatterns(".*"
++ ImmutableList.of(app.getId(), entity.getId()).toString()
++ ".*from entity.*" + entity.getId() + ".*"));
+watcher.assertHasEvent(matchesPatterns(".*" +
+ImmutableList.of(app.getId(), entity.getId()).toString()
++ ".*from entity.*" + entity.getId() + ".*"));
+watcher.assertHasEvent(matchesPatterns(".*" +
+ImmutableList.of(app.getId(), entity.getId(), 
child.getId()).toString()
++ ".*from entity.*" + child.getId() + ".*"));
+} finally {
+watcher.close();
+}
 }
 
 
+ 

[02/13] brooklyn-server git commit: Avoid spaces in entity list

2018-02-15 Thread tbouron
Avoid spaces in entity list


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

Branch: refs/heads/master
Commit: eac895ecff79bb77070dfac8581e5cf457e02c6a
Parents: 2d13332
Author: Geoff Macartney 
Authored: Fri Feb 2 18:01:37 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../brooklyn/util/core/task/BasicExecutionContext.java |  8 
 .../brooklyn/core/entity/ApplicationLoggingTest.java   | 13 +++--
 2 files changed, 11 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/eac895ec/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java
--
diff --git 
a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java
 
b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java
index c32485a..a3f33f7 100644
--- 
a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java
+++ 
b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicExecutionContext.java
@@ -237,7 +237,7 @@ public class BasicExecutionContext extends 
AbstractExecutionContext {
 
((BasicExecutionManager)executionManager).afterSubmitRecordFuture(task, future);
 
((BasicExecutionManager)executionManager).beforeStartInSameThreadTask(null, 
task);
 if (target != null) {
-entityMDC.set(MDC.putCloseable(ENTITY_IDS, 
idStack(target).toString()));
+entityMDC.set(MDC.putCloseable(ENTITY_IDS, idStack(target)));
 taskMDC.set(MDC.putCloseable(TASK_ID, task.getId()));
 }
 return future.set(job.call());
@@ -386,7 +386,7 @@ public class BasicExecutionContext extends 
AbstractExecutionContext {
 public Void apply(Task it) {
 registerPerThreadExecutionContext();
 if (target != null) {
-entityMDC.set(MDC.putCloseable(ENTITY_IDS, 
idStack(target).toString()));
+entityMDC.set(MDC.putCloseable(ENTITY_IDS, 
idStack(target)));
 taskMDC.set(MDC.putCloseable(TASK_ID, it.getId()));
 }
 if (startCallback!=null) 
BasicExecutionManager.invokeCallback(startCallback, it);
@@ -418,7 +418,7 @@ public class BasicExecutionContext extends 
AbstractExecutionContext {
 }
 }
 
-private Deque idStack(Entity target) {
+private String idStack(Entity target) {
 Deque ids = new ArrayDeque<>();
 Entity e = target;
 ids.push(e.getId());
@@ -426,7 +426,7 @@ public class BasicExecutionContext extends 
AbstractExecutionContext {
 e = e.getParent();
 ids.push(e.getId());
 }
-return ids;
+return ids.toString().replace(" ", "");
 }
 
 private static class ContextSwitchingInfo {

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/eac895ec/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
--
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
 
b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
index 830358f..f5ec4b9 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
@@ -166,12 +166,13 @@ public class ApplicationLoggingTest extends 
BrooklynAppUnitTestSupport {
 assertHealthEventually(app, Lifecycle.STOPPED, false);
 
 // Look for output like
-//  2018-02-02 17:26:20,481 INFO  LxwcJM6p@[i13ysr26ou, bb0ptkb284, 
xl760xm9dc] Hello from entity xl760xm9dc
-//  2018-02-02 17:26:20,484 INFO  Wv3r7mmH@[i13ysr26ou, bb0ptkb284]   
Hello from entity bb0ptkb284
-//  2018-02-02 17:26:20,485 INFO  P3omDOqq@[i13ysr26ou] Hello world
-//  2018-02-02 17:26:20,497 INFO  KKKPujW4@[i13ysr26ou] Goodbye cruel 
world
-//  2018-02-02 17:26:20,498 INFO  NR5pk9h4@[i13ysr26ou, bb0ptkb284]   
Goodbye from entity bb0ptkb284
-//  2018-02-02 17:26:20,499 INFO  KHMVOAp4@[i13ysr26ou, bb0ptkb284, 
xl760xm9dc] Goodbye from entity xl760xm9dc
+//2018-02-02 18:00:39,351 INFO  
xJTIhVuy@[ixxmgfzjos,m5it71jfiw,kw18pflnqp] Hello from entity kw18pflnqp
+//2018-02-02 18:00:39,354 INFO  

[07/13] brooklyn-server git commit: Use ConsoleAppender in LogWatcher

2018-02-15 Thread tbouron
Use ConsoleAppender in LogWatcher


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

Branch: refs/heads/master
Commit: df7352048051721952a9f082f1df31b7bc8c54b2
Parents: 643aa9c
Author: Geoff Macartney 
Authored: Fri Jan 26 17:41:02 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../java/org/apache/brooklyn/test/LogWatcher.java | 14 --
 1 file changed, 4 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/df735204/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
--
diff --git 
a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java 
b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
index 16d27b0..176b295 100644
--- a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
+++ b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
@@ -51,6 +51,7 @@ import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
 import ch.qos.logback.classic.spi.ILoggingEvent;
 import ch.qos.logback.classic.spi.IThrowableProxy;
 import ch.qos.logback.classic.spi.StackTraceElementProxy;
+import ch.qos.logback.core.ConsoleAppender;
 import ch.qos.logback.core.OutputStreamAppender;
 
 /**
@@ -155,7 +156,7 @@ public class LogWatcher implements Closeable {
 private final List events = 
Collections.synchronizedList(Lists.newLinkedList());
 private final AtomicBoolean closed = new AtomicBoolean();
 private final ch.qos.logback.classic.Level loggerLevel;
-private final OutputStreamAppender appender;
+private final ConsoleAppender appender;
 private final List watchedLoggers = 
Lists.newArrayList();
 private volatile Map origLevels = 
Maps.newLinkedHashMap();
 
@@ -169,14 +170,7 @@ public class LogWatcher implements Closeable {
 this.loggerLevel = checkNotNull(loggerLevel, "loggerLevel");
 LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
 
-this.appender = new OutputStreamAppender() {
-@Override
-protected void append(ILoggingEvent event) {
-super.append(event);
-
-LOG.trace("level="+event.getLevel()+"; event="+event+"; 
msg="+event.getFormattedMessage());
-}
-};
+this.appender = new ConsoleAppender<>();
 
 PatternLayoutEncoder ple = new PatternLayoutEncoder() {
 @Override
@@ -195,6 +189,7 @@ public class LogWatcher implements Closeable {
 if (event != null && filter.apply(formatted)) {
 events.add(formatted);
 }
+LOG.trace("level="+event.getLevel()+"; event="+event+"; 
msg="+event.getFormattedMessage());
 
 super.doEncode(event);
 }
@@ -206,7 +201,6 @@ public class LogWatcher implements Closeable {
 
 this.appender.setContext(lc);
 this.appender.setEncoder(ple);
-this.appender.setOutputStream(System.out);
 this.appender.start();
 
 for (String loggerName : loggerNames) {



[01/13] brooklyn-server git commit: Make cosmetic tweak to logging output

2018-02-15 Thread tbouron
Repository: brooklyn-server
Updated Branches:
  refs/heads/master 1fcc80eca -> 95698eadb


Make cosmetic tweak to logging output


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

Branch: refs/heads/master
Commit: 1fb6e3deb5030467b50fb50998d8b3e1961f169c
Parents: eac895e
Author: Geoff Macartney 
Authored: Mon Feb 5 16:25:49 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../core/entity/ApplicationLoggingTest.java | 16 
 .../resources/brooklyn/logback-appender-stdout.xml  |  2 +-
 2 files changed, 9 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1fb6e3de/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
--
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
 
b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
index f5ec4b9..66c2e92 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/entity/ApplicationLoggingTest.java
@@ -166,14 +166,14 @@ public class ApplicationLoggingTest extends 
BrooklynAppUnitTestSupport {
 assertHealthEventually(app, Lifecycle.STOPPED, false);
 
 // Look for output like
-//2018-02-02 18:00:39,351 INFO  
xJTIhVuy@[ixxmgfzjos,m5it71jfiw,kw18pflnqp] Hello from entity kw18pflnqp
-//2018-02-02 18:00:39,354 INFO  hqSMSJKm@[ixxmgfzjos,m5it71jfiw]   
Hello from entity m5it71jfiw
-//2018-02-02 18:00:39,354 INFO  fCW0mP92@[ixxmgfzjos] Hello world
-//2018-02-02 18:00:39,365 INFO  @ Stop task id is nxLdBOiG
-//2018-02-02 18:00:39,366 INFO  nxLdBOiG@[ixxmgfzjos] Goodbye 
cruel world
-//2018-02-02 18:00:39,367 INFO  hniq2zjE@[ixxmgfzjos,m5it71jfiw]   
Goodbye from entity m5it71jfiw
-//2018-02-02 18:00:39,369 INFO  
cFmqxDkJ@[ixxmgfzjos,m5it71jfiw,kw18pflnqp] Goodbye from entity kw18pflnqp
-watcher.assertHasEvent(containsMessage(stopId + "@"));
+//  2018-02-05 16:23:11,485 INFO  
K09KEX1U-[y4lgil3hya,xn0fmqrhzd,khx0py82ba] Hello from entity khx0py82ba
+//  2018-02-05 16:23:11,488 INFO  kD8Q76x0-[y4lgil3hya,xn0fmqrhzd]   
Hello from entity xn0fmqrhzd
+//  2018-02-05 16:23:11,488 INFO  ZsU4OGEp-[y4lgil3hya] Hello world
+//  2018-02-05 16:23:11,496 INFO  - Stop task id is pOp03ybS
+//  2018-02-05 16:23:11,498 INFO  pOp03ybS-[y4lgil3hya] Goodbye cruel 
world
+//  2018-02-05 16:23:11,499 INFO  c1Pcn3FR-[y4lgil3hya,xn0fmqrhzd]   
Goodbye from entity xn0fmqrhzd
+//  2018-02-05 16:23:11,500 INFO  
eq9akWgK-[y4lgil3hya,xn0fmqrhzd,khx0py82ba] Goodbye from entity khx0py82ba
+watcher.assertHasEvent(containsMessage(stopId + "-"));
 watcher.assertHasEvent(matchingRegexes(".*" + 
app.getApplicationId() + ".*Hello world.*"));;
 watcher.assertHasEvent(matchingRegexes(".*" +
 ImmutableList.of(app.getId(), entity.getId()).toString()

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1fb6e3de/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml
--
diff --git 
a/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml
 
b/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml
index 08b7f9f..61ca1ef 100644
--- 
a/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml
+++ 
b/logging/logback-includes/src/main/resources/brooklyn/logback-appender-stdout.xml
@@ -21,7 +21,7 @@
 
   
 
-  %d %-5level %X{task.id}@%X{entity.ids} %msg%n%xEx{0}
+  %d %-5level %X{task.id}-%X{entity.ids} %msg%n%xEx{0}
 
 
 INFO



[09/13] brooklyn-server git commit: Add comments explaining handling of pattern layout

2018-02-15 Thread tbouron
Add comments explaining handling of pattern layout


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

Branch: refs/heads/master
Commit: 19b06ba2876e40e29387389f5aa033697f846b2a
Parents: 2c81f63
Author: Geoff Macartney 
Authored: Fri Jan 26 18:02:08 2018 +
Committer: Geoff Macartney 
Committed: Fri Feb 9 21:09:20 2018 +

--
 .../src/main/java/org/apache/brooklyn/test/LogWatcher.java| 7 +++
 1 file changed, 7 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/19b06ba2/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
--
diff --git 
a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java 
b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
index 6eaefa3..3f6b002 100644
--- a/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
+++ b/test-support/src/main/java/org/apache/brooklyn/test/LogWatcher.java
@@ -178,6 +178,11 @@ public class LogWatcher implements Closeable {
 @Override
 public void doEncode(ILoggingEvent event) throws IOException {
 final String txt = layout.doLayout(event);
+
+// Jump through hoops to turn the input event (without any 
layout)
+// into one processed by the pattern layout, prior to applying 
the filter.
+// Wrap the input event in a dynamic proxy to lay out the 
message/toString methods
+// but delegate all other methods to the real input event
 ILoggingEvent formatted = (ILoggingEvent) 
Proxy.newProxyInstance(
 ILoggingEvent.class.getClassLoader(),
 new Class[]{ILoggingEvent.class},
@@ -188,6 +193,8 @@ public class LogWatcher implements Closeable {
 return method.invoke(event, args);
 }
 });
+
+// now we can do the filter on the text that will be written 
to the log output
 if (event != null && filter.apply(formatted)) {
 events.add(formatted);
 }



[13/13] brooklyn-server git commit: This closes #940

2018-02-15 Thread tbouron
This closes #940


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

Branch: refs/heads/master
Commit: 95698eadb6ddb710688367933840ba509a6c5fe9
Parents: 1fcc80e 1fb6e3d
Author: Thomas Bouron 
Authored: Thu Feb 15 10:49:08 2018 +
Committer: Thomas Bouron 
Committed: Thu Feb 15 10:49:08 2018 +

--
 .../util/core/task/BasicExecutionContext.java   |  43 +++-
 .../core/entity/ApplicationLoggingTest.java | 194 +++
 .../brooklyn/logback-appender-stdout.xml|   2 +-
 pom.xml |   2 +-
 .../org/apache/brooklyn/test/LogWatcher.java| 135 -
 5 files changed, 326 insertions(+), 50 deletions(-)
--