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/08/06 04:06:10 UTC

svn commit: r683086 - in /maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder: ./ impl/

Author: sisbell
Date: Tue Aug  5 19:06:09 2008
New Revision: 683086

URL: http://svn.apache.org/viewvc?rev=683086&view=rev
Log:
Support for depMng and pluging Mng. Partial support for profiles.

Added:
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/Profile.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultImportModel.java
Modified:
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java
    maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java?rev=683086&r1=683085&r2=683086&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/PomClassicTransformer.java Tue Aug  5 19:06:09 2008
@@ -20,24 +20,13 @@
  */
 
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
-import org.apache.maven.shared.model.DomainModel;
-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.ModelTransformer;
+import org.apache.maven.shared.model.*;
 import org.apache.maven.shared.model.impl.DefaultModelDataSource;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.IOException;
 import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.Map;
-import java.util.HashMap;
+import java.util.*;
 
 /**
  * Provides methods for transforming model properties into a domain model for the pom classic format and vice versa.
@@ -49,18 +38,7 @@
     /**
      * The URIs this tranformer supports
      */
-    private final Set<String> uris;
-
-    private static Map<String, List<ModelProperty>> cache = new HashMap<String, List<ModelProperty>>();
-
-    //private static List<DomainModel> cache = new ArrayList<DomainModel>();
-
-    /**
-     * Default constructor
-     */
-    public PomClassicTransformer()
-    {
-        this.uris = new HashSet<String>( Arrays.asList( ProjectUri.Build.Extensions.xUri,
+    private static Set<String> uris = new HashSet<String>( Arrays.asList( ProjectUri.Build.Extensions.xUri,
                                                         ProjectUri.Build.PluginManagement.Plugins.xUri,
                                                         ProjectUri.Build.PluginManagement.Plugins.Plugin.Dependencies.xUri,
                                                         ProjectUri.Build.PluginManagement.Plugins.Plugin.Dependencies.Dependency.Exclusions.xUri,
@@ -113,7 +91,21 @@
                                                         "http://apache.org/maven/project/profiles/profile/build/plugins/plugin/dependencies/dependency/exclusions#collection",
                                                         "http://apache.org/maven/project/profiles/profile/dependencyManagement/dependencies/dependency/exclusions#collection",
                                                         "http://apache.org/maven/project/profiles/profile/reporting/plugins/plugin/reportSets#collection",
-                                                        "http://apache.org/maven/project/profiles/profile/build/plugins/plugin/executions#collection" ) );
+                                                        "http://apache.org/maven/project/profiles/profile/build/plugins/plugin/executions#collection" ));
+
+    private static Map<String, List<ModelProperty>> cache = new HashMap<String, List<ModelProperty>>();
+
+    private Collection<Profile> profiles;
+
+
+    //private static List<DomainModel> cache = new ArrayList<DomainModel>();
+
+    /**
+     * Default constructor
+     */
+    public PomClassicTransformer(Collection<Profile> profiles)
+    {
+        this.profiles = profiles;
     }
 
     /**
@@ -185,6 +177,7 @@
 
             List<ModelProperty> tmp = ModelMarshaller.marshallXmlToModelProperties(
                 ( (PomClassicDomainModel) domainModel ).getInputStream(), ProjectUri.baseUri, uris );
+
             List clearedProperties = new ArrayList<ModelProperty>();
 
             //Missing Version Rule
@@ -348,7 +341,7 @@
             tmp.removeAll( clearedProperties );
             modelProperties.addAll( tmp );
 
-            if ( domainModels.indexOf( domainModel ) > 0 )
+            if ( domainModels.indexOf( domainModel ) == 0 )
             {
                 //cache.put( pomDomainModel.getId(), modelProperties );
             }
@@ -362,7 +355,11 @@
             }
                        */
         }
-        return modelProperties;
+        return ModelTransformerContext.transformModelProperties(modelProperties, Arrays.asList(
+                new ProfileModelPropertyTransformer(),
+                new PluginManagementModelPropertyTransformer(),
+                new DependencyManagementModelPropertyTransformer()
+                ));
     }
 
     /**
@@ -414,5 +411,61 @@
         }
         return null;
     }
+
+    private static class ProfileModelPropertyTransformer implements ModelPropertyTransformer {
+        public List<ModelProperty> transform(List<ModelProperty> modelProperties) {
+            List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
+            for(ModelProperty mp : modelProperties) {
+                String uri = mp.getUri().replace("profiles#collection/profile", "");
+            }
+            return transformedProperties;
+        }
+
+        public String getBaseUri() {
+            return ProjectUri.baseUri;
+        }
+    }
+
+    private static class PluginManagementModelPropertyTransformer implements ModelPropertyTransformer {
+
+        public List<ModelProperty> transform(List<ModelProperty> modelProperties) {
+            List<ModelProperty> properties = new ArrayList<ModelProperty>(modelProperties);
+            List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
+            for(ModelProperty mp : properties) {
+                if(mp.getUri().startsWith(ProjectUri.Build.PluginManagement.xUri))
+                {
+                    transformedProperties.add(new ModelProperty(
+                            mp.getUri().replace(ProjectUri.Build.PluginManagement.xUri, ProjectUri.Build.xUri), mp.getValue()));
+                }
+            }
+            properties.addAll(transformedProperties);
+            return properties;
+        }
+
+        public String getBaseUri() {
+            return ProjectUri.baseUri;
+        }
+    }
+
+    private static class DependencyManagementModelPropertyTransformer implements ModelPropertyTransformer {
+
+        public List<ModelProperty> transform(List<ModelProperty> modelProperties) {
+            List<ModelProperty> properties = new ArrayList<ModelProperty>(modelProperties);
+            List<ModelProperty> transformedProperties = new ArrayList<ModelProperty>();
+            for(ModelProperty mp : modelProperties) {
+                if(mp.getUri().startsWith(ProjectUri.DependencyManagement.xUri))
+                {
+                    transformedProperties.add(new ModelProperty(
+                            mp.getUri().replace(ProjectUri.DependencyManagement.xUri, ProjectUri.xUri), mp.getValue()));
+                }
+            }
+            properties.addAll(transformedProperties);
+            return properties;
+        }
+
+        public String getBaseUri() {
+            return ProjectUri.baseUri;
+        }
+    }
 }
 

Added: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/Profile.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/Profile.java?rev=683086&view=auto
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/Profile.java (added)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/Profile.java Tue Aug  5 19:06:09 2008
@@ -0,0 +1,7 @@
+package org.apache.maven.project.builder;
+
+
+public class Profile {
+
+    
+}

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java?rev=683086&r1=683085&r2=683086&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/ProjectBuilder.java Tue Aug  5 19:06:09 2008
@@ -22,6 +22,7 @@
 import org.apache.maven.model.Model;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.model.InterpolatorProperty;
+import org.apache.maven.shared.model.ImportModel;
 
 import java.io.File;
 import java.io.IOException;
@@ -49,6 +50,7 @@
      * @throws IOException if there is a problem in the construction of the maven project
      */
     MavenProject buildFromLocalPath( InputStream pom, List<Model> inheritedModels,
+                                     Collection<ImportModel> importModels,
                                      Collection<InterpolatorProperty> interpolatorProperties,
                                      PomArtifactResolver resolver, File baseDirectory )
         throws IOException;

Added: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultImportModel.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultImportModel.java?rev=683086&view=auto
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultImportModel.java (added)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultImportModel.java Tue Aug  5 19:06:09 2008
@@ -0,0 +1,50 @@
+package org.apache.maven.project.builder.impl;
+
+import org.apache.maven.shared.model.ImportModel;
+import org.apache.maven.shared.model.ModelProperty;
+
+import java.util.List;
+import java.util.ArrayList;
+
+public final class DefaultImportModel implements ImportModel {
+
+    private final String id;
+
+    private final List<ModelProperty> modelProperties;
+
+    public DefaultImportModel(String id, List<ModelProperty> modelProperties) {
+        if(id == null)
+        {
+            throw new IllegalArgumentException("id: null");
+        }
+        
+        if(modelProperties == null) {
+            throw new IllegalArgumentException("modelProperties: null");
+        }
+        this.id = id;
+        this.modelProperties = new ArrayList<ModelProperty>(modelProperties);
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public List<ModelProperty> getModelProperties() {
+        return new ArrayList<ModelProperty>(modelProperties);
+    }
+
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        ImportModel that = (ImportModel) o;
+
+        if (id != null ? !id.equals(that.getId()) : that.getId() != null) return false;
+
+        return true;
+    }
+
+    public int hashCode() {
+        return (id != null ? id.hashCode() : 0);
+    }
+}

Modified: maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java?rev=683086&r1=683085&r2=683086&view=diff
==============================================================================
--- maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java (original)
+++ maven/components/branches/sisbell-maven-2.1-profile/maven-project/src/main/java/org/apache/maven/project/builder/impl/DefaultProjectBuilder.java Tue Aug  5 19:06:09 2008
@@ -35,6 +35,7 @@
 import org.apache.maven.shared.model.DomainModel;
 import org.apache.maven.shared.model.InterpolatorProperty;
 import org.apache.maven.shared.model.ModelTransformerContext;
+import org.apache.maven.shared.model.ImportModel;
 import org.codehaus.plexus.logging.LogEnabled;
 import org.codehaus.plexus.logging.Logger;
 
@@ -86,9 +87,10 @@
     }
 
     /**
-     * @see ProjectBuilder#buildFromLocalPath(java.io.InputStream, java.util.List, java.util.Collection, org.apache.maven.project.builder.PomArtifactResolver, java.io.File)
+     * @see ProjectBuilder#buildFromLocalPath(java.io.InputStream, java.util.List, java.util.Collection, java.util.Collection, org.apache.maven.project.builder.PomArtifactResolver, java.io.File)
      */
     public MavenProject buildFromLocalPath( InputStream pom, List<Model> inheritedModels,
+                                            Collection<ImportModel> importModels,
                                             Collection<InterpolatorProperty> interpolatorProperties,
                                             PomArtifactResolver resolver, File projectDirectory )
         throws IOException
@@ -149,12 +151,12 @@
             domainModels.add( new PomClassicDomainModel( model ) );
         }
 
-        PomClassicTransformer transformer = new PomClassicTransformer();
+        PomClassicTransformer transformer = new PomClassicTransformer(null);
         ModelTransformerContext ctx = new ModelTransformerContext(
             Arrays.asList( new ArtifactModelContainerFactory(), new IdModelContainerFactory() ) );
 
         PomClassicDomainModel transformedDomainModel =
-            ( (PomClassicDomainModel) ctx.transform( domainModels, transformer, transformer, null, properties ) );
+            ( (PomClassicDomainModel) ctx.transform( domainModels, transformer, transformer, importModels, properties ) );
         Model model = transformedDomainModel.getModel();
         return new MavenProject( model );
     }