Class AbstractXStreamSerializer.Builder
- Direct Known Subclasses:
XStreamSerializer.Builder
- Enclosing class:
AbstractXStreamSerializer
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.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionSets theCharsetused for the in- and output streams required byXStreamfor the to and from xml function calls.classLoader(ClassLoader classLoader) Sets theConverterused as a converter factory providing converter instances utilized by upcasters to convert between different content types.Configures the underlyingXStreaminstance to not include Axon's classes by default.Disables the caching of the names for classes which couldn't be resolved to a class.Configures the underlying XStream instance to be lenient when deserializing data into Java objects.revisionResolver(RevisionResolver revisionResolver) Sets theRevisionResolverused to resolve the revision from an object to be serialized.protected voidvalidate()Validates whether the fields contained in this Builder are set accordingly.xStream(com.thoughtworks.xstream.XStream xStream) Sets theXStreamused to perform the serialization of objects to XML, and vice versa.
-
Field Details
-
xStream
protected com.thoughtworks.xstream.XStream xStream
-
-
Constructor Details
-
Builder
public Builder()
-
-
Method Details
-
xStream
Sets theXStreamused to perform the serialization of objects to XML, and vice versa.- Parameters:
xStream- theXStreamused to perform the serialization of objects to XML, and vice versa- Returns:
- the current Builder instance, for fluent interfacing
-
charset
Sets theCharsetused for the in- and output streams required byXStreamfor the to and from xml function calls. Defaults to aCharset.forName(String)using theUTF-8character set.- Parameters:
charset- theCharsetused for the in- and output streams required byXStream- Returns:
- the current Builder instance, for fluent interfacing
-
revisionResolver
public AbstractXStreamSerializer.Builder revisionResolver(@Nonnull RevisionResolver revisionResolver) Sets theRevisionResolverused to resolve the revision from an object to be serialized. Defaults to anAnnotationRevisionResolverwhich resolves the revision based on the contents of theRevisionannotation on the serialized classes.- Parameters:
revisionResolver- aRevisionResolverused to resolve the revision from an object to be serialized- Returns:
- the current Builder instance, for fluent interfacing
-
converter
Sets theConverterused as a converter factory providing converter instances utilized by upcasters to convert between different content types. Defaults to aChainingConverter.- Parameters:
converter- aConverterused as a converter factory providing converter instances utilized by upcasters to convert between different content types- Returns:
- the current Builder instance, for fluent interfacing
-
classLoader
Sets theClassLoaderused as an override for defaultClassLoaderused in theXStream. The same solution could thus be achieved by configuring the `XStream` instance directly.- Parameters:
classLoader- aClassLoaderused as a class loader inXStream- Returns:
- the current Builder instance, for fluent interfacing
-
lenientDeserialization
Configures the underlying XStream instance to be lenient when deserializing data into Java objects. Specifically sets theXStream.ignoreUnknownElements().- Returns:
- the current Builder instance, for fluent interfacing
-
disableAxonTypeSecurity
Configures the underlyingXStreaminstance to not include Axon's classes by default. Concretely, theXStream.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
XStreaminstance.- Returns:
- the current Builder instance for fluent interfacing
-
disableCachingOfUnknownClasses
Disables the caching of the names for classes which couldn't be resolved to a class.It is recommended to disable this in case the class loading is dynamic, and classes that are not available at one point in time, may become available at any time later.
- Returns:
- the current Builder instance, for fluent interfacing
-
validate
Validates whether the fields contained in this Builder are set accordingly.- Throws:
AxonConfigurationException- if one field is asserted to be incorrect according to the Builder's specifications
-