SharedBundlePlugin marker interface
When a plugin is called, the default PolicyCenter behavior is to create a new bundle. This new bundle is separate from any bundle that exists at the time the plugin is called. The contents of the existing bundle are copied to the new bundle. The new bundle is then designated to be the current bundle. Plugin operations that effect the bundle, such as adding, removing, and changing objects in the bundle, are applied to the current bundle.
After the plugin has finished its operations, the changes performed on the bundle are not automatically applied to the original bundle for subsequent commitment. For the contents of the plugin bundle to be committed, the caller of the plugin must combine the returned plugin bundle with the original bundle.
In situations where it is desirable for the plugin to directly modify the original bundle, the plugin class can
implement the SharedBundlePlugin interface. The SharedBundlePlugin interface
acts as a marker that directs PolicyCenter not to create a new bundle when the
plugin is called. The original bundle remains the current bundle so that changes performed by the plugin affect
the original bundle directly. There is no need for the plugin caller to combine the returned plugin bundle with
the original bundle.
A plugin class that implements the SharedBundlePlugin interface must specify the
@Export annotation as part of the class definition.
