You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jv...@apache.org on 2007/02/28 15:20:14 UTC

svn commit: r512763 - in /maven/components/trunk: maven-embedder/ maven-project/ maven-project/src/main/java/org/apache/maven/ maven-project/src/main/resources/META-INF/plexus/ maven-tools/

Author: jvanzyl
Date: Wed Feb 28 06:20:13 2007
New Revision: 512763

URL: http://svn.apache.org/viewvc?view=rev&rev=512763
Log:
o remove maven-tools and put the utility code in the only module that now depends on it, maven-project

Added:
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java   (with props)
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java   (with props)
Removed:
    maven/components/trunk/maven-tools/
Modified:
    maven/components/trunk/maven-embedder/pom.xml
    maven/components/trunk/maven-project/pom.xml
    maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml

Modified: maven/components/trunk/maven-embedder/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/pom.xml?view=diff&rev=512763&r1=512762&r2=512763
==============================================================================
--- maven/components/trunk/maven-embedder/pom.xml (original)
+++ maven/components/trunk/maven-embedder/pom.xml Wed Feb 28 06:20:13 2007
@@ -61,11 +61,6 @@
       <artifactId>plexus-container-default</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.apache.maven</groupId>
-      <artifactId>maven-tools</artifactId>
-      <version>2.1-SNAPSHOT</version>
-    </dependency>
-    <dependency>
       <groupId>commons-lang</groupId>
       <artifactId>commons-lang</artifactId>
     </dependency>

Modified: maven/components/trunk/maven-project/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/pom.xml?view=diff&rev=512763&r1=512762&r2=512763
==============================================================================
--- maven/components/trunk/maven-project/pom.xml (original)
+++ maven/components/trunk/maven-project/pom.xml Wed Feb 28 06:20:13 2007
@@ -66,11 +66,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
-      <artifactId>maven-tools</artifactId>
-      <version>2.1-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.maven</groupId>
       <artifactId>maven-artifact</artifactId>
       <version>2.1-SNAPSHOT</version>
     </dependency>

Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java?view=auto&rev=512763
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java Wed Feb 28 06:20:13 2007
@@ -0,0 +1,167 @@
+package org.apache.maven;
+
+import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
+import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.model.DeploymentRepository;
+import org.apache.maven.model.Repository;
+import org.apache.maven.model.RepositoryBase;
+import org.apache.maven.model.RepositoryPolicy;
+import org.apache.maven.settings.MavenSettingsBuilder;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.io.jdom.SettingsJDOMWriter;
+import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
+import org.apache.maven.settings.validation.SettingsValidationResult;
+import org.apache.maven.settings.validation.SettingsValidator;
+import org.codehaus.plexus.PlexusConstants;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.codehaus.plexus.context.Context;
+import org.codehaus.plexus.context.ContextException;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.output.Format;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/** @author Jason van Zyl */
+public class DefaultMavenTools
+    implements MavenTools, Contextualizable
+{
+    private ArtifactRepositoryLayout repositoryLayout;
+
+    private ArtifactRepositoryFactory artifactRepositoryFactory;
+
+    private PlexusContainer container;
+
+    // ----------------------------------------------------------------------------
+    // Code snagged from ProjectUtils: this will have to be moved somewhere else
+    // but just trying to collect it all in one place right now.
+    // ----------------------------------------------------------------------------
+
+    public List buildArtifactRepositories( List repositories )
+        throws InvalidRepositoryException
+    {
+        List repos = new ArrayList();
+
+        for ( Iterator i = repositories.iterator(); i.hasNext(); )
+        {
+            Repository mavenRepo = (Repository) i.next();
+
+            ArtifactRepository artifactRepo = buildArtifactRepository( mavenRepo );
+
+            if ( !repos.contains( artifactRepo ) )
+            {
+                repos.add( artifactRepo );
+            }
+        }
+        return repos;
+    }
+
+    public ArtifactRepository buildDeploymentArtifactRepository( DeploymentRepository repo )
+        throws InvalidRepositoryException
+    {
+        if ( repo != null )
+        {
+            String id = repo.getId();
+            String url = repo.getUrl();
+
+            // TODO: make this a map inside the factory instead, so no lookup needed
+            ArtifactRepositoryLayout layout = getRepositoryLayout( repo );
+
+            return artifactRepositoryFactory.createDeploymentArtifactRepository( id, url, layout,
+                                                                                 repo.isUniqueVersion() );
+        }
+        else
+        {
+            return null;
+        }
+    }
+
+    public ArtifactRepository buildArtifactRepository( Repository repo )
+        throws InvalidRepositoryException
+    {
+        if ( repo != null )
+        {
+            String id = repo.getId();
+            String url = repo.getUrl();
+
+            // TODO: make this a map inside the factory instead, so no lookup needed
+            ArtifactRepositoryLayout layout = getRepositoryLayout( repo );
+
+            ArtifactRepositoryPolicy snapshots = buildArtifactRepositoryPolicy( repo.getSnapshots() );
+
+            ArtifactRepositoryPolicy releases = buildArtifactRepositoryPolicy( repo.getReleases() );
+
+            return artifactRepositoryFactory.createArtifactRepository( id, url, layout, snapshots, releases );
+        }
+        else
+        {
+            return null;
+        }
+    }
+
+    public ArtifactRepositoryPolicy buildArtifactRepositoryPolicy( RepositoryPolicy policy )
+    {
+        boolean enabled = true;
+
+        String updatePolicy = null;
+
+        String checksumPolicy = null;
+
+        if ( policy != null )
+        {
+            enabled = policy.isEnabled();
+
+            if ( policy.getUpdatePolicy() != null )
+            {
+                updatePolicy = policy.getUpdatePolicy();
+            }
+            if ( policy.getChecksumPolicy() != null )
+            {
+                checksumPolicy = policy.getChecksumPolicy();
+            }
+        }
+
+        return new ArtifactRepositoryPolicy( enabled, updatePolicy, checksumPolicy );
+    }
+
+    private ArtifactRepositoryLayout getRepositoryLayout( RepositoryBase mavenRepo )
+        throws InvalidRepositoryException
+    {
+        String layout = mavenRepo.getLayout();
+
+        ArtifactRepositoryLayout repositoryLayout;
+        try
+        {
+            repositoryLayout = (ArtifactRepositoryLayout) container.lookup( ArtifactRepositoryLayout.ROLE, layout );
+        }
+        catch ( ComponentLookupException e )
+        {
+            throw new InvalidRepositoryException( "Cannot find layout implementation corresponding to: \'" + layout +
+                "\' for remote repository with id: \'" + mavenRepo.getId() + "\'.", e );
+        }
+        return repositoryLayout;
+    }
+
+    // ----------------------------------------------------------------------------
+    // Lifecycle
+    // ----------------------------------------------------------------------------
+
+    public void contextualize( Context context )
+        throws ContextException
+    {
+        container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
+    }
+}

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/DefaultMavenTools.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java?view=auto&rev=512763
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java (added)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java Wed Feb 28 06:20:13 2007
@@ -0,0 +1,34 @@
+package org.apache.maven;
+
+import org.apache.maven.artifact.InvalidRepositoryException;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.model.DeploymentRepository;
+import org.apache.maven.model.Repository;
+import org.apache.maven.settings.Settings;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.Writer;
+import java.util.List;
+
+/**
+ * @author Jason van Zyl
+ */
+public interface MavenTools
+{
+    String ROLE = MavenTools.class.getName();
+
+    // ----------------------------------------------------------------------------
+    // Methods taken from ProjectUtils
+    // ----------------------------------------------------------------------------
+
+    List buildArtifactRepositories( List repositories )
+        throws InvalidRepositoryException;
+
+    ArtifactRepository buildDeploymentArtifactRepository( DeploymentRepository repo )
+        throws InvalidRepositoryException;
+
+    ArtifactRepository buildArtifactRepository( Repository repo )
+        throws InvalidRepositoryException;
+}

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/main/java/org/apache/maven/MavenTools.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=512763&r1=512762&r2=512763
==============================================================================
--- maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/components/trunk/maven-project/src/main/resources/META-INF/plexus/components.xml Wed Feb 28 06:20:13 2007
@@ -309,5 +309,20 @@
         </requirement>
       </requirements>
     </component>
+
+    <component>
+      <role>org.apache.maven.MavenTools</role>
+      <implementation>org.apache.maven.DefaultMavenTools</implementation>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout</role>
+          <role-hint>default</role-hint>
+        </requirement>
+        <requirement>
+          <role>org.apache.maven.artifact.repository.ArtifactRepositoryFactory</role>
+        </requirement>
+      </requirements>
+    </component>
+
   </components>
 </component-set>