Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface ComponentInventory
What is installed in this process, for the parts of it the engine cannot see.

Provider discovery is a ServiceLoader scan, so which implementations are actually installed is not a question a running program can otherwise answer — and it is the first one any support conversation asks. A missing provider fails nothing a compiler or a unit test can see; the packaged artifacts are smoke-tested for exactly that reason, and this gives the same answer at runtime, from inside the process.

It is a seam because visibility decides who can answer. The engine knows its own version and the function libraries it resolves against, because it holds them. It cannot know which connectors, solvers or JDBC drivers are installed: those live above it, and a JDBC driver is behind a java.sql dependency no engine module is allowed to have. So whoever assembled the process contributes the rest, which is the same division every other catalog seam here is drawn on.

The extent reaches a query as relix.version, because introspection has one authority: the relix.* relations are the introspection API, and a Java accessor beside them would be a second one to drift from.

  • Field Details

  • Method Details

    • components

      Returns the components this host can see, in whatever order it reports them.
      Returns:
      the components this host can see, in whatever order it reports them
    • engineVersion

      static String engineVersion()
      The engine's own version, as the build stamped it.

      Read from a resource this module owns rather than from the module descriptor, because it has to be right in every packaging — including a plain class path, where a descriptor is not there to ask.

      Returns:
      the version, or unknown if the resource is missing