in src/main/java/org/apache/maven/plugin/patch/ApplyMojo.java [255:316]
public void execute()
throws MojoExecutionException, MojoFailureException
{
boolean patchDirEnabled = ( ( patches != null ) && !patches.isEmpty() ) || naturalOrderProcessing;
boolean patchFileEnabled = patchFile != null;
// if patches is null or empty, and naturalOrderProcessing is not true then disable patching
if ( !patchFileEnabled && !patchDirEnabled )
{
getLog().info( "Patching is disabled for this project." );
return;
}
if ( skipApplication )
{
getLog().info( "Skipping patch file application (per configuration)." );
return;
}
patchTrackingFile.getParentFile().mkdirs();
Map patchesToApply;
try
{
if ( patchFileEnabled )
{
patchesToApply = Collections.singletonMap( patchFile.getName(), createPatchCommand( patchFile ) );
}
else
{
if ( !patchDirectory.isDirectory() )
{
throw new FileNotFoundException( "The base directory for patch files does not exist: "
+ patchDirectory );
}
String excludePatterns = null;
if ( excludes != null )
{
excludePatterns = StringUtils.join( excludes.iterator(), "," );
getLog().info( "Exclude pattern: " + excludePatterns );
}
List foundPatchFiles = FileUtils.getFileNames( patchDirectory, "*", excludePatterns, false );
patchesToApply = findPatchesToApply( foundPatchFiles, patchDirectory );
checkStrictPatchCompliance( foundPatchFiles );
}
String output = applyPatches( patchesToApply );
checkForWatchPhrases( output );
writeTrackingFile( patchesToApply );
}
catch ( IOException ioe )
{
throw new MojoExecutionException( "Unable to obtain list of patch files", ioe );
}
}