Package io.gdcc.spi.core.loader
Class LoaderConfiguration
java.lang.Object
io.gdcc.spi.core.loader.LoaderConfiguration
Immutable configuration controlling the behavior of the plugin loader.
Use defaults() to start from the standard configuration and then
adjust individual options with the fluent with... methods.
Example:
LoaderConfiguration configuration = LoaderConfiguration.defaults()
.withEmitWarningsOnMultiPluginSource(true)
.withAbortOnCompatibilityProblems(false);
-
Method Summary
Modifier and TypeMethodDescriptionbooleanWhen enabled, plugin loading aborts on discovered compatibility problems (for example, API level mismatches).booleanWhen enabled, loading aborts if duplicate plugin identities are detected.static LoaderConfigurationdefaults()Returns the standard loader configuration (which is strictly enforcing).booleanWhenenforceSingleSourceMatchingPluginsOnly()is disabled, controls whether multi-plugin-contract sources should emit warnings.booleanWhen enabled, a source may only provide plugins for a single requested base contract.booleanWhen enabled, plugin identities must be unique within a source.withAbortOnCompatibilityProblems(boolean value) Returns a copy withabortOnCompatibilityProblems()updated.withAbortOnDuplicatedIdentities(boolean value) Returns a copy withabortOnDuplicatedIdentities()updated.withEmitWarningsOnMultiPluginSource(boolean value) Returns a copy withemitWarningsOnMultiPluginSource()updated.withEnforceSingleSourceMatchingPluginsOnly(boolean value) Returns a copy withenforceSingleSourceMatchingPluginsOnly()updated.withEnforceUnambiguousPluginIdentities(boolean value) Returns a copy withenforceUnambiguousPluginIdentities()updated.
-
Method Details
-
defaults
Returns the standard loader configuration (which is strictly enforcing).enforceSingleSourceMatchingPluginsOnly = falseemitWarningsOnMultiPluginSource = falseabortOnCompatibilityProblems = trueabortOnDuplicatedIdentities = trueenforceUnambiguousPluginIdentities = true
-
enforceSingleSourceMatchingPluginsOnly
public boolean enforceSingleSourceMatchingPluginsOnly()When enabled, a source may only provide plugins for a single requested base contract. If any non-matching plugin is found, loading from that source is aborted entirely.When disabled, non-matching plugins are ignored.
-
withEnforceSingleSourceMatchingPluginsOnly
Returns a copy withenforceSingleSourceMatchingPluginsOnly()updated. -
emitWarningsOnMultiPluginSource
public boolean emitWarningsOnMultiPluginSource()WhenenforceSingleSourceMatchingPluginsOnly()is disabled, controls whether multi-plugin-contract sources should emit warnings. -
withEmitWarningsOnMultiPluginSource
Returns a copy withemitWarningsOnMultiPluginSource()updated. -
abortOnCompatibilityProblems
public boolean abortOnCompatibilityProblems()When enabled, plugin loading aborts on discovered compatibility problems (for example, API level mismatches). No classes are actually loaded, problems are detected using plugin metadata only. -
withAbortOnCompatibilityProblems
Returns a copy withabortOnCompatibilityProblems()updated. -
abortOnDuplicatedIdentities
public boolean abortOnDuplicatedIdentities()When enabled, loading aborts if duplicate plugin identities are detected.Note: duplicated identities make plugins undistinguishable for users.
-
withAbortOnDuplicatedIdentities
Returns a copy withabortOnDuplicatedIdentities()updated. -
enforceUnambiguousPluginIdentities
public boolean enforceUnambiguousPluginIdentities()When enabled, plugin identities must be unique within a source. Any plugin's identity that differs by case or special chars only will be seen as a duplicate. -
withEnforceUnambiguousPluginIdentities
Returns a copy withenforceUnambiguousPluginIdentities()updated.
-