In some cases it is desired to extend Virtual Domain to add some additional settings. Since version 8.1.0 it is possible with
use of VHostItemExtension
and VHostItemExtensionProvider`.
To do so, you need to create a class implementing VHostItemExtension
. This class will hold values of settings for each virtual host.
It is required to make it serializable to Element
and deserializable from Element
. Moreover, it is required to make values of this class modifiable by ad-hoc commands.
It is recommended to provide additional methods allowing you to access values of this class.
Additionally, you need to implement VHostItemExtensionProvider
interface as a bean and return a class of your implementation of VHostItemExtension
.
Example VHostItemExtensionProvider` implementation for SeeOtherHostVHostItemExtension
.
@Bean(name = SeeOtherHostVHostItemExtension.ID, parent = VHostItemExtensionManager.class, active = true) public static class SeeOtherHostVHostItemExtensionProvider implements VHostItemExtensionProvider<SeeOtherHostVHostItemExtension> { @Override public String getId() { return SeeOtherHostVHostItemExtension.ID; } @Override public Class<SeeOtherHostVHostItemExtension> getExtensionClazz() { return SeeOtherHostVHostItemExtension.class; } }