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