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
    • executeAnalysis

      protected abstract int executeAnalysis(FilePath cltPath, FilePath filePath, String projectName, String projectVersion, 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