in maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/ResolverExpressionEvaluatorStub.java [52:99]
public Object evaluate(String expr, Class<?> type) 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
return expression.contains("$$") ? expression.replaceAll("\\$\\$", "\\$") : expression;
} else {
if ("basedir".equals(expression) || "project.basedir".equals(expression)) {
value = PlexusExtension.getBasedir();
} else if (expression.startsWith("basedir") || expression.startsWith("project.basedir")) {
int pathSeparator = expression.indexOf("/");
if (pathSeparator > 0) {
value = PlexusTestCase.getBasedir() + expression.substring(pathSeparator);
}
} else if ("localRepository".equals(expression)) {
File localRepo = new File(PlexusTestCase.getBasedir(), "target/local-repo");
return new LocalRepository("file://" + localRepo.getAbsolutePath());
}
if (value == null && properties != null && properties.containsKey(expression)) {
value = properties.get(expression);
}
return value;
}
}