in maven-plugin-testing-harness/src/main/java/org/apache/maven/plugin/testing/ResolverExpressionEvaluatorStub.java [37:93]
public Object evaluate(String expr) throws ExpressionEvaluationException {
Object value = null;
if (expr == null) {
return null;
}
String expression = stripTokens(expr);
if (expression.equals(expr)) {
int index = expr.indexOf("${");
if (index >= 0) {
int lastIndex = expr.indexOf("}", index);
if (lastIndex >= 0) {
String retVal = expr.substring(0, index);
if (index > 0 && expr.charAt(index - 1) == '$') {
retVal += expr.substring(index + 1, lastIndex + 1);
} else {
retVal += evaluate(expr.substring(index, lastIndex + 1));
}
retVal += evaluate(expr.substring(lastIndex + 1));
return retVal;
}
}
// Was not an expression
if (expression.indexOf("$$") > -1) {
return expression.replaceAll("\\$\\$", "\\$");
}
}
if ("basedir".equals(expression) || "project.basedir".equals(expression)) {
return PlexusTestCase.getBasedir();
} else if (expression.startsWith("basedir") || expression.startsWith("project.basedir")) {
int pathSeparator = expression.indexOf("/");
if (pathSeparator > 0) {
value = PlexusTestCase.getBasedir() + expression.substring(pathSeparator);
} else {
System.out.println("Got expression '" + expression + "' that was not recognised");
}
return value;
} else if ("localRepository".equals(expression)) {
File localRepo = new File(PlexusTestCase.getBasedir(), "target/local-repo");
return new MavenArtifactRepository(
"localRepository",
"file://" + localRepo.getAbsolutePath(),
new DefaultRepositoryLayout(),
null,
null);
} else {
return expr;
}
}