fixed fileset handling
This commit is contained in:
parent
f3f8f1d3a4
commit
abf7eeee75
@ -84,9 +84,9 @@
|
|||||||
<configuration>
|
<configuration>
|
||||||
<filesets>
|
<filesets>
|
||||||
<fileset>
|
<fileset>
|
||||||
<directory>${basedir}</directory>
|
<directory>${basedir}/folder1</directory>
|
||||||
<includes>
|
<includes>
|
||||||
<include>folder1/file12.txt</include>
|
<include>file12.txt</include>
|
||||||
</includes>
|
</includes>
|
||||||
<outputDirectory>${project.build.directory}/replace-linestart</outputDirectory>
|
<outputDirectory>${project.build.directory}/replace-linestart</outputDirectory>
|
||||||
</fileset>
|
</fileset>
|
||||||
@ -139,7 +139,7 @@
|
|||||||
<type>md5</type>
|
<type>md5</type>
|
||||||
</requireFileChecksum>
|
</requireFileChecksum>
|
||||||
<requireFileChecksum>
|
<requireFileChecksum>
|
||||||
<file>${project.build.directory}/replace-linestart/folder1/file12.txt</file>
|
<file>${project.build.directory}/replace-linestart/file12.txt</file>
|
||||||
<checksum>fb1f2b040970526fc99b1339f22465f1</checksum>
|
<checksum>fb1f2b040970526fc99b1339f22465f1</checksum>
|
||||||
<type>md5</type>
|
<type>md5</type>
|
||||||
</requireFileChecksum>
|
</requireFileChecksum>
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.inteligr8.maven.regex;
|
package com.inteligr8.maven.regex;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
@ -57,9 +58,11 @@ public class MatchFileContentMojo extends AbstractMatchMojo {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
for (FileSet fileSet : this.filesets) {
|
for (FileSet fileSet : this.filesets) {
|
||||||
|
Path baseInputPath = this.resolveDirectory(basepath, fileSet.getDirectory(), "fileset input");
|
||||||
|
|
||||||
String[] filePathsAndNames = fsman.getIncludedFiles(fileSet);
|
String[] filePathsAndNames = fsman.getIncludedFiles(fileSet);
|
||||||
for (String filePathAndName : filePathsAndNames) {
|
for (String filePathAndName : filePathsAndNames) {
|
||||||
Path file = basepath.resolve(filePathAndName);
|
Path file = baseInputPath.resolve(filePathAndName);
|
||||||
if (!Files.isDirectory(file))
|
if (!Files.isDirectory(file))
|
||||||
if (this.matches(file, this.chunkSize))
|
if (this.matches(file, this.chunkSize))
|
||||||
return true;
|
return true;
|
||||||
@ -72,6 +75,20 @@ public class MatchFileContentMojo extends AbstractMatchMojo {
|
|||||||
return this.negate;
|
return this.negate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Path resolveDirectory(Path basepath, String directory, String errorName) throws IOException, MojoExecutionException {
|
||||||
|
Path path = new File(directory).toPath();
|
||||||
|
if (!path.isAbsolute())
|
||||||
|
path = basepath.resolve(path);
|
||||||
|
|
||||||
|
if (!Files.exists(path))
|
||||||
|
throw new MojoExecutionException("A " + errorName + " directory does not exist: " + directory);
|
||||||
|
|
||||||
|
if (!Files.isDirectory(path))
|
||||||
|
throw new MojoExecutionException("A " + errorName + " does reference a directory: " + directory);
|
||||||
|
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void normalizeParameters() throws MojoFailureException {
|
protected void normalizeParameters() throws MojoFailureException {
|
||||||
super.normalizeParameters();
|
super.normalizeParameters();
|
||||||
|
@ -52,16 +52,12 @@ public class ReplaceFileContentMojo extends AbstractReplaceMojo {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
for (FileSet fileSet : this.filesets) {
|
for (FileSet fileSet : this.filesets) {
|
||||||
String outputDir = fileSet.getOutputDirectory();
|
Path baseInputPath = this.resolveDirectory(basepath, fileSet.getDirectory(), false, "fileset input");
|
||||||
Path baseOutputPath = new File(outputDir).toPath();
|
Path baseOutputPath = this.resolveDirectory(basepath, fileSet.getOutputDirectory(), true, "fileset output");
|
||||||
if (!Files.exists(baseOutputPath))
|
|
||||||
Files.createDirectories(baseOutputPath);
|
|
||||||
if (!Files.isDirectory(baseOutputPath))
|
|
||||||
throw new MojoExecutionException("A fileset output directory does not reference a directory: " + outputDir);
|
|
||||||
|
|
||||||
String[] filePathsAndNames = fsman.getIncludedFiles(fileSet);
|
String[] filePathsAndNames = fsman.getIncludedFiles(fileSet);
|
||||||
for (String filePathAndName : filePathsAndNames) {
|
for (String filePathAndName : filePathsAndNames) {
|
||||||
Path file = basepath.resolve(filePathAndName);
|
Path file = baseInputPath.resolve(filePathAndName);
|
||||||
Path tofile = baseOutputPath.resolve(filePathAndName);
|
Path tofile = baseOutputPath.resolve(filePathAndName);
|
||||||
if (!Files.exists(tofile.getParent()))
|
if (!Files.exists(tofile.getParent()))
|
||||||
Files.createDirectories(tofile.getParent());
|
Files.createDirectories(tofile.getParent());
|
||||||
@ -77,6 +73,25 @@ public class ReplaceFileContentMojo extends AbstractReplaceMojo {
|
|||||||
return didReplace;
|
return didReplace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Path resolveDirectory(Path basepath, String directory, boolean createIfMissing, String errorName) throws IOException, MojoExecutionException {
|
||||||
|
Path path = new File(directory).toPath();
|
||||||
|
if (!path.isAbsolute())
|
||||||
|
path = basepath.resolve(path);
|
||||||
|
|
||||||
|
if (!Files.exists(path)) {
|
||||||
|
if (createIfMissing) {
|
||||||
|
Files.createDirectories(path);
|
||||||
|
} else {
|
||||||
|
throw new MojoExecutionException("A " + errorName + " directory does not exist: " + directory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Files.isDirectory(path))
|
||||||
|
throw new MojoExecutionException("A " + errorName + " does reference a directory: " + directory);
|
||||||
|
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void normalizeParameters() throws MojoFailureException {
|
protected void normalizeParameters() throws MojoFailureException {
|
||||||
super.normalizeParameters();
|
super.normalizeParameters();
|
||||||
|
29
src/test/java/com/inteligr8/maven/regex/FileSetUnitTest.java
Normal file
29
src/test/java/com/inteligr8/maven/regex/FileSetUnitTest.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.inteligr8.maven.regex;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.apache.maven.shared.model.fileset.FileSet;
|
||||||
|
import org.apache.maven.shared.model.fileset.util.FileSetManager;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class FileSetUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void srcMainJava() {
|
||||||
|
FileSet fileset = new FileSet();
|
||||||
|
fileset.setDirectory("src/main/java");
|
||||||
|
fileset.setIncludes(Arrays.asList("**/*.java"));
|
||||||
|
|
||||||
|
String fs = File.separator;
|
||||||
|
FileSetManager fsman = new FileSetManager();
|
||||||
|
Set<String> files = new HashSet<>(Arrays.asList(fsman.getIncludedFiles(fileset)));
|
||||||
|
Assert.assertTrue(files.size() > 15);
|
||||||
|
System.err.println(files);
|
||||||
|
Assert.assertTrue(files.contains("com"+fs+"inteligr8"+fs+"maven"+fs+"regex"+fs+"AbstractFileMojo.java"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user