You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2009/04/16 18:50:47 UTC
svn commit: r765684 - in /maven/components/trunk: maven-core/
maven-core/src/main/java/org/apache/maven/listeners/
maven-core/src/main/java/org/apache/maven/plugin/
maven-core/src/test/java/org/apache/maven/lifecycle/plan/testutils/
maven-core/src/test...
Author: sisbell
Date: Thu Apr 16 16:50:46 2009
New Revision: 765684
URL: http://svn.apache.org/viewvc?rev=765684&view=rev
Log:
Support for build extensions. Updated maven-mercury to use latest project builder code. Dumped all references to model-builder.
Removed:
maven/components/trunk/maven-core/src/test/java/org/apache/maven/lifecycle/plan/testutils/
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor2.java
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModelFactory.java
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/PomProcessor.java
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/PomProcessorException.java
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/project/builder/factories/
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/project/builder/legacy/
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/project/builder/profile/
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/project/builder/rules/
Modified:
maven/components/trunk/maven-core/pom.xml
maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java
maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java
maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java
maven/components/trunk/maven-mercury/pom.xml
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java
maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ModelEventListener.java
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java
maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ProcessorContext.java
maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java
Modified: maven/components/trunk/maven-core/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/pom.xml?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-core/pom.xml (original)
+++ maven/components/trunk/maven-core/pom.xml Thu Apr 16 16:50:46 2009
@@ -28,10 +28,6 @@
<groupId>org.apache.maven</groupId>
<artifactId>maven-reporting-api</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-model</artifactId>
- </dependency>
<!-- Required for Maven Artifact mediator as we phase it out. -->
<dependency>
<groupId>org.apache.maven</groupId>
@@ -110,10 +106,6 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>org.sonatype.spice</groupId>
- <artifactId>model-builder</artifactId>
- </dependency>
- <dependency>
<groupId>org.sonatype.plexus</groupId>
<artifactId>plexus-sec-dispatcher</artifactId>
</dependency>
@@ -121,6 +113,20 @@
<groupId>commons-jxpath</groupId>
<artifactId>commons-jxpath</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.maven.mercury</groupId>
+ <artifactId>mercury-repo-remote-m2</artifactId>
+ <version>${mercuryVersion}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.mercury</groupId>
+ <artifactId>mercury-transport-http</artifactId>
+ <version>${mercuryVersion}</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
<build>
<plugins>
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/BuildExtensionListener.java Thu Apr 16 16:50:46 2009
@@ -2,17 +2,13 @@
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collection;
import java.util.List;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.execution.MavenSession;
-import org.apache.maven.project.builder.factories.ArtifactModelContainerFactory;
+import org.apache.maven.model.Extension;
+import org.apache.maven.model.Model;
import org.apache.maven.project.builder.ProjectUri;
-import org.apache.maven.shared.model.DataSourceException;
-import org.apache.maven.shared.model.ModelContainer;
-import org.apache.maven.shared.model.ModelContainerFactory;
-import org.apache.maven.shared.model.ModelProperty;
import org.codehaus.plexus.classworlds.realm.ClassRealm;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Configuration;
@@ -43,81 +39,17 @@
@Requirement
PlexusPluginManager pluginManager;
- private List<BuildExtension> buildExtensions = new ArrayList<BuildExtension>();
-
- public void fire(List<? extends ModelContainer> modelContainers)
- throws DataSourceException
- {
- if ( !inBuild )
- {
- return;
- }
-
- for ( ModelContainer mc : modelContainers )
- {
- if ( hasExtension( mc ) )
- {
- buildExtensions.add( new BuildExtension( mc.getProperties() ) );
- }
- }
+ private List<Extension> buildExtensions = new ArrayList<Extension>();
+
+ public void fire(Model model)
+ {
+ buildExtensions.addAll(new ArrayList<Extension>(model.getBuild().getExtensions()));
}
public List<String> getUris()
{
return Arrays.asList( ProjectUri.Build.Extensions.Extension.xUri );
}
-
- public Collection<ModelContainerFactory> getModelContainerFactories()
- {
- return Arrays.asList( (ModelContainerFactory) new ArtifactModelContainerFactory() );
- }
-
- private static boolean hasExtension( ModelContainer container )
- {
- for ( ModelProperty mp : container.getProperties() )
- {
- if ( mp.getUri().equals( ProjectUri.Build.Extensions.Extension.xUri ) )
- {
- return true;
- }
- }
- return false;
- }
-
- private static class BuildExtension
- {
- private String groupId;
-
- private String artifactId;
-
- private String version;
-
- public BuildExtension( String groupId, String artifactId, String version )
- {
- this.groupId = groupId;
- this.artifactId = artifactId;
- this.version = version;
- }
-
- BuildExtension( List<ModelProperty> modelProperties )
- {
- for ( ModelProperty mp : modelProperties )
- {
- if ( mp.getUri().equals( ProjectUri.Build.Extensions.Extension.groupId ) )
- {
- groupId = mp.getValue();
- }
- else if ( mp.getUri().equals( ProjectUri.Build.Extensions.Extension.artifactId ) )
- {
- artifactId = mp.getValue();
- }
- else if ( mp.getUri().equals( ProjectUri.Build.Extensions.Extension.version ) )
- {
- version = mp.getValue();
- }
- }
- }
- }
/**
* Take the extension elements that were found during the POM construction process and now
@@ -129,11 +61,16 @@
* @param session Maven session used as the execution context for the current Maven project.
*/
public void processModelContainers( MavenSession session )
- {
- for ( BuildExtension be : buildExtensions )
+ {
+ if(!inBuild)
+ {
+ return;
+ }
+
+ for ( Extension be : buildExtensions )
{
PluginResolutionRequest request = new PluginResolutionRequest()
- .setPluginMetadata( new PluginMetadata( be.groupId, be.artifactId, be.version ) )
+ .setPluginMetadata( new PluginMetadata( be.getGroupId(), be.getArtifactId(), be.getVersion() ) )
.addLocalRepository( session.getRequest().getLocalRepositoryPath() )
.setRemoteRepositories( convertToMercuryRepositories( session.getRequest().getRemoteRepositories() ) );
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/listeners/MavenModelEventListener.java Thu Apr 16 16:50:46 2009
@@ -1,7 +1,8 @@
package org.apache.maven.listeners;
import org.apache.maven.execution.MavenSession;
-import org.apache.maven.shared.model.ModelEventListener;
+import org.apache.maven.project.builder.ModelEventListener;
+
public interface MavenModelEventListener
extends ModelEventListener
Modified: maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java (original)
+++ maven/components/trunk/maven-core/src/main/java/org/apache/maven/plugin/DefaultPluginManager.java Thu Apr 16 16:50:46 2009
@@ -73,9 +73,11 @@
import org.apache.maven.project.MavenProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
+import org.apache.maven.project.builder.InterpolatorProperty;
+import org.apache.maven.project.builder.ModelProperty;
import org.apache.maven.project.builder.PomInterpolatorTag;
+import org.apache.maven.project.builder.ProcessorContext;
import org.apache.maven.project.builder.ProjectUri;
-import org.apache.maven.project.builder.legacy.PomTransformer;
import org.apache.maven.project.path.PathTranslator;
import org.apache.maven.realm.MavenRealmManager;
import org.apache.maven.realm.RealmManagementException;
@@ -83,10 +85,6 @@
import org.apache.maven.reporting.MavenReport;
import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.repository.VersionNotFoundException;
-import org.apache.maven.shared.model.InterpolatorProperty;
-import org.apache.maven.shared.model.ModelMarshaller;
-import org.apache.maven.shared.model.ModelProperty;
-import org.apache.maven.shared.model.ModelTransformerContext;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.classworlds.realm.ClassRealm;
import org.codehaus.plexus.component.annotations.Component;
@@ -1531,13 +1529,13 @@
private static String interpolateXmlString( String xml, List<InterpolatorProperty> interpolatorProperties )
throws IOException
{
- List<ModelProperty> modelProperties = ModelMarshaller.marshallXmlToModelProperties( new ByteArrayInputStream( xml.getBytes() ), ProjectUri.baseUri, PomTransformer.URIS );
+ List<ModelProperty> modelProperties = ProcessorContext.marshallXmlToModelProperties( new ByteArrayInputStream( xml.getBytes() ), ProjectUri.baseUri, ProcessorContext.URIS );
Map<String, String> aliases = new HashMap<String, String>();
aliases.put( "project.", "pom." );
List<InterpolatorProperty> ips = new ArrayList<InterpolatorProperty>( interpolatorProperties );
- ips.addAll( ModelTransformerContext.createInterpolatorProperties( modelProperties, ProjectUri.baseUri, aliases, PomInterpolatorTag.PROJECT_PROPERTIES.name(), false, false ) );
+ ips.addAll( ProcessorContext.createInterpolatorProperties( modelProperties, ProjectUri.baseUri, aliases, PomInterpolatorTag.PROJECT_PROPERTIES.name()) );
for ( ModelProperty mp : modelProperties )
{
@@ -1548,8 +1546,8 @@
}
}
- ModelTransformerContext.interpolateModelProperties( modelProperties, ips );
- return ModelMarshaller.unmarshalModelPropertiesToXml( modelProperties, ProjectUri.baseUri );
+ ProcessorContext.interpolateModelProperties( modelProperties, ips );
+ return ProcessorContext.unmarshalModelPropertiesToXml( modelProperties, ProjectUri.baseUri );
}
// Plugin Prefix Loader
Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/listeners/BuildExtensionListenerTest.java Thu Apr 16 16:50:46 2009
@@ -11,13 +11,12 @@
import org.apache.maven.execution.MavenExecutionRequest;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.execution.ReactorManager;
+import org.apache.maven.model.Build;
+import org.apache.maven.model.Extension;
import org.apache.maven.model.Model;
import org.apache.maven.monitor.event.DefaultEventDispatcher;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.builder.ProjectUri;
-import org.apache.maven.shared.model.ModelContainer;
-import org.apache.maven.shared.model.ModelContainerAction;
-import org.apache.maven.shared.model.ModelProperty;
import org.apache.maven.wagon.Wagon;
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.util.dag.CycleDetectedException;
@@ -28,19 +27,21 @@
public void testBuildExtensionListener()
throws Exception
{
- /*DISABLE - the listener is in the old model-builder code - need to add back in support
BuildExtensionListener listener = (BuildExtensionListener) lookup( MavenModelEventListener.class, "extensions" );
- // Create the model properties and the model container to feed to the event firing
- List<ModelProperty> modelProperties = new ArrayList<ModelProperty>();
- modelProperties.add( new ModelProperty( ProjectUri.Build.Extensions.Extension.xUri, null ) );
- modelProperties.add( new ModelProperty( ProjectUri.Build.Extensions.Extension.groupId, "org.apache.maven.wagon" ) );
- modelProperties.add( new ModelProperty( ProjectUri.Build.Extensions.Extension.artifactId, "wagon-webdav" ) );
- modelProperties.add( new ModelProperty( ProjectUri.Build.Extensions.Extension.version, "1.0-beta-2" ) );
- ModelContainer container = new TestModelContainer( modelProperties );
-
+ Extension extension = new Extension();
+ extension.setGroupId("org.apache.maven.wagon" );
+ extension.setArtifactId("wagon-webdav" );
+ extension.setVersion( "1.0-beta-2" );
+
+ Build build = new Build();
+ build.addExtension(extension);
+
+ Model model = new Model();
+ model.setBuild(build);
+
// Fire the event.
- listener.fire( Arrays.asList( container ) );
+ listener.fire( model );
try
{
@@ -56,9 +57,7 @@
listener.processModelContainers( newMavenSession() );
// Now we should be able to find the extension.
- // lookup( Wagon.class, "dav" );
- * */
-
+ lookup( Wagon.class, "dav" );
}
private MavenSession newMavenSession()
@@ -78,29 +77,4 @@
return session;
}
- public class TestModelContainer
- implements ModelContainer
- {
- List<ModelProperty> modelProperties;
-
- public TestModelContainer( List<ModelProperty> properties )
- {
- this.modelProperties = properties;
- }
-
- public List<ModelProperty> getProperties()
- {
- return new ArrayList<ModelProperty>( modelProperties );
- }
-
- public ModelContainerAction containerAction( ModelContainer modelContainer )
- {
- return null;
- }
-
- public ModelContainer createNewInstance( List<ModelProperty> modelProperties )
- {
- return null;
- }
- }
}
Modified: maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java (original)
+++ maven/components/trunk/maven-core/src/test/java/org/apache/maven/project/harness/PomTestWrapper.java Thu Apr 16 16:50:46 2009
@@ -20,26 +20,18 @@
*/
import java.io.*;
-import java.util.HashMap;
import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
import org.apache.commons.jxpath.JXPathContext;
import org.apache.commons.jxpath.JXPathNotFoundException;
import org.apache.commons.jxpath.ri.JXPathContextReferenceImpl;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.project.builder.legacy.PomClassicDomainModel;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.model.ModelProperty;
-import org.codehaus.plexus.util.WriterFactory;
+import org.apache.maven.project.builder.PomClassicDomainModel;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
public class PomTestWrapper
{
-
private PomClassicDomainModel domainModel;
private File pomFile;
@@ -125,7 +117,7 @@
{
try
{
- domainModel = convertToDomainModel( mavenProject.getModel() );
+ domainModel = new PomClassicDomainModel( mavenProject.getModel() );
int lineageCount = 1;
for ( MavenProject parent = mavenProject.getParent(); parent != null; parent = parent.getParent() )
{
@@ -142,30 +134,6 @@
return this.domainModel;
}
- private PomClassicDomainModel convertToDomainModel(Model model) throws IOException
- {
- if ( model == null )
- {
- throw new IllegalArgumentException( "model: null" );
- }
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- Writer out = null;
- MavenXpp3Writer writer = new MavenXpp3Writer();
- try
- {
- out = WriterFactory.newXmlWriter( baos );
- writer.write( out, model );
- }
- finally
- {
- if ( out != null )
- {
- out.close();
- }
- }
- return new PomClassicDomainModel(new ByteArrayInputStream(baos.toByteArray()));
- }
-
public File getBasedir()
{
return ( pomFile != null ) ? pomFile.getParentFile() : null;
@@ -176,20 +144,6 @@
context.setValue( expression, value );
}
- /*
- public int containerCountForUri( String uri )
- throws IOException
- {
- if ( uri == null || uri.trim().equals( "" ) )
- {
- throw new IllegalArgumentException( "uri: null or empty" );
- }
- ModelDataSource source = new DefaultModelDataSource();
- source.init( domainModel.getModelProperties(), null );
- return source.queryFor( uri ).size();
- }
- */
-
public Iterator<?> getIteratorForXPathExpression( String expression )
{
return context.iterate( expression );
@@ -216,107 +170,4 @@
{
return context.getValue( expression ) != null && context.getValue( expression ).equals( value );
}
-
- public Map<String, String> asMap( boolean withResolvedValues )
- throws IOException
- {
- Map<String, String> map = new HashMap<String, String>();
- for ( ModelProperty mp : domainModel.getModelProperties() )
- {
- if ( withResolvedValues )
- {
- map.put( mp.getUri(), mp.getResolvedValue() );
- }
- else
- {
- map.put( mp.getUri(), mp.getValue() );
- }
-
- }
- return map;
- }
-
- public boolean containsModelProperty( ModelProperty modelProperty )
- throws IOException
- {
- return domainModel.getModelProperties().contains( modelProperty );
- }
-
- public boolean containsAllModelPropertiesOf( List<ModelProperty> modelProperties )
- throws IOException
- {
- for ( ModelProperty mp : modelProperties )
- {
- if ( !containsModelProperty( mp ) )
- {
- return false;
- }
- }
- return true;
- }
-
- public boolean matchModelProperties( List<ModelProperty> hasProperties, List<ModelProperty> doesNotHaveProperties )
- throws IOException
- {
- return containsAllModelPropertiesOf( hasProperties ) && containNoModelPropertiesOf( doesNotHaveProperties );
- }
-
- public boolean matchUris( List<String> hasAllUris, List<String> doesNotHaveUris )
- throws IOException
- {
- return hasAllUris( hasAllUris ) && hasNoUris( doesNotHaveUris );
- }
-
- public boolean containNoModelPropertiesOf( List<ModelProperty> modelProperties )
- throws IOException
- {
- for ( ModelProperty mp : modelProperties )
- {
- if ( containsModelProperty( mp ) )
- {
- return false;
- }
- }
- return true;
- }
-
- public boolean hasUri( String uri )
- throws IOException
- {
- for ( ModelProperty mp : domainModel.getModelProperties() )
- {
- if ( mp.getValue().equals( uri ) )
- {
- return true;
- }
- }
- return false;
- }
-
- public boolean hasAllUris( List<String> uris )
- throws IOException
- {
- for ( String s : uris )
- {
- if ( !hasUri( s ) )
- {
- return false;
- }
- }
- return true;
- }
-
- public boolean hasNoUris( List<String> uris )
- throws IOException
- {
- for ( String s : uris )
- {
- if ( hasUri( s ) )
- {
- return false;
- }
- }
- return true;
- }
-
}
Modified: maven/components/trunk/maven-mercury/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-mercury/pom.xml?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-mercury/pom.xml (original)
+++ maven/components/trunk/maven-mercury/pom.xml Thu Apr 16 16:50:46 2009
@@ -42,11 +42,6 @@
<artifactId>plexus-component-annotations</artifactId>
</dependency>
- <dependency>
- <groupId>org.sonatype.spice</groupId>
- <artifactId>model-builder</artifactId>
- </dependency>
-
<!-- test dependencies -->
<dependency>
<groupId>org.apache.maven.mercury</groupId>
@@ -86,6 +81,12 @@
</dependency>
<dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
Modified: maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java (original)
+++ maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java Thu Apr 16 16:50:46 2009
@@ -21,7 +21,6 @@
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -30,14 +29,11 @@
import org.apache.maven.mercury.builder.api.DependencyProcessorException;
import org.apache.maven.mercury.builder.api.MetadataReader;
import org.apache.maven.mercury.builder.api.MetadataReaderException;
+import org.apache.maven.project.builder.DomainModel;
+import org.apache.maven.project.builder.InterpolatorProperty;
+import org.apache.maven.project.builder.PomClassicDomainModel;
import org.apache.maven.project.builder.PomInterpolatorTag;
-import org.apache.maven.project.builder.ProjectUri;
-import org.apache.maven.project.builder.legacy.PomTransformer;
-import org.apache.maven.shared.model.DomainModel;
-import org.apache.maven.shared.model.InterpolatorProperty;
-import org.apache.maven.shared.model.ModelContainer;
-import org.apache.maven.shared.model.ModelProperty;
-import org.apache.maven.shared.model.ModelTransformerContext;
+import org.apache.maven.project.builder.ProcessorContext;
import org.codehaus.plexus.component.annotations.Component;
/**
@@ -52,6 +48,7 @@
public class MavenDependencyProcessor
implements DependencyProcessor
{
+
/**
* Over-ride this method to change how dependencies are obtained
*/
@@ -88,14 +85,14 @@
MavenDomainModel domainModel = new MavenDomainModel( superBytes );
domainModel.setMostSpecialized(true);
domainModels.add( domainModel );
-
+/*TODO: Profiles
Collection<ModelContainer> activeProfiles = domainModel.getActiveProfileContainers( interpolatorProperties );
for ( ModelContainer mc : activeProfiles )
{
domainModels.add( new MavenDomainModel( transformProfiles( mc.getProperties() ) ) );
}
-
+*/
List<DomainModel> parentModels = getParentsOfDomainModel( domainModel, mdReader );
if ( parentModels == null )
@@ -110,21 +107,13 @@
throw new MetadataReaderException( "Failed to create domain model. Message = " + e.getMessage(), e );
}
- PomTransformer transformer = new PomTransformer( new MavenDomainModelFactory() );
- ModelTransformerContext ctx =
- new ModelTransformerContext( PomTransformer.MODEL_CONTAINER_INFOS );
+ try {
+ return new MavenDomainModel(ProcessorContext.interpolateDomainModel(ProcessorContext.build(domainModels, null),
+ interpolatorProperties)).getDependencyMetadata();
+ } catch (IOException e) {
+ throw new DependencyProcessorException();
+ }
- try
- {
- MavenDomainModel model =
- ( (MavenDomainModel) ctx.transform( domainModels, transformer, transformer, null,
- interpolatorProperties, null ) );
- return model.getDependencyMetadata();
- }
- catch ( IOException e )
- {
- throw new MetadataReaderException( "Unable to transform model", e );
- }
}
protected final List<InterpolatorProperty> createInterpolatorProperties(Map system, Map user)
@@ -165,20 +154,4 @@
}
return domainModels;
}
-
- private static List<ModelProperty> transformProfiles( List<ModelProperty> modelProperties )
- {
- List<ModelProperty> properties = new ArrayList<ModelProperty>();
- for ( ModelProperty mp : modelProperties )
- {
- if ( mp.getUri().startsWith( ProjectUri.Profiles.Profile.xUri )
- && !mp.getUri().equals( ProjectUri.Profiles.Profile.id )
- && !mp.getUri().startsWith( ProjectUri.Profiles.Profile.Activation.xUri ) )
- {
- properties.add( new ModelProperty( mp.getUri().replace( ProjectUri.Profiles.Profile.xUri,
- ProjectUri.xUri ), mp.getResolvedValue() ) );
- }
- }
- return properties;
- }
}
Modified: maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java (original)
+++ maven/components/trunk/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java Thu Apr 16 16:50:46 2009
@@ -21,44 +21,19 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
import java.util.List;
import org.apache.maven.mercury.artifact.ArtifactMetadata;
-import org.apache.maven.project.builder.ProjectUri;
-import org.apache.maven.project.builder.factories.ArtifactModelContainerFactory;
-import org.apache.maven.project.builder.factories.ExclusionModelContainerFactory;
-import org.apache.maven.project.builder.legacy.PomClassicDomainModel;
-import org.apache.maven.project.builder.legacy.PomTransformer;
-import org.apache.maven.project.builder.profile.ProfileContext;
-import org.apache.maven.shared.model.DataSourceException;
-import org.apache.maven.shared.model.InterpolatorProperty;
-import org.apache.maven.shared.model.ModelContainer;
-import org.apache.maven.shared.model.ModelDataSource;
-import org.apache.maven.shared.model.ModelMarshaller;
-import org.apache.maven.shared.model.ModelProperty;
-import org.apache.maven.shared.model.impl.DefaultModelDataSource;
-
-/**
- * Provides a wrapper for the maven model.
- */
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.Exclusion;
+import org.apache.maven.model.Parent;
+import org.apache.maven.project.builder.PomClassicDomainModel;
+
public final class MavenDomainModel
extends PomClassicDomainModel
{
- /**
- * Bytes containing the underlying model
- */
- private final List<ModelProperty> modelProperties;
-
- /**
- * History of joins and deletes of model properties
- */
- private String eventHistory;
-
private ArtifactMetadata parentMetadata;
/**
@@ -69,105 +44,74 @@
public MavenDomainModel( byte[] bytes )
throws IOException
{
- this( new ByteArrayInputStream( bytes ) );
- }
-
- /**
- * Constructor
- *
- * @throws IOException if there is a problem constructing the model
- */
- public MavenDomainModel( InputStream inputStream )
- throws IOException
- {
- this( ModelMarshaller.marshallXmlToModelProperties( inputStream, ProjectUri.baseUri, PomTransformer.URIS ) );
+ super( new ByteArrayInputStream( bytes ) );
}
- /**
- * Constructor
- *
- * @throws IOException if there is a problem constructing the model
- */
- public MavenDomainModel( List<ModelProperty> modelProperties )
- throws IOException
- {
- super(modelProperties);
- this.modelProperties = new ArrayList<ModelProperty>( modelProperties );
- }
public MavenDomainModel(PomClassicDomainModel model)
throws IOException
{
- this(model.getInputStream());
+ super(model.getModel());
}
public boolean hasParent()
{
- // TODO: Expensive call if no parent
return getParentMetadata() != null;
}
public List<ArtifactMetadata> getDependencyMetadata()
- throws DataSourceException
{
List<ArtifactMetadata> metadatas = new ArrayList<ArtifactMetadata>();
- ModelDataSource source = new DefaultModelDataSource( modelProperties, PomTransformer.MODEL_CONTAINER_FACTORIES );
- for ( ModelContainer modelContainer : source.queryFor( ProjectUri.Dependencies.Dependency.xUri ) )
+ for(Dependency d: model.getDependencies())
{
- metadatas.add( transformContainerToMetadata( modelContainer ) );
+ ArtifactMetadata metadata = new ArtifactMetadata();
+ metadata.setArtifactId(d.getArtifactId());
+ metadata.setClassifier(d.getClassifier());
+ metadata.setGroupId(d.getGroupId());
+ metadata.setScope( (d.getScope() == null) ? "runtime" : d.getScope());
+ metadata.setVersion(d.getVersion());
+ metadata.setOptional(d.isOptional());
+
+ if( "test-jar".equals( d.getType() ) )
+ {
+ metadata.setType( "jar" );
+ metadata.setClassifier( "tests" );
+ }
+ else
+ {
+ metadata.setType( d.getType() );
+ }
+
+ List<ArtifactMetadata> exclusions = new ArrayList<ArtifactMetadata>();
+ for( Exclusion e : d.getExclusions() )
+ {
+ ArtifactMetadata md = new ArtifactMetadata();
+ md.setArtifactId(e.getArtifactId());
+ md.setGroupId(e.getGroupId());
+ exclusions.add(md);
+ }
+ metadata.setExclusions(exclusions);
+ metadatas.add(metadata);
}
-
+
return metadatas;
}
- public Collection<ModelContainer> getActiveProfileContainers( List<InterpolatorProperty> properties )
- throws DataSourceException
- {
- ModelDataSource dataSource = new DefaultModelDataSource( modelProperties, PomTransformer.MODEL_CONTAINER_FACTORIES );
-
- return new ProfileContext( dataSource, null, null, properties ).getActiveProfiles();
- }
-
public ArtifactMetadata getParentMetadata()
{
- if ( parentMetadata != null )
+ if(parentMetadata == null)
{
- return copyArtifactBasicMetadata( parentMetadata );
- }
-
- String groupId = null, artifactId = null, version = null;
-
- for ( ModelProperty mp : modelProperties )
- {
- if ( mp.getUri().equals( ProjectUri.Parent.version ) )
- {
- version = mp.getResolvedValue();
- }
- else if ( mp.getUri().equals( ProjectUri.Parent.artifactId ) )
+ Parent parent = model.getParent();
+ if(parent != null)
{
- artifactId = mp.getResolvedValue();
- }
- else if ( mp.getUri().equals( ProjectUri.Parent.groupId ) )
- {
- groupId = mp.getResolvedValue();
- }
- if ( groupId != null && artifactId != null && version != null )
- {
- break;
- }
+ parentMetadata = new ArtifactMetadata();
+ parentMetadata.setArtifactId( parent.getArtifactId() );
+ parentMetadata.setVersion( parent.getVersion() );
+ parentMetadata.setGroupId( parent.getGroupId() );
+ }
}
-
- if ( groupId == null || artifactId == null || version == null )
- {
- return null;
- }
- parentMetadata = new ArtifactMetadata();
- parentMetadata.setArtifactId( artifactId );
- parentMetadata.setVersion( version );
- parentMetadata.setGroupId( groupId );
-
- return copyArtifactBasicMetadata( parentMetadata );
+ return (parentMetadata != null) ? copyArtifactBasicMetadata( parentMetadata ) : null;
}
private ArtifactMetadata copyArtifactBasicMetadata( ArtifactMetadata metadata )
@@ -178,108 +122,4 @@
amd.setVersion( metadata.getVersion() );
return amd;
}
-
- /**
- * @see org.apache.maven.shared.model.DomainModel#getEventHistory()
- */
- public String getEventHistory()
- {
- return eventHistory;
- }
-
- /**
- * @see org.apache.maven.shared.model.DomainModel#setEventHistory(String)
- */
- public void setEventHistory( String eventHistory )
- {
- if ( eventHistory == null )
- {
- throw new IllegalArgumentException( "eventHistory: null" );
- }
- this.eventHistory = eventHistory;
- }
-
- public List<ModelProperty> getModelProperties()
- throws IOException
- {
- return new ArrayList<ModelProperty>( modelProperties );
- }
-
- private ArtifactMetadata transformContainerToMetadata( ModelContainer container )
- throws DataSourceException
- {
- List<ModelProperty> modelProperties = container.getProperties();
-
- ArtifactMetadata metadata = new ArtifactMetadata();
- for ( ModelProperty mp : modelProperties )
- {
- if ( mp.getUri().equals( ProjectUri.Dependencies.Dependency.groupId ) )
- {
- metadata.setGroupId( mp.getResolvedValue() );
- }
- else if ( mp.getUri().equals( ProjectUri.Dependencies.Dependency.artifactId ) )
- {
- metadata.setArtifactId( mp.getResolvedValue() );
- }
- else if ( mp.getUri().equals( ProjectUri.Dependencies.Dependency.version ) )
- {
- metadata.setVersion( mp.getResolvedValue() );
- }
- else if ( mp.getUri().equals( ProjectUri.Dependencies.Dependency.classifier ) )
- {
- metadata.setClassifier( mp.getResolvedValue() );
- }
- else if ( mp.getUri().equals( ProjectUri.Dependencies.Dependency.scope ) )
- {
- metadata.setScope( mp.getResolvedValue() );
- }
- else if ( mp.getUri().equals( ProjectUri.Dependencies.Dependency.type ) )
- {
- String val = mp.getResolvedValue();
- // 2009-03-23 Oleg: TODO ask Shane where this really belongs?
- if( "test-jar".equals( val ) )
- {
- metadata.setType( "jar" );
- metadata.setClassifier( "tests" );
- }
- else
- metadata.setType( val );
- }
- else if ( mp.getUri().equals( ProjectUri.Dependencies.Dependency.optional ) )
- {
- metadata.setOptional( mp.getResolvedValue() );
- }
- }
-
- if ( metadata.getScope() == null )
- {
- metadata.setScope( "runtime" );
- }
-
- ModelDataSource dataSource = new DefaultModelDataSource( container.getProperties(), Arrays.asList( new ArtifactModelContainerFactory(),
- new ExclusionModelContainerFactory() ) );
- List<ArtifactMetadata> exclusions = new ArrayList<ArtifactMetadata>();
-
- for ( ModelContainer exclusion : dataSource.queryFor( ProjectUri.Dependencies.Dependency.Exclusions.Exclusion.xUri ) )
- {
- ArtifactMetadata meta = new ArtifactMetadata();
- exclusions.add( meta );
-
- for ( ModelProperty mp : exclusion.getProperties() )
- {
- if ( mp.getUri().equals( ProjectUri.Dependencies.Dependency.Exclusions.Exclusion.artifactId ) )
- {
- meta.setArtifactId( mp.getResolvedValue() );
- }
- else if ( mp.getUri().equals( ProjectUri.Dependencies.Dependency.Exclusions.Exclusion.groupId ) )
- {
- meta.setGroupId( mp.getResolvedValue() );
- }
- }
-
- }
- metadata.setExclusions( exclusions );
-
- return metadata;
- }
}
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ModelEventListener.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ModelEventListener.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ModelEventListener.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ModelEventListener.java Thu Apr 16 16:50:46 2009
@@ -1,10 +1,13 @@
package org.apache.maven.project.builder;
import java.util.List;
-import java.util.Collection;
+
+import org.apache.maven.model.Model;
public interface ModelEventListener {
+ void fire(Model model);
+
List<String> getUris();
}
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/PomClassicDomainModel.java Thu Apr 16 16:50:46 2009
@@ -38,7 +38,7 @@
private String parentGroupId = null, parentArtifactId = null, parentVersion = null, parentId = null, parentRelativePath;
- private Model model;
+ protected Model model;
public Model getModel() throws IOException
{
Modified: maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ProcessorContext.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ProcessorContext.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ProcessorContext.java (original)
+++ maven/components/trunk/maven-project-builder/src/main/java/org/apache/maven/project/builder/ProcessorContext.java Thu Apr 16 16:50:46 2009
@@ -170,10 +170,17 @@
return models;
}
- public static PomClassicDomainModel build( List<DomainModel> domainModels,
- List<InterpolatorProperty> interpolationProperties, List<ModelEventListener> listeners)
- throws IOException
- {
+ /**
+ * Parent domain models on bottom.
+ *
+ * @param domainModels
+ * @param listeners
+ * @return
+ * @throws IOException
+ */
+ public static PomClassicDomainModel build( List<DomainModel> domainModels, List<ModelEventListener> listeners )
+ throws IOException
+ {
PomClassicDomainModel child = null;
for ( DomainModel domainModel : domainModels )
{
@@ -196,24 +203,18 @@
new LicensesProcessor(), new ScmProcessor(), new PrerequisitesProcessor(),
new ContributorsProcessor(), new DevelopersProcessor(), new ProfilesProcessor() );
Model target = processModelsForInheritance( convertDomainModelsToMavenModels( domainModels ), processors );
-
+ if(listeners != null)
+ {
+ for(ModelEventListener listener : listeners)
+ {
+ listener.fire(target);
+ }
+ }
PomClassicDomainModel domainModel = new PomClassicDomainModel( target, child.isMostSpecialized() );
domainModel.setProjectDirectory(child.getProjectDirectory());
domainModel.setParentFile(child.getParentFile());
+
return domainModel;
- }
- /**
- * Parent domain models on bottom.
- *
- * @param domainModels
- * @return
- * @throws IOException
- */
- public static PomClassicDomainModel build( List<DomainModel> domainModels,
- List<InterpolatorProperty> interpolationProperties )
- throws IOException
- {
- return build(domainModels, interpolationProperties, null);
}
private static Model processModelsForInheritance(List<Model> models, List<Processor> processors)
@@ -680,7 +681,7 @@
}
}
- private static List<InterpolatorProperty> createInterpolatorProperties(List<ModelProperty> modelProperties,
+ public static List<InterpolatorProperty> createInterpolatorProperties(List<ModelProperty> modelProperties,
String baseUriForModel,
Map<String, String> aliases,
String interpolatorTag)
@@ -864,7 +865,7 @@
return sb.toString();
}
- public static List<ModelProperty> getModelProperties(InputStream is) throws IOException
+ private static List<ModelProperty> getModelProperties(InputStream is) throws IOException
{
Set<String> s = new HashSet<String>();
//TODO: Should add all collections from ProjectUri
@@ -893,7 +894,7 @@
return new ArrayList<ModelProperty>(marshallXmlToModelProperties(is, ProjectUri.baseUri, s ));
}
- private static final Set<String> URIS = Collections.unmodifiableSet(new HashSet<String>( Arrays.asList( ProjectUri.Build.Extensions.xUri,
+ public static final Set<String> URIS = Collections.unmodifiableSet(new HashSet<String>( Arrays.asList( ProjectUri.Build.Extensions.xUri,
ProjectUri.Build.PluginManagement.Plugins.xUri,
ProjectUri.Build.PluginManagement.Plugins.Plugin.configuration,
ProjectUri.Build.PluginManagement.Plugins.Plugin.Executions.xUri,
Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Thu Apr 16 16:50:46 2009
@@ -15,12 +15,9 @@
* the License.
*/
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.Reader;
-import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
@@ -48,7 +45,7 @@
import org.apache.maven.project.artifact.InvalidDependencyVersionException;
import org.apache.maven.project.builder.DomainModel;
import org.apache.maven.project.builder.InterpolatorProperty;
-import org.apache.maven.project.builder.ModelProperty;
+import org.apache.maven.project.builder.ModelEventListener;
import org.apache.maven.project.builder.PomClassicDomainModel;
import org.apache.maven.project.builder.PomInterpolatorTag;
import org.apache.maven.project.builder.ProcessorContext;
@@ -56,7 +53,6 @@
import org.apache.maven.project.validation.ModelValidator;
import org.apache.maven.repository.RepositorySystem;
import org.apache.maven.repository.VersionNotFoundException;
-import org.apache.maven.shared.model.ModelEventListener;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
@@ -513,7 +509,7 @@
}
}
- PomClassicDomainModel transformedDomainModel = ProcessorContext.build( profileModels, null );
+ PomClassicDomainModel transformedDomainModel = ProcessorContext.build(profileModels, listeners);
// Lineage count is inclusive to add the POM read in itself.
transformedDomainModel.setLineageCount( lineageCount + 1 );
Modified: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java?rev=765684&r1=765683&r2=765684&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java (original)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/PomConstructionTest.java Thu Apr 16 16:50:46 2009
@@ -220,7 +220,6 @@
throws Exception
{
PomTestWrapper pom = buildPom( "plugin-management-dependencies/sub", "test" );
- System.out.println(pom.getDomainModel().asString());
assertEquals( "1.0-alpha-21", pom.getValue( "build/plugins[1]/version" ) );
assertEquals( "1.0", pom.getValue( "build/plugins[1]/dependencies[1]/version" ) );
}
@@ -782,7 +781,6 @@
throws Exception
{
PomTestWrapper pom = buildPom( "plugin-config-append/" + test + "/subproject" );
- System.out.println(pom.getDomainModel().asString());
String prefix = "build/plugins[1]/configuration/";
assertEquals( "PARENT-1", pom.getValue( prefix + "stringParams/stringParam[1]" ) );
assertEquals( "PARENT-3", pom.getValue( prefix + "stringParams/stringParam[2]" ) );