Package name.jurgenei.gradle.xml
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 -
Method Summary
Modifier and TypeMethodDescriptionvoidfileset(Object baseDir, org.gradle.api.Action<? super org.gradle.api.file.ConfigurableFileTree> configureAction) Adds an Ant-like fileset rooted atbaseDir.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.RegularFilePropertyOptional explicit single input file.abstract org.gradle.api.file.DirectoryPropertyDestination 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.file.RegularFilePropertyOptional explicit single output file.abstract org.gradle.api.provider.Property<String> Optional explicit serializer output method used by Saxon.Transform parameters exposed to the execution engine.org.gradle.api.file.FileTreeabstract org.gradle.api.provider.Property<Integer> Number of worker threads used when processing multiple files.voidSets an explicit single input file (Ant-likein).protected longlatestDependencyTimestamp(File inputFile) Returns the newest timestamp of any file dependency that influences a transformation.voidSets an explicit single output file (Ant-likeout).voidoutputMethod(String method) Sets an explicit serializer output method (Gradle DSL friendly).voidAdds or overrides a transformation parameter.protected StringresolveSerializerMethod(File outputFile) Resolves the serializer output method from explicit task setting or output extension.protected abstract voidExecutes one transformation from input file to output file.voidExecutes 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, sourceMethods inherited from class org.gradle.api.internal.ConventionTask
conventionMapping, conventionMapping, getConventionMappingMethods 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, usesServiceMethods 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, setImpliesSubProjectsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.gradle.api.Task
doNotTrackState, notCompatibleWithConfigurationCache
-
Constructor Details
-
AbstractXmlTransformTask
public AbstractXmlTransformTask()Creates a task with default conventions.
-
-
Method Details
-
getOutputDir
@Optional @OutputDirectory public abstract org.gradle.api.file.DirectoryProperty getOutputDir()Destination root directory for transformed files.- Returns:
- output directory property
-
getInputFile
@Optional @InputFile @PathSensitive(RELATIVE) public abstract org.gradle.api.file.RegularFileProperty getInputFile()Optional explicit single input file.When set together with
getOutputFile(), the task runs in single-file mode and does not requiregetOutputDir()mapping.- Returns:
- explicit input file property
-
getOutputFile
@Optional @OutputFile public abstract org.gradle.api.file.RegularFileProperty getOutputFile()Optional explicit single output file.- Returns:
- explicit output file property
-
getOutputExtension
Output file extension used when mapping each input file to an output file.- Returns:
- extension property, defaults to
.xml
-
getOutputMethod
Optional explicit serializer output method used by Saxon.Supported values are
xml,json, andtext. If not set, the method is inferred from the destination file extension.- Returns:
- output method property
-
getParams
Transform parameters exposed to the execution engine.- Returns:
- map of parameter names to values
-
getWorkers
Number of worker threads used when processing multiple files.- Returns:
- worker-count property, defaults to
1
-
getFailOnError
Controls whether a task failure should fail the build when a single file transform fails.- Returns:
- fail-on-error property
-
param
Adds or overrides a transformation parameter.- Parameters:
name- parameter name, must not benullvalue- 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 atbaseDir.- Parameters:
baseDir- base directory object accepted byProject.fileTreeconfigureAction- include/exclude configuration action
-
input
Sets an explicit single input file (Ant-likein).- Parameters:
path- file notation supported byProject.file
-
output
Sets an explicit single output file (Ant-likeout).- Parameters:
path- file notation supported byProject.file
-
outputMethod
Sets an explicit serializer output method (Gradle DSL friendly).- Parameters:
method- one ofxml,json,text
-
getSource
@PathSensitive(RELATIVE) public org.gradle.api.file.FileTree getSource()- Overrides:
getSourcein classorg.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
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
-
resolveSerializerMethod
Resolves the serializer output method from explicit task setting or output extension.- Parameters:
outputFile- destination file- Returns:
- serializer method to pass to Saxon
-
transform
protected abstract void transform(File inputFile, File outputFile, Map<String, String> params) throws ExceptionExecutes one transformation from input file to output file.- Parameters:
inputFile- source XML documentoutputFile- destination fileparams- immutable task parameter view- Throws:
Exception- any transform exception raised by the engine implementation
-