[brooklyn-server] 01/02: more object-reference deserialization tweaks
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 commit 361d4cacaf6a9cf7fa90b659a400e1ed56c2dc4f Author: Alex Heneveld AuthorDate: Sat Aug 14 04:38:44 2021 +0100 more object-reference deserialization tweaks --- .../core/resolve/jackson/BeanWithTypeUtils.java| 27 - ...BrooklynRegisteredTypeJacksonSerialization.java | 5 ++-- .../jackson/ObjectReferencingSerialization.java| 28 ++ .../util/core/internal/TypeCoercionsTest.java | 11 - 4 files changed, 52 insertions(+), 19 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java index 896d493..5cc11ef 100644 --- a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java +++ b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java @@ -125,7 +125,17 @@ public class BeanWithTypeUtils { */ public static T convert(ManagementContext mgmt, Object mapOrListToSerializeThenDeserialize, TypeToken type, boolean allowRegisteredTypes, BrooklynClassLoadingContext loader, boolean allowJavaTypes) throws JsonProcessingException { -// try with complex types are saved as objects rather than serialized +try { +return convertDeeply(mgmt, mapOrListToSerializeThenDeserialize, type, allowRegisteredTypes, loader, allowJavaTypes); + +} catch (Exception e) { +return convertShallow(mgmt, mapOrListToSerializeThenDeserialize, type, allowRegisteredTypes, loader, allowJavaTypes); +} +} + +@Beta +public static T convertShallow(ManagementContext mgmt, Object mapOrListToSerializeThenDeserialize, TypeToken type, boolean allowRegisteredTypes, BrooklynClassLoadingContext loader, boolean allowJavaTypes) throws JsonProcessingException { +// try with complex types are saved as objects rather than serialized, but won't work if special deserialization is wanted to apply to a map inside a complex type ObjectMapper mapper = YAMLMapper.builder().build(); mapper = BeanWithTypeUtils.applyCommonMapperConfig(mapper, mgmt, allowRegisteredTypes, loader, allowJavaTypes); mapper = new ObjectReferencingSerialization().useAndApplytoMapper(mapper); @@ -135,16 +145,11 @@ public class BeanWithTypeUtils { } @Beta -public static T convertExtra(ManagementContext mgmt, Object mapOrListToSerializeThenDeserialize, TypeToken type, boolean allowRegisteredTypes, BrooklynClassLoadingContext loader, boolean allowJavaTypes) throws JsonProcessingException { -try { -return convert(mgmt, mapOrListToSerializeThenDeserialize, type, allowRegisteredTypes, loader, allowJavaTypes); - -} catch (Exception e) { -// try full serialization - but won't work if things being written cannot be deserialized -ObjectMapper m = newMapper(mgmt, allowRegisteredTypes, loader, allowJavaTypes); -String serialization = m.writeValueAsString(mapOrListToSerializeThenDeserialize); -return m.readValue(serialization, BrooklynJacksonType.asJavaType(m, type)); -} +public static T convertDeeply(ManagementContext mgmt, Object mapOrListToSerializeThenDeserialize, TypeToken type, boolean allowRegisteredTypes, BrooklynClassLoadingContext loader, boolean allowJavaTypes) throws JsonProcessingException { +// try full serialization - but won't work if things being written cannot be deserialized, eg due to unknown type +ObjectMapper m = newMapper(mgmt, allowRegisteredTypes, loader, allowJavaTypes); +String serialization = m.writeValueAsString(mapOrListToSerializeThenDeserialize); +return m.readValue(serialization, BrooklynJacksonType.asJavaType(m, type)); } public static Maybe tryConvertOrAbsentUsingContext(Maybe input, TypeToken type) { diff --git a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BrooklynRegisteredTypeJacksonSerialization.java b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BrooklynRegisteredTypeJacksonSerialization.java index b7dbad4..5351716 100644 --- a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BrooklynRegisteredTypeJacksonSerialization.java +++ b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BrooklynRegisteredTypeJacksonSerialization.java @@ -228,10 +228,11 @@ public class BrooklynRegisteredTypeJacksonSerialization { public static ObjectMapper apply(ObjectMapper mapper, ManagementContext mgmt, boolean allowRegisteredTypes, BrooklynClassLoadingContext loader, boolean allowPojoJavaTypes) { // the type resolver is extended to recognise brooklyn registered type names // and return a
[brooklyn-server] 02/02: fix occasional race condition on teardown
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 commit 3aca98993e029878efe770fbc06110820ecf68f5 Author: Alex Heneveld AuthorDate: Sat Aug 14 05:19:44 2021 +0100 fix occasional race condition on teardown --- .../org/apache/brooklyn/core/mgmt/internal/LocalEntityManager.java | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalEntityManager.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalEntityManager.java index 8257c48..47936ac 100644 --- a/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalEntityManager.java +++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/internal/LocalEntityManager.java @@ -845,8 +845,9 @@ public class LocalEntityManager implements EntityManagerInternal { * this is happening? Should abstractEntity.onManagementStopped or some such remove the entity * from its groups? */ - -if (!getLastManagementTransitionMode(e.getId()).isReadOnly()) { + +ManagementTransitionMode lastTM = getLastManagementTransitionMode(e.getId()); +if (lastTM!=null && !lastTM.isReadOnly()) { e.clearParent(); for (Group group : e.groups()) { if (!Entities.isNoLongerManaged(group)) group.removeMember(e); @@ -858,7 +859,7 @@ public class LocalEntityManager implements EntityManagerInternal { } } } else { -log.debug("No relations being updated on unmanage of read only {}", e); +log.debug("No relations being updated on unmanage of read only {} (mode {})", e, lastTM); } unmanageOwnedLocations(e);
[brooklyn-server] branch master updated (f72e7c2 -> 3aca989)
This is an automated email from the ASF dual-hosted git repository. heneveld pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git. from f72e7c2 Merge branch 'serializing-with-references' new 361d4ca more object-reference deserialization tweaks new 3aca989 fix occasional race condition on teardown The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../core/mgmt/internal/LocalEntityManager.java | 7 +++--- .../core/resolve/jackson/BeanWithTypeUtils.java| 27 - ...BrooklynRegisteredTypeJacksonSerialization.java | 5 ++-- .../jackson/ObjectReferencingSerialization.java| 28 ++ .../util/core/internal/TypeCoercionsTest.java | 11 - 5 files changed, 56 insertions(+), 22 deletions(-)
[brooklyn-server] 03/06: remove exploratory jackson stuff that isn't needed
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 commit 5dd7b3cc6061d632c8f96acf63225024beffe726 Author: Alex Heneveld AuthorDate: Sat Aug 14 02:12:37 2021 +0100 remove exploratory jackson stuff that isn't needed --- .../jackson/ObjectReferencingSerialization.java| 63 +--- .../BrooklynMiscJacksonSerializationTest.java | 114 - 2 files changed, 3 insertions(+), 174 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/ObjectReferencingSerialization.java b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/ObjectReferencingSerialization.java index 27005c1..465380b 100644 --- a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/ObjectReferencingSerialization.java +++ b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/ObjectReferencingSerialization.java @@ -2,7 +2,6 @@ package org.apache.brooklyn.core.resolve.jackson; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonToken; import com.fasterxml.jackson.databind.BeanDescription; import com.fasterxml.jackson.databind.DeserializationContext; @@ -20,7 +19,6 @@ import com.fasterxml.jackson.databind.ser.std.StdSerializer; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; import java.io.IOException; -import java.util.Map; import org.apache.brooklyn.core.resolve.jackson.BrooklynJacksonSerializationUtils.ConfigurableBeanDeserializerModifier; import org.apache.brooklyn.util.text.Identifiers; import org.slf4j.Logger; @@ -28,6 +26,9 @@ import org.slf4j.LoggerFactory; public class ObjectReferencingSerialization { +// some other explorations of approaches, including object id, are in the git history; +// but this seemed the best as object id was harder to use for all bean types + private static final Logger LOG = LoggerFactory.getLogger(ObjectReferencingSerialization.class); public ObjectMapper useMapper(ObjectMapper mapper) { @@ -37,22 +38,9 @@ public class ObjectReferencingSerialization { .addDeserializerWrapper( d -> new ObjectReferencingJsonDeserializer(d, backingMap) ).apply(mapper); - -//mapper.registerModule(new SimpleModule() -//.addSerializer(Object.class, new ObjectReferenceSerializer(backingMap)) -//.addDeserializer(Object.class, new ObjectReferenceDeserializer(backingMap)) -//); return mapper; } - -static class ObjectReference { -String id; -public ObjectReference() {} -public ObjectReference(String id) { this.id = id; } -} - - static class ObjectReferenceSerializer extends StdSerializer { private final BiMap backingMap; @@ -75,19 +63,6 @@ public class ObjectReferencingSerialization { } gen.writeObjectRef(id); - -//serializers.findValueSerializer(Map.class, null).serializeWithType(MutableMap.of("@ref", id), gen, serializers, -// serializers.findTypeSerializer(serializers.constructType(Object.class))); -} -} - -static class ObjectReferenceDeserializer extends JsonDeserializer { -public ObjectReferenceDeserializer(Map backingMap) { -} - -@Override -public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { -return null; } } @@ -136,37 +111,5 @@ public class ObjectReferencingSerialization { return nestedDeserialize.apply(jp, ctxt); } } -// -//public static class ObjectReferencingDeserializerFactory extends BeanDeserializerFactory { -//protected ObjectReferencingDeserializerFactory(DeserializerFactoryConfig config) { -//super(config); -//} -// -//public static ObjectReferencingDeserializerFactory extending(DeserializerFactory factory) { -//if (factory == null) return new ObjectReferencingDeserializerFactory(null); -//if (factory instanceof ObjectReferencingDeserializerFactory) return (ObjectReferencingDeserializerFactory) factory; -//if (factory instanceof BeanDeserializerFactory) return new ObjectReferencingDeserializerFactory( ((BeanDeserializerFactory) factory).getFactoryConfig() ); -//throw new IllegalStateException("Cannot extend "+factory); -//} -//@Override -//public ObjectReferencingDeserializerFactory withConfig(DeserializerFactoryConfig config) { -//if (_factoryConfig == config) return this; -//return new ObjectReferencingDeserializerFactory(config); -//} -// -//
[brooklyn-server] 06/06: Merge branch 'serializing-with-references'
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 commit f72e7c2ab33ac1bce81b858d9650bfb0af9d77f5 Merge: dce8284 5b70d1b Author: Alex Heneveld AuthorDate: Sat Aug 14 02:54:41 2021 +0100 Merge branch 'serializing-with-references' core/pom.xml | 4 + .../core/resolve/jackson/BeanWithTypeUtils.java| 43 +- ...BrooklynRegisteredTypeJacksonSerialization.java | 10 ++ .../jackson/ObjectReferencingSerialization.java| 161 + .../jackson/WrappedValuesSerialization.java| 11 +- .../brooklyn/util/core/flags/TypeCoercions.java| 8 +- .../BrooklynMiscJacksonSerializationTest.java | 57 +++- .../core/resolve/jackson/MapperTestFixture.java| 18 +++ .../util/core/internal/TypeCoercionsTest.java | 15 ++ 9 files changed, 316 insertions(+), 11 deletions(-)
[brooklyn-server] 04/06: apply the object-reference serialization mechanism to conversion
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 commit 5b70d1bf5a315cb479031710ac083542e6d233fa Author: Alex Heneveld AuthorDate: Sat Aug 14 02:17:31 2021 +0100 apply the object-reference serialization mechanism to conversion fixing the failing test, and some tidy up --- .../core/resolve/jackson/BeanWithTypeUtils.java| 24 -- .../jackson/ObjectReferencingSerialization.java| 54 -- .../BrooklynMiscJacksonSerializationTest.java | 36 +-- 3 files changed, 92 insertions(+), 22 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java index cf30094..896d493 100644 --- a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java +++ b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java @@ -27,6 +27,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.json.JsonMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLMapper; +import com.google.common.annotations.Beta; import com.google.common.reflect.TypeToken; import java.util.*; import java.util.Map.Entry; @@ -124,9 +125,26 @@ public class BeanWithTypeUtils { */ public static T convert(ManagementContext mgmt, Object mapOrListToSerializeThenDeserialize, TypeToken type, boolean allowRegisteredTypes, BrooklynClassLoadingContext loader, boolean allowJavaTypes) throws JsonProcessingException { -ObjectMapper m = newMapper(mgmt, allowRegisteredTypes, loader, allowJavaTypes); -String serialization = m.writeValueAsString(mapOrListToSerializeThenDeserialize); -return m.readValue(serialization, BrooklynJacksonType.asJavaType(m, type)); +// try with complex types are saved as objects rather than serialized +ObjectMapper mapper = YAMLMapper.builder().build(); +mapper = BeanWithTypeUtils.applyCommonMapperConfig(mapper, mgmt, allowRegisteredTypes, loader, allowJavaTypes); +mapper = new ObjectReferencingSerialization().useAndApplytoMapper(mapper); + +String serialization = mapper.writeValueAsString(mapOrListToSerializeThenDeserialize); +return mapper.readValue(serialization, BrooklynJacksonType.asJavaType(mapper, type)); +} + +@Beta +public static T convertExtra(ManagementContext mgmt, Object mapOrListToSerializeThenDeserialize, TypeToken type, boolean allowRegisteredTypes, BrooklynClassLoadingContext loader, boolean allowJavaTypes) throws JsonProcessingException { +try { +return convert(mgmt, mapOrListToSerializeThenDeserialize, type, allowRegisteredTypes, loader, allowJavaTypes); + +} catch (Exception e) { +// try full serialization - but won't work if things being written cannot be deserialized +ObjectMapper m = newMapper(mgmt, allowRegisteredTypes, loader, allowJavaTypes); +String serialization = m.writeValueAsString(mapOrListToSerializeThenDeserialize); +return m.readValue(serialization, BrooklynJacksonType.asJavaType(m, type)); +} } public static Maybe tryConvertOrAbsentUsingContext(Maybe input, TypeToken type) { diff --git a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/ObjectReferencingSerialization.java b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/ObjectReferencingSerialization.java index 465380b..28314a3 100644 --- a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/ObjectReferencingSerialization.java +++ b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/ObjectReferencingSerialization.java @@ -1,3 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ package org.apache.brooklyn.core.resolve.jackson; import com.fasterxml.jackson.core.JsonGenerator; @@ -16,10 +34,13 @@ import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
[brooklyn-server] 05/06: minor tidies to launcher/viewer and cleanup, for tests
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 commit dce828451d8ef9be78f24d8050eb343039a5ddbd Author: Alex Heneveld AuthorDate: Sat Aug 14 01:49:31 2021 +0100 minor tidies to launcher/viewer and cleanup, for tests --- .../main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java | 1 + .../apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java | 7 +-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java b/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java index 46cee52..8c1bf5b 100644 --- a/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java +++ b/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java @@ -421,6 +421,7 @@ public class BrooklynLauncher extends BasicLauncher { if (webServer != null) { try { webServer.stop(); +webServer = null; } catch (Exception e) { LOG.warn("Error stopping web-server; continuing with termination", e); } diff --git a/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java b/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java index 7d6bcc4..0c57f2d 100644 --- a/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java +++ b/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java @@ -205,12 +205,7 @@ public abstract class AbstractBlueprintTest { } protected void runTest(Reader yaml) throws Exception { -final Application app = launcher.launchAppYaml(yaml); - -assertNoFires(app); - -Application newApp = rebind(); -assertNoFires(newApp); +runTest(launcher.launchAppYaml(yaml), this::assertNoFires); } protected void assertNoFires(final Entity app) {
[brooklyn-server] branch master updated (8906243 -> f72e7c2)
This is an automated email from the ASF dual-hosted git repository. heneveld pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git. from 8906243 Merge pull request #1215 from ahgittin/more-deprecation new dce8284 minor tidies to launcher/viewer and cleanup, for tests new a159211 minor tidies to launcher/viewer and cleanup, for tests new bc2583d serialization and deserialization that puts/gets objects to a backing map and writes references new 5dd7b3c remove exploratory jackson stuff that isn't needed new 5b70d1b apply the object-reference serialization mechanism to conversion new f72e7c2 Merge branch 'serializing-with-references' The 6 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: core/pom.xml | 4 + .../core/resolve/jackson/BeanWithTypeUtils.java| 43 +- ...BrooklynRegisteredTypeJacksonSerialization.java | 10 ++ .../jackson/ObjectReferencingSerialization.java| 161 + .../jackson/WrappedValuesSerialization.java| 11 +- .../brooklyn/util/core/flags/TypeCoercions.java| 8 +- .../BrooklynMiscJacksonSerializationTest.java | 57 +++- .../core/resolve/jackson/MapperTestFixture.java| 18 +++ .../util/core/internal/TypeCoercionsTest.java | 15 ++ .../apache/brooklyn/launcher/BrooklynLauncher.java | 1 + .../launcher/blueprints/AbstractBlueprintTest.java | 7 +- 11 files changed, 318 insertions(+), 17 deletions(-) create mode 100644 core/src/main/java/org/apache/brooklyn/core/resolve/jackson/ObjectReferencingSerialization.java
[brooklyn-server] 02/06: serialization and deserialization that puts/gets objects to a backing map and writes references
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 commit bc2583d402b8ac1e9cde1350904e6a73b0646e23 Author: Alex Heneveld AuthorDate: Sat Aug 14 01:50:35 2021 +0100 serialization and deserialization that puts/gets objects to a backing map and writes references --- core/pom.xml | 4 + .../core/resolve/jackson/BeanWithTypeUtils.java| 19 ++- ...BrooklynRegisteredTypeJacksonSerialization.java | 10 ++ .../jackson/ObjectReferencingSerialization.java| 172 + .../jackson/WrappedValuesSerialization.java| 11 +- .../brooklyn/util/core/flags/TypeCoercions.java| 8 +- .../BrooklynMiscJacksonSerializationTest.java | 165 +++- .../core/resolve/jackson/MapperTestFixture.java| 18 +++ .../util/core/internal/TypeCoercionsTest.java | 15 ++ 9 files changed, 414 insertions(+), 8 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index cd5a2c5..c03c64f 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -164,6 +164,10 @@ jackson-databind +com.fasterxml.jackson.dataformat +jackson-dataformat-yaml + + com.fasterxml.jackson.jaxrs jackson-jaxrs-json-provider diff --git a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java index 7c31bf9..cf30094 100644 --- a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java +++ b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BeanWithTypeUtils.java @@ -18,9 +18,15 @@ */ package org.apache.brooklyn.core.resolve.jackson; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.json.JsonMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLMapper; import com.google.common.reflect.TypeToken; import java.util.*; import java.util.Map.Entry; @@ -50,8 +56,14 @@ public class BeanWithTypeUtils { /** also see {@link org.apache.brooklyn.util.core.json.BrooklynObjectsJsonMapper#newMapper(ManagementContext)} */ public static ObjectMapper newMapper(ManagementContext mgmt, boolean allowRegisteredTypes, BrooklynClassLoadingContext loader, boolean allowBasicJavaTypes) { -JsonMapper mapper = newSimpleMapper(); +return applyCommonMapperConfig(newSimpleMapper(), mgmt, allowRegisteredTypes, loader, allowBasicJavaTypes); +} + +public static ObjectMapper newYamlMapper(ManagementContext mgmt, boolean allowRegisteredTypes, BrooklynClassLoadingContext loader, boolean allowBasicJavaTypes) { +return applyCommonMapperConfig(newSimpleYamlMapper(), mgmt, allowRegisteredTypes, loader, allowBasicJavaTypes); +} +public static ObjectMapper applyCommonMapperConfig(ObjectMapper mapper, ManagementContext mgmt, boolean allowRegisteredTypes, BrooklynClassLoadingContext loader, boolean allowBasicJavaTypes) { BrooklynRegisteredTypeJacksonSerialization.apply(mapper, mgmt, allowRegisteredTypes, loader, allowBasicJavaTypes); WrappedValuesSerialization.apply(mapper, mgmt); mapper = new ConfigurableBeanDeserializerModifier() @@ -68,6 +80,11 @@ public class BeanWithTypeUtils { return JsonMapper.builder().build(); } +public static YAMLMapper newSimpleYamlMapper() { +// for use with json maps (no special type resolution, even the field "type" is ignored) +return YAMLMapper.builder().build(); +} + public static boolean isPureJson(Object o) { return isJsonAndOthers(o, oo -> false); } diff --git a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BrooklynRegisteredTypeJacksonSerialization.java b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BrooklynRegisteredTypeJacksonSerialization.java index e9724c8..b7dbad4 100644 --- a/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BrooklynRegisteredTypeJacksonSerialization.java +++ b/core/src/main/java/org/apache/brooklyn/core/resolve/jackson/BrooklynRegisteredTypeJacksonSerialization.java @@ -18,9 +18,12 @@ */ package org.apache.brooklyn.core.resolve.jackson; +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonTypeInfo; import
[brooklyn-server] 01/06: minor tidies to launcher/viewer and cleanup, for tests
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 commit a15921188eeb08845b9ede54fbc4f94eac4372b8 Author: Alex Heneveld AuthorDate: Sat Aug 14 01:49:31 2021 +0100 minor tidies to launcher/viewer and cleanup, for tests --- .../main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java | 1 + .../apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java | 7 +-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java b/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java index 46cee52..8c1bf5b 100644 --- a/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java +++ b/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynLauncher.java @@ -421,6 +421,7 @@ public class BrooklynLauncher extends BasicLauncher { if (webServer != null) { try { webServer.stop(); +webServer = null; } catch (Exception e) { LOG.warn("Error stopping web-server; continuing with termination", e); } diff --git a/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java b/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java index 7d6bcc4..0c57f2d 100644 --- a/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java +++ b/launcher/src/test/java/org/apache/brooklyn/launcher/blueprints/AbstractBlueprintTest.java @@ -205,12 +205,7 @@ public abstract class AbstractBlueprintTest { } protected void runTest(Reader yaml) throws Exception { -final Application app = launcher.launchAppYaml(yaml); - -assertNoFires(app); - -Application newApp = rebind(); -assertNoFires(newApp); +runTest(launcher.launchAppYaml(yaml), this::assertNoFires); } protected void assertNoFires(final Entity app) {
[brooklyn-server] branch master updated (1ff1ea8 -> 8906243)
This is an automated email from the ASF dual-hosted git repository. tbouron pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git. from 1ff1ea8 Merge pull request #1220 from tbouron/feature/aggregation-deprecation new 862a891 more comments on deprecated REST methods new 536dae0 Add missing alternative usage for deprecated method new 9e954d2 Update deprecated since to use the right version new 8906243 Merge pull request #1215 from ahgittin/more-deprecation The 13152 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../main/java/org/apache/brooklyn/rest/api/ActivityApi.java | 3 ++- .../main/java/org/apache/brooklyn/rest/api/BundleApi.java| 12 +--- .../main/java/org/apache/brooklyn/rest/api/CatalogApi.java | 12 +--- .../main/java/org/apache/brooklyn/rest/api/LocationApi.java | 6 +++--- .../main/java/org/apache/brooklyn/rest/api/LogoutApi.java| 2 +- .../org/apache/brooklyn/rest/resources/BundleResource.java | 2 +- 6 files changed, 21 insertions(+), 16 deletions(-)