StigCheckConfigTask

@DisableCachingByDefault(because = "Validation-only task; <10 ms execution — caching overhead exceeds execution time.")
abstract class StigCheckConfigTask : DefaultTask, StigProblemProducerTask

Per-module configuration validation task.

Performs two kinds of checks:

1. Path validation

Checks that all paths declared in a module's stig { element { ... } } block actually exist on disk:

  • Repo roots referenced by this module

  • topicsFile — the topics JSON

  • interfacePointsAnnotationFile — the ASIL interface-points JSON

  • interfacePointLocation — directory for interface definition files

  • Patch files and their replaceFromFile targets

2. DSL consistency validation

Checks for contradictory or incomplete DSL settings:

  • Analysis enabled without a native build provider (nativeBuild { bazel { } })

  • softwareUnderAnalysis { requireExplicitIncludes = true } without include(...)

  • interfacePoints { interfacePointMode = DSL_DECLARATION } without sources/sinks or entryPoints

  • interfacePoints { interfacePointMode = SOURCES_* } without topicsFile or entryPoints

This catches configuration errors early (at configuration-check time) rather than deep inside the pipeline when a task fails with a cryptic error.

The root project registers a stigCheckConfig aggregator that depends on every submodule's instance of this task.

Checks current path existence, kind and containment on every invocation. The DSL snapshot records paths, not their filesystem state; hashing entire referenced repositories would do unnecessary work. Stable validation outputs leave downstream task reuse unaffected.

Constructors

Link copied to clipboard
constructor()

Types

Link copied to clipboard
data class CheckConfigInput(val referencedRepoNames: Set<String>, val repoImplementationRoots: Map<String, String?>, val settingsDir: File, val topicsFile: StigRepoFile?, val interfacePointsAnnotationFile: StigRepoFile?, val interfacePointLocation: StigRepoFile?, val patchFiles: List<StigCheckConfigTask.PatchFileRef>, val sourceCodeAnalysis: SourceCodeAnalysisConfig, val nativeBuildConfigured: Boolean, val compilationUnitIncludeCount: Int, val softwareUnderAnalysisRequiresIncludes: Boolean, val interfacePointMode: InterfacePointMode, val hasEntryPoints: Boolean, val hasSources: Boolean, val hasSinks: Boolean, val symbolVerificationMode: SymbolVerificationMode, val useStubHeaders: Boolean, val stubIQuotePaths: List<String>, val provenanceBuildIncludes: List<String>, val provenanceBuildExcludes: List<String>, val compilationUnitStubSources: List<String>) : Serializable

Serializable snapshot of all DSL state the task needs for validation. Built at configuration time from the StigExtension and StigProjectConfigContext, passed to the task via a single @Input property.

Link copied to clipboard
object Companion
Link copied to clipboard
data class PatchFileRef(val file: File, val replaceFromFile: File? = null) : Serializable

Minimal patch-file reference for path validation.

Link copied to clipboard

Whether the path should be a file or a directory.

Properties

Link copied to clipboard
open override var actions: List<Action<in Task?>?>?
Link copied to clipboard
open override val ant: AntBuilder?
Link copied to clipboard
@get:Internal
open val asDynamicObject: DynamicObject
Link copied to clipboard
@get:Input
abstract val checkInput: Property<StigCheckConfigTask.CheckConfigInput>

Serializable snapshot of the DSL state needed for validation.

Link copied to clipboard
open override val dependsOn: Set<Any?>?
Link copied to clipboard
open override var description: @Nullable String?
Link copied to clipboard
open override val destroyables: TaskDestroyables?
Link copied to clipboard
open override var didWork: Boolean
Link copied to clipboard
open override var enabled: Boolean
Link copied to clipboard
open override val extensions: ExtensionContainer?
Link copied to clipboard
open override val finalizedBy: TaskDependency?
Link copied to clipboard
open override var group: @Nullable String?
Link copied to clipboard
open val identityPath: Path?
Link copied to clipboard
Link copied to clipboard
@get:Internal
abstract val includedInDefaultProblemAggregate: Property<Boolean>
Link copied to clipboard
open override val inputs: TaskInputsInternal?
Link copied to clipboard
@get:Internal
open var isEnabled: Boolean
Link copied to clipboard
Link copied to clipboard
@get:Internal
open val lifecycleDependencies: TaskDependencyInternal?
Link copied to clipboard
open override val localState: TaskLocalState?
Link copied to clipboard
open override val logger: Logger?
Link copied to clipboard
open override val logging: LoggingManager?
Link copied to clipboard
open val loggingManager: @Nullable LoggingManagerInternal?
Link copied to clipboard
@get:OutputFile
abstract val markerFile: RegularFileProperty

Stable summary of the latest successful validation.

Link copied to clipboard
@get:Input
abstract val modulePath: Property<String>

Module path for reporting.

Link copied to clipboard
open override val mustRunAfter: TaskDependency?
Link copied to clipboard
open override val name: String?
Link copied to clipboard
open val onlyIf: Spec<in TaskInternal?>?
Link copied to clipboard
open override val outputs: TaskOutputsInternal?
Link copied to clipboard
open override val path: String?
Link copied to clipboard
@get:OutputFile
abstract override val problemsFile: RegularFileProperty

Structured execution/configuration problems emitted by this task.

Link copied to clipboard
open override val project: Project?
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open val requiredServices: TaskRequiredServices?
Link copied to clipboard
open val sharedResources: List<ResourceLock?>?
Link copied to clipboard
open override val shouldRunAfter: TaskDependency?
Link copied to clipboard
open val standardOutputCapture: StandardOutputCapture?
Link copied to clipboard
open override val state: TaskStateInternal?
Link copied to clipboard
open val taskActions: List<InputChangesAwareTaskAction?>?
Link copied to clipboard
open override val taskDependencies: TaskDependencyInternal?
Link copied to clipboard
open val taskIdentity: TaskIdentity<*>?
Link copied to clipboard
open override val temporaryDir: File?
Link copied to clipboard
open val temporaryDirFactory: Factory<File?>?
Link copied to clipboard
open override val timeout: Property<Duration?>?

Functions

Link copied to clipboard
open fun acceptServiceReferences(serviceReferences: Set<ServiceReferenceSpec?>?)
Link copied to clipboard
open fun appendParallelSafeAction(action: Action<in Task?>?)
Link copied to clipboard
fun check()
Link copied to clipboard
open operator fun compareTo(otherTask: Task?): Int
Link copied to clipboard
open fun configure(closure: Closure<*>?): Task?
Link copied to clipboard
open fun dependsOn(vararg paths: Any?): Task?
Link copied to clipboard
open fun doFirst(action: Closure<*>?): Task?
open fun doFirst(action: Action<in Task?>?): Task?
open fun doFirst(actionName: String?, action: Action<in Task?>?): Task?
Link copied to clipboard
open fun doLast(action: Closure<*>?): Task?
open fun doLast(action: Action<in Task?>?): Task?
open fun doLast(actionName: String?, action: Action<in Task?>?): Task?
Link copied to clipboard
open fun doNotTrackState(reasonNotToTrackState: String?)
Link copied to clipboard
open fun doNotTrackStateIf(reason: String?, spec: Spec<in TaskInternal?>?)
Link copied to clipboard
open fun finalizedBy(vararg paths: Any?): Task?
Link copied to clipboard
open fun getActions(): List<Action<in Task?>?>?
Link copied to clipboard
open fun getAnt(): AntBuilder?
Link copied to clipboard
open fun getDependsOn(): Set<Any?>?
Link copied to clipboard
open fun getDescription(): @Nullable String?
Link copied to clipboard
open fun getDestroyables(): TaskDestroyables?
Link copied to clipboard
open fun getDidWork(): Boolean
Link copied to clipboard
open fun getEnabled(): Boolean
Link copied to clipboard
open fun getExtensions(): ExtensionContainer?
Link copied to clipboard
open fun getFinalizedBy(): TaskDependency?
Link copied to clipboard
open fun getGroup(): @Nullable String?
Link copied to clipboard
open fun getInputs(): TaskInputsInternal?
Link copied to clipboard
open fun getLocalState(): TaskLocalState?
Link copied to clipboard
open fun getLogger(): Logger?
Link copied to clipboard
open fun getLogging(): LoggingManager?
Link copied to clipboard
open fun getMustRunAfter(): TaskDependency?
Link copied to clipboard
open fun getName(): String?
Link copied to clipboard
open fun getOutputs(): TaskOutputsInternal?
Link copied to clipboard
open fun getPath(): String?
Link copied to clipboard
open fun getProject(): Project?
Link copied to clipboard
open fun getShouldRunAfter(): TaskDependency?
Link copied to clipboard
open fun getState(): TaskStateInternal?
Link copied to clipboard
open fun getTaskDependencies(): TaskDependencyInternal?
Link copied to clipboard
open fun getTemporaryDir(): File?
Link copied to clipboard
open fun getTimeout(): Property<Duration?>?
Link copied to clipboard
open fun hasProperty(propertyName: String?): Boolean
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun mustRunAfter(vararg paths: Any?): Task?
Link copied to clipboard
open fun onlyIf(onlyIfClosure: Closure<*>?)
open fun onlyIf(spec: Spec<in Task?>?)
open fun onlyIf(onlyIfReason: String?, spec: Spec<in Task?>?)
Link copied to clipboard
open fun prependParallelSafeAction(action: Action<in Task?>?)
Link copied to clipboard
open fun property(propertyName: String?): Any?
Link copied to clipboard
open fun restoreOnlyIf(onlyIf: Spec<in TaskInternal?>?)
Link copied to clipboard
open fun restoreTaskActions(taskActions: List<InputChangesAwareTaskAction?>?)
Link copied to clipboard
open fun setActions(replacements: List<Action<in Task?>?>?)
Link copied to clipboard
open fun setDependsOn(dependsOn: Iterable<*>?)
Link copied to clipboard
open fun setDescription(description: @Nullable String?)
Link copied to clipboard
open fun setDidWork(didWork: Boolean)
Link copied to clipboard
open fun setEnabled(enabled: Boolean)
Link copied to clipboard
open fun setFinalizedBy(finalizedByTasks: Iterable<*>?)
Link copied to clipboard
open fun setGroup(group: @Nullable String?)
Link copied to clipboard
open fun setMustRunAfter(mustRunAfterTasks: Iterable<*>?)
Link copied to clipboard
open fun setOnlyIf(onlyIfClosure: Closure<*>?)
open fun setOnlyIf(spec: Spec<in Task?>?)
open fun setOnlyIf(onlyIfReason: String?, spec: Spec<in Task?>?)
Link copied to clipboard
open fun setProperty(name: String?, value: Any?)
Link copied to clipboard
open fun setShouldRunAfter(shouldRunAfterTasks: Iterable<*>?)
Link copied to clipboard
open fun shouldRunAfter(vararg paths: Any?): TaskDependency?
Link copied to clipboard
open fun usesService(service: Provider<out BuildService<*>?>?)