private Serializer buildSerializer(RevisionResolver revisionResolver, SerializerProperties.SerializerType serializerType) { switch (serializerType) { case JACKSON: Map<String, ObjectMapper> objectMapperBeans = applicationContext.getBeansOfType(ObjectMapper.class); ObjectMapper objectMapper = objectMapperBeans.containsKey("defaultAxonObjectMapper") ? objectMapperBeans.get("defaultAxonObjectMapper") : objectMapperBeans.values().stream().findFirst() .orElseThrow(() -> new NoClassDefFoundError( "com/fasterxml/jackson/databind/ObjectMapper" )); ChainingConverter converter = new ChainingConverter(beanClassLoader); return JacksonSerializer.builder() .revisionResolver(revisionResolver) .converter(converter) .objectMapper(objectMapper) .build(); case JAVA: return JavaSerializer.builder().revisionResolver(revisionResolver).build(); case XSTREAM: case DEFAULT: default: XStreamSerializer xStreamSerializer = XStreamSerializer.builder() .revisionResolver(revisionResolver) .build(); xStreamSerializer.getXStream().setClassLoader(beanClassLoader); return xStreamSerializer; } }
/** * Initialize the serializer using the given {@code charset} and {@code xStream} instance. The * {@code xStream} instance is configured with several converters for the most common types in Axon. * * @param charset The character set to use * @param xStream The XStream instance to use * @param revisionResolver The strategy to use to resolve the revision of an object */ protected AbstractXStreamSerializer(Charset charset, XStream xStream, RevisionResolver revisionResolver) { this(charset, xStream, revisionResolver, new ChainingConverter()); }
/** * Initialize the serializer with the given {@code objectMapper} to serialize and parse the objects to JSON. * This objectMapper allows for customization of the serialized form. The given {@code revisionResolver} is * used to resolve the revision from an object to be serialized. * * @param objectMapper The objectMapper to serialize objects and parse JSON with * @param revisionResolver The strategy to use to resolve the revision of an object */ public JacksonSerializer(ObjectMapper objectMapper, RevisionResolver revisionResolver) { this(objectMapper, revisionResolver, new ChainingConverter()); }
/** * Initialize the serializer with a default ObjectMapper instance. Revisions are resolved using {@link * org.axonframework.serialization.Revision @Revision} annotations on the serialized classes. */ public JacksonSerializer() { this(new AnnotationRevisionResolver(), new ChainingConverter()); }
/** * Initialize the serializer using the given {@code charset} and {@code xStream} instance. The * {@code xStream} instance is configured with several converters for the most common types in Axon. * <p/> * An {@link AnnotationRevisionResolver} is used to resolve revision for serialized objects. * * @param charset The character set to use * @param xStream The XStream instance to use */ protected AbstractXStreamSerializer(Charset charset, XStream xStream) { this(charset, xStream, new AnnotationRevisionResolver(), new ChainingConverter()); }
/** * Initialize the serializer with the given {@code objectMapper} to serialize and parse the objects to JSON. * This objectMapper allows for customization of the serialized form. * * @param objectMapper The objectMapper to serialize objects and parse JSON with */ public JacksonSerializer(ObjectMapper objectMapper) { this(objectMapper, new AnnotationRevisionResolver(), new ChainingConverter()); }
private Serializer buildSerializer(RevisionResolver revisionResolver, SerializerProperties.SerializerType serializerType) { switch (serializerType) { case JACKSON: Map<String, ObjectMapper> objectMapperBeans = applicationContext.getBeansOfType(ObjectMapper.class); ObjectMapper objectMapper = objectMapperBeans.containsKey("defaultAxonObjectMapper") ? objectMapperBeans.get("defaultAxonObjectMapper") : objectMapperBeans.values().stream().findFirst() .orElseThrow(() -> new NoClassDefFoundError( "com/fasterxml/jackson/databind/ObjectMapper" )); ChainingConverter converter = new ChainingConverter(beanClassLoader); return JacksonSerializer.builder() .revisionResolver(revisionResolver) .converter(converter) .objectMapper(objectMapper) .build(); case JAVA: return JavaSerializer.builder().revisionResolver(revisionResolver).build(); case XSTREAM: case DEFAULT: default: XStreamSerializer xStreamSerializer = XStreamSerializer.builder() .revisionResolver(revisionResolver) .build(); xStreamSerializer.getXStream().setClassLoader(beanClassLoader); return xStreamSerializer; } }