import com.github.sormuras.bach.ExtensionPoint;

/**
 * Defines the API of 🎼 Bach, the Java Shell Builder.
 *
 * <h2>Links</h2>
 *
 * <ul>
 *   <li>Bach's <a href="https://github.com/sormuras/bach">Code &amp; Issues</a>
 *   <li>Bach's <a href="https://sormuras.github.io/api/#bach">API</a>
 *   <li>Java® Development Kit Version 16 <a
 *       href="https://docs.oracle.com/en/java/javase/16/docs/specs/man/">Tool Specifications</a>
 * </ul>
 *
 * @uses com.github.sormuras.bach.Factory
 * @uses ExtensionPoint.BeginOfWorkflowExecution
 * @uses ExtensionPoint.EndOfWorkflowExecution
 * @uses com.github.sormuras.bach.api.ExternalModuleLocator
 * @uses java.util.spi.ToolProvider
 */
@com.github.sormuras.bach.api.ProjectInfo
module com.github.sormuras.bach {
  exports com.github.sormuras.bach;
  exports com.github.sormuras.bach.api;
  exports com.github.sormuras.bach.locator;
  exports com.github.sormuras.bach.tool;
  exports com.github.sormuras.bach.trait;
  exports com.github.sormuras.bach.workflow;

  requires transitive java.net.http;
  requires jdk.compiler;
  requires jdk.crypto.ec; // https://stackoverflow.com/questions/55439599
  requires jdk.jartool;
  requires jdk.javadoc;
  requires jdk.jdeps;
  requires jdk.jfr;
  requires jdk.jlink;

  uses com.github.sormuras.bach.Factory;
  uses ExtensionPoint.BeginOfWorkflowExecution;
  uses ExtensionPoint.EndOfWorkflowExecution;
  uses com.github.sormuras.bach.api.ExternalModuleLocator;
  uses java.util.spi.ToolProvider;

  provides java.util.spi.ToolProvider with
      com.github.sormuras.bach.internal.BachToolProvider;
}

/**
 * Defines the API of 🎼 Bach, the Java Shell Builder.
 *
 * <h2>Links</h2>
 *
 * <ul>
 *   <li>Bach's <a href="https://github.com/sormuras/bach">Code &amp; Issues</a>
 *   <li>Bach's <a href="https://sormuras.github.io/api/#bach">API</a>
 *   <li>Java® Development Kit Version 16 <a
 *       href="https://docs.oracle.com/en/java/javase/16/docs/specs/man/">Tool Specifications</a>
 * </ul>
 *
 * @uses com.github.sormuras.bach.Factory
 * @uses com.github.sormuras.bach.ExtensionPoint.BeginOfWorkflowExecution
 * @uses com.github.sormuras.bach.ExtensionPoint.EndOfWorkflowExecution
 * @uses com.github.sormuras.bach.api.ExternalModuleLocator
 * @uses java.util.spi.ToolProvider
 */
@com.github.sormuras.bach.api.ProjectInfo
module com.github.sormuras.bach {
  exports com.github.sormuras.bach;
  exports com.github.sormuras.bach.api;
  exports com.github.sormuras.bach.locator;
  exports com.github.sormuras.bach.tool;
  exports com.github.sormuras.bach.trait;
  exports com.github.sormuras.bach.workflow;

  requires transitive java.net.http;
  requires jdk.compiler;
  requires jdk.crypto.ec; // https://stackoverflow.com/questions/55439599
  requires jdk.jartool;
  requires jdk.javadoc;
  requires jdk.jdeps;
  requires jdk.jfr;
  requires jdk.jlink;

  uses com.github.sormuras.bach.Factory;
  uses com.github.sormuras.bach.ExtensionPoint.BeginOfWorkflowExecution;
  uses com.github.sormuras.bach.ExtensionPoint.EndOfWorkflowExecution;
  uses com.github.sormuras.bach.api.ExternalModuleLocator;
  uses java.util.spi.ToolProvider;

  provides java.util.spi.ToolProvider with
      com.github.sormuras.bach.internal.BachToolProvider;
}

Use fully-qualified class name