Class BaseFiniteStateRecorder

All Implemented Interfaces:
ExtensionPoint, Describable<Publisher>, BuildStep, SimpleBuildStep
Direct Known Subclasses:
FiniteStateAnalyzeBinaryRecorder, FiniteStateSBOMImportRecorder, FiniteStateThirdPartyImportRecorder

public abstract class BaseFiniteStateRecorder extends Recorder implements SimpleBuildStep
Abstract base class for all Finite State recorders. Contains common functionality shared across different analysis types.
  • Field Details

    • subdomain

      protected String subdomain
    • apiTokenCredentialsId

      protected String apiTokenCredentialsId
    • projectName

      protected String projectName
    • projectVersion

      protected String projectVersion
    • externalizableId

      protected Boolean externalizableId
    • preRelease

      protected Boolean preRelease
  • Constructor Details

    • BaseFiniteStateRecorder

      protected BaseFiniteStateRecorder()
  • Method Details

    • getSubdomain

      public String getSubdomain()
    • getApiTokenCredentialsId

      public String getApiTokenCredentialsId()
    • getProjectName

      public String getProjectName()
    • getProjectVersion

      public String getProjectVersion()
    • getExternalizableId

      public boolean getExternalizableId()
    • getPreRelease

      public boolean getPreRelease()
    • setSubdomain

      public void setSubdomain(String subdomain)
    • setApiTokenCredentialsId

      @DataBoundSetter public void setApiTokenCredentialsId(String apiTokenCredentialsId)
      Setter to allow Pipeline usage like: apiTokenCredentialsId: 'my-secret-text-id'
    • setProjectName

      public void setProjectName(String projectName)
    • setProjectVersion

      @DataBoundSetter public void setProjectVersion(String projectVersion)
    • setExternalizableId

      @DataBoundSetter public void setExternalizableId(boolean externalizableId)
    • setPreRelease

      @DataBoundSetter public void setPreRelease(boolean preRelease)
    • getFileFromWorkspace

      protected FilePath getFileFromWorkspace(FilePath workspace, String relativeFilePath, TaskListener listener) throws IOException, InterruptedException
      Get file from workspace - common utility method (pipeline and freestyle)
      Throws:
      IOException
      InterruptedException
    • getSecretTextValue

      protected String getSecretTextValue(Run<?,?> run, String credentialId)
      Get secret values from credentials - common utility method (pipeline and freestyle)
    • getCLTPath

      protected FilePath getCLTPath(FilePath workspace, String subdomain, String apiToken, TaskListener listener) throws IOException, InterruptedException
      Get CLT path using the shared CLTManager
      Throws:
      IOException
      InterruptedException
    • parseVersion

      protected String parseVersion(Run<?,?> run, String projectVersion)
      Parse version based on externalizableId setting
    • validateCommonFields

      protected boolean validateCommonFields(TaskListener listener)
      Validate common required fields
    • logCommonInfo

      protected void logCommonInfo(Run<?,?> run, TaskListener listener, String filePath)
      Log common information
    • addConsolidatedResult

      protected void addConsolidatedResult(Run<?,?> run, String analysisType, String projectName, String consoleOutput, String status, String url)
      Add result to consolidated results action
    • buildCLTEnvironment

      protected String[] buildCLTEnvironment(String apiToken)
      Build the environment variables required by the CLT for authentication and domain routing.
    • executeAnalysis

      protected abstract int executeAnalysis(FilePath cltPath, FilePath filePath, String projectName, String projectVersion, String apiToken, FilePath workspace, Launcher launcher, TaskListener listener) throws IOException, InterruptedException
      Abstract method for executing the specific analysis
      Throws:
      IOException
      InterruptedException
    • getAnalysisType

      protected abstract String getAnalysisType()
      Get the analysis type name for logging and results
    • getFilePathFieldName

      protected abstract String getFilePathFieldName()
      Get the file path field name for validation
    • getFilePathValue

      protected abstract String getFilePathValue()
      Get the file path value
    • perform

      public void perform(Run<?,?> run, FilePath workspace, EnvVars env, Launcher launcher, TaskListener listener) throws InterruptedException, IOException
      Preferred entry point including environment variables. Marks build as failed on error.
      Specified by:
      perform in interface SimpleBuildStep
      Throws:
      InterruptedException
      IOException