Class ResourceFilteringStrategy
java.lang.Object
org.apache.maven.cling.invoker.mvnup.goals.AbstractUpgradeStrategy
org.apache.maven.cling.invoker.mvnup.goals.ResourceFilteringStrategy
- All Implemented Interfaces:
UpgradeStrategy
@Named
@Singleton
@Priority(17)
public class ResourceFilteringStrategy
extends AbstractUpgradeStrategy
Strategy for adding binary file extension exclusions to the maven-resources-plugin
when resource filtering is enabled.
Maven 4 strictly decodes filtered resources as UTF-8, which causes
MalformedInputException when binary files (e.g., .xlsx, .docx)
are present in a resource directory with <filtering>true</filtering>.
Maven 3 was more lenient and silently handled these files.
This strategy scans all <resource> and <testResource> blocks.
If any resource directory has filtering enabled and the maven-resources-plugin
does not already declare <nonFilteredFileExtensions>, this strategy adds a
list of common binary file extensions to prevent the exception.
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected UpgradeResultdoApply(UpgradeContext context, Map<Path, eu.maveniverse.domtrip.Document> pomMap) Subclasses implement the actual upgrade logic here.Gets a description of what this strategy does.booleanisApplicable(UpgradeContext context) Checks if this strategy is applicable given the current options.Methods inherited from class AbstractUpgradeStrategy
apply, buildEffectiveModel, cleanupTempDirectory, computeAllArtifactCoordinates, createTempProjectStructure, extractArtifactCoordinatesWithParentResolution, findCommonRoot, getOptions, getSession, logSummaryMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface UpgradeStrategy
isOptionEnabled
-
Constructor Details
-
ResourceFilteringStrategy
public ResourceFilteringStrategy()
-
-
Method Details
-
isApplicable
Description copied from interface:UpgradeStrategyChecks if this strategy is applicable given the current options.- Parameters:
context- the upgrade context- Returns:
- true if this strategy should be applied
-
getDescription
Description copied from interface:UpgradeStrategyGets a description of what this strategy does.- Returns:
- a human-readable description of the strategy
-
doApply
protected UpgradeResult doApply(UpgradeContext context, Map<Path, eu.maveniverse.domtrip.Document> pomMap) Description copied from class:AbstractUpgradeStrategySubclasses implement the actual upgrade logic here.- Specified by:
doApplyin classAbstractUpgradeStrategy- Parameters:
context- the upgrade contextpomMap- map of all POM files in the project- Returns:
- the result of the upgrade operation
-