Author: jdcasey
Date: Wed Jul 6 17:17:37 2005
New Revision: 209550
URL: http://svn.apache.org/viewcvs?rev=209550&view=rev
Log:
Working on: MNG-377
o Added maven-plugin-mapping project to handle repository metadata that
contains prefix-to-artifactId mappings for groups of plugins
o Added builder classes for plugin mappings
o Modified maven-artifact and maven-artifact-manager to handle the concept of
repository metadata in addition to artifact metadata.
o Added pluginGroups section to settings.xml, new code to merge these lists of
plugin groups, and a unit test to ensure that this merge is taking place
properly.
o Added maven-plugin-mapping to dependencies of maven-core, along with the list
of builds to be performed by mboot.
Should be ready to incorporate plugin mapping consultation into the lifecycle
executor and the deploy mojo...
Added:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
(with props)
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java
(with props)
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManagementException.java
(with props)
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java
(with props)
maven/components/trunk/maven-plugin-mapping/
maven/components/trunk/maven-plugin-mapping/pom.xml (with props)
maven/components/trunk/maven-plugin-mapping/src/
maven/components/trunk/maven-plugin-mapping/src/main/
maven/components/trunk/maven-plugin-mapping/src/main/java/
maven/components/trunk/maven-plugin-mapping/src/main/java/org/
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/DefaultPluginMappingBuilder.java
(with props)
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/MavenPluginMappingBuilder.java
(with props)
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManagementException.java
(with props)
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java
(with props)
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/metadata/
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/metadata/PluginMappingMetadata.java
(with props)
maven/components/trunk/maven-plugin-mapping/src/main/mdo/
maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo
(with props)
maven/components/trunk/maven-plugin-mapping/src/main/resources/
maven/components/trunk/maven-plugin-mapping/src/test/
maven/components/trunk/maven-plugin-mapping/src/test/java/
maven/components/trunk/maven-settings/src/test/
maven/components/trunk/maven-settings/src/test/java/
maven/components/trunk/maven-settings/src/test/java/org/
maven/components/trunk/maven-settings/src/test/java/org/apache/
maven/components/trunk/maven-settings/src/test/java/org/apache/maven/
maven/components/trunk/maven-settings/src/test/java/org/apache/maven/settings/
maven/components/trunk/maven-settings/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java
(with props)
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java
maven/components/trunk/maven-core/pom.xml
maven/components/trunk/maven-mboot2/src/main/java/MBoot.java
maven/components/trunk/maven-model/pom.xml
maven/components/trunk/maven-settings/settings.mdo
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsUtils.java
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java
Wed Jul 6 17:17:37 2005
@@ -20,6 +20,7 @@
import org.apache.maven.artifact.metadata.ArtifactMetadata;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
import org.apache.maven.wagon.ConnectionException;
import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.TransferFailedException;
@@ -98,6 +99,14 @@
putRemoteFile( repository, source, repository.pathOfMetadata(
artifactMetadata ), null );
}
+ public void putRepositoryMetadata( File source, RepositoryMetadata
metadata, ArtifactRepository repository )
+ throws TransferFailedException
+ {
+ getLogger().info( "Uploading " + metadata );
+
+ putRemoteFile( repository, source, metadata.getRepositoryPath(), null
);
+ }
+
private void putRemoteFile( ArtifactRepository repository, File source,
String remotePath,
TransferListener downloadMonitor )
throws TransferFailedException
@@ -239,6 +248,16 @@
String remotePath = remoteRepository.pathOfMetadata( metadata );
getLogger().info( "Retrieving " + metadata );
+ getRemoteFile( remoteRepository, destination, remotePath, null );
+ }
+
+ public void getRepositoryMetadata( RepositoryMetadata metadata,
ArtifactRepository remoteRepository, File destination )
+ throws TransferFailedException, ResourceDoesNotExistException
+ {
+ String remotePath = metadata.getRepositoryPath();
+
+ getLogger().info( "Retrieving " + metadata );
+
getRemoteFile( remoteRepository, destination, remotePath, null );
}
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java
Wed Jul 6 17:17:37 2005
@@ -20,6 +20,7 @@
import org.apache.maven.artifact.metadata.ArtifactMetadata;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
import org.apache.maven.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.TransferFailedException;
import org.apache.maven.wagon.UnsupportedProtocolException;
@@ -57,10 +58,17 @@
public void getArtifactMetadata( ArtifactMetadata metadata,
ArtifactRepository remoteRepository, File destination )
throws TransferFailedException, ResourceDoesNotExistException;
+ public void putRepositoryMetadata( File source, RepositoryMetadata
metadata, ArtifactRepository repository )
+ throws TransferFailedException;
+
+ public void getRepositoryMetadata( RepositoryMetadata metadata,
ArtifactRepository remoteRepository,
+ File destination )
+ throws TransferFailedException, ResourceDoesNotExistException;
+
void addProxy( String protocol, String host, int port, String username,
String password, String nonProxyHosts );
void addAuthenticationInfo( String repositoryId, String username, String
password, String privateKey,
- String passphrase );
+ String passphrase );
void addMirror( String id, String mirrorOf, String url );
Modified:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
(original)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java
Wed Jul 6 17:17:37 2005
@@ -63,6 +63,11 @@
{
return layout.pathOfMetadata( artifactMetadata );
}
+
+ public String formatDirectory( String directory )
+ {
+ return layout.formatDirectory( directory );
+ }
public String getSnapshotPolicy()
{
Added:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java?rev=209550&view=auto
==============================================================================
---
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
(added)
+++
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
Wed Jul 6 17:17:37 2005
@@ -0,0 +1,67 @@
+package org.apache.maven.artifact.repository.metadata;
+
+import org.apache.maven.artifact.manager.WagonManager;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.wagon.ResourceDoesNotExistException;
+import org.apache.maven.wagon.TransferFailedException;
+
+import java.io.File;
+
+public class DefaultRepositoryMetadataManager
+ implements RepositoryMetadataManager
+{
+
+ // component requirement
+ private WagonManager wagonManager;
+
+ public void get( RepositoryMetadata metadata, ArtifactRepository remote,
ArtifactRepository local )
+ throws RepositoryMetadataManagementException
+ {
+ String realignedPath = local.formatDirectory(
metadata.getRepositoryPath() );
+
+ realignedPath = realignedPath.replace( File.separatorChar, '/' );
+
+ if ( !realignedPath.startsWith( "/" ) )
+ {
+ realignedPath = "/" + realignedPath;
+ }
+
+ realignedPath = "/REPOSITORY-INF/" + remote.getId() + realignedPath;
+
+ File metadataFile = new File( local.getBasedir(), realignedPath );
+
+ try
+ {
+ wagonManager.getRepositoryMetadata( metadata, remote, metadataFile
);
+
+ metadata.setFile( metadataFile );
+ }
+ catch ( TransferFailedException e )
+ {
+ throw new RepositoryMetadataManagementException( metadata, "Failed
to download repository metadata.", e );
+ }
+ catch ( ResourceDoesNotExistException e )
+ {
+ throw new RepositoryMetadataManagementException( metadata, "Remote
repository metadata not found.", e );
+ }
+ }
+
+ public void put( RepositoryMetadata metadata, ArtifactRepository remote )
+ throws RepositoryMetadataManagementException
+ {
+ File metadataFile = metadata.getFile();
+
+ try
+ {
+ wagonManager.putRepositoryMetadata( metadataFile, metadata, remote
);
+
+ metadata.setFile( metadataFile );
+ }
+ catch ( TransferFailedException e )
+ {
+ throw new RepositoryMetadataManagementException( metadata, "Failed
to upload repository metadata.", e );
+ }
+
+ }
+
+}
Propchange:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/metadata/DefaultRepositoryMetadataManager.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java
Wed Jul 6 17:17:37 2005
@@ -46,6 +46,8 @@
String pathOf( Artifact artifact );
String pathOfMetadata( ArtifactMetadata artifactMetadata );
+
+ String formatDirectory( String directory );
String getUrl();
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/ArtifactRepositoryLayout.java
Wed Jul 6 17:17:37 2005
@@ -30,4 +30,6 @@
String pathOf( Artifact artifact );
String pathOfMetadata( ArtifactMetadata metadata );
+
+ String formatDirectory( String directory );
}
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java
Wed Jul 6 17:17:37 2005
@@ -33,7 +33,7 @@
StringBuffer path = new StringBuffer();
- path.append( artifact.getGroupId().replace( '.', '/' ) ).append( '/' );
+ path.append( formatDirectory( artifact.getGroupId() ) ).append( '/' );
path.append( artifact.getArtifactId() ).append( '/' );
path.append( artifact.getBaseVersion() ).append( '/' );
path.append( artifact.getArtifactId() ).append( '-' ).append(
artifact.getVersion() );
@@ -55,7 +55,7 @@
{
StringBuffer path = new StringBuffer();
- path.append( metadata.getGroupId().replace( '.', '/' ) ).append( '/' );
+ path.append( formatDirectory( metadata.getGroupId() ) ).append( '/' );
path.append( metadata.getArtifactId() ).append( '/' );
if ( !metadata.getBaseVersion().equals( "RELEASE" ) )
{
@@ -67,4 +67,8 @@
return path.toString();
}
+ public String formatDirectory( String directory )
+ {
+ return directory.replace( '.', '/' );
+ }
}
Modified:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java
(original)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/LegacyRepositoryLayout.java
Wed Jul 6 17:17:37 2005
@@ -58,5 +58,10 @@
return path.toString();
}
+
+ public String formatDirectory( String directory )
+ {
+ return directory;
+ }
}
Added:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java?rev=209550&view=auto
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java
(added)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java
Wed Jul 6 17:17:37 2005
@@ -0,0 +1,14 @@
+package org.apache.maven.artifact.repository.metadata;
+
+import java.io.File;
+
+public interface RepositoryMetadata
+{
+
+ String getRepositoryPath();
+
+ void setFile( File metadataFile );
+
+ File getFile();
+
+}
Propchange:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadata.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManagementException.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManagementException.java?rev=209550&view=auto
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManagementException.java
(added)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManagementException.java
Wed Jul 6 17:17:37 2005
@@ -0,0 +1,35 @@
+package org.apache.maven.artifact.repository.metadata;
+
+public class RepositoryMetadataManagementException
+ extends Exception
+{
+
+ private final RepositoryMetadata metadata;
+
+ public RepositoryMetadataManagementException( RepositoryMetadata metadata )
+ {
+ super( "Failed to resolve repository metadata: " + metadata + ".");
+
+ this.metadata = metadata;
+ }
+
+ public RepositoryMetadataManagementException( RepositoryMetadata metadata,
String message, Throwable cause )
+ {
+ super( "Failed to resolve repository metadata: " + metadata + ". Error
was: " + cause.getMessage(), cause );
+
+ this.metadata = metadata;
+ }
+
+ public RepositoryMetadataManagementException( RepositoryMetadata metadata,
String message )
+ {
+ super( "Failed to resolve repository metadata: " + metadata + ".");
+
+ this.metadata = metadata;
+ }
+
+ public RepositoryMetadata getMetadata()
+ {
+ return metadata;
+ }
+
+}
Propchange:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManagementException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManagementException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java?rev=209550&view=auto
==============================================================================
---
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java
(added)
+++
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java
Wed Jul 6 17:17:37 2005
@@ -0,0 +1,14 @@
+package org.apache.maven.artifact.repository.metadata;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+
+public interface RepositoryMetadataManager
+{
+
+ void get( RepositoryMetadata repositoryMetadata, ArtifactRepository
remote, ArtifactRepository local )
+ throws RepositoryMetadataManagementException;
+
+ void put( RepositoryMetadata repositoryMetadata, ArtifactRepository remote
)
+ throws RepositoryMetadataManagementException;
+
+}
Propchange:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-artifact/src/main/java/org/apache/maven/artifact/repository/metadata/RepositoryMetadataManager.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/maven-core/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-core/pom.xml?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
--- maven/components/trunk/maven-core/pom.xml (original)
+++ maven/components/trunk/maven-core/pom.xml Wed Jul 6 17:17:37 2005
@@ -44,6 +44,11 @@
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-mapping</artifactId>
+ <version>2.0-beta-1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-registry</artifactId>
<version>2.0-beta-1-SNAPSHOT</version>
</dependency>
Modified: maven/components/trunk/maven-mboot2/src/main/java/MBoot.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-mboot2/src/main/java/MBoot.java?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
--- maven/components/trunk/maven-mboot2/src/main/java/MBoot.java (original)
+++ maven/components/trunk/maven-mboot2/src/main/java/MBoot.java Wed Jul 6
17:17:37 2005
@@ -39,6 +39,7 @@
{
String[] builds = new String[]{"maven-model", "maven-settings",
"maven-monitor", "maven-plugin-api",
"maven-plugin-descriptor", "maven-artifact", "maven-artifact-manager",
"maven-artifact-test",
+ "maven-plugin-mapping",
"maven-script/maven-script-beanshell",
"maven-script/maven-script-marmalade", "maven-project", "maven-profile",
"maven-plugin-registry", "maven-reporting/maven-reporting-api",
"maven-core", "maven-archiver",
"maven-plugin-tools/maven-plugin-tools-api",
"maven-plugin-tools/maven-plugin-tools-java",
@@ -60,6 +61,7 @@
targetVersions.put( "maven-profile", "1.0.0" );
targetVersions.put( "maven-plugin-registry", "1.0.0" );
targetVersions.put( "maven-plugin-descriptor", "1.0.0" );
+ targetVersions.put( "maven-plugin-mapping", "1.0.0" );
MODELLO_TARGET_VERSIONS = Collections.unmodifiableMap( targetVersions
);
@@ -69,6 +71,7 @@
modelFiles.put( "maven-profile", "profiles.mdo" );
modelFiles.put( "maven-plugin-registry", "plugin-registry.mdo" );
modelFiles.put( "maven-plugin-descriptor",
"src/main/mdo/lifecycle.mdo" );
+ modelFiles.put( "maven-plugin-mapping", "src/main/mdo/plugins.mdo" );
MODELLO_MODEL_FILES = Collections.unmodifiableMap( modelFiles );
}
Modified: maven/components/trunk/maven-model/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-model/pom.xml?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
--- maven/components/trunk/maven-model/pom.xml (original)
+++ maven/components/trunk/maven-model/pom.xml Wed Jul 6 17:17:37 2005
@@ -33,6 +33,7 @@
<goal>xpp3-writer</goal>
<goal>java</goal>
<goal>xpp3-reader</goal>
+ <goal>xsd</goal>
</goals>
</execution>
</executions>
Added: maven/components/trunk/maven-plugin-mapping/pom.xml
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-mapping/pom.xml?rev=209550&view=auto
==============================================================================
--- maven/components/trunk/maven-plugin-mapping/pom.xml (added)
+++ maven/components/trunk/maven-plugin-mapping/pom.xml Wed Jul 6 17:17:37 2005
@@ -0,0 +1,58 @@
+<project>
+ <parent>
+ <artifactId>maven</artifactId>
+ <groupId>org.apache.maven</groupId>
+ <version>2.0-beta-1-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-mapping</artifactId>
+ <version>2.0-beta-1-SNAPSHOT</version>
+ <name>Maven Plugin Mapping</name>
+ <description>Maven Plugin Mapping</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>2.0-beta-1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>2.0-beta-1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>2.0-beta-1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>1.0.1-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.modello</groupId>
+ <artifactId>modello-maven-plugin</artifactId>
+ <version>1.0-alpha-3</version>
+ <configuration>
+ <version>1.0.0</version>
+ <model>src/main/mdo/plugins.mdo</model>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>xpp3-writer</goal>
+ <goal>java</goal>
+ <goal>xpp3-reader</goal>
+ <goal>xsd</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Propchange: maven/components/trunk/maven-plugin-mapping/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-plugin-mapping/pom.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/DefaultPluginMappingBuilder.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/DefaultPluginMappingBuilder.java?rev=209550&view=auto
==============================================================================
---
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/DefaultPluginMappingBuilder.java
(added)
+++
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/DefaultPluginMappingBuilder.java
Wed Jul 6 17:17:37 2005
@@ -0,0 +1,101 @@
+package org.apache.maven.plugin.mapping;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import
org.apache.maven.artifact.repository.metadata.RepositoryMetadataManagementException;
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadataManager;
+import org.apache.maven.plugin.mapping.io.xpp3.PluginMappingXpp3Reader;
+import org.apache.maven.plugin.mapping.metadata.PluginMappingMetadata;
+import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.util.Iterator;
+import java.util.List;
+
+public class DefaultPluginMappingBuilder
+ implements MavenPluginMappingBuilder
+{
+
+ // component requirement
+ private RepositoryMetadataManager repositoryMetadataManager;
+
+ public PluginMappingManager loadPluginMappings( List pluginGroupIds, List
pluginRepositories,
+ ArtifactRepository
localRepository )
+ throws RepositoryMetadataManagementException,
PluginMappingManagementException
+ {
+ PluginMappingManager mappingManager = new PluginMappingManager();
+
+ for ( Iterator it = pluginGroupIds.iterator(); it.hasNext(); )
+ {
+ String groupId = (String) it.next();
+
+ File mappingFile = resolveMappingMetadata( groupId,
pluginRepositories, localRepository );
+
+ PluginMap pluginMap = readPluginMap( mappingFile );
+
+ mappingManager.addPluginMap( pluginMap );
+ }
+
+ return mappingManager;
+ }
+
+ private PluginMap readPluginMap( File mappingFile ) throws
PluginMappingManagementException
+ {
+ Reader fileReader = null;
+ try
+ {
+ fileReader = new FileReader( mappingFile );
+
+ PluginMappingXpp3Reader mappingReader = new
PluginMappingXpp3Reader();
+
+ return mappingReader.read(fileReader);
+ }
+ catch ( IOException e )
+ {
+ throw new PluginMappingManagementException( "Cannot read plugin
mappings from: " + mappingFile, e );
+ }
+ catch ( XmlPullParserException e )
+ {
+ throw new PluginMappingManagementException( "Cannot parse plugin
mappings from: " + mappingFile, e );
+ }
+ finally
+ {
+ IOUtil.close( fileReader );
+ }
+ }
+
+ private File resolveMappingMetadata( String groupId, List
pluginRepositories, ArtifactRepository localRepository )
+ throws RepositoryMetadataManagementException
+ {
+ PluginMappingMetadata metadata = new PluginMappingMetadata( groupId );
+
+ RepositoryMetadataManagementException repositoryException = null;
+
+ for ( Iterator repoIterator = pluginRepositories.iterator();
repoIterator.hasNext(); )
+ {
+ ArtifactRepository repository = (ArtifactRepository)
repoIterator.next();
+
+ try
+ {
+ repositoryMetadataManager.get( metadata, repository,
localRepository );
+
+ break;
+ }
+ catch ( RepositoryMetadataManagementException e )
+ {
+ repositoryException = e;
+ }
+ }
+
+ if ( repositoryException != null )
+ {
+ throw repositoryException;
+ }
+
+ return metadata.getFile();
+ }
+
+}
Propchange:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/DefaultPluginMappingBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/DefaultPluginMappingBuilder.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/MavenPluginMappingBuilder.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/MavenPluginMappingBuilder.java?rev=209550&view=auto
==============================================================================
---
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/MavenPluginMappingBuilder.java
(added)
+++
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/MavenPluginMappingBuilder.java
Wed Jul 6 17:17:37 2005
@@ -0,0 +1,15 @@
+package org.apache.maven.plugin.mapping;
+
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import
org.apache.maven.artifact.repository.metadata.RepositoryMetadataManagementException;
+
+import java.util.List;
+
+public interface MavenPluginMappingBuilder
+{
+
+ PluginMappingManager loadPluginMappings( List pluginGroupIds, List
pluginRepositories,
+ ArtifactRepository localRepository
)
+ throws RepositoryMetadataManagementException,
PluginMappingManagementException;
+
+}
Propchange:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/MavenPluginMappingBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/MavenPluginMappingBuilder.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManagementException.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManagementException.java?rev=209550&view=auto
==============================================================================
---
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManagementException.java
(added)
+++
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManagementException.java
Wed Jul 6 17:17:37 2005
@@ -0,0 +1,17 @@
+package org.apache.maven.plugin.mapping;
+
+public class PluginMappingManagementException
+ extends Exception
+{
+
+ public PluginMappingManagementException( String message, Throwable cause )
+ {
+ super( message, cause );
+ }
+
+ public PluginMappingManagementException( String message )
+ {
+ super( message );
+ }
+
+}
Propchange:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManagementException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManagementException.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java?rev=209550&view=auto
==============================================================================
---
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java
(added)
+++
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java
Wed Jul 6 17:17:37 2005
@@ -0,0 +1,68 @@
+package org.apache.maven.plugin.mapping;
+
+import org.apache.maven.model.Plugin;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+public class PluginMappingManager
+{
+
+ private List mappings = new ArrayList();
+
+ private Map pluginDefinitionsByPrefix = new HashMap();
+
+ public void addPluginMap( PluginMap pluginMap )
+ {
+ mappings.add( pluginMap );
+
+ // flush the cache.
+ pluginDefinitionsByPrefix = null;
+ }
+
+ public Plugin getByPrefix( String pluginPrefix )
+ {
+ synchronized ( this )
+ {
+ if ( pluginDefinitionsByPrefix == null )
+ {
+ calculatePluginDefinitionsByPrefix();
+ }
+ }
+
+ return (Plugin) pluginDefinitionsByPrefix.get( pluginPrefix );
+ }
+
+ private void calculatePluginDefinitionsByPrefix()
+ {
+ pluginDefinitionsByPrefix = new HashMap();
+
+ for ( Iterator it = mappings.iterator(); it.hasNext(); )
+ {
+ PluginMap pluginMap = (PluginMap) it.next();
+
+ String groupId = pluginMap.getGroupId();
+
+ for ( Iterator pluginIterator = pluginMap.getPlugins().iterator();
pluginIterator.hasNext(); )
+ {
+ MappedPlugin mapping = (MappedPlugin) pluginIterator.next();
+
+ String prefix = mapping.getPrefix();
+
+ String artifactId = mapping.getArtifactId();
+
+ Plugin plugin = new Plugin();
+
+ plugin.setGroupId( groupId );
+
+ plugin.setArtifactId( artifactId );
+
+ pluginDefinitionsByPrefix.put( prefix, plugin );
+ }
+ }
+ }
+
+}
Propchange:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/PluginMappingManager.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/metadata/PluginMappingMetadata.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/metadata/PluginMappingMetadata.java?rev=209550&view=auto
==============================================================================
---
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/metadata/PluginMappingMetadata.java
(added)
+++
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/metadata/PluginMappingMetadata.java
Wed Jul 6 17:17:37 2005
@@ -0,0 +1,36 @@
+package org.apache.maven.plugin.mapping.metadata;
+
+import org.apache.maven.artifact.repository.metadata.RepositoryMetadata;
+
+import java.io.File;
+
+public class PluginMappingMetadata
+ implements RepositoryMetadata
+{
+ private static final String PLUGIN_MAPPING_FILE = "plugins.xml";
+
+ private final String groupId;
+
+ private File metadataFile;
+
+ public PluginMappingMetadata( String groupId )
+ {
+ this.groupId = groupId;
+ }
+
+ public String getRepositoryPath()
+ {
+ return groupId + "/" + PLUGIN_MAPPING_FILE;
+ }
+
+ public void setFile( File metadataFile )
+ {
+ this.metadataFile = metadataFile;
+ }
+
+ public File getFile()
+ {
+ return metadataFile;
+ }
+
+}
Propchange:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/metadata/PluginMappingMetadata.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-plugin-mapping/src/main/java/org/apache/maven/plugin/mapping/metadata/PluginMappingMetadata.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Added: maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo?rev=209550&view=auto
==============================================================================
--- maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo (added)
+++ maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo Wed
Jul 6 17:17:37 2005
@@ -0,0 +1,59 @@
+<model>
+ <id>plugin-map</id>
+ <name>PluginMapping</name>
+ <description>Mappings for searching for a plugin within a particular
groupId.</description>
+ <defaults>
+ <default>
+ <key>package</key>
+ <value>org.apache.maven.plugin.mapping</value>
+ </default>
+ </defaults>
+ <classes>
+ <class rootElement="true" xml.tagName="mapping">
+ <name>PluginMap</name>
+ <version>1.0.0</version>
+ <description>Root model class, containing various mappings for plugins
in this group.</description>
+ <fields>
+ <field>
+ <name>groupId</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <required>true</required>
+ <description>The groupId for plugins mapped in this
file.</description>
+ </field>
+ <field>
+ <name>plugins</name>
+ <version>1.0.0</version>
+ <required>true</required>
+ <description>The set of plugin mappings</description>
+ <association>
+ <type>MappedPlugin</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
+ </fields>
+ </class>
+ <class xml.tagName="plugin">
+ <name>MappedPlugin</name>
+ <version>1.0.0</version>
+ <description>Mapping information for a single plugin within this
group</description>
+ <comment>NOTE: plugin version is _NOT_ included here, since it is
resolved using a separate algorithm.</comment>
+ <fields>
+ <field>
+ <name>prefix</name>
+ <type>String</type>
+ <required>true</required>
+ <version>1.0.0</version>
+ <description>The plugin invocation prefix (i.e. eclipse for
eclipse:eclipse)</description>
+ </field>
+ <field>
+ <name>artifactId</name>
+ <type>String</type>
+ <required>true</required>
+ <version>1.0.0</version>
+ <description>The plugin artifactId</description>
+ </field>
+ </fields>
+ </class>
+ </classes>
+</model>
\ No newline at end of file
Propchange: maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/components/trunk/maven-plugin-mapping/src/main/mdo/plugins.mdo
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/components/trunk/maven-settings/settings.mdo
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-settings/settings.mdo?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
--- maven/components/trunk/maven-settings/settings.mdo (original)
+++ maven/components/trunk/maven-settings/settings.mdo Wed Jul 6 17:17:37 2005
@@ -180,6 +180,15 @@
<multiplicity>*</multiplicity>
</association>
</field>
+ <field>
+ <name>pluginGroups</name>
+ <version>1.0.0</version>
+ <description>List of groupIds to search for a plugin when that
plugin groupId is not explicitly provided.</description>
+ <association>
+ <type>String</type>
+ <multiplicity>*</multiplicity>
+ </association>
+ </field>
</fields>
<codeSegments>
<codeSegment>
Modified:
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
---
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java
(original)
+++
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/RuntimeInfo.java
Wed Jul 6 17:17:37 2005
@@ -34,8 +34,10 @@
private String localRepositorySourceLevel = TrackableBase.USER_LEVEL;
- private final Settings settings;
+ private Map pluginGroupIdSourceLevels = new HashMap();
+ private final Settings settings;
+
public RuntimeInfo( Settings settings )
{
this.settings = settings;
@@ -79,6 +81,25 @@
public String getSourceLevelForActiveProfile( String activeProfile )
{
String sourceLevel = (String) activeProfileToSourceLevel.get(
activeProfile );
+
+ if ( sourceLevel != null )
+ {
+ return sourceLevel;
+ }
+ else
+ {
+ return settings.getSourceLevel();
+ }
+ }
+
+ public void setPluginGroupIdSourceLevel( String pluginGroupId, String
sourceLevel )
+ {
+ pluginGroupIdSourceLevels.put( pluginGroupId, sourceLevel );
+ }
+
+ public String getSourceLevelForPluginGroupId( String pluginGroupId )
+ {
+ String sourceLevel = (String) pluginGroupIdSourceLevels.get(
pluginGroupId );
if ( sourceLevel != null )
{
Modified:
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsUtils.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsUtils.java?rev=209550&r1=209549&r2=209550&view=diff
==============================================================================
---
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsUtils.java
(original)
+++
maven/components/trunk/maven-settings/src/main/java/org/apache/maven/settings/SettingsUtils.java
Wed Jul 6 17:17:37 2005
@@ -55,6 +55,21 @@
}
}
+ List dominantPluginGroupIds = dominant.getPluginGroups();
+ List recessivePluginGroupIds = recessive.getPluginGroups();
+
+ for ( Iterator it = recessivePluginGroupIds.iterator(); it.hasNext(); )
+ {
+ String pluginGroupId = (String) it.next();
+
+ if ( !dominantPluginGroupIds.contains( pluginGroupId ) )
+ {
+ dominantPluginGroupIds.add( pluginGroupId );
+
+ dominant.getRuntimeInfo().setPluginGroupIdSourceLevel(
pluginGroupId, recessiveSourceLevel );
+ }
+ }
+
if ( StringUtils.isEmpty( dominant.getLocalRepository() ) )
{
dominant.setLocalRepository( recessive.getLocalRepository() );
Added:
maven/components/trunk/maven-settings/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java
URL:
http://svn.apache.org/viewcvs/maven/components/trunk/maven-settings/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java?rev=209550&view=auto
==============================================================================
---
maven/components/trunk/maven-settings/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java
(added)
+++
maven/components/trunk/maven-settings/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java
Wed Jul 6 17:17:37 2005
@@ -0,0 +1,35 @@
+package org.apache.maven.settings;
+
+import java.util.List;
+
+import junit.framework.TestCase;
+
+public class SettingsUtilsTest
+ extends TestCase
+{
+
+ public void testShouldAppendRecessivePluginGroupIds()
+ {
+ Settings dominant = new Settings();
+ dominant.addPluginGroup( "org.apache.maven.plugins" );
+ dominant.addPluginGroup( "org.codehaus.modello" );
+
+ dominant.setRuntimeInfo(new RuntimeInfo(dominant));
+
+ Settings recessive = new Settings();
+ recessive.addPluginGroup( "org.codehaus.plexus" );
+
+ recessive.setRuntimeInfo(new RuntimeInfo(recessive));
+
+ SettingsUtils.merge( dominant, recessive, Settings.GLOBAL_LEVEL );
+
+ List pluginGroups = dominant.getPluginGroups();
+
+ assertNotNull( pluginGroups );
+ assertEquals( 3, pluginGroups.size() );
+ assertEquals( "org.apache.maven.plugins", pluginGroups.get( 0 ) );
+ assertEquals( "org.codehaus.modello", pluginGroups.get( 1 ) );
+ assertEquals( "org.codehaus.plexus", pluginGroups.get( 2 ) );
+ }
+
+}
Propchange:
maven/components/trunk/maven-settings/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/components/trunk/maven-settings/src/test/java/org/apache/maven/settings/SettingsUtilsTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]