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 <[email protected]>
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<Object> {
         private final BiMap<String, Object> 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<Object> {
-        public ObjectReferenceDeserializer(Map<String, Object> 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);
-//        }
-//
-//        // --- our special behaviour
-//
-//
-//        @Override
-//        protected BeanDeserializerBuilder 
constructBeanDeserializerBuilder(DeserializationContext ctxt, BeanDescription 
beanDesc) {
-//            return new BeanDeserializerBuilder(beanDesc, ctxt) {
-//                {
-//                    _objectIdReader = new ObjectIdReader() {
-//
-//                    };
-//                }
-//            };
-//        }
-//    }
 
 }
diff --git 
a/core/src/test/java/org/apache/brooklyn/core/resolve/jackson/BrooklynMiscJacksonSerializationTest.java
 
b/core/src/test/java/org/apache/brooklyn/core/resolve/jackson/BrooklynMiscJacksonSerializationTest.java
index 1a609b9..281ad6b 100644
--- 
a/core/src/test/java/org/apache/brooklyn/core/resolve/jackson/BrooklynMiscJacksonSerializationTest.java
+++ 
b/core/src/test/java/org/apache/brooklyn/core/resolve/jackson/BrooklynMiscJacksonSerializationTest.java
@@ -18,23 +18,7 @@
  */
 package org.apache.brooklyn.core.resolve.jackson;
 
-import com.fasterxml.jackson.annotation.JsonIdentityInfo;
-import com.fasterxml.jackson.annotation.ObjectIdGenerator;
-import com.fasterxml.jackson.annotation.ObjectIdGenerator.IdKey;
-import com.fasterxml.jackson.annotation.ObjectIdGenerators.StringIdGenerator;
-import com.fasterxml.jackson.annotation.ObjectIdResolver;
-import com.fasterxml.jackson.databind.DeserializationConfig;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.KeyDeserializer;
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.cfg.HandlerInstantiator;
-import com.fasterxml.jackson.databind.cfg.MapperConfig;
-import com.fasterxml.jackson.databind.introspect.Annotated;
-import com.fasterxml.jackson.databind.json.JsonMapper;
-import com.fasterxml.jackson.databind.jsontype.TypeIdResolver;
-import com.fasterxml.jackson.databind.jsontype.TypeResolverBuilder;
 import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
 import com.google.common.reflect.TypeToken;
 import java.util.Map;
@@ -83,104 +67,6 @@ public class BrooklynMiscJacksonSerializationTest 
implements MapperTestFixture {
         }
     }
 
-    public static class AllBeansIdentityHandler extends HandlerInstantiator {
-        @Override
-        public JsonDeserializer<?> deserializerInstance(DeserializationConfig 
config, Annotated annotated, Class<?> deserClass) {
-            return null;
-        }
-        @Override
-        public KeyDeserializer keyDeserializerInstance(DeserializationConfig 
config, Annotated annotated, Class<?> keyDeserClass) {
-            return null;
-        }
-        @Override
-        public JsonSerializer<?> serializerInstance(SerializationConfig 
config, Annotated annotated, Class<?> serClass) {
-            return null;
-        }
-        @Override
-        public TypeResolverBuilder<?> 
typeResolverBuilderInstance(MapperConfig<?> config, Annotated annotated, 
Class<?> builderClass) {
-            return null;
-        }
-        @Override
-        public TypeIdResolver typeIdResolverInstance(MapperConfig<?> config, 
Annotated annotated, Class<?> resolverClass) {
-            return null;
-        }
-
-        @Override
-        public ObjectIdGenerator<?> objectIdGeneratorInstance(MapperConfig<?> 
config, Annotated annotated, Class<?> implClass) {
-            return new StringIdGenerator();
-        }
-
-        @Override
-        public ObjectIdResolver resolverIdGeneratorInstance(MapperConfig<?> 
config, Annotated annotated, Class<?> implClass) {
-            return new MapBasedInstanceResolver();
-        }
-    }
-
-    static class MapBasedInstanceResolver implements ObjectIdResolver {
-
-        Map<IdKey,Object> objectsById = MutableMap.of();
-
-        @Override
-        public void bindItem(IdKey id, Object pojo) {
-            objectsById.put(id, pojo);
-        }
-
-        @Override
-        public Object resolveId(IdKey id) {
-            Object result = objectsById.get(id);
-            if (result!=null) return result;
-            // seems to happen for YAMLMapper, it doesn't call bindItem
-            LOG.warn("No object recorded for ID "+id+"; returning null during 
deserialization");
-            return null;
-        }
-
-        @Override
-        public ObjectIdResolver newForDeserialization(Object context) {
-            return this;
-        }
-
-        @Override
-        public boolean canUseFor(ObjectIdResolver resolverType) {
-            return true;
-        }
-    }
-
-    @JsonIdentityInfo(property="@object_id", 
generator=StringIdGenerator.class, resolver= MapBasedInstanceResolver.class)
-    static class ObjWithIdentityInfoAnnotation extends 
ObjWithoutIdentityInfoAnnotation {}
-
-    @Test
-    public void testHowObjectIdAndReferences() throws Exception {
-        mapper =
-                BeanWithTypeUtils.applyCommonMapperConfig(
-                    JsonMapper.builder().build()
-
-                // YAML doesn't seem to call "bindItem" whereas JSON mapper 
does
-//                    YAMLMapper.builder().
-////                        
configure(YAMLGenerator.Feature.USE_NATIVE_OBJECT_ID, true).
-//                        build()
-
-                    , null, false, null, true)
-        ;
-//        mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
-
-        ObjWithIdentityInfoAnnotation f1 = new 
ObjWithIdentityInfoAnnotation(); f1.foo = "1";
-        ObjWithIdentityInfoAnnotation f2 = new 
ObjWithIdentityInfoAnnotation(); f2.foo = "2";
-        String out = ser(MutableMap.of("a", f1, "b", f2, "c", f1));
-        LOG.info("Result of "+ JavaClassNames.niceClassAndMethod()+": "+out);
-
-        Map in = deser(out,
-//                Map.class
-                new TypeToken<Map<String, ObjWithIdentityInfoAnnotation>>() {}
-                );
-        ObjWithIdentityInfoAnnotation a = 
(ObjWithIdentityInfoAnnotation)in.get("a");
-        ObjWithIdentityInfoAnnotation b = 
(ObjWithIdentityInfoAnnotation)in.get("b");
-        ObjWithIdentityInfoAnnotation c = 
(ObjWithIdentityInfoAnnotation)in.get("c");
-        Asserts.assertTrue(a.foo.equals(c.foo), "expected same foo value for a 
and c - "+a+" != "+c);
-        Asserts.assertTrue(!b.foo.equals(c.foo), "expected different foo value 
for a and b");
-        Asserts.assertTrue(a == c, "expected same instance for a and c - "+a+" 
!= "+c);
-        Asserts.assertTrue(a != b, "expected different instance for a and b");
-    }
-
     @Test
     public void testCustomHandlerForReferences() throws Exception {
         mapper = new ObjectReferencingSerialization().useMapper(

Reply via email to