public abstract static class AbstractXStreamSerializer.Builder extends Object
AbstractXStreamSerializer
.
The Charset
is defaulted to a Charset.forName(String)
using the UTF-8
character set, the
RevisionResolver
defaults to an AnnotationRevisionResolver
and the Converter
defaults to
a ChainingConverter
. The XStream
is a hard requirement and as such should be provided.
Lastly, the builder adds Axon types for XStream's security settings by including "org.axonframework.**
as
a wildcard type. This can be disabled with the disableAxonTypeSecurity()
operation when
required.
Upon instantiation, several defaults aliases are added to the XStream instance, for example for the GenericDomainEventMessage
, the GenericCommandMessage
and the MetaData
objects among others.
Additionally, a MetaData Converter is registered too. Lastly, if the provided Converter instance is of type
ChainingConverter, then the AbstractXStreamSerializer.registerConverters(ChainingConverter)
function will
be called. Depending on the AbstractXStreamSerializer, this will add a number of Converter instances to the
chain.
Modifier and Type | Field and Description |
---|---|
protected com.thoughtworks.xstream.XStream |
xStream |
Constructor and Description |
---|
Builder() |
Modifier and Type | Method and Description |
---|---|
AbstractXStreamSerializer.Builder |
charset(Charset charset)
Sets the
Charset used for the in- and output streams required by XStream for the to and from
xml function calls. |
AbstractXStreamSerializer.Builder |
classLoader(ClassLoader classLoader)
|
AbstractXStreamSerializer.Builder |
converter(Converter converter)
Sets the
Converter used as a converter factory providing converter instances utilized by upcasters to
convert between different content types. |
AbstractXStreamSerializer.Builder |
disableAxonTypeSecurity()
Configures the underlying
XStream instance to not include Axon's classes by default. |
AbstractXStreamSerializer.Builder |
lenientDeserialization()
Configures the underlying XStream instance to be lenient when deserializing data into Java objects.
|
AbstractXStreamSerializer.Builder |
revisionResolver(RevisionResolver revisionResolver)
Sets the
RevisionResolver used to resolve the revision from an object to be serialized. |
protected void |
validate()
Validates whether the fields contained in this Builder are set accordingly.
|
AbstractXStreamSerializer.Builder |
xStream(com.thoughtworks.xstream.XStream xStream)
Sets the
XStream used to perform the serialization of objects to XML, and vice versa. |
public AbstractXStreamSerializer.Builder xStream(@Nonnull com.thoughtworks.xstream.XStream xStream)
XStream
used to perform the serialization of objects to XML, and vice versa.xStream
- the XStream
used to perform the serialization of objects to XML, and vice versapublic AbstractXStreamSerializer.Builder charset(@Nonnull Charset charset)
Charset
used for the in- and output streams required by XStream
for the to and from
xml function calls. Defaults to a Charset.forName(String)
using the UTF-8
character set.charset
- the Charset
used for the in- and output streams required by XStream
public AbstractXStreamSerializer.Builder revisionResolver(@Nonnull RevisionResolver revisionResolver)
RevisionResolver
used to resolve the revision from an object to be serialized. Defaults to
an AnnotationRevisionResolver
which resolves the revision based on the contents of the Revision
annotation on the serialized classes.revisionResolver
- a RevisionResolver
used to resolve the revision from an object to be
serializedpublic AbstractXStreamSerializer.Builder converter(@Nonnull Converter converter)
Converter
used as a converter factory providing converter instances utilized by upcasters to
convert between different content types. Defaults to a ChainingConverter
.converter
- a Converter
used as a converter factory providing converter instances utilized by
upcasters to convert between different content typespublic AbstractXStreamSerializer.Builder classLoader(@Nonnull ClassLoader classLoader)
ClassLoader
used as an override for default ClassLoader
used in the XStream
.
The same solution could thus be achieved by configuring the `XStream` instance directly.classLoader
- a ClassLoader
used as a class loader in XStream
public AbstractXStreamSerializer.Builder lenientDeserialization()
XStream.ignoreUnknownElements()
.public AbstractXStreamSerializer.Builder disableAxonTypeSecurity()
XStream
instance to not include Axon's classes by default.
Concretely, the XStream.allowTypesByWildcard(String[])
method will not be invoked with "org.axonframework.**"
.
It is recommended to disable this setting when complete control is required over the allowed types in this
serializer's XStream
instance.
protected void validate() throws AxonConfigurationException
AxonConfigurationException
- if one field is asserted to be incorrect according to the Builder's
specificationsCopyright © 2010–2024. All rights reserved.