Interface DesignPlugin

All Known Implementing Classes:
ResiliencePlugin, SustainabilityPlugin

public interface DesignPlugin
A bundle of extra objectives and constraints contributed by a library on the classpath. Register an implementation in META-INF/services/com.eqixiac.equinix.design.spi.DesignPlugin and the engines pick it up through discover(). A contributed objective takes part in ranking only when the spec gives its id a positive weight; a contributed constraint always applies.
  • Method Details

    • name

      String name()
      Returns:
      a short name for diagnostics
    • objectives

      default List<Objective> objectives()
      Returns:
      objectives to add; never null
    • constraints

      default List<Constraint> constraints()
      Returns:
      constraints to add; never null
    • currencyConverter

      default CurrencyConverter currencyConverter()
      A currency converter this plug-in contributes (for example a live FX feed). It ranks below rates pinned in the spec's commercial.exchangeRates and above the SDK's bundled reference rates.
      Returns:
      the converter, or null for none
    • discover

      static List<DesignPlugin> discover()
      Loads every plug-in registered on the classpath.
      Returns:
      the plug-ins, in ServiceLoader order