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",
"[email protected]");
+
+ 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>