Class AbstractXmlTransformTask

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.gradle.api.internal.ConventionTask
org.gradle.api.tasks.SourceTask
name.jurgenei.gradle.xml.AbstractXmlTransformTask
All Implemented Interfaces:
Comparable<org.gradle.api.Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.IConventionAware, org.gradle.api.internal.TaskInternal, org.gradle.api.Named, org.gradle.api.plugins.ExtensionAware, org.gradle.api.Task, org.gradle.api.tasks.util.PatternFilterable, org.gradle.util.Configurable<org.gradle.api.Task>
Direct Known Subclasses:
XQueryTask, XsltTask

@DisableCachingByDefault(because="Uses external transform engines and file trees") public abstract class AbstractXmlTransformTask extends org.gradle.api.tasks.SourceTask
Shared base task for Saxon-backed file-to-file XML transformations.

This task provides Gradle-style input selection via SourceTask.source(Object...) or fileset(Object, Action), output mapping, parameter passing, and optional parallel processing with virtual-thread workers.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.gradle.api.Named

    org.gradle.api.Named.Namer
  • Field Summary

    Fields inherited from interface org.gradle.api.Task

    TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a task with default conventions.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    fileset(Object baseDir, org.gradle.api.Action<? super org.gradle.api.file.ConfigurableFileTree> configureAction)
    Adds an Ant-like fileset rooted at baseDir.
    abstract org.gradle.api.provider.Property<Boolean>
    Controls whether a task failure should fail the build when a single file transform fails.
    abstract org.gradle.api.file.DirectoryProperty
    Destination root directory for transformed files.
    abstract org.gradle.api.provider.Property<String>
    Output file extension used when mapping each input file to an output file.
    abstract org.gradle.api.provider.MapProperty<String,String>
    Transform parameters exposed to the execution engine.
    org.gradle.api.file.FileTree
     
    abstract org.gradle.api.provider.Property<Integer>
    Number of worker threads used when processing multiple files.
    protected long
    Returns the newest timestamp of any file dependency that influences a transformation.
    void
    param(String name, Object value)
    Adds or overrides a transformation parameter.
    protected abstract void
    transform(File inputFile, File outputFile, Map<String,String> params)
    Executes one transformation from input file to output file.
    void
    Executes transformations for all resolved source files.

    Methods inherited from class org.gradle.api.tasks.SourceTask

    exclude, exclude, exclude, exclude, getExcludes, getIncludes, getPatternSet, getPatternSetFactory, include, include, include, include, setExcludes, setIncludes, setSource, setSource, source

    Methods inherited from class org.gradle.api.internal.ConventionTask

    conventionMapping, conventionMapping, getConventionMapping

    Methods inherited from class org.gradle.api.DefaultTask

    compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService

    Methods inherited from class org.gradle.api.internal.AbstractTask

    acceptServiceReferences, appendParallelSafeAction, doNotTrackState, doNotTrackStateIf, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonsNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, restoreOnlyIf, restoreTaskActions, setImpliesSubProjects

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.gradle.api.Task

    doNotTrackState, notCompatibleWithConfigurationCache
  • Constructor Details

    • AbstractXmlTransformTask

      public AbstractXmlTransformTask()
      Creates a task with default conventions.
  • Method Details

    • getOutputDir

      @OutputDirectory public abstract org.gradle.api.file.DirectoryProperty getOutputDir()
      Destination root directory for transformed files.
      Returns:
      output directory property
    • getOutputExtension

      @Input public abstract org.gradle.api.provider.Property<String> getOutputExtension()
      Output file extension used when mapping each input file to an output file.
      Returns:
      extension property, defaults to .xml
    • getParams

      @Input public abstract org.gradle.api.provider.MapProperty<String,String> getParams()
      Transform parameters exposed to the execution engine.
      Returns:
      map of parameter names to values
    • getWorkers

      @Input public abstract org.gradle.api.provider.Property<Integer> getWorkers()
      Number of worker threads used when processing multiple files.
      Returns:
      worker-count property, defaults to 1
    • getFailOnError

      @Input public abstract org.gradle.api.provider.Property<Boolean> getFailOnError()
      Controls whether a task failure should fail the build when a single file transform fails.
      Returns:
      fail-on-error property
    • param

      public void param(String name, Object value)
      Adds or overrides a transformation parameter.
      Parameters:
      name - parameter name, must not be null
      value - parameter value, converted to string
    • fileset

      public void fileset(Object baseDir, org.gradle.api.Action<? super org.gradle.api.file.ConfigurableFileTree> configureAction)
      Adds an Ant-like fileset rooted at baseDir.
      Parameters:
      baseDir - base directory object accepted by Project.fileTree
      configureAction - include/exclude configuration action
    • getSource

      @PathSensitive(RELATIVE) public org.gradle.api.file.FileTree getSource()
      Overrides:
      getSource in class org.gradle.api.tasks.SourceTask
    • transformAll

      public void transformAll()
      Executes transformations for all resolved source files.

      Files are processed deterministically and may run in parallel when workers > 1.

    • latestDependencyTimestamp

      protected long latestDependencyTimestamp(File inputFile)
      Returns the newest timestamp of any file dependency that influences a transformation.

      By default this is the source file timestamp. Subclasses should override to include additional inputs such as stylesheets or query files.

      Parameters:
      inputFile - source XML document
      Returns:
      newest dependency timestamp in epoch milliseconds
    • transform

      protected abstract void transform(File inputFile, File outputFile, Map<String,String> params) throws Exception
      Executes one transformation from input file to output file.
      Parameters:
      inputFile - source XML document
      outputFile - destination file
      params - immutable task parameter view
      Throws:
      Exception - any transform exception raised by the engine implementation