Record Class ReleaseRequest

java.lang.Object
java.lang.Record
network.ike.plugin.release.ReleaseRequest
Record Components:
releaseVersion - explicit release version override, or null to derive from POMs
nextVersion - explicit next-development version override, or null to derive
publish - true for a real release, false for the draft preview
skipVerify - skip the pre-flight verify pass (development-only convenience)
allowBranch - permit running from a branch other than main, or null
publishSite - whether to generate and publish the project site to gh-pages
nonRecursiveSite - skip aggregator-recursive site builds (single-module fast path)
skipOrgSite - skip the cross-repo org-site register (B25)
publishToCentral - whether to attempt the Maven Central deploy (opt-in)
nexusDeployMaxAttempts - maximum Nexus deploy attempts (retry budget)
nexusDeployBackoffSeconds - comma-separated backoff schedule between Nexus retries
skipNexusDeploy - skip the Nexus deploy phase entirely
centralDeployMaxAttempts - maximum Maven Central deploy attempts (retry budget)
centralDeployBackoffSeconds - comma-separated backoff schedule between Central retries
skipCentralDeploy - skip the Central deploy phase entirely
centralDeployAsync - whether to use the detached async-bash spawn path for Central (#484)
centralSentinelDir - override directory for the Central async sentinel/log files
issueRepo - GitHub repo (owner/name) hosting the release milestone
ignoreWarnings - proceed past preflight warnings (errors still abort)

public record ReleaseRequest(String releaseVersion, String nextVersion, boolean publish, boolean skipVerify, String allowBranch, boolean publishSite, boolean nonRecursiveSite, boolean skipOrgSite, boolean publishToCentral, int nexusDeployMaxAttempts, String nexusDeployBackoffSeconds, boolean skipNexusDeploy, int centralDeployMaxAttempts, String centralDeployBackoffSeconds, boolean skipCentralDeploy, boolean centralDeployAsync, String centralSentinelDir, String issueRepo, boolean ignoreWarnings) extends Record
Immutable user-supplied inputs for one invocation of the release pipeline.

Built by ReleaseDraftMojo.runGoal() from the mojo's @Parameter fields, then carried through the phases via ReleaseContext. Phases read configuration from ctx.request() instead of touching mojo instance fields, which keeps each phase testable in isolation once the decomposition lands (IKE-Network/ike-issues#489).

Carved out of ReleaseDraftMojo during the Phase 4 P2 prep commit. Resolved values that the prep phase derives (oldVersion, newVersion, releaseBranch, projectId, releaseTimestamp) intentionally live in PrepOutcome, not here — the request captures user input, the prep outcome captures derivations.

  • Constructor Details

    • ReleaseRequest

      public ReleaseRequest(String releaseVersion, String nextVersion, boolean publish, boolean skipVerify, String allowBranch, boolean publishSite, boolean nonRecursiveSite, boolean skipOrgSite, boolean publishToCentral, int nexusDeployMaxAttempts, String nexusDeployBackoffSeconds, boolean skipNexusDeploy, int centralDeployMaxAttempts, String centralDeployBackoffSeconds, boolean skipCentralDeploy, boolean centralDeployAsync, String centralSentinelDir, String issueRepo, boolean ignoreWarnings)
      Creates an instance of a ReleaseRequest record class.
      Parameters:
      releaseVersion - the value for the releaseVersion record component
      nextVersion - the value for the nextVersion record component
      publish - the value for the publish record component
      skipVerify - the value for the skipVerify record component
      allowBranch - the value for the allowBranch record component
      publishSite - the value for the publishSite record component
      nonRecursiveSite - the value for the nonRecursiveSite record component
      skipOrgSite - the value for the skipOrgSite record component
      publishToCentral - the value for the publishToCentral record component
      nexusDeployMaxAttempts - the value for the nexusDeployMaxAttempts record component
      nexusDeployBackoffSeconds - the value for the nexusDeployBackoffSeconds record component
      skipNexusDeploy - the value for the skipNexusDeploy record component
      centralDeployMaxAttempts - the value for the centralDeployMaxAttempts record component
      centralDeployBackoffSeconds - the value for the centralDeployBackoffSeconds record component
      skipCentralDeploy - the value for the skipCentralDeploy record component
      centralDeployAsync - the value for the centralDeployAsync record component
      centralSentinelDir - the value for the centralSentinelDir record component
      issueRepo - the value for the issueRepo record component
      ignoreWarnings - the value for the ignoreWarnings record component
  • Method Details

    • draft

      public boolean draft()
      Returns true when this request is for a draft preview, not a real release.

      Derived as !publish. The release flow short-circuits at B10 (after preflight) when draft is true.

      Returns:
      whether this is a draft-mode invocation
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • releaseVersion

      public String releaseVersion()
      Returns the value of the releaseVersion record component.
      Returns:
      the value of the releaseVersion record component
    • nextVersion

      public String nextVersion()
      Returns the value of the nextVersion record component.
      Returns:
      the value of the nextVersion record component
    • publish

      public boolean publish()
      Returns the value of the publish record component.
      Returns:
      the value of the publish record component
    • skipVerify

      public boolean skipVerify()
      Returns the value of the skipVerify record component.
      Returns:
      the value of the skipVerify record component
    • allowBranch

      public String allowBranch()
      Returns the value of the allowBranch record component.
      Returns:
      the value of the allowBranch record component
    • publishSite

      public boolean publishSite()
      Returns the value of the publishSite record component.
      Returns:
      the value of the publishSite record component
    • nonRecursiveSite

      public boolean nonRecursiveSite()
      Returns the value of the nonRecursiveSite record component.
      Returns:
      the value of the nonRecursiveSite record component
    • skipOrgSite

      public boolean skipOrgSite()
      Returns the value of the skipOrgSite record component.
      Returns:
      the value of the skipOrgSite record component
    • publishToCentral

      public boolean publishToCentral()
      Returns the value of the publishToCentral record component.
      Returns:
      the value of the publishToCentral record component
    • nexusDeployMaxAttempts

      public int nexusDeployMaxAttempts()
      Returns the value of the nexusDeployMaxAttempts record component.
      Returns:
      the value of the nexusDeployMaxAttempts record component
    • nexusDeployBackoffSeconds

      public String nexusDeployBackoffSeconds()
      Returns the value of the nexusDeployBackoffSeconds record component.
      Returns:
      the value of the nexusDeployBackoffSeconds record component
    • skipNexusDeploy

      public boolean skipNexusDeploy()
      Returns the value of the skipNexusDeploy record component.
      Returns:
      the value of the skipNexusDeploy record component
    • centralDeployMaxAttempts

      public int centralDeployMaxAttempts()
      Returns the value of the centralDeployMaxAttempts record component.
      Returns:
      the value of the centralDeployMaxAttempts record component
    • centralDeployBackoffSeconds

      public String centralDeployBackoffSeconds()
      Returns the value of the centralDeployBackoffSeconds record component.
      Returns:
      the value of the centralDeployBackoffSeconds record component
    • skipCentralDeploy

      public boolean skipCentralDeploy()
      Returns the value of the skipCentralDeploy record component.
      Returns:
      the value of the skipCentralDeploy record component
    • centralDeployAsync

      public boolean centralDeployAsync()
      Returns the value of the centralDeployAsync record component.
      Returns:
      the value of the centralDeployAsync record component
    • centralSentinelDir

      public String centralSentinelDir()
      Returns the value of the centralSentinelDir record component.
      Returns:
      the value of the centralSentinelDir record component
    • issueRepo

      public String issueRepo()
      Returns the value of the issueRepo record component.
      Returns:
      the value of the issueRepo record component
    • ignoreWarnings

      public boolean ignoreWarnings()
      Returns the value of the ignoreWarnings record component.
      Returns:
      the value of the ignoreWarnings record component