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 XStreampublic 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 XStreampublic 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–2023. All rights reserved.