Class LoaderConfiguration

java.lang.Object
io.gdcc.spi.core.loader.LoaderConfiguration

public final class LoaderConfiguration extends Object
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 Details

    • defaults

      public static LoaderConfiguration defaults()
      Returns the standard loader configuration (which is strictly enforcing).
      • enforceSingleSourceMatchingPluginsOnly = false
      • emitWarningsOnMultiPluginSource = false
      • abortOnCompatibilityProblems = true
      • abortOnDuplicatedIdentities = true
      • enforceUnambiguousPluginIdentities = 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

      public LoaderConfiguration withEnforceSingleSourceMatchingPluginsOnly(boolean value)
      Returns a copy with enforceSingleSourceMatchingPluginsOnly() updated.
    • emitWarningsOnMultiPluginSource

      public boolean emitWarningsOnMultiPluginSource()
      When enforceSingleSourceMatchingPluginsOnly() is disabled, controls whether multi-plugin-contract sources should emit warnings.
    • withEmitWarningsOnMultiPluginSource

      public LoaderConfiguration withEmitWarningsOnMultiPluginSource(boolean value)
      Returns a copy with emitWarningsOnMultiPluginSource() 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

      public LoaderConfiguration withAbortOnCompatibilityProblems(boolean value)
      Returns a copy with abortOnCompatibilityProblems() updated.
    • abortOnDuplicatedIdentities

      public boolean abortOnDuplicatedIdentities()
      When enabled, loading aborts if duplicate plugin identities are detected.

      Note: duplicated identities make plugins undistinguishable for users.

    • withAbortOnDuplicatedIdentities

      public LoaderConfiguration withAbortOnDuplicatedIdentities(boolean value)
      Returns a copy with abortOnDuplicatedIdentities() 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

      public LoaderConfiguration withEnforceUnambiguousPluginIdentities(boolean value)
      Returns a copy with enforceUnambiguousPluginIdentities() updated.