jdcasey     2005/04/05 18:28:30

  Modified:    maven-core/src/main/java/org/apache/maven/project
                        DefaultMavenProjectBuilder.java
               maven-script/maven-script-marmalade pom.xml
               maven-core/src/main/resources/org/apache/maven/project
                        pom-4.0.0.xml
               sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean
                        RepositoryCleaner.java
               maven-mboot2/src/main/java/download ArtifactDownloader.java
               maven-core/src/main/java/org/apache/maven/project/inheritance
                        DefaultModelInheritanceAssembler.java
               sandbox/repoclean pom.xml
               maven-model maven.mdo
  Log:
  o Changed the repository to test.maven.codehaus.org for testing of the new 
repository and layout.
  o Added <layout/> element to <repository/> elements in the maven.mdo
  o Added pluginRepository configuration to the super-POM.
  o Tested it all.
  
  Revision  Changes    Path
  1.62      +45 -35    
maven-components/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
  
  Index: DefaultMavenProjectBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java,v
  retrieving revision 1.61
  retrieving revision 1.62
  diff -u -r1.61 -r1.62
  --- DefaultMavenProjectBuilder.java   4 Apr 2005 21:32:52 -0000       1.61
  +++ DefaultMavenProjectBuilder.java   6 Apr 2005 01:28:29 -0000       1.62
  @@ -129,7 +129,7 @@
           try
           {
               Model superModel = getSuperModel();
  -
  +            
               LinkedList lineage = new LinkedList();
   
               List aggregatedRemoteWagonRepositories = 
buildArtifactRepositories( superModel.getRepositories() );
  @@ -146,7 +146,7 @@
   
                   previous = current;
               }
  -
  +            
               project = processProjectLogic( project, localRepository, 
aggregatedRemoteWagonRepositories,
                                              resolveDependencies, 
sourceProject );
   
  @@ -334,24 +334,24 @@
   
           List repos = new ArrayList();
   
  -        // TODO: Replace with repository layout detection. This is a nasty 
hack.
  -        String remoteRepoLayoutId = "legacy";
  -
  -        ArtifactRepositoryLayout remoteRepoLayout = null;
  -        try
  -        {
  -            remoteRepoLayout = (ArtifactRepositoryLayout) container.lookup( 
ArtifactRepositoryLayout.ROLE,
  -                                                                            
remoteRepoLayoutId );
  -        }
  -        catch ( ComponentLookupException e )
  -        {
  -            throw new ProjectBuildingException( "Cannot find repository 
layout for: \'" + remoteRepoLayoutId + "\'.",
  -                                                e );
  -        }
           for ( Iterator i = repositories.iterator(); i.hasNext(); )
           {
               Repository mavenRepo = (Repository) i.next();
   
  +            String layout = mavenRepo.getLayout();
  +
  +            ArtifactRepositoryLayout remoteRepoLayout = null;
  +            try
  +            {
  +                remoteRepoLayout = (ArtifactRepositoryLayout) 
container.lookup( ArtifactRepositoryLayout.ROLE,
  +                                                                             
   layout );
  +            }
  +            catch ( ComponentLookupException e )
  +            {
  +                throw new ProjectBuildingException( "Cannot find layout 
implementation corresponding to: \'" + layout + "\' for remote repository with 
id: \'" + mavenRepo.getId() + "\'.",
  +                                                    e );
  +            }
  +            
               ArtifactRepository artifactRepo = 
artifactRepositoryFactory.createArtifactRepository( mavenRepo, settings,
                                                                                
                     remoteRepoLayout );
   
  @@ -367,38 +367,48 @@
           throws Exception
       {
           List remotePluginRepositories = new ArrayList();
  -
  -        // TODO: needs to be configured from the POM element
  -
  +        
           MavenSettings settings = mavenSettingsBuilder.buildSettings();
   
  -        Repository pluginRepo = new Repository();
  -        pluginRepo.setId( "plugin-repository" );
  -        pluginRepo.setUrl( "http://repo1.maven.org/maven2"; );
  -
  -        // TODO: [jc] change this to detect the repository layout type 
somehow...
  -        String repoLayoutId = "legacy";
  -
  -        ArtifactRepositoryLayout repositoryLayout = 
(ArtifactRepositoryLayout) container.lookup(
  -            ArtifactRepositoryLayout.ROLE, repoLayoutId );
  +        for ( Iterator it = pluginRepositories.iterator(); it.hasNext(); )
  +        {
  +            Repository mavenRepo = (Repository) it.next();
  +            
  +            String layout = mavenRepo.getLayout();
   
  -        ArtifactRepository pluginRepository = 
artifactRepositoryFactory.createArtifactRepository( pluginRepo, settings,
  -                                                                             
                     repositoryLayout );
  +            ArtifactRepositoryLayout repositoryLayout = null;
  +            try
  +            {
  +                repositoryLayout = (ArtifactRepositoryLayout) 
container.lookup( ArtifactRepositoryLayout.ROLE,
  +                                                                             
   layout );
  +            }
  +            catch ( ComponentLookupException e )
  +            {
  +                throw new ProjectBuildingException( "Cannot find layout 
implementation corresponding to: \'" + layout + "\' for remote repository with 
id: \'" + mavenRepo.getId() + "\'.",
  +                                                    e );
  +            }
  +            
  +            ArtifactRepository pluginRepository = 
artifactRepositoryFactory.createArtifactRepository( mavenRepo, settings,
  +                                                                             
                         repositoryLayout );
   
  -        remotePluginRepositories.add( pluginRepository );
  +            remotePluginRepositories.add( pluginRepository );
   
  +        }
  +        
           return remotePluginRepositories;
       }
   
       private ArtifactRepository buildDistributionManagementRepository( 
Repository dmRepo )
           throws Exception
       {
  -        // TODO: needs to be configured from the POM element
  -
  +        if(dmRepo == null)
  +        {
  +            return null;
  +        }
  +        
           MavenSettings settings = mavenSettingsBuilder.buildSettings();
   
  -        // TODO: [jc] change this to detect the repository layout type 
somehow...
  -        String repoLayoutId = "legacy";
  +        String repoLayoutId = dmRepo.getLayout();
   
           ArtifactRepositoryLayout repositoryLayout = 
(ArtifactRepositoryLayout) container.lookup(
               ArtifactRepositoryLayout.ROLE, repoLayoutId );
  
  
  
  1.8       +5 -0      
maven-components/maven-script/maven-script-marmalade/pom.xml
  
  Index: pom.xml
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-script/maven-script-marmalade/pom.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- pom.xml   5 Apr 2005 04:11:03 -0000       1.7
  +++ pom.xml   6 Apr 2005 01:28:29 -0000       1.8
  @@ -23,6 +23,11 @@
       </dependency>
       <dependency>
         <groupId>plexus</groupId>
  +      <artifactId>plexus-utils</artifactId>
  +      <version>1.0-alpha-2</version>
  +    </dependency>
  +    <dependency>
  +      <groupId>plexus</groupId>
         <artifactId>plexus-marmalade-factory</artifactId>
         <version>1.0-alpha-2</version>
       </dependency>
  
  
  
  1.12      +11 -1     
maven-components/maven-core/src/main/resources/org/apache/maven/project/pom-4.0.0.xml
  
  Index: pom-4.0.0.xml
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/main/resources/org/apache/maven/project/pom-4.0.0.xml,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- pom-4.0.0.xml     4 Apr 2005 21:32:53 -0000       1.11
  +++ pom-4.0.0.xml     6 Apr 2005 01:28:29 -0000       1.12
  @@ -6,9 +6,19 @@
       <repository>
         <id>central</id>
         <name>Maven Repository Switchboard</name>
  -      <url>http://repo1.maven.org/maven2</url>
  +      <url>http://test.maven.codehaus.org/maven2</url>
  +      <layout>default</layout>
       </repository>
     </repositories>
  +  
  +  <pluginRepositories>
  +    <pluginRepository>
  +      <id>central</id>
  +      <name>Maven Plugin Repository</name>
  +      <url>http://test.maven.codehaus.org/maven2</url>
  +      <layout>default</layout>
  +    </pluginRepository>
  +  </pluginRepositories>
   
     <build>
       <!-- This all may just fold into plugin parameters -->
  
  
  
  1.9       +53 -0     
maven-components/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/RepositoryCleaner.java
  
  Index: RepositoryCleaner.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/sandbox/repoclean/src/main/java/org/apache/maven/tools/repoclean/RepositoryCleaner.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- RepositoryCleaner.java    5 Apr 2005 02:47:43 -0000       1.8
  +++ RepositoryCleaner.java    6 Apr 2005 01:28:29 -0000       1.9
  @@ -30,6 +30,8 @@
   import org.codehaus.plexus.context.Context;
   import org.codehaus.plexus.logging.AbstractLogEnabled;
   import org.codehaus.plexus.logging.Logger;
  +import org.codehaus.plexus.mailsender.MailMessage;
  +import org.codehaus.plexus.mailsender.MailSender;
   import 
org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
   import org.codehaus.plexus.util.IOUtil;
   
  @@ -38,9 +40,11 @@
   import java.io.File;
   import java.io.FileInputStream;
   import java.io.FileOutputStream;
  +import java.io.FileReader;
   import java.io.IOException;
   import java.io.InputStream;
   import java.io.OutputStream;
  +import java.util.Date;
   import java.util.Iterator;
   import java.util.List;
   
  @@ -55,6 +59,8 @@
       public static final String ROLE = RepositoryCleaner.class.getName();
   
       private ArtifactDigestVerifier artifactDigestVerifier;
  +    
  +    private MailSender mailSender;
   
       private ArtifactConstructionSupport artifactConstructionSupport = new 
ArtifactConstructionSupport();
   
  @@ -68,6 +74,8 @@
           File sourceRepositoryBase = normalizeSourceRepositoryBase( 
configuration.getSourceRepositoryPath() );
   
           File targetRepositoryBase = normalizeTargetRepositoryBase( 
configuration.getTargetRepositoryPath() );
  +        
  +        boolean mailReport = false;
   
           // do not proceed if we cannot produce reports, or if the repository 
is
           // invalid.
  @@ -162,6 +170,11 @@
                   {
                       logger.warn( "Warning encountered while rewriting one or 
more artifacts from source repository to target repository." );
                   }
  +                
  +                if(repoReporter.hasError())
  +                {
  +                    mailReport = true;
  +                }
               }
               finally
               {
  @@ -170,6 +183,46 @@
                       repoReporter.close();
                   }
               }
  +            
  +            if(mailReport)
  +            {
  +                String reportContents = 
readReportFile(repoReporter.getReportFile());
  +                
  +                MailMessage message = new MailMessage();
  +                message.setContent(reportContents);
  +                message.setSubject("[REPOCLEAN] Error converting 
repository.");
  +                message.setFromName("Repoclean");
  +                message.setFromAddress("[EMAIL PROTECTED]");
  +                message.setSendDate(new Date());
  +                message.addTo("Maven-2 Developers List", 
"m2-dev@maven.apache.org");
  +                
  +                mailSender.send(message);
  +            }
  +        }
  +        
  +    }
  +
  +    private String readReportFile( File reportFile ) throws IOException
  +    {
  +        FileReader reader = null;
  +        try
  +        {
  +            reader = new FileReader(reportFile);
  +            
  +            StringBuffer reportContent = new StringBuffer();
  +            char[] buffer = new char[512];
  +            int read = -1;
  +            
  +            while((read = reader.read(buffer)) > -1)
  +            {
  +                reportContent.append(buffer, 0, read);
  +            }
  +            
  +            return reportContent.toString();
  +        }
  +        finally
  +        {
  +            IOUtil.close(reader);
           }
       }
   
  
  
  
  1.13      +2 -1      
maven-components/maven-mboot2/src/main/java/download/ArtifactDownloader.java
  
  Index: ArtifactDownloader.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-mboot2/src/main/java/download/ArtifactDownloader.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ArtifactDownloader.java   5 Apr 2005 04:11:03 -0000       1.12
  +++ ArtifactDownloader.java   6 Apr 2005 01:28:29 -0000       1.13
  @@ -117,7 +117,8 @@
           if ( repositories.isEmpty() )
           {
               // TODO: use super POM?
  -            Repository repository = new Repository( 
"http://repo1.maven.org/maven2";, Repository.LAYOUT_LEGACY );
  +            Repository repository = new Repository( 
"http://test.maven.codehaus.org/maven2";, Repository.LAYOUT_DEFAULT );
  +//            Repository repository = new Repository( 
"http://repo1.maven.org/maven2";, Repository.LAYOUT_LEGACY );
               remoteRepos.add( repository );
           }
       }
  
  
  
  1.27      +18 -0     
maven-components/maven-core/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java
  
  Index: DefaultModelInheritanceAssembler.java
  ===================================================================
  RCS file: 
/home/cvs/maven-components/maven-core/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- DefaultModelInheritanceAssembler.java     22 Mar 2005 11:42:23 -0000      
1.26
  +++ DefaultModelInheritanceAssembler.java     6 Apr 2005 01:28:29 -0000       
1.27
  @@ -27,9 +27,12 @@
   import org.apache.maven.model.Repository;
   import org.apache.maven.model.Scm;
   import org.apache.maven.util.Xpp3DomUtils;
  +import org.codehaus.plexus.logging.AbstractLogEnabled;
   import org.codehaus.plexus.util.StringUtils;
   import org.codehaus.plexus.util.xml.Xpp3Dom;
   
  +import java.util.ArrayList;
  +import java.util.Collections;
   import java.util.Iterator;
   import java.util.List;
   import java.util.Map;
  @@ -43,6 +46,7 @@
    * model.
    */
   public class DefaultModelInheritanceAssembler
  +    extends AbstractLogEnabled
       implements ModelInheritanceAssembler
   {
       public void assembleModelInheritance( Model child, Model parent )
  @@ -151,6 +155,20 @@
               }
           }
   
  +        // Plugin Repositories :: aggregate
  +        List parentPluginRepositories = parent.getPluginRepositories();
  +        List childPluginRepositories = child.getPluginRepositories();
  +        
  +        for ( Iterator iterator = parentPluginRepositories.iterator(); 
iterator.hasNext(); )
  +        {
  +            Repository repository = (Repository) iterator.next();
  +
  +            if ( !childPluginRepositories.contains( repository ) )
  +            {
  +                child.addPluginRepository( repository );
  +            }
  +        }
  +        
           // Plugins are not aggregated
   
           // Reports :: aggregate
  
  
  
  1.6       +12 -0     maven-components/sandbox/repoclean/pom.xml
  
  Index: pom.xml
  ===================================================================
  RCS file: /home/cvs/maven-components/sandbox/repoclean/pom.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- pom.xml   1 Apr 2005 16:03:43 -0000       1.5
  +++ pom.xml   6 Apr 2005 01:28:29 -0000       1.6
  @@ -14,6 +14,18 @@
       </dependency>
       <dependency>
         <groupId>plexus</groupId>
  +      <artifactId>plexus-mail-sender-api</artifactId>
  +      <version>1.0-alpha-1-SNAPSHOT</version>
  +      <scope>compile</scope>
  +    </dependency>
  +    <dependency>
  +      <groupId>plexus</groupId>
  +      <artifactId>plexus-mail-sender-simple</artifactId>
  +      <version>1.0-alpha-1-SNAPSHOT</version>
  +      <scope>compile</scope>
  +    </dependency>
  +    <dependency>
  +      <groupId>plexus</groupId>
         <artifactId>plexus-utils</artifactId>
         <version>1.0-alpha-2</version>
         <scope>compile</scope>
  
  
  
  1.96      +7 -0      maven-components/maven-model/maven.mdo
  
  Index: maven.mdo
  ===================================================================
  RCS file: /home/cvs/maven-components/maven-model/maven.mdo,v
  retrieving revision 1.95
  retrieving revision 1.96
  diff -u -r1.95 -r1.96
  --- maven.mdo 30 Mar 2005 03:30:08 -0000      1.95
  +++ maven.mdo 6 Apr 2005 01:28:29 -0000       1.96
  @@ -1860,6 +1860,13 @@
             <type>String</type>
             <defaultValue>daily</defaultValue>
           </field>
  +        <field>
  +          <name>layout</name>
  +          <version>4.0.0</version>
  +          <description>The type of layout this repository uses for locating 
and storing aritfacts - can be "legacy" or "default".</description>
  +          <type>String</type>
  +          <defaultValue>default</defaultValue>
  +        </field>
         </fields>
         <codeSegments>
           <codeSegment>
  
  
  

Reply via email to