Class ApiOnlyTranscriberJPlugin

java.lang.Object
com.arc_e_tect.gradle.apionly.transcriberj.ApiOnlyTranscriberJPlugin
All Implemented Interfaces:
org.gradle.api.Plugin<org.gradle.api.Project>

public class ApiOnlyTranscriberJPlugin extends Object implements org.gradle.api.Plugin<org.gradle.api.Project>
The API-Only TranscriberJ: a class tree derived from a subscribed contract, for contract tests and stubs.

Applies the API-Only Subscriber, which fetches the contract. For every subscription in the apiOnlyTranscriberJ block it registers generateContractSources<Contract> for the core and generateContractSources<Contract><Emitter> for each emitter, places each one's output where the subscription says, and registers reportContractSources<Contract>, which writes the one report, and verifyContractSources<Contract>, which check runs. An emitter that writes files gets package<Contract><Emitter>, an archive of them, and a component to publish it with.

  • Field Details

    • EMITTERS_CONFIGURATION

      public static final String EMITTERS_CONFIGURATION
      The configuration emitter libraries are added to.
      See Also:
    • GENERATE_TASK

      public static final String GENERATE_TASK
      The prefix of each contract's and each emitter's generation task.
      See Also:
    • REPORT_TASK

      public static final String REPORT_TASK
      The prefix of each contract's report task.
      See Also:
    • VERIFY_TASK

      public static final String VERIFY_TASK
      The prefix of each contract's verification task.
      See Also:
    • PACKAGE_TASK

      public static final String PACKAGE_TASK
      The prefix of each archive task.
      See Also:
    • UPDATE_DSL_TASK

      public static final String UPDATE_DSL_TASK
      The task that adds missing apiOnlyTranscriberJ properties to the build file.
      See Also:
    • FILES_USAGE

      public static final String FILES_USAGE
      The usage an archive of an emitter's files is published with.
      See Also:
  • Constructor Details

    • ApiOnlyTranscriberJPlugin

      @Inject public ApiOnlyTranscriberJPlugin(org.gradle.api.component.SoftwareComponentFactory components)
      Creates the plugin.
      Parameters:
      components - Gradle's factory of publishable components
  • Method Details

    • apply

      public void apply(org.gradle.api.Project project)
      Specified by:
      apply in interface org.gradle.api.Plugin<org.gradle.api.Project>