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 2016/11/16 12:30:13 UTC
[3/4] brooklyn-server git commit: Test XML persistence of task
Test XML persistence of task
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/a36ecc8e
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/a36ecc8e
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/a36ecc8e
Branch: refs/heads/master
Commit: a36ecc8eb3f018444d50b7406b6b5ae06ce59b3f
Parents: 04711a5
Author: Aled Sage <al...@gmail.com>
Authored: Thu Nov 10 13:19:16 2016 +0000
Committer: Aled Sage <al...@gmail.com>
Committed: Thu Nov 10 14:15:12 2016 +0000
----------------------------------------------------------------------
.../mgmt/persist/XmlMementoSerializerTest.java | 36 +++++++++++++++++++-
.../org/apache/brooklyn/test/LogWatcher.java | 4 +++
2 files changed, 39 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a36ecc8e/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
index fab0059..b708eb7 100644
--- a/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
+++ b/core/src/test/java/org/apache/brooklyn/core/mgmt/persist/XmlMementoSerializerTest.java
@@ -39,6 +39,7 @@ import org.apache.brooklyn.api.entity.EntitySpec;
import org.apache.brooklyn.api.location.Location;
import org.apache.brooklyn.api.location.LocationSpec;
import org.apache.brooklyn.api.mgmt.ManagementContext;
+import org.apache.brooklyn.api.mgmt.Task;
import org.apache.brooklyn.api.mgmt.rebind.mementos.BrooklynMementoPersister.LookupContext;
import org.apache.brooklyn.api.objs.BrooklynObject;
import org.apache.brooklyn.api.objs.BrooklynObjectType;
@@ -56,16 +57,19 @@ import org.apache.brooklyn.core.mgmt.ha.OsgiManager;
import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
import org.apache.brooklyn.core.mgmt.osgi.OsgiStandaloneTest;
import org.apache.brooklyn.core.mgmt.osgi.OsgiVersionMoreEntityTest;
+import org.apache.brooklyn.core.mgmt.rebind.RebindEntityTest.ReffingEntity;
import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
import org.apache.brooklyn.core.test.entity.TestApplication;
import org.apache.brooklyn.core.test.entity.TestEntity;
import org.apache.brooklyn.entity.group.DynamicCluster;
+import org.apache.brooklyn.test.LogWatcher;
+import org.apache.brooklyn.test.LogWatcher.EventPredicates;
import org.apache.brooklyn.test.support.TestResourceUnavailableException;
import org.apache.brooklyn.util.collections.MutableList;
import org.apache.brooklyn.util.collections.MutableMap;
import org.apache.brooklyn.util.collections.MutableSet;
-import org.apache.brooklyn.util.core.ClassLoaderUtils;
import org.apache.brooklyn.util.core.osgi.Osgis;
+import org.apache.brooklyn.util.core.task.BasicTask;
import org.apache.brooklyn.util.javalang.Reflections;
import org.apache.brooklyn.util.net.Networking;
import org.apache.brooklyn.util.net.UserAndHostAndPort;
@@ -80,17 +84,21 @@ import org.testng.annotations.Test;
import com.google.common.base.Joiner;
import com.google.common.base.Objects;
+import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import com.google.common.util.concurrent.Callables;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+
public class XmlMementoSerializerTest {
private static final Logger LOG = LoggerFactory.getLogger(XmlMementoSerializerTest.class);
@@ -518,6 +526,32 @@ public class XmlMementoSerializerTest {
}
}
+ @Test
+ public void testTask() throws Exception {
+ final TestApplication app = TestApplication.Factory.newManagedInstanceForTests();
+ mgmt = app.getManagementContext();
+ Task<String> completedTask = app.getExecutionContext().submit(Callables.returning("myval"));
+ completedTask.get();
+
+ String loggerName = UnwantedStateLoggingMapper.class.getName();
+ ch.qos.logback.classic.Level logLevel = ch.qos.logback.classic.Level.WARN;
+ Predicate<ILoggingEvent> filter = EventPredicates.containsMessage("Task object serialization is not supported or recommended");
+ LogWatcher watcher = new LogWatcher(loggerName, logLevel, filter);
+
+ String serializedForm;
+ watcher.start();
+ try {
+ serializedForm = serializer.toString(completedTask);
+ watcher.assertHasEvent();
+ } finally {
+ watcher.close();
+ }
+
+ assertEquals(serializedForm.trim(), "<"+BasicTask.class.getName()+">myval</"+BasicTask.class.getName()+">");
+ Object deserialized = serializer.fromString(serializedForm);
+ assertEquals(deserialized, null, "serializedForm="+serializedForm+"; deserialized="+deserialized);
+ }
+
public static class ReffingEntity {
public Entity entity;
public Object obj;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/a36ecc8e/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 9326f1b..6baa852 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
@@ -130,6 +130,10 @@ public class LogWatcher implements Closeable {
}
}
+ public void assertHasEvent() {
+ assertFalse(events.isEmpty());
+ }
+
public void assertHasEventEventually() {
Asserts.succeedsEventually(new Runnable() {
public void run() {