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:
    • FILES_ARTIFACT_ATTRIBUTE

      public static final org.gradle.api.attributes.Attribute<String> FILES_ARTIFACT_ATTRIBUTE
      Identifies the contract and emitter represented by an "apionly-files" variant.
  • 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

    • filesArtifactIdentity

      public static String filesArtifactIdentity(String contract, String emitter)
      The value of FILES_ARTIFACT_ATTRIBUTE for a file archive.
      Parameters:
      contract - the subscribed contract name
      emitter - the emitter id
      Returns:
      the archive's stable contract/emitter identity
    • apply

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