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
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.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.abstract org.gradle.api.provider.Property<String> Optional S-expression output format used when writing.sexprfiles.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 booleanisJsonFile(File file) Checks whether file extension matches JSON input/output.protected booleanisSexprFile(File file) Checks whether file extension matches S-expression input/output.protected booleanisStrictCanonicalJsonOutput(File outputFile) CANONICAL mode treats canonical JSON serialization failures as hard errors.voidSets JSON routing mode (Gradle DSL friendly).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 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.xml.sexpr.SExpressionSerializer.OutputFormatResolves S-expression serializer format from explicit task setting.voidsexprFormat(String format) Sets explicit S-expression output format (Gradle DSL friendly).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.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
-
getSexprFormat
Optional S-expression output format used when writing.sexprfiles.Supported values are
compact(default) andbeautified.- 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
-
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
-
sexprFormat
Sets explicit S-expression output format (Gradle DSL friendly).- Parameters:
format- one ofcompactorbeautified
-
jsonMode
Sets JSON routing mode (Gradle DSL friendly).- 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
-
resolveSexprOutputFormat
protected name.jurgenei.xml.sexpr.SExpressionSerializer.OutputFormat resolveSexprOutputFormat()Resolves S-expression serializer format from explicit task setting.- Returns:
- serializer format to use for
.sexprand canonical.jsonoutput
-
resolveJsonMode
Resolves JSON routing mode from explicit task setting.- Returns:
- JSON mode
-
isSexprFile
Checks whether file extension matches S-expression input/output.- Parameters:
file- candidate file- Returns:
- true when file extension is
.sexpr
-
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
-