Class 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,XSpecCompileTask,XSpecTask
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 ClassesModifier and TypeClassDescriptionstatic enumJSON routing mode for.jsonfiles.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.provider.Property<String> Optional JSON mode controlling how.jsoninput/output is routed.org.gradle.api.provider.Property<String> getMode()Backward-compatible alias forgetOutputMode().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.org.gradle.api.provider.Property<String> Canonical output-format alias forgetXirFormat().abstract org.gradle.api.provider.Property<String> Optional explicit serializer output method used by Saxon.org.gradle.api.provider.Property<String> Canonical output-mode alias forgetJsonMode().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.org.gradle.api.provider.Property<String> Backward-compatible alias forgetOutputFormat().abstract org.gradle.api.provider.Property<String> Optional XIR output format used when writing.xirfiles.voidSets an explicit single input file (Ant-likein).protected booleanisJsonFile(File file) Checks whether file extension matches JSON input/output.protected booleanisStrictCanonicalJsonOutput(File outputFile) CANONICAL mode treats canonical JSON serialization failures as hard errors.protected booleanChecks whether file extension matches S-expression input/output.voidSets JSON routing mode (Gradle DSL friendly).protected longlatestDependencyTimestamp(File inputFile) Returns the newest timestamp of any file dependency that influences a transformation.voidBackward-compatible alias foroutputMode(String).voidSets an explicit single output file (Ant-likeout).voidoutputFormat(String format) Sets explicit S-expression output format using canonical DSL name.voidoutputMethod(String method) Sets an explicit serializer output method (Gradle DSL friendly).voidoutputMode(String mode) Sets JSON routing mode using canonical DSL name.voidAdds or overrides a transformation parameter.protected AbstractXmlTransformTask.JsonModeResolves JSON routing mode from explicit task setting.protected StringresolveSerializerMethod(File outputFile) Resolves the serializer output method from explicit task setting or output extension.protected name.jurgenei.xir.XirSerializer.OutputFormatResolves S-expression serializer format from explicit task setting.voidGroovy/Kotlin assignment-style alias formode(String).voidsetOutputFormat(String format) Groovy/Kotlin assignment-style alias foroutputFormat(String).voidsetOutputMode(String mode) Groovy/Kotlin assignment-style alias foroutputMode(String).voidsetXformat(String format) Groovy/Kotlin assignment-style alias forxformat(String).protected booleanshouldAttemptCanonicalJsonOutput(File outputFile) JSON output should attempt canonical hierarchical serialization.protected abstract voidExecutes one transformation from input file to output file.voidExecutes transformations for all resolved source files.protected booleanuseCanonicalJsonInput(File inputFile) AUTO and CANONICAL parse.jsonvia canonical JSON reader.voidBackward-compatible alias foroutputFormat(String).voidSets explicit S-expression output format (Gradle DSL friendly).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, getLoggingManager, 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
-
getXirFormat
Optional XIR output format used when writing.xirfiles.Supported values are
compact(default) andbeautified.- Returns:
- S-expression output format property
-
getOutputFormat
Canonical output-format alias forgetXirFormat().- Returns:
- S-expression output format property
-
getXformat
Backward-compatible alias forgetOutputFormat().- Returns:
- S-expression output format property
-
getJsonMode
Optional JSON mode controlling how.jsoninput/output is routed.Supported values are
auto(default),native, andcanonical.- Returns:
- JSON routing mode property
-
getOutputMode
Canonical output-mode alias forgetJsonMode().- Returns:
- JSON routing mode property
-
getMode
Backward-compatible alias forgetOutputMode().- Returns:
- JSON routing mode 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
-
xirFormat
Sets explicit S-expression output format (Gradle DSL friendly).- Parameters:
format- one ofcompactorbeautified
-
outputFormat
Sets explicit S-expression output format using canonical DSL name.- Parameters:
format- one ofcompactorbeautified
-
setOutputFormat
Groovy/Kotlin assignment-style alias foroutputFormat(String).- Parameters:
format- one ofcompactorbeautified
-
xformat
Backward-compatible alias foroutputFormat(String).- Parameters:
format- one ofcompactorbeautified
-
setXformat
Groovy/Kotlin assignment-style alias forxformat(String).- Parameters:
format- one ofcompactorbeautified
-
jsonMode
Sets JSON routing mode (Gradle DSL friendly).- Parameters:
mode- one ofauto,native, orcanonical
-
outputMode
Sets JSON routing mode using canonical DSL name.- Parameters:
mode- one ofauto,native, orcanonical
-
setOutputMode
Groovy/Kotlin assignment-style alias foroutputMode(String).- Parameters:
mode- one ofauto,native, orcanonical
-
mode
Backward-compatible alias foroutputMode(String).- Parameters:
mode- one ofauto,native, orcanonical
-
setMode
Groovy/Kotlin assignment-style alias formode(String).- Parameters:
mode- one ofauto,native, orcanonical
-
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
-
resolveXirOutputFormat
protected name.jurgenei.xir.XirSerializer.OutputFormat resolveXirOutputFormat()Resolves S-expression serializer format from explicit task setting.- Returns:
- serializer format to use for
.xirand canonical.jsonoutput
-
resolveJsonMode
Resolves JSON routing mode from explicit task setting.- Returns:
- JSON mode
-
isXirFile
Checks whether file extension matches S-expression input/output.- Parameters:
file- candidate file- Returns:
- true when file extension is
.xir
-
isJsonFile
Checks whether file extension matches JSON input/output.- Parameters:
file- candidate file- Returns:
- true when file extension is
.json
-
useCanonicalJsonInput
AUTO and CANONICAL parse.jsonvia canonical JSON reader.- Parameters:
inputFile- candidate source file- Returns:
- true when task should parse input using canonical JSON mapping
-
shouldAttemptCanonicalJsonOutput
JSON output should attempt canonical hierarchical serialization.CANONICAL mode always attempts canonical JSON. AUTO/NATIVE attempt canonical JSON when the resolved serializer method is
json.- Parameters:
outputFile- candidate destination file- Returns:
- true when task should try canonical JSON serializer before native fallback
-
isStrictCanonicalJsonOutput
CANONICAL mode treats canonical JSON serialization failures as hard errors.- Parameters:
outputFile- candidate destination file- Returns:
- true when canonical JSON serialization failure must fail task
-
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
-