Author: joakime
Date: Thu Apr 5 14:26:44 2007
New Revision: 525966
URL: http://svn.apache.org/viewvc?view=rev&rev=525966
Log:
Correcting project model filters.
Added:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java
- copied, changed from r525951,
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilder.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java
- copied, changed from r525951,
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpander.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java
- copied, changed from r525951,
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilderTest.java
Removed:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilder.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpander.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/resources/META-INF/plexus/components.xml
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilderTest.java
Modified:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/pom.xml
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/AllTests.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java
Modified:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/pom.xml
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/pom.xml?view=diff&rev=525966&r1=525965&r2=525966
==============================================================================
---
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/pom.xml
(original)
+++
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/pom.xml
Thu Apr 5 14:26:44 2007
@@ -36,7 +36,6 @@
<dependency>
<groupId>org.apache.maven.archiva</groupId>
<artifactId>archiva-model</artifactId>
- <version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven.archiva</groupId>
@@ -64,20 +63,6 @@
<version>1.0-alpha-2-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
- <!--
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-artifact-manager</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-repository-metadata</artifactId>
- </dependency>
- -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
@@ -90,6 +75,13 @@
<artifactId>plexus-maven-plugin</artifactId>
<executions>
<execution>
+ <id>descriptor</id>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ </execution>
+ <!--
+ <execution>
<id>merge</id>
<goals>
<goal>merge-descriptors</goal>
@@ -101,6 +93,7 @@
</descriptors>
</configuration>
</execution>
+ -->
</executions>
</plugin>
</plugins>
Modified:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java?view=diff&rev=525966&r1=525965&r2=525966
==============================================================================
---
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java
(original)
+++
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java
Thu Apr 5 14:26:44 2007
@@ -34,6 +34,7 @@
*
* @param model the model to filter.
* @return a new model representing the filtered state of the model.
+ * @throws ProjectModelException if there was a problem executing the
filter.
*/
- public ArchivaProjectModel filter( final ArchivaProjectModel model );
+ public ArchivaProjectModel filter( final ArchivaProjectModel model )
throws ProjectModelException;
}
Copied:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java
(from r525951,
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilder.java)
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java?view=diff&rev=525966&p1=maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilder.java&r1=525951&p2=maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java&r2=525966
==============================================================================
---
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilder.java
(original)
+++
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilter.java
Thu Apr 5 14:26:44 2007
@@ -25,6 +25,7 @@
import org.apache.maven.archiva.model.Dependency;
import org.apache.maven.archiva.model.VersionedReference;
import org.apache.maven.archiva.repository.project.ProjectModelException;
+import org.apache.maven.archiva.repository.project.ProjectModelFilter;
import org.apache.maven.archiva.repository.project.ProjectModelMerge;
import org.apache.maven.archiva.repository.project.ProjectModelResolver;
@@ -39,12 +40,20 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Joakim Erdfelt</a>
* @version $Id$
+ * @plexus.component
role="org.apache.maven.archiva.repository.project.ProjectModelFilter"
+ * role-hint="effective"
+ * instantiation-strategy="per-lookup"
*/
-public class EffectiveProjectModelBuilder
+public class EffectiveProjectModelFilter implements ProjectModelFilter
{
+ /**
+ * @plexus.requirement role-hint="expression"
+ */
+ private ProjectModelFilter expressionFilter;
+
private List projectModelResolvers;
-
- public EffectiveProjectModelBuilder()
+
+ public EffectiveProjectModelFilter()
{
projectModelResolvers = new ArrayList();
}
@@ -71,7 +80,7 @@
* @return a the effective [EMAIL PROTECTED] ArchivaProjectModel}.
* @throws ProjectModelException if there was a problem building the
effective pom.
*/
- public ArchivaProjectModel buildEffectiveProjectModel( ArchivaProjectModel
project )
+ public ArchivaProjectModel filter( final ArchivaProjectModel project )
throws ProjectModelException
{
if ( project == null )
@@ -88,7 +97,7 @@
ArchivaProjectModel effectiveProject = ArchivaModelCloner.clone(
project );
// Setup Expression Evaluation pieces.
- ProjectModelExpressionExpander.evaluateExpressions( effectiveProject );
+ effectiveProject = expressionFilter.filter( effectiveProject );
debug( "Starting build of effective with: " + effectiveProject );
@@ -197,7 +206,7 @@
if ( parentProject != null )
{
- ProjectModelExpressionExpander.evaluateExpressions(
parentProject );
+ parentProject = expressionFilter.filter( parentProject );
parentProject = mergeParent( parentProject );
mixedProject = ProjectModelMerge.merge( pom, parentProject );
}
Copied:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java
(from r525951,
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpander.java)
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java?view=diff&rev=525966&p1=maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpander.java&r1=525951&p2=maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java&r2=525966
==============================================================================
---
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpander.java
(original)
+++
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionFilter.java
Thu Apr 5 14:26:44 2007
@@ -19,10 +19,11 @@
* under the License.
*/
+import org.apache.maven.archiva.model.ArchivaModelCloner;
import org.apache.maven.archiva.model.ArchivaProjectModel;
import org.apache.maven.archiva.model.Dependency;
import org.apache.maven.archiva.repository.project.ProjectModelException;
-import org.codehaus.plexus.evaluator.DefaultExpressionEvaluator;
+import org.apache.maven.archiva.repository.project.ProjectModelFilter;
import org.codehaus.plexus.evaluator.EvaluatorException;
import org.codehaus.plexus.evaluator.ExpressionEvaluator;
import org.codehaus.plexus.evaluator.sources.PropertiesExpressionSource;
@@ -32,24 +33,30 @@
import java.util.List;
/**
- * ProjectModelExpressionExpander
+ * ProjectModelExpressionFilter
*
* @author <a href="mailto:[EMAIL PROTECTED]">Joakim Erdfelt</a>
* @version $Id$
- * @plexus.component
role="org.apache.maven.archiva.repository.project.ProjectModelExpressionExpander"
+ * @plexus.component
role="org.apache.maven.archiva.repository.project.ProjectModelFilter"
+ * role-hint="expression"
+ * instantiation-strategy="per-lookup"
*/
-public class ProjectModelExpressionExpander
+public class ProjectModelExpressionFilter
+ implements ProjectModelFilter
{
/**
+ * @plexus.requirement
+ */
+ private ExpressionEvaluator evaluator;
+
+ /**
* Find and Evaluate the Expressions present in the model.
*
* @param model the model to correct.
*/
- public static void evaluateExpressions( ArchivaProjectModel model )
+ public ArchivaProjectModel filter( final ArchivaProjectModel model )
throws ProjectModelException
{
- ExpressionEvaluator evaluator = new DefaultExpressionEvaluator();
-
if ( model.getProperties() != null )
{
PropertiesExpressionSource propsSource = new
PropertiesExpressionSource();
@@ -59,18 +66,22 @@
evaluator.addExpressionSource( new SystemPropertyExpressionSource() );
+ ArchivaProjectModel ret = ArchivaModelCloner.clone( model );
+
try
{
- model.setVersion( evaluator.expand( model.getVersion() ) );
- model.setGroupId( evaluator.expand( model.getGroupId() ) );
+ ret.setVersion( evaluator.expand( ret.getVersion() ) );
+ ret.setGroupId( evaluator.expand( ret.getGroupId() ) );
- evaluateExpressionsInDependencyList( evaluator,
model.getDependencies() );
- evaluateExpressionsInDependencyList( evaluator,
model.getDependencyManagement() );
+ evaluateExpressionsInDependencyList( evaluator,
ret.getDependencies() );
+ evaluateExpressionsInDependencyList( evaluator,
ret.getDependencyManagement() );
}
catch ( EvaluatorException e )
{
throw new ProjectModelException( "Unable to evaluate expression in
model: " + e.getMessage(), e );
}
+
+ return ret;
}
private static void evaluateExpressionsInDependencyList(
ExpressionEvaluator evaluator, List dependencies )
Modified:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/AllTests.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/AllTests.java?view=diff&rev=525966&r1=525965&r2=525966
==============================================================================
---
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/AllTests.java
(original)
+++
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/AllTests.java
Thu Apr 5 14:26:44 2007
@@ -36,7 +36,7 @@
TestSuite suite = new TestSuite( "Test for
org.apache.maven.archiva.repository.project.filters" );
//$JUnit-BEGIN$
suite.addTestSuite( ProjectModelExpressionExpanderTest.class );
- suite.addTestSuite( EffectiveProjectModelBuilderTest.class );
+ suite.addTestSuite( EffectiveProjectModelFilterTest.class );
//$JUnit-END$
return suite;
}
Copied:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java
(from r525951,
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilderTest.java)
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java?view=diff&rev=525966&p1=maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilderTest.java&r1=525951&p2=maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java&r2=525966
==============================================================================
---
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilderTest.java
(original)
+++
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelFilterTest.java
Thu Apr 5 14:26:44 2007
@@ -23,9 +23,10 @@
import org.apache.maven.archiva.model.ArchivaRepository;
import org.apache.maven.archiva.model.Dependency;
import org.apache.maven.archiva.repository.project.ProjectModelException;
+import org.apache.maven.archiva.repository.project.ProjectModelFilter;
import org.apache.maven.archiva.repository.project.ProjectModelReader;
import org.apache.maven.archiva.repository.project.ProjectModelResolver;
-import
org.apache.maven.archiva.repository.project.filters.EffectiveProjectModelBuilder;
+import
org.apache.maven.archiva.repository.project.filters.EffectiveProjectModelFilter;
import
org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader;
import
org.apache.maven.archiva.repository.project.resolvers.RepositoryProjectResolver;
import org.codehaus.plexus.PlexusTestCase;
@@ -35,15 +36,20 @@
import java.util.List;
/**
- * EffectiveProjectModelBuilderTest
+ * EffectiveProjectModelFilterTest
*
* @author <a href="mailto:[EMAIL PROTECTED]">Joakim Erdfelt</a>
* @version $Id$
*/
-public class EffectiveProjectModelBuilderTest
+public class EffectiveProjectModelFilterTest
extends PlexusTestCase
{
private static final String DEFAULT_REPOSITORY =
"src/test/repositories/default-repository";
+
+ private EffectiveProjectModelFilter lookupEffective() throws Exception
+ {
+ return (EffectiveProjectModelFilter) lookup( ProjectModelFilter.class,
"effective" );
+ }
private ArchivaProjectModel createArchivaProjectModel( String path )
throws ProjectModelException
@@ -70,13 +76,14 @@
public void testBuildEffectiveProject()
throws Exception
{
- EffectiveProjectModelBuilder builder = new
EffectiveProjectModelBuilder();
- builder.addProjectModelResolver( createDefaultRepositoryResolver() );
+ EffectiveProjectModelFilter filter = lookupEffective();
+
+ filter.addProjectModelResolver( createDefaultRepositoryResolver() );
ArchivaProjectModel startModel = createArchivaProjectModel(
DEFAULT_REPOSITORY
+
"/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom"
);
- ArchivaProjectModel effectiveModel =
builder.buildEffectiveProjectModel( startModel );
+ ArchivaProjectModel effectiveModel = filter.filter( startModel );
ArchivaProjectModel expectedModel = createArchivaProjectModel(
"src/test/effective-poms/"
+ "/archiva-model-effective.pom" );
Modified:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java
URL:
http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java?view=diff&rev=525966&r1=525965&r2=525966
==============================================================================
---
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java
(original)
+++
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java
Thu Apr 5 14:26:44 2007
@@ -21,13 +21,11 @@
import org.apache.maven.archiva.model.ArchivaProjectModel;
import org.apache.maven.archiva.model.Dependency;
-import org.apache.maven.archiva.repository.project.ProjectModelException;
-import
org.apache.maven.archiva.repository.project.filters.ProjectModelExpressionExpander;
+import org.apache.maven.archiva.repository.project.ProjectModelFilter;
+import org.codehaus.plexus.PlexusTestCase;
import java.util.Iterator;
-import junit.framework.TestCase;
-
/**
* ProjectModelExpressionExpanderTest
*
@@ -35,10 +33,15 @@
* @version $Id$
*/
public class ProjectModelExpressionExpanderTest
- extends TestCase
+ extends PlexusTestCase
{
+ private ProjectModelExpressionFilter lookupExpression() throws Exception
+ {
+ return (ProjectModelExpressionFilter) lookup(
ProjectModelFilter.class, "expression" );
+ }
+
public void testExpressionEvaluation()
- throws ProjectModelException
+ throws Exception
{
ArchivaProjectModel model = new ArchivaProjectModel();
model.setGroupId( "org.apache.maven.archiva" );
@@ -51,7 +54,9 @@
model.addProperty( "archiva.version", "1.0-SNAPSHOT" );
- ProjectModelExpressionExpander.evaluateExpressions( model );
+ ProjectModelExpressionFilter filter = lookupExpression();
+
+ model = filter.filter( model );
assertNotNull( model );
assertEquals( "Group ID", "org.apache.maven.archiva",
model.getGroupId() );