diff --git a/.gitignore b/.gitignore
index 00044ebc..0f9d045b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,7 +5,6 @@ target
.classpath
dependency-reduced-pom.xml
build
-.classpath
.project
.settings
.idea
diff --git a/pom.xml b/pom.xml
index 2c9e02ae..b5f8944d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -216,12 +216,6 @@
${mavenVersion}
test
-
- org.codehaus.plexus
- plexus-interpolation
- 1.26
- test
-
org.mockito
mockito-core
diff --git a/src/main/java/org/codehaus/mojo/exec/AbstractPath.java b/src/main/java/org/codehaus/mojo/exec/AbstractPath.java
index 2ff7571f..88491542 100644
--- a/src/main/java/org/codehaus/mojo/exec/AbstractPath.java
+++ b/src/main/java/org/codehaus/mojo/exec/AbstractPath.java
@@ -35,7 +35,7 @@ public void setDependencies(Collection deps) {
public void setDependency(String dependency) {
// Is the the correct thing to do? See MOJO-348
if (dependencies == null) {
- setDependencies(new java.util.ArrayList());
+ setDependencies(new java.util.ArrayList<>());
}
dependencies.add(dependency);
}
diff --git a/src/main/java/org/codehaus/mojo/exec/EnvStreamConsumer.java b/src/main/java/org/codehaus/mojo/exec/EnvStreamConsumer.java
index 74bce11a..8369ed72 100644
--- a/src/main/java/org/codehaus/mojo/exec/EnvStreamConsumer.java
+++ b/src/main/java/org/codehaus/mojo/exec/EnvStreamConsumer.java
@@ -13,9 +13,9 @@ public class EnvStreamConsumer implements StreamConsumer {
public static final String START_PARSING_INDICATOR =
"================================This is the beginning of env parsing================================";
- private Map envs = new HashMap();
+ private Map envs = new HashMap<>();
- private List unparsed = new ArrayList();
+ private List unparsed = new ArrayList<>();
private boolean startParsing = false;
diff --git a/src/main/java/org/codehaus/mojo/exec/ExecJavaMojo.java b/src/main/java/org/codehaus/mojo/exec/ExecJavaMojo.java
index 1d9aaaf0..8721b7af 100644
--- a/src/main/java/org/codehaus/mojo/exec/ExecJavaMojo.java
+++ b/src/main/java/org/codehaus/mojo/exec/ExecJavaMojo.java
@@ -29,7 +29,6 @@
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.apache.maven.project.ProjectBuilder;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.collection.CollectRequest;
import org.eclipse.aether.graph.Dependency;
@@ -55,12 +54,6 @@ public class ExecJavaMojo extends AbstractExecMojo {
@Component
private RepositorySystem repositorySystem;
- /**
- * @since 1.0
- */
- @Component
- private ProjectBuilder projectBuilder;
-
/**
* The main class to execute.
* With Java 9 and above you can prefix it with the modulename, e.g. com.greetings/com.greetings.Main
@@ -255,70 +248,63 @@ public void execute() throws MojoExecutionException, MojoFailureException {
}
IsolatedThreadGroup threadGroup = new IsolatedThreadGroup(mainClass /* name */);
+ // TODO:
+ // Adjust implementation for future JDKs after removal of SecurityManager.
+ // See https://openjdk.org/jeps/411 for basic information.
+ // See https://bugs.openjdk.org/browse/JDK-8199704 for details about how users might be able to
+ // block
+ // System::exit in post-removal JDKs (still undecided at the time of writing this comment).
Thread bootstrapThread = new Thread(
threadGroup,
- new Runnable() {
- // TODO:
- // Adjust implementation for future JDKs after removal of SecurityManager.
- // See https://openjdk.org/jeps/411 for basic information.
- // See https://bugs.openjdk.org/browse/JDK-8199704 for details about how users might be able to
- // block
- // System::exit in post-removal JDKs (still undecided at the time of writing this comment).
- @SuppressWarnings("removal")
- public void run() {
- int sepIndex = mainClass.indexOf('/');
-
- final String bootClassName;
- if (sepIndex >= 0) {
- bootClassName = mainClass.substring(sepIndex + 1);
- } else {
- bootClassName = mainClass;
- }
+ () -> {
+ int sepIndex = mainClass.indexOf('/');
+
+ final String bootClassName;
+ if (sepIndex >= 0) {
+ bootClassName = mainClass.substring(sepIndex + 1);
+ } else {
+ bootClassName = mainClass;
+ }
- SecurityManager originalSecurityManager = System.getSecurityManager();
-
- try {
- Class> bootClass = Thread.currentThread()
- .getContextClassLoader()
- .loadClass(bootClassName);
-
- MethodHandles.Lookup lookup = MethodHandles.lookup();
-
- MethodHandle mainHandle = lookup.findStatic(
- bootClass, "main", MethodType.methodType(void.class, String[].class));
-
- if (blockSystemExit) {
- System.setSecurityManager(new SystemExitManager(originalSecurityManager));
- }
- mainHandle.invoke(arguments);
- } catch (IllegalAccessException
- | NoSuchMethodException
- | NoSuchMethodError e) { // just pass it on
- Thread.currentThread()
- .getThreadGroup()
- .uncaughtException(
- Thread.currentThread(),
- new Exception(
- "The specified mainClass doesn't contain a main method with appropriate signature.",
- e));
- } catch (
- InvocationTargetException
- e) { // use the cause if available to improve the plugin execution output
- Throwable exceptionToReport = e.getCause() != null ? e.getCause() : e;
- Thread.currentThread()
- .getThreadGroup()
- .uncaughtException(Thread.currentThread(), exceptionToReport);
- } catch (SystemExitException systemExitException) {
- getLog().info(systemExitException.getMessage());
- if (systemExitException.getExitCode() != 0) {
- throw systemExitException;
- }
- } catch (Throwable e) { // just pass it on
- Thread.currentThread().getThreadGroup().uncaughtException(Thread.currentThread(), e);
- } finally {
- if (blockSystemExit) {
- System.setSecurityManager(originalSecurityManager);
- }
+ SecurityManager originalSecurityManager = System.getSecurityManager();
+
+ try {
+ Class> bootClass =
+ Thread.currentThread().getContextClassLoader().loadClass(bootClassName);
+
+ MethodHandles.Lookup lookup = MethodHandles.lookup();
+
+ MethodHandle mainHandle =
+ lookup.findStatic(bootClass, "main", MethodType.methodType(void.class, String[].class));
+
+ if (blockSystemExit) {
+ System.setSecurityManager(new SystemExitManager(originalSecurityManager));
+ }
+ mainHandle.invoke(arguments);
+ } catch (IllegalAccessException | NoSuchMethodException | NoSuchMethodError e) { // just pass it on
+ Thread.currentThread()
+ .getThreadGroup()
+ .uncaughtException(
+ Thread.currentThread(),
+ new Exception(
+ "The specified mainClass doesn't contain a main method with appropriate signature.",
+ e));
+ } catch (InvocationTargetException e) {
+ // use the cause if available to improve the plugin execution output
+ Throwable exceptionToReport = e.getCause() != null ? e.getCause() : e;
+ Thread.currentThread()
+ .getThreadGroup()
+ .uncaughtException(Thread.currentThread(), exceptionToReport);
+ } catch (SystemExitException systemExitException) {
+ getLog().info(systemExitException.getMessage());
+ if (systemExitException.getExitCode() != 0) {
+ throw systemExitException;
+ }
+ } catch (Throwable e) { // just pass it on
+ Thread.currentThread().getThreadGroup().uncaughtException(Thread.currentThread(), e);
+ } finally {
+ if (blockSystemExit) {
+ System.setSecurityManager(originalSecurityManager);
}
}
},
@@ -452,7 +438,7 @@ private void joinThread(Thread thread, long timeoutMsecs) {
private void terminateThreads(ThreadGroup threadGroup) {
long startTime = System.currentTimeMillis();
- Set uncooperativeThreads = new HashSet(); // these were not responsive to interruption
+ Set uncooperativeThreads = new HashSet<>(); // these were not responsive to interruption
for (Collection threads = getActiveThreads(threadGroup);
!threads.isEmpty();
threads = getActiveThreads(threadGroup), threads.removeAll(uncooperativeThreads)) {
@@ -512,7 +498,7 @@ private void terminateThreads(ThreadGroup threadGroup) {
private Collection getActiveThreads(ThreadGroup threadGroup) {
Thread[] threads = new Thread[threadGroup.activeCount()];
int numThreads = threadGroup.enumerate(threads);
- Collection result = new ArrayList(numThreads);
+ Collection result = new ArrayList<>(numThreads);
for (int i = 0; i < threads.length && threads[i] != null; i++) {
result.add(threads[i]);
}
diff --git a/src/main/java/org/codehaus/mojo/exec/ExecMojo.java b/src/main/java/org/codehaus/mojo/exec/ExecMojo.java
index 0b5765aa..4dae13d2 100644
--- a/src/main/java/org/codehaus/mojo/exec/ExecMojo.java
+++ b/src/main/java/org/codehaus/mojo/exec/ExecMojo.java
@@ -27,6 +27,7 @@
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URL;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
@@ -65,7 +66,6 @@
import org.apache.maven.toolchain.Toolchain;
import org.apache.maven.toolchain.ToolchainManager;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.cli.CommandLineException;
import org.codehaus.plexus.util.cli.CommandLineUtils;
@@ -273,7 +273,7 @@ public class ExecMojo extends AbstractExecMojo {
* @since 1.1-beta-2
*/
@Parameter
- private Map environmentVariables = new HashMap();
+ private Map environmentVariables = new HashMap<>();
/**
* Environment script to be merged with environmentVariables This script is platform specifics, on Unix its
@@ -378,7 +378,7 @@ public void execute() throws MojoExecutionException {
String argsProp = getSystemProperty("exec.args");
- List commandArguments = new ArrayList();
+ List commandArguments = new ArrayList<>();
if (hasCommandlineArgs()) {
handleCommandLineArgs(commandArguments);
@@ -419,13 +419,8 @@ public void execute() throws MojoExecutionException {
getLog().warn("Could not create non existing parent directories for log file: " + outputFile);
}
- FileOutputStream outputStream = null;
- try {
- outputStream = new FileOutputStream(outputFile);
-
+ try (FileOutputStream outputStream = new FileOutputStream(outputFile)) {
resultCode = executeCommandLine(exec, commandLine, enviro, outputStream);
- } finally {
- IOUtil.close(outputStream);
}
} else if (useMavenLogger) {
getLog().debug("Will redirect program output to Maven logger");
@@ -435,24 +430,14 @@ public void execute() throws MojoExecutionException {
// which is why we capture the thread name prefix here.
final String logPrefix =
session.isParallel() ? "[" + Thread.currentThread().getName() + "] " : "";
- Consumer mavenOutRedirect = new Consumer() {
-
- @Override
- public void accept(String logMessage) {
- if (quietLogs) {
- getLog().debug(logPrefix + logMessage);
- } else {
- getLog().info(logPrefix + logMessage);
- }
- }
- };
- Consumer mavenErrRedirect = new Consumer() {
-
- @Override
- public void accept(String logMessage) {
- getLog().error(logPrefix + logMessage);
+ Consumer mavenOutRedirect = logMessage -> {
+ if (quietLogs) {
+ getLog().debug(logPrefix + logMessage);
+ } else {
+ getLog().info(logPrefix + logMessage);
}
};
+ Consumer mavenErrRedirect = logMessage -> getLog().error(logPrefix + logMessage);
try (OutputStream out = new LineRedirectOutputStream(mavenOutRedirect);
OutputStream err = new LineRedirectOutputStream(mavenErrRedirect)) {
@@ -489,7 +474,7 @@ public void accept(String logMessage) {
private Map handleSystemEnvVariables() throws MojoExecutionException {
- Map enviro = new HashMap();
+ Map enviro = new HashMap<>();
Properties systemEnvVars = CommandLineUtils.getSystemEnvVars();
for (Map.Entry, ?> entry : systemEnvVars.entrySet()) {
enviro.put((String) entry.getKey(), (String) entry.getValue());
@@ -508,7 +493,7 @@ private Map handleSystemEnvVariables() throws MojoExecutionExcep
}
if (this.getLog().isDebugEnabled()) {
- Set keys = new TreeSet();
+ Set keys = new TreeSet<>();
keys.addAll(enviro.keySet());
for (String key : keys) {
this.getLog().debug("env: " + key + "=" + enviro.get(key));
@@ -740,9 +725,9 @@ private static void addToClasspath(StringBuffer theClasspath, String toAdd) {
private List filterArtifacts(List artifacts, Collection dependencies) {
AndArtifactFilter filter = new AndArtifactFilter();
- filter.add(new IncludesArtifactFilter(new ArrayList(dependencies))); // gosh
+ filter.add(new IncludesArtifactFilter(new ArrayList<>(dependencies))); // gosh
- List filteredArtifacts = new ArrayList();
+ List filteredArtifacts = new ArrayList<>();
for (Artifact artifact : artifacts) {
if (filter.include(artifact)) {
getLog().debug("filtering in " + artifact);
@@ -837,7 +822,7 @@ private static List getExecutableExtensions() {
}
private List getExecutablePaths(Map enviro) {
- List paths = new ArrayList();
+ List paths = new ArrayList<>();
paths.add("");
String path = enviro.get("PATH");
@@ -850,7 +835,7 @@ private List getExecutablePaths(Map enviro) {
protected int executeCommandLine(
Executor exec, CommandLine commandLine, Map enviro, OutputStream out, OutputStream err)
- throws ExecuteException, IOException {
+ throws IOException {
// note: don't use BufferedOutputStream here since it delays the outputs MEXEC-138
PumpStreamHandler psh = new PumpStreamHandler(out, err, System.in);
return executeCommandLine(exec, commandLine, enviro, psh);
@@ -858,7 +843,7 @@ protected int executeCommandLine(
protected int executeCommandLine(
Executor exec, CommandLine commandLine, Map enviro, FileOutputStream outputFile)
- throws ExecuteException, IOException {
+ throws IOException {
BufferedOutputStream bos = new BufferedOutputStream(outputFile);
PumpStreamHandler psh = new PumpStreamHandler(bos);
return executeCommandLine(exec, commandLine, enviro, psh);
@@ -866,7 +851,7 @@ protected int executeCommandLine(
protected int executeCommandLine(
Executor exec, final CommandLine commandLine, Map enviro, final PumpStreamHandler psh)
- throws ExecuteException, IOException {
+ throws IOException {
exec.setStreamHandler(psh);
int result;
@@ -978,30 +963,30 @@ private Toolchain getToolchain() {
* @throws IOException
*/
private File createJar(List classPath, String mainClass) throws IOException {
- File file = File.createTempFile("maven-exec", ".jar");
+ File file = Files.createTempFile("maven-exec", ".jar").toFile();
file.deleteOnExit();
- FileOutputStream fos = new FileOutputStream(file);
- JarOutputStream jos = new JarOutputStream(fos);
- jos.setLevel(JarOutputStream.STORED);
- JarEntry je = new JarEntry("META-INF/MANIFEST.MF");
- jos.putNextEntry(je);
-
- Manifest man = new Manifest();
-
- // we can't use StringUtils.join here since we need to add a '/' to
- // the end of directory entries - otherwise the jvm will ignore them.
- StringBuilder cp = new StringBuilder();
- for (String el : classPath) {
- // NOTE: if File points to a directory, this entry MUST end in '/'.
- cp.append(new URL(new File(el).toURI().toASCIIString()).toExternalForm() + " ");
- }
+ try (FileOutputStream fos = new FileOutputStream(file);
+ JarOutputStream jos = new JarOutputStream(fos)) {
+ jos.setLevel(JarOutputStream.STORED);
+ JarEntry je = new JarEntry("META-INF/MANIFEST.MF");
+ jos.putNextEntry(je);
+
+ Manifest man = new Manifest();
+
+ // we can't use StringUtils.join here since we need to add a '/' to
+ // the end of directory entries - otherwise the jvm will ignore them.
+ StringBuilder cp = new StringBuilder();
+ for (String el : classPath) {
+ // NOTE: if File points to a directory, this entry MUST end in '/'.
+ cp.append(new URL(new File(el).toURI().toASCIIString()).toExternalForm() + " ");
+ }
- man.getMainAttributes().putValue("Manifest-Version", "1.0");
- man.getMainAttributes().putValue("Class-Path", cp.toString().trim());
- man.getMainAttributes().putValue("Main-Class", mainClass);
+ man.getMainAttributes().putValue("Manifest-Version", "1.0");
+ man.getMainAttributes().putValue("Class-Path", cp.toString().trim());
+ man.getMainAttributes().putValue("Main-Class", mainClass);
- man.write(jos);
- jos.close();
+ man.write(jos);
+ }
return file;
}
@@ -1009,15 +994,10 @@ private File createJar(List classPath, String mainClass) throws IOExcept
private void createArgFile(String filePath, List lines) throws IOException {
final String EOL = System.getProperty("line.separator", "\\n");
- FileWriter writer = null;
- try {
- writer = new FileWriter(filePath);
+ try (FileWriter writer = new FileWriter(filePath)) {
for (String line : lines) {
writer.append(line).append(EOL);
}
-
- } finally {
- IOUtil.close(writer);
}
}
@@ -1055,9 +1035,7 @@ protected Map createEnvs(File envScriptFile) throws MojoExecutio
}
results = stdout.getParsedEnv();
- } catch (CommandLineException e) {
- throw new MojoExecutionException(e.getMessage());
- } catch (IOException e) {
+ } catch (CommandLineException | IOException e) {
throw new MojoExecutionException(e.getMessage());
} finally {
if (tmpEnvExecFile != null) {
@@ -1069,13 +1047,11 @@ protected Map createEnvs(File envScriptFile) throws MojoExecutio
}
protected File createEnvWrapperFile(File envScript) throws IOException {
- PrintWriter writer = null;
File tmpFile = null;
- try {
- if (OS.isFamilyWindows()) {
- tmpFile = File.createTempFile("env", ".bat");
- writer = new PrintWriter(tmpFile);
+ if (OS.isFamilyWindows()) {
+ tmpFile = Files.createTempFile("env", ".bat").toFile();
+ try (PrintWriter writer = new PrintWriter(tmpFile)) {
writer.append("@echo off").println();
writer.append("call \"")
.append(envScript.getCanonicalPath())
@@ -1085,10 +1061,11 @@ protected File createEnvWrapperFile(File envScript) throws IOException {
.println();
writer.append("set").println();
writer.flush();
- } else {
- tmpFile = File.createTempFile("env", ".sh");
- // tmpFile.setExecutable( true );//java 6 only
- writer = new PrintWriter(tmpFile);
+ }
+ } else {
+ tmpFile = Files.createTempFile("env", ".sh").toFile();
+ // tmpFile.setExecutable( true );//java 6 only
+ try (PrintWriter writer = new PrintWriter(tmpFile)) {
writer.append("#! /bin/sh").println();
writer.append(". ").append(envScript.getCanonicalPath()).println(); // works on all unix??
writer.append("echo " + EnvStreamConsumer.START_PARSING_INDICATOR)
@@ -1096,8 +1073,6 @@ protected File createEnvWrapperFile(File envScript) throws IOException {
writer.append("env").println();
writer.flush();
}
- } finally {
- IOUtil.close(writer);
}
return tmpFile;
diff --git a/src/main/java/org/codehaus/mojo/exec/PathsToolchainFactory.java b/src/main/java/org/codehaus/mojo/exec/PathsToolchainFactory.java
index c0db9276..3ea4ef05 100644
--- a/src/main/java/org/codehaus/mojo/exec/PathsToolchainFactory.java
+++ b/src/main/java/org/codehaus/mojo/exec/PathsToolchainFactory.java
@@ -75,7 +75,7 @@ public ToolchainPrivate createToolchain(final ToolchainModel model) throws Misco
final Xpp3Dom[] pathDoms = pathDom.getChildren("path");
if (pathDoms == null || pathDoms.length == 0) return pathsToolchain;
- final List paths = new ArrayList(pathDoms.length);
+ final List paths = new ArrayList<>(pathDoms.length);
for (final Xpp3Dom pathdom : pathDoms) {
final String pathString = pathdom.getValue();
@@ -118,9 +118,7 @@ protected Object getBeanProperty(final Object obj, final String property) {
final Method method = new PropertyDescriptor(property, obj.getClass()).getReadMethod();
return method.invoke(obj);
- } catch (final IntrospectionException e) {
- throw new RuntimeException("Incompatible toolchain API", e);
- } catch (final IllegalAccessException e) {
+ } catch (final IntrospectionException | IllegalAccessException e) {
throw new RuntimeException("Incompatible toolchain API", e);
} catch (final InvocationTargetException e) {
final Throwable cause = e.getCause();
diff --git a/src/test/java/org/codehaus/mojo/exec/ExecMojoTest.java b/src/test/java/org/codehaus/mojo/exec/ExecMojoTest.java
index 4e4bcbde..3a0773a2 100644
--- a/src/test/java/org/codehaus/mojo/exec/ExecMojoTest.java
+++ b/src/test/java/org/codehaus/mojo/exec/ExecMojoTest.java
@@ -12,6 +12,7 @@
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
+import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
@@ -52,15 +53,15 @@ public class ExecMojoTest extends AbstractMojoTestCase {
static class MockExecMojo extends ExecMojo {
public int executeResult;
- public List commandLines = new ArrayList();
+ public List commandLines = new ArrayList<>();
public String failureMsg;
- public Map systemProperties = new HashMap();
+ public Map systemProperties = new HashMap<>();
protected int executeCommandLine(
Executor exec, CommandLine commandLine, Map enviro, OutputStream out, OutputStream err)
- throws IOException, ExecuteException {
+ throws ExecuteException {
commandLines.add(commandLine);
if (failureMsg != null) {
throw new ExecuteException(failureMsg, executeResult);
@@ -89,7 +90,7 @@ public void setUp() throws Exception {
mojo.setExecutable(SOME_EXECUTABLE);
mojo.setArguments(Arrays.asList(new String[] {"--version"}));
mojo.executeResult = 0;
- mojo.setBasedir(File.createTempFile("mvn-temp", "txt").getParentFile());
+ mojo.setBasedir(Files.createTempFile("mvn-temp", "txt").getParent().toFile());
}
public void testRunOK() throws MojoExecutionException {
@@ -117,7 +118,7 @@ public void testGetExecutablePath() throws IOException {
ExecMojo realMojo = new ExecMojo();
File workdir = new File(System.getProperty("user.dir"));
- Map enviro = new HashMap();
+ Map enviro = new HashMap<>();
String myJavaPath = "target" + File.separator + "javax";
File f = new File(myJavaPath);
@@ -173,7 +174,7 @@ public void testGetExecutablePathPreferExecutableExtensionsOnWindows() throws IO
final File workdir = new File(tmp, "testGetExecutablePathPreferExecutableExtensionsOnWindows");
workdir.mkdirs();
- final Map enviro = new HashMap();
+ final Map enviro = new HashMap<>();
final File f = new File(workdir, "mycmd");
final File fCmd = new File(workdir, "mycmd.cmd");
diff --git a/src/test/java/org/codehaus/plexus/util/interpolation/Interpolator.java b/src/test/java/org/codehaus/plexus/util/interpolation/Interpolator.java
deleted file mode 100644
index 1c54fd73..00000000
--- a/src/test/java/org/codehaus/plexus/util/interpolation/Interpolator.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.codehaus.plexus.util.interpolation;
-
-/**
- * COPIED FROM plexus-utils-1.5.15 TO SATISFY TESTS Interpolator interface. Based on existing RegexBasedInterpolator
- * interface.
- *
- * @author cstamas
- * @deprecated Use plexus-interpolation APIs instead.
- * @version $Id$
- */
-public interface Interpolator extends org.codehaus.plexus.interpolation.Interpolator {}
diff --git a/src/test/java/org/codehaus/plexus/util/interpolation/RegexBasedInterpolator.java b/src/test/java/org/codehaus/plexus/util/interpolation/RegexBasedInterpolator.java
deleted file mode 100644
index 4c151c8a..00000000
--- a/src/test/java/org/codehaus/plexus/util/interpolation/RegexBasedInterpolator.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.codehaus.plexus.util.interpolation;
-
-import java.util.List;
-
-/**
- * COPIED FROM plexus-utils-1.5.15 TO SATISFY TESTS
- *
- * @version $Id$
- * @deprecated Use plexus-interpolation APIs instead.
- */
-public class RegexBasedInterpolator extends org.codehaus.plexus.interpolation.RegexBasedInterpolator
- implements Interpolator {
- public RegexBasedInterpolator() {
- super();
- }
-
- public RegexBasedInterpolator(List valueSources) {
- super(valueSources);
- }
-
- public RegexBasedInterpolator(String startRegex, String endRegex, List valueSources) {
- super(startRegex, endRegex, valueSources);
- }
-
- public RegexBasedInterpolator(String startRegex, String endRegex) {
- super(startRegex, endRegex);
- }
-
- public void addValueSource(ValueSource valueSource) {
- super.addValueSource(valueSource);
- }
-
- public void removeValuesSource(ValueSource valueSource) {
- super.removeValuesSource(valueSource);
- }
-}
diff --git a/src/test/java/org/codehaus/plexus/util/interpolation/ValueSource.java b/src/test/java/org/codehaus/plexus/util/interpolation/ValueSource.java
deleted file mode 100644
index d7cf5e5e..00000000
--- a/src/test/java/org/codehaus/plexus/util/interpolation/ValueSource.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.codehaus.plexus.util.interpolation;
-
-/**
- * COPIED FROM plexus-utils-1.5.15 TO SATISFY TESTS
- *
- * @author jdcasey
- * @deprecated Use plexus-interpolation APIs instead.
- * @version $Id$
- */
-public interface ValueSource extends org.codehaus.plexus.interpolation.ValueSource {}