Commit 1bb01908 authored by Brian Long's avatar Brian Long
Browse files

Merge branch 'develop' into stable

parents 46b55e0d abf7eeee
Loading
Loading
Loading
Loading
+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
@@ -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>
@@ -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>
+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
@@ -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;
@@ -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;
@@ -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();
+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
@@ -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());
@@ -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();
+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"));
	}

}