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 2008/11/03 22:39:51 UTC
svn commit: r710175 - in
/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src:
main/java/org/apache/maven/mercury/ test/java/org/apache/maven/mercury/
test/resources/
Author: sisbell
Date: Mon Nov 3 13:39:51 2008
New Revision: 710175
URL: http://svn.apache.org/viewvc?rev=710175&view=rev
Log:
Support for exlusions, scope, type, etc for Dependency Processor.
Added:
maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/simpleWithExclusions.xml
Modified:
maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java
maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java
maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MavenDependencyProcessorTest.java
Modified: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java?rev=710175&r1=710174&r2=710175&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java (original)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDependencyProcessor.java Mon Nov 3 13:39:51 2008
@@ -20,6 +20,10 @@
public final class MavenDependencyProcessor implements DependencyProcessor {
+ public MavenDependencyProcessor() {
+
+ }
+
public List<ArtifactBasicMetadata> getDependencies(ArtifactBasicMetadata bmd, MetadataReader mdReader, Map system, Map user)
throws MetadataReaderException {
if (bmd == null) {
@@ -29,7 +33,7 @@
if (mdReader == null) {
throw new IllegalArgumentException("mdReader: null");
}
-
+
List<InterpolatorProperty> interpolatorProperties = new ArrayList<InterpolatorProperty>();
if(system != null) {
interpolatorProperties.addAll( InterpolatorProperty.toInterpolatorProperties( system,
@@ -45,7 +49,7 @@
// MavenDomainModel superPom =
// new MavenDomainModel(MavenDependencyProcessor.class.getResourceAsStream( "pom-4.0.0.xml" ));
// domainModels.add(superPom);
-
+
MavenDomainModel domainModel = new MavenDomainModel(mdReader.readMetadata(bmd));
domainModels.add(domainModel);
@@ -55,6 +59,7 @@
domainModels.add(new MavenDomainModel(transformProfiles(mc.getProperties())));
}
+
domainModels.addAll(getParentsOfDomainModel(domainModel, mdReader));
} catch (IOException e) {
throw new MetadataReaderException("Failed to create domain model. Message = " + e.getMessage());
@@ -99,9 +104,4 @@
}
return properties;
}
-/*
- private static List<InterpolatorProperty> translaterInterpolatorPropertiesFromTable(Hashtable table) {
- for()
- }
- */
}
Modified: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java?rev=710175&r1=710174&r2=710175&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java (original)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/main/java/org/apache/maven/mercury/MavenDomainModel.java Mon Nov 3 13:39:51 2008
@@ -169,7 +169,7 @@
return new ArrayList<ModelProperty>(modelProperties);
}
- private ArtifactBasicMetadata transformContainerToMetadata( ModelContainer container )
+ private ArtifactBasicMetadata transformContainerToMetadata( ModelContainer container ) throws DataSourceException
{
List<ModelProperty> modelProperties = container.getProperties();
@@ -184,8 +184,38 @@
metadata.setVersion(mp.getValue());
} else if(mp.getUri().equals(ProjectUri.Dependencies.Dependency.classifier)) {
metadata.setClassifier(mp.getValue());
+ } else if(mp.getUri().equals(ProjectUri.Dependencies.Dependency.scope)) {
+ metadata.setScope(mp.getValue());
+ } else if(mp.getUri().equals(ProjectUri.Dependencies.Dependency.type)) {
+ metadata.setType(mp.getValue());
+ } else if(mp.getUri().equals(ProjectUri.Dependencies.Dependency.optional)) {
+ metadata.setOptional(mp.getValue());
}
}
+
+ if(metadata.getScope() == null) {
+ metadata.setScope("runtime");
+ }
+
+ ModelDataSource dataSource = new DefaultModelDataSource();
+ dataSource.init(container.getProperties(), Arrays.asList(new ArtifactModelContainerFactory(), new IdModelContainerFactory()) );
+ List<ArtifactBasicMetadata> exclusions = new ArrayList<ArtifactBasicMetadata>();
+
+ for(ModelContainer exclusion : dataSource.queryFor(ProjectUri.Dependencies.Dependency.Exclusions.Exclusion.xUri)) {
+ ArtifactBasicMetadata meta = new ArtifactBasicMetadata();
+ exclusions.add(meta);
+
+ for(ModelProperty mp : exclusion.getProperties()) {
+ if(mp.getUri().equals(ProjectUri.Dependencies.Dependency.Exclusions.Exclusion.artifactId)) {
+ meta.setArtifactId(mp.getValue());
+ } else if(mp.getUri().equals(ProjectUri.Dependencies.Dependency.Exclusions.Exclusion.groupId)) {
+ meta.setGroupId(mp.getValue());
+ }
+ }
+
+ }
+ metadata.setExclusions(exclusions);
+
return metadata;
}
}
Modified: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MavenDependencyProcessorTest.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MavenDependencyProcessorTest.java?rev=710175&r1=710174&r2=710175&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MavenDependencyProcessorTest.java (original)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/java/org/apache/maven/mercury/MavenDependencyProcessorTest.java Mon Nov 3 13:39:51 2008
@@ -40,6 +40,21 @@
}
@org.junit.Test
+ public void testSimplePomWithExclusions() throws MetadataReaderException {
+ Stack<File> files = new Stack<File>();
+ files.add(new File("src/test/resources/simpleWithExclusions.xml"));
+
+ MavenDependencyProcessor processor = new MavenDependencyProcessor();
+ List<ArtifactBasicMetadata> dependencies = processor.getDependencies(new ArtifactBasicMetadata(),
+ new MetadataReaderStub(files), null, null);
+ assertEquals("Dependencies incorrect", 1, dependencies.size());
+
+ ArtifactBasicMetadata dependency = dependencies.get(0);
+ assertEquals("Exclusions incorrect", 2, dependency.getExclusions().size());
+
+ }
+
+ @org.junit.Test
public void testSinglePomWithProfile() throws MetadataReaderException {
Stack<File> files = new Stack<File>();
files.add(new File(basedir, "src/test/resources/simpleWithProfile.xml"));
Added: maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/simpleWithExclusions.xml
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/simpleWithExclusions.xml?rev=710175&view=auto
==============================================================================
--- maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/simpleWithExclusions.xml (added)
+++ maven/components/branches/sisbell-maven-3.0-mercury/maven-mercury/src/test/resources/simpleWithExclusions.xml Mon Nov 3 13:39:51 2008
@@ -0,0 +1,36 @@
+
+<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">
+ <parent>
+ <artifactId>x-parent-aid</artifactId>
+ <groupId>x-parent-gid</groupId>
+ <version>1.0</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>c-aid</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>c-gid-1</groupId>
+ <artifactId>c-aid-1</artifactId>
+ <version>c-v-1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>
+ gid-exclusion-1
+ </groupId>
+ <artifactId>
+ aid-exclusion-1
+ </artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>
+ gid-exclusion-2
+ </groupId>
+ <artifactId>
+ aid-exclusion-2
+ </artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file