Extending Virtual Domain settings

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;
	}
}