Keeping only README in this repository
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 08aeeed..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~  http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.archiva.redback.components</groupId>
-    <artifactId>redback-components</artifactId>
-    <version>2.5-SNAPSHOT</version>
-  </parent>
-
-  <version>2.2-SNAPSHOT</version>
-  <artifactId>expression-evaluator</artifactId>
-  <name>Expression Evaluator Components</name>
-
-  <properties>
-    <scmBrowseUrl>https://gitbox.apache.org/repos/asf?a=tree;p=archiva-redback-components-expression-evaluator.git</scmBrowseUrl>
-    <site.staging.base>${project.basedir}/../site</site.staging.base>
-  </properties>
-
-
-  <url>${webUrl}/${project.artifactId}</url>
-
-  <scm>
-    <connection>scm:git:http://gitbox.apache.org/repos/asf/archiva-redback-components-expression-evaluator.git</connection>
-    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/archiva-redback-components-expression-evaluator.git</developerConnection>
-    <url>${scmBrowseUrl}</url>
-  </scm>
-
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
-
-  </dependencies>
-
-</project>
diff --git a/src/main/java/org/apache/archiva/redback/components/evaluator/DefaultExpressionEvaluator.java b/src/main/java/org/apache/archiva/redback/components/evaluator/DefaultExpressionEvaluator.java
deleted file mode 100644
index 6fd389b..0000000
--- a/src/main/java/org/apache/archiva/redback/components/evaluator/DefaultExpressionEvaluator.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package org.apache.archiva.redback.components.evaluator;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.commons.lang3.StringUtils;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * DefaultExpressionEvaluator 
- *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
- *
- */
-public class DefaultExpressionEvaluator
-    implements ExpressionEvaluator
-{
-    private List<ExpressionSource> expressionSources;
-
-    public DefaultExpressionEvaluator()
-    {
-        expressionSources = new ArrayList<>();
-    }
-
-    public void addExpressionSource( ExpressionSource source )
-    {
-        expressionSources.add( source );
-    }
-
-    public String expand( String str )
-        throws EvaluatorException
-    {
-        return recursiveExpand( str, new ArrayList<String>() );
-    }
-
-    private String recursiveExpand( String str, List<String> seenExpressions )
-        throws EvaluatorException
-    {
-        if ( StringUtils.isEmpty( str ) )
-        {
-            // Empty string. Fail fast.
-            return str;
-        }
-
-        if ( str.indexOf( "${" ) < 0 )
-        {
-            // Contains no potential expressions.  Fail fast.
-            return str;
-        }
-
-        if ( this.expressionSources.isEmpty() )
-        {
-            throw new EvaluatorException( "Unable to expand expressions with empty ExpressionSource list." );
-        }
-
-        Pattern pat = Pattern.compile( "(?<=[^$]|^)(\\$\\{[^}]*\\})" );
-        Matcher mat = pat.matcher( str );
-        int offset = 0;
-        String expression;
-        String value;
-        StringBuilder expanded = new StringBuilder();
-
-        while ( mat.find( offset ) )
-        {
-            expression = mat.group( 1 );
-
-            if ( seenExpressions.contains( expression ) )
-            {
-                throw new EvaluatorException( "A recursive cycle has been detected with expression " + expression + "." );
-            }
-
-            seenExpressions.add( expression );
-
-            expanded.append( str.substring( offset, mat.start( 1 ) ) );
-            value = findValue( expression );
-            if ( value != null )
-            {
-                String resolvedValue = recursiveExpand( value, seenExpressions );
-                expanded.append( resolvedValue );
-            }
-            else
-            {
-                expanded.append( expression );
-            }
-            offset = mat.end( 1 );
-        }
-
-        expanded.append( str.substring( offset ) );
-
-        if ( expanded.indexOf( "$$" ) >= 0 )
-        {
-            // Special case for escaped content.
-            return expanded.toString().replaceAll( "\\$\\$", "\\$" );
-        }
-        else
-        {
-            // return expanded
-            return expanded.toString();
-        }
-    }
-
-    private String findValue( String expression )
-    {
-        String newExpression = expression.trim();
-        if ( newExpression.startsWith( "${" ) && newExpression.endsWith( "}" ) )
-        {
-            newExpression = newExpression.substring( 2, newExpression.length() - 1 );
-        }
-
-        if ( StringUtils.isEmpty( newExpression ) )
-        {
-            return null;
-        }
-
-        String value = null;
-        Iterator it = this.expressionSources.iterator();
-        while ( it.hasNext() )
-        {
-            ExpressionSource source = (ExpressionSource) it.next();
-            value = source.getExpressionValue( newExpression );
-            if ( value != null )
-            {
-                return value;
-            }
-        }
-        return null;
-    }
-
-    public List getExpressionSourceList()
-    {
-        return this.expressionSources;
-    }
-
-    public boolean removeExpressionSource( ExpressionSource source )
-    {
-        return this.expressionSources.remove( source );
-    }
-}
diff --git a/src/main/java/org/apache/archiva/redback/components/evaluator/EvaluatorException.java b/src/main/java/org/apache/archiva/redback/components/evaluator/EvaluatorException.java
deleted file mode 100644
index df186b8..0000000
--- a/src/main/java/org/apache/archiva/redback/components/evaluator/EvaluatorException.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.apache.archiva.redback.components.evaluator;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * EvaluatorException 
- *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
- *
- */
-public class EvaluatorException
-    extends Exception
-{
-    public EvaluatorException()
-    {
-        super();
-    }
-
-    public EvaluatorException( String message, Throwable cause )
-    {
-        super( message, cause );
-    }
-
-    public EvaluatorException( String message )
-    {
-        super( message );
-    }
-
-    public EvaluatorException( Throwable cause )
-    {
-        super( cause );
-    }
-}
diff --git a/src/main/java/org/apache/archiva/redback/components/evaluator/ExpressionEvaluator.java b/src/main/java/org/apache/archiva/redback/components/evaluator/ExpressionEvaluator.java
deleted file mode 100644
index 5a76ed0..0000000
--- a/src/main/java/org/apache/archiva/redback/components/evaluator/ExpressionEvaluator.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.apache.archiva.redback.components.evaluator;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.List;
-
-/**
- * ExpressionEvaluator
- *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
- *
- */
-public interface ExpressionEvaluator
-{
-    /**
-     * Add a source for expression resolution.
-     *
-     * @param source the source to add.
-     */
-    void addExpressionSource( ExpressionSource source );
-
-    /**
-     * Evaluate a string, and expand expressions as needed.
-     *
-     * @param str the expression
-     * @return the value of the expression
-     * @throws EvaluatorException if a problem occurs whilst evaluating
-     */
-    String expand( String str )
-        throws EvaluatorException;
-
-    /**
-     * Get the List of expression sources.
-     *
-     * @return the list of expression sources.
-     */
-    List getExpressionSourceList();
-
-    /**
-     * Remove a specific expression source.
-     *
-     * @param source the source to remove.
-     * @return true if expression source was removed.
-     */
-    boolean removeExpressionSource( ExpressionSource source );
-}
diff --git a/src/main/java/org/apache/archiva/redback/components/evaluator/ExpressionSource.java b/src/main/java/org/apache/archiva/redback/components/evaluator/ExpressionSource.java
deleted file mode 100644
index 514d6dd..0000000
--- a/src/main/java/org/apache/archiva/redback/components/evaluator/ExpressionSource.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.apache.archiva.redback.components.evaluator;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * ExpressionSource
- *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
- *
- */
-public interface ExpressionSource
-{
-    /**
-     * Gets a value for a provided Expression.
-     *
-     * @param expression the expression to attempt to get a value for.
-     * @return the value for the expression, or null if no value found.
-     */
-    String getExpressionValue( String expression );
-}
diff --git a/src/main/java/org/apache/archiva/redback/components/evaluator/sources/PropertiesExpressionSource.java b/src/main/java/org/apache/archiva/redback/components/evaluator/sources/PropertiesExpressionSource.java
deleted file mode 100644
index c58f172..0000000
--- a/src/main/java/org/apache/archiva/redback/components/evaluator/sources/PropertiesExpressionSource.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.apache.archiva.redback.components.evaluator.sources;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.archiva.redback.components.evaluator.ExpressionSource;
-
-import java.util.Properties;
-
-/**
- * PropertiesExpressionSource 
- *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
- *
- * 
- */
-public class PropertiesExpressionSource
-    implements ExpressionSource
-{
-    private Properties properties;
-
-    public String getExpressionValue( String expression )
-    {
-        if ( properties == null )
-        {
-            throw new IllegalStateException( "Properties object has not been initialized." );
-        }
-
-        try
-        {
-            return properties.getProperty( expression );
-        }
-        catch ( Exception e )
-        {
-            return null;
-        }
-    }
-
-    public Properties getProperties()
-    {
-        return properties;
-    }
-
-    public void setProperties( Properties properties )
-    {
-        this.properties = properties;
-    }
-
-}
diff --git a/src/main/java/org/apache/archiva/redback/components/evaluator/sources/SystemPropertyExpressionSource.java b/src/main/java/org/apache/archiva/redback/components/evaluator/sources/SystemPropertyExpressionSource.java
deleted file mode 100644
index fb9442c..0000000
--- a/src/main/java/org/apache/archiva/redback/components/evaluator/sources/SystemPropertyExpressionSource.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.apache.archiva.redback.components.evaluator.sources;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.archiva.redback.components.evaluator.ExpressionSource;
-
-/**
- * SystemPropertyExpressionSource 
- *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
- *
- */
-public class SystemPropertyExpressionSource
-    implements ExpressionSource
-{
-    public String getExpressionValue( String expression )
-    {
-        try
-        {
-            return System.getProperty( expression );
-        }
-        catch ( Exception e )
-        {
-            return null;
-        }
-    }
-}
diff --git a/src/site/site.xml b/src/site/site.xml
deleted file mode 100644
index bb67626..0000000
--- a/src/site/site.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~ http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  -->
-
-<project name="Expression Evaluator" >
-
-  <publishDate format="yyyy-MM-dd" position="none" />
-
-  <body>
-    <menu ref="modules" />
-    <menu ref="reports" />
-    <menu ref="ASF" />
-    <breadcrumbs>
-      <item name="Redback Components" href="../index.html" />
-      <item name="Expression Evaluator" href="index.html" />
-    </breadcrumbs>
-  </body>
-</project>
diff --git a/src/test/java/org/apache/archiva/redback/components/evaluator/sources/DefaultExpressionEvaluatorTest.java b/src/test/java/org/apache/archiva/redback/components/evaluator/sources/DefaultExpressionEvaluatorTest.java
deleted file mode 100644
index 845303c..0000000
--- a/src/test/java/org/apache/archiva/redback/components/evaluator/sources/DefaultExpressionEvaluatorTest.java
+++ /dev/null
@@ -1,214 +0,0 @@
-package org.apache.archiva.redback.components.evaluator.sources;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import junit.framework.TestCase;
-import org.apache.archiva.redback.components.evaluator.DefaultExpressionEvaluator;
-import org.apache.archiva.redback.components.evaluator.EvaluatorException;
-import org.apache.archiva.redback.components.evaluator.sources.PropertiesExpressionSource;
-import org.apache.archiva.redback.components.evaluator.sources.SystemPropertyExpressionSource;
-import org.apache.archiva.redback.components.evaluator.ExpressionEvaluator;
-
-import java.util.Properties;
-
-/**
- * DefaultExpressionEvaluatorTest
- *
- * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
- *
- */
-public class DefaultExpressionEvaluatorTest
-    extends TestCase
-{
-    private ExpressionEvaluator evaluator;
-
-    protected void setUp()
-        throws Exception
-    {
-        super.setUp();
-
-        evaluator = new DefaultExpressionEvaluator();
-    }
-
-    public void testSimple()
-        throws EvaluatorException
-    {
-        Properties props = new Properties();
-        props.setProperty( "fruit", "apple" );
-
-        PropertiesExpressionSource propsSource = new PropertiesExpressionSource();
-        propsSource.setProperties( props );
-        evaluator.addExpressionSource( propsSource );
-
-        String expression = "${fruit}";
-        String expected = "apple";
-
-        String actual = evaluator.expand( expression );
-        assertEquals( expected, actual );
-    }
-
-    public void testSimpleStartOfLine()
-        throws EvaluatorException
-    {
-        Properties props = new Properties();
-        props.setProperty( "fruit", "apple" );
-
-        PropertiesExpressionSource propsSource = new PropertiesExpressionSource();
-        propsSource.setProperties( props );
-        evaluator.addExpressionSource( propsSource );
-
-        String expression = "${fruit} is good for you.";
-        String expected = "apple is good for you.";
-
-        String actual = evaluator.expand( expression );
-        assertEquals( expected, actual );
-    }
-
-    public void testSimpleEndOfLine()
-        throws EvaluatorException
-    {
-        Properties props = new Properties();
-        props.setProperty( "fruit", "apple" );
-
-        PropertiesExpressionSource propsSource = new PropertiesExpressionSource();
-        propsSource.setProperties( props );
-        evaluator.addExpressionSource( propsSource );
-
-        String expression = "watch out for the worm in the ${fruit}";
-        String expected = "watch out for the worm in the apple";
-
-        String actual = evaluator.expand( expression );
-        assertEquals( expected, actual );
-    }
-
-    public void testSimpleSystemProperty()
-        throws EvaluatorException
-    {
-        evaluator.addExpressionSource( new SystemPropertyExpressionSource() );
-
-        String userHome = System.getProperty( "user.home" );
-        String expression = "My HOME directory is ${user.home}";
-        String expected = "My HOME directory is " + userHome;
-
-        String actual = evaluator.expand( expression );
-        assertEquals( expected, actual );
-    }
-
-    public void testMultiExpression()
-        throws EvaluatorException
-    {
-        evaluator.addExpressionSource( new SystemPropertyExpressionSource() );
-
-        String userName = System.getProperty( "user.name" );
-        String userHome = System.getProperty( "user.home" );
-        String expression = "${user.name}'s home directory is ${user.home}";
-        String expected = userName + "'s home directory is " + userHome;
-
-        String actual = evaluator.expand( expression );
-        assertEquals( expected, actual );
-    }
-
-    /**
-     * This use case was discovered by a user of archiva.
-     * The last expression doesn't get evaluated properly.
-     * <p/>
-     * The result (with the bug) was "2.0.4${prj.ver.suf}"
-     */
-    public void testMultiExpressionVersionBug()
-        throws EvaluatorException
-    {
-        Properties props = new Properties();
-        props.setProperty( "prj.ver.maj", "2" );
-        props.setProperty( "prj.ver.min", "0" );
-        props.setProperty( "prj.ver.inc", "4" );
-        props.setProperty( "prj.ver.suf", "-SNAPSHOT" );
-
-        PropertiesExpressionSource propsSource = new PropertiesExpressionSource();
-        propsSource.setProperties( props );
-        evaluator.addExpressionSource( propsSource );
-
-        String expression = "${prj.ver.maj}.${prj.ver.min}.${prj.ver.inc}${prj.ver.suf}";
-        String expected = "2.0.4-SNAPSHOT";
-
-        String actual = evaluator.expand( expression );
-        assertEquals( expected, actual );
-    }
-
-    public void testEscaping()
-        throws EvaluatorException
-    {
-        evaluator.addExpressionSource( new SystemPropertyExpressionSource() );
-
-        String userName = System.getProperty( "user.name" );
-        String userHome = System.getProperty( "user.home" );
-        String expression = "${user.name}'s home directory is ${user.home} (fetched via $${user.home} expression)";
-        String expected = userName + "'s home directory is " + userHome + " (fetched via ${user.home} expression)";
-
-        String actual = evaluator.expand( expression );
-        assertEquals( expected, actual );
-    }
-
-    public void testRecursiveSimple()
-        throws EvaluatorException
-    {
-        PropertiesExpressionSource propsource = new PropertiesExpressionSource();
-        Properties props = new Properties();
-
-        // Create intentional recursive lookup.
-        props.setProperty( "main.dir", "${target.dir}/classes" );
-        props.setProperty( "target.dir", "./target" );
-
-        propsource.setProperties( props );
-
-        evaluator.addExpressionSource( propsource );
-        evaluator.addExpressionSource( new SystemPropertyExpressionSource() );
-
-        String expression = "My classes directory is ${main.dir}";
-        String expected = "My classes directory is ./target/classes";
-
-        String actual = evaluator.expand( expression );
-        assertEquals( expected, actual );
-    }
-
-    public void testRecursiveCycle()
-    {
-        PropertiesExpressionSource propsource = new PropertiesExpressionSource();
-        Properties props = new Properties();
-
-        // Create intentional recursive lookup.
-        props.setProperty( "main.dir", "${test.dir}/target/classes" );
-        props.setProperty( "test.dir", "${main.dir}/target/test-classes" );
-
-        propsource.setProperties( props );
-
-        evaluator.addExpressionSource( propsource );
-        evaluator.addExpressionSource( new SystemPropertyExpressionSource() );
-
-        try
-        {
-            evaluator.expand( "My main dir is ${main.dir}" );
-            fail( "Should have thrown an EvaluatorException due to recursive cycle." );
-        }
-        catch ( EvaluatorException e )
-        {
-            // Expected path.
-        }
-    }
-}