Loading src/it/replace-file-content/pom.xml +54 −11 Changes for src/it/replace-file-content/pom.xml: 54 added lines, 11 removed lines. Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ <excludes> <exclude>pom.xml</exclude> <exclude>*.log</exclude> <exclude>target</exclude> <exclude>target/**/*</exclude> </excludes> <outputDirectory>${project.build.directory}/noreplace-one</outputDirectory> </fileset> Loading @@ -75,31 +75,74 @@ </regexes> </configuration> </execution> <execution> <id>replace-linestart</id> <phase>validate</phase> <goals> <goal>replace-file</goal> </goals> <configuration> <filesets> <fileset> <directory>${basedir}/folder1</directory> <includes> <include>file12.txt</include> </includes> <outputDirectory>${project.build.directory}/replace-linestart</outputDirectory> </fileset> </filesets> <regexes> <regex> <pattern>^it is</pattern> <replacement># it is</replacement> </regex> </regexes> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.4.1</version> <version>3.0.0-M3</version> <executions> <execution> <id>assert</id> <goals><goal>enforce</goal></goals> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireFilesExist> <files> <file>${project.build.directory}/replace-one/file1.txt</file> <file>${project.build.directory}/noreplace-one/file1.txt</file> <file>${project.build.directory}/noreplace-one/folder1/file11.txt</file> <file>${project.build.directory}/noreplace-one/folder1/file12.txt</file> </files> </requireFilesExist> <requireFilesDontExist> <files> <file>${project.build.directory}/replace-one/folder1/file11.txt</file> <file>${project.build.directory}/replace-one/folder1/file12.txt</file> </files> </requireFilesDontExist> <requireFileChecksum> <file>${project.build.directory}/replace-one/file1.txt</file> <checksum>6f1ed002ab5595859014ebf0951522d9</checksum> <type>md5</type> </requireFileChecksum> <requireFileChecksum> <file>${project.build.directory}/noreplace-one/file1.txt</file> <checksum>6f1ed002ab5595859014ebf0951522d9</checksum> <type>md5</type> </requireFileChecksum> <requireFileChecksum> <file>${project.build.directory}/noreplace-one/folder1/file11.txt</file> <checksum>72cd622783716925706f49d392089b48</checksum> <type>md5</type> </requireFileChecksum> <requireFileChecksum> <file>${project.build.directory}/noreplace-one/folder1/file12.txt</file> <checksum>925a6e3bd25cdd61695aa55d008ab4d2</checksum> <type>md5</type> </requireFileChecksum> <requireFileChecksum> <file>${project.build.directory}/replace-linestart/file12.txt</file> <checksum>fb1f2b040970526fc99b1339f22465f1</checksum> <type>md5</type> </requireFileChecksum> </rules> </configuration> </execution> Loading src/main/java/com/inteligr8/maven/regex/MatchFileContentMojo.java +18 −1 Changes for src/main/java/com/inteligr8/maven/regex/MatchFileContentMojo.java: 18 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ */ package com.inteligr8.maven.regex; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; Loading Loading @@ -57,9 +58,11 @@ public class MatchFileContentMojo extends AbstractMatchMojo { try { for (FileSet fileSet : this.filesets) { Path baseInputPath = this.resolveDirectory(basepath, fileSet.getDirectory(), "fileset input"); String[] filePathsAndNames = fsman.getIncludedFiles(fileSet); for (String filePathAndName : filePathsAndNames) { Path file = basepath.resolve(filePathAndName); Path file = baseInputPath.resolve(filePathAndName); if (!Files.isDirectory(file)) if (this.matches(file, this.chunkSize)) return true; Loading @@ -72,6 +75,20 @@ public class MatchFileContentMojo extends AbstractMatchMojo { 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 protected void normalizeParameters() throws MojoFailureException { super.normalizeParameters(); Loading src/main/java/com/inteligr8/maven/regex/ReplaceFileContentMojo.java +22 −7 Changes for src/main/java/com/inteligr8/maven/regex/ReplaceFileContentMojo.java: 22 added lines, 7 removed lines. Original line number Diff line number Diff line Loading @@ -52,16 +52,12 @@ public class ReplaceFileContentMojo extends AbstractReplaceMojo { try { for (FileSet fileSet : this.filesets) { String outputDir = fileSet.getOutputDirectory(); Path baseOutputPath = new File(outputDir).toPath(); if (!Files.exists(baseOutputPath)) Files.createDirectories(baseOutputPath); if (!Files.isDirectory(baseOutputPath)) throw new MojoExecutionException("A fileset output directory does not reference a directory: " + outputDir); Path baseInputPath = this.resolveDirectory(basepath, fileSet.getDirectory(), false, "fileset input"); Path baseOutputPath = this.resolveDirectory(basepath, fileSet.getOutputDirectory(), true, "fileset output"); String[] filePathsAndNames = fsman.getIncludedFiles(fileSet); for (String filePathAndName : filePathsAndNames) { Path file = basepath.resolve(filePathAndName); Path file = baseInputPath.resolve(filePathAndName); Path tofile = baseOutputPath.resolve(filePathAndName); if (!Files.exists(tofile.getParent())) Files.createDirectories(tofile.getParent()); Loading @@ -77,6 +73,25 @@ public class ReplaceFileContentMojo extends AbstractReplaceMojo { 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 protected void normalizeParameters() throws MojoFailureException { super.normalizeParameters(); Loading src/test/java/com/inteligr8/maven/regex/FileSetUnitTest.java 0 → 100644 +29 −0 Changes for src/test/java/com/inteligr8/maven/regex/FileSetUnitTest.java: 29 added lines, 0 removed lines. Original line number Diff line number Diff line 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
src/it/replace-file-content/pom.xml +54 −11 Changes for src/it/replace-file-content/pom.xml: 54 added lines, 11 removed lines. Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ <excludes> <exclude>pom.xml</exclude> <exclude>*.log</exclude> <exclude>target</exclude> <exclude>target/**/*</exclude> </excludes> <outputDirectory>${project.build.directory}/noreplace-one</outputDirectory> </fileset> Loading @@ -75,31 +75,74 @@ </regexes> </configuration> </execution> <execution> <id>replace-linestart</id> <phase>validate</phase> <goals> <goal>replace-file</goal> </goals> <configuration> <filesets> <fileset> <directory>${basedir}/folder1</directory> <includes> <include>file12.txt</include> </includes> <outputDirectory>${project.build.directory}/replace-linestart</outputDirectory> </fileset> </filesets> <regexes> <regex> <pattern>^it is</pattern> <replacement># it is</replacement> </regex> </regexes> </configuration> </execution> </executions> </plugin> <plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.4.1</version> <version>3.0.0-M3</version> <executions> <execution> <id>assert</id> <goals><goal>enforce</goal></goals> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireFilesExist> <files> <file>${project.build.directory}/replace-one/file1.txt</file> <file>${project.build.directory}/noreplace-one/file1.txt</file> <file>${project.build.directory}/noreplace-one/folder1/file11.txt</file> <file>${project.build.directory}/noreplace-one/folder1/file12.txt</file> </files> </requireFilesExist> <requireFilesDontExist> <files> <file>${project.build.directory}/replace-one/folder1/file11.txt</file> <file>${project.build.directory}/replace-one/folder1/file12.txt</file> </files> </requireFilesDontExist> <requireFileChecksum> <file>${project.build.directory}/replace-one/file1.txt</file> <checksum>6f1ed002ab5595859014ebf0951522d9</checksum> <type>md5</type> </requireFileChecksum> <requireFileChecksum> <file>${project.build.directory}/noreplace-one/file1.txt</file> <checksum>6f1ed002ab5595859014ebf0951522d9</checksum> <type>md5</type> </requireFileChecksum> <requireFileChecksum> <file>${project.build.directory}/noreplace-one/folder1/file11.txt</file> <checksum>72cd622783716925706f49d392089b48</checksum> <type>md5</type> </requireFileChecksum> <requireFileChecksum> <file>${project.build.directory}/noreplace-one/folder1/file12.txt</file> <checksum>925a6e3bd25cdd61695aa55d008ab4d2</checksum> <type>md5</type> </requireFileChecksum> <requireFileChecksum> <file>${project.build.directory}/replace-linestart/file12.txt</file> <checksum>fb1f2b040970526fc99b1339f22465f1</checksum> <type>md5</type> </requireFileChecksum> </rules> </configuration> </execution> Loading
src/main/java/com/inteligr8/maven/regex/MatchFileContentMojo.java +18 −1 Changes for src/main/java/com/inteligr8/maven/regex/MatchFileContentMojo.java: 18 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ */ package com.inteligr8.maven.regex; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; Loading Loading @@ -57,9 +58,11 @@ public class MatchFileContentMojo extends AbstractMatchMojo { try { for (FileSet fileSet : this.filesets) { Path baseInputPath = this.resolveDirectory(basepath, fileSet.getDirectory(), "fileset input"); String[] filePathsAndNames = fsman.getIncludedFiles(fileSet); for (String filePathAndName : filePathsAndNames) { Path file = basepath.resolve(filePathAndName); Path file = baseInputPath.resolve(filePathAndName); if (!Files.isDirectory(file)) if (this.matches(file, this.chunkSize)) return true; Loading @@ -72,6 +75,20 @@ public class MatchFileContentMojo extends AbstractMatchMojo { 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 protected void normalizeParameters() throws MojoFailureException { super.normalizeParameters(); Loading
src/main/java/com/inteligr8/maven/regex/ReplaceFileContentMojo.java +22 −7 Changes for src/main/java/com/inteligr8/maven/regex/ReplaceFileContentMojo.java: 22 added lines, 7 removed lines. Original line number Diff line number Diff line Loading @@ -52,16 +52,12 @@ public class ReplaceFileContentMojo extends AbstractReplaceMojo { try { for (FileSet fileSet : this.filesets) { String outputDir = fileSet.getOutputDirectory(); Path baseOutputPath = new File(outputDir).toPath(); if (!Files.exists(baseOutputPath)) Files.createDirectories(baseOutputPath); if (!Files.isDirectory(baseOutputPath)) throw new MojoExecutionException("A fileset output directory does not reference a directory: " + outputDir); Path baseInputPath = this.resolveDirectory(basepath, fileSet.getDirectory(), false, "fileset input"); Path baseOutputPath = this.resolveDirectory(basepath, fileSet.getOutputDirectory(), true, "fileset output"); String[] filePathsAndNames = fsman.getIncludedFiles(fileSet); for (String filePathAndName : filePathsAndNames) { Path file = basepath.resolve(filePathAndName); Path file = baseInputPath.resolve(filePathAndName); Path tofile = baseOutputPath.resolve(filePathAndName); if (!Files.exists(tofile.getParent())) Files.createDirectories(tofile.getParent()); Loading @@ -77,6 +73,25 @@ public class ReplaceFileContentMojo extends AbstractReplaceMojo { 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 protected void normalizeParameters() throws MojoFailureException { super.normalizeParameters(); Loading
src/test/java/com/inteligr8/maven/regex/FileSetUnitTest.java 0 → 100644 +29 −0 Changes for src/test/java/com/inteligr8/maven/regex/FileSetUnitTest.java: 29 added lines, 0 removed lines. Original line number Diff line number Diff line 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")); } }