diff --git a/benchmark/run b/benchmark/run index abea352db2..44a2e4c46d 100755 --- a/benchmark/run +++ b/benchmark/run @@ -10,7 +10,7 @@ rm -rf target echo Run with m2... -time -p m2 jar:jar > /dev/null +time -p m2 -B package > /dev/null rm -rf target diff --git a/maven-archetype/maven-archetype-core/pom.xml b/maven-archetype/maven-archetype-core/pom.xml index fc6195084d..90ce3daa9f 100644 --- a/maven-archetype/maven-archetype-core/pom.xml +++ b/maven-archetype/maven-archetype-core/pom.xml @@ -7,7 +7,7 @@ 4.0.0 maven-archetype-core jar - 1.0-alpha-1 + 1.0-alpha-2-SNAPSHOT plexus @@ -22,7 +22,13 @@ org.apache.maven maven-artifact - 2.0-alpha-2 + 2.0-SNAPSHOT + + + org.apache.maven + maven-artifact-manager + 2.0-SNAPSHOT + test org.apache.maven.wagon diff --git a/maven-archetype/maven-archetype-core/src/test/java/org/apache/maven/archetype/ArchetypeTest.java b/maven-archetype/maven-archetype-core/src/test/java/org/apache/maven/archetype/ArchetypeTest.java index c54cad9dc6..db9efa53a2 100644 --- a/maven-archetype/maven-archetype-core/src/test/java/org/apache/maven/archetype/ArchetypeTest.java +++ b/maven-archetype/maven-archetype-core/src/test/java/org/apache/maven/archetype/ArchetypeTest.java @@ -16,6 +16,7 @@ * limitations under the License. */ +import org.apache.maven.artifact.repository.DefaultArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.codehaus.plexus.PlexusTestCase; @@ -60,12 +61,12 @@ public void testArchetype() "legacy" ); String mavenRepoLocal = getTestFile( "target/local-repository" ).toURL().toString(); - ArtifactRepository localRepository = new ArtifactRepository( "local", mavenRepoLocal, layout ); + ArtifactRepository localRepository = new DefaultArtifactRepository( "local", mavenRepoLocal, layout ); List remoteRepositories = new ArrayList(); String mavenRepoRemote = getTestFile( "src/test/repository" ).toURL().toString(); - ArtifactRepository remoteRepository = new ArtifactRepository( "remote", mavenRepoRemote, layout ); + ArtifactRepository remoteRepository = new DefaultArtifactRepository( "remote", mavenRepoRemote, layout ); remoteRepositories.add( remoteRepository ); diff --git a/maven-archiver/pom.xml b/maven-archiver/pom.xml index 4e34c17050..0820642cf2 100644 --- a/maven-archiver/pom.xml +++ b/maven-archiver/pom.xml @@ -7,6 +7,7 @@ maven-archiver Maven Archiver + 2.0-SNAPSHOT plexus diff --git a/maven-artifact-ant/pom.xml b/maven-artifact-ant/pom.xml index 0490f23756..80823a8ddf 100755 --- a/maven-artifact-ant/pom.xml +++ b/maven-artifact-ant/pom.xml @@ -14,16 +14,19 @@ org.apache.maven - maven-artifact + maven-artifact-manager 2.0-SNAPSHOT - + + + org.apache.maven + maven-artifact + 2.0-SNAPSHOT org.apache.maven diff --git a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java index ea613b6b4e..37b3399ad8 100755 --- a/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java +++ b/maven-artifact-ant/src/main/java/org/apache/maven/artifact/ant/AbstractArtifactTask.java @@ -17,8 +17,9 @@ */ import org.apache.maven.artifact.manager.WagonManager; -import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.DefaultArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; +import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; @@ -75,7 +76,7 @@ protected ArtifactRepository createLocalArtifactRepository() CustomWagonManager manager = (CustomWagonManager) lookup( WagonManager.ROLE ); manager.setLocalRepository( localRepository.getLocation() ); - return new ArtifactRepository( "local", "file://" + localRepository.getLocation(), repositoryLayout ); + return new DefaultArtifactRepository( "local", "file://" + localRepository.getLocation(), repositoryLayout ); } protected ArtifactRepository createRemoteArtifactRepository( RemoteRepository repository ) diff --git a/maven-artifact-manager/pom.xml b/maven-artifact-manager/pom.xml new file mode 100644 index 0000000000..a75868e060 --- /dev/null +++ b/maven-artifact-manager/pom.xml @@ -0,0 +1,35 @@ + + 4.0.0 + + org.apache.maven + maven + 2.0-SNAPSHOT + + maven-artifact-manager + 2.0-SNAPSHOT + MAven Artifact Manager + http://maven.apache.org + + + org.apache.maven + maven-artifact + 2.0-SNAPSHOT + + + plexus + plexus-container-default + 1.0-alpha-4-SNAPSHOT + + + org.apache.maven.wagon + wagon-provider-api + 1.0-alpha-4 + + + org.apache.maven.wagon + wagon-file + 1.0-alpha-4 + test + + + diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java similarity index 100% rename from maven-artifact/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java similarity index 100% rename from maven-artifact/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/installer/DefaultArtifactInstaller.java diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/ChecksumFailedException.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/ChecksumFailedException.java similarity index 96% rename from maven-artifact/src/main/java/org/apache/maven/artifact/ChecksumFailedException.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/ChecksumFailedException.java index 6d6ec60776..68f25ba984 100755 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/ChecksumFailedException.java +++ b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/ChecksumFailedException.java @@ -1,4 +1,4 @@ -package org.apache.maven.artifact; +package org.apache.maven.artifact.manager; /* * Copyright 2001-2005 The Apache Software Foundation. diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java similarity index 89% rename from maven-artifact/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java index 638719b1c2..e42b1f5861 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java +++ b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/DefaultWagonManager.java @@ -17,9 +17,9 @@ */ import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.ChecksumFailedException; 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.wagon.ConnectionException; import org.apache.maven.wagon.ResourceDoesNotExistException; import org.apache.maven.wagon.TransferFailedException; @@ -78,8 +78,8 @@ public Wagon getWagon( String protocol ) } catch ( ComponentLookupException e ) { - throw new UnsupportedProtocolException( "Cannot find wagon which supports the requested protocol: " - + protocol, e ); + throw new UnsupportedProtocolException( + "Cannot find wagon which supports the requested protocol: " + protocol, e ); } return wagon; @@ -99,7 +99,7 @@ public void putArtifactMetadata( File source, ArtifactMetadata artifactMetadata, } private void putRemoteFile( ArtifactRepository repository, File source, String remotePath, - TransferListener downloadMonitor ) + TransferListener downloadMonitor ) throws TransferFailedException { String protocol = repository.getProtocol(); @@ -139,7 +139,8 @@ private void putRemoteFile( ArtifactRepository repository, File source, String r try { - wagon.connect( repository, getAuthenticationInfo( repository.getId() ), getProxy( protocol ) ); + wagon.connect( new Repository( repository.getId(), repository.getUrl() ), + getAuthenticationInfo( repository.getId() ), getProxy( protocol ) ); wagon.put( source, remotePath ); @@ -242,17 +243,17 @@ public void getArtifactMetadata( ArtifactMetadata metadata, ArtifactRepository r } private void getRemoteFile( ArtifactRepository repository, File destination, String remotePath, - TransferListener downloadMonitor ) + TransferListener downloadMonitor ) throws TransferFailedException, ResourceDoesNotExistException, ChecksumFailedException { // TODO: better excetpions - transfer failed is not enough? Wagon wagon; - Repository mirror = getMirror( repository.getId() ); + ArtifactRepository mirror = getMirror( repository.getId() ); if ( mirror != null ) { - repository = repository.createMirror( mirror ); + repository = mirror; } String protocol = repository.getProtocol(); @@ -291,22 +292,23 @@ private void getRemoteFile( ArtifactRepository repository, File destination, Str try { - wagon.connect( repository, getAuthenticationInfo( repository.getId() ), getProxy( protocol ) ); + wagon.connect( new Repository( repository.getId(), repository.getUrl() ), + getAuthenticationInfo( repository.getId() ), getProxy( protocol ) ); boolean firstRun = true; boolean retry = false; - + // this will run at most twice. The first time, the firstRun flag is turned off, and if the retry flag // is set on the first run, it will be turned off and not re-set on the second try. This is because the // only way the retry flag can be set is if ( firstRun == true ). - while( firstRun || retry ) + while ( firstRun || retry ) { // reset the retry flag. retry = false; - + // This should take care of creating destination directory now on wagon.get( remotePath, temp ); - + // keep the checksum files from showing up on the download monitor... if ( downloadMonitor != null ) { @@ -327,13 +329,14 @@ private void getRemoteFile( ArtifactRepository repository, File destination, Str if ( sha1TryException instanceof ChecksumFailedException ) { // if this is the second try, handle the problem...otherwise, let it try again. - if( firstRun ) + if ( firstRun ) { retry = true; } else { - handleChecksumFailure( repository, sha1TryException.getMessage(), sha1TryException.getCause() ); + handleChecksumFailure( repository, sha1TryException.getMessage(), + sha1TryException.getCause() ); } } // if this IS NOT a ChecksumFailedException, it was a problem with transfer/read of the checksum @@ -348,22 +351,24 @@ private void getRemoteFile( ArtifactRepository repository, File destination, Str { // if we also fail to verify based on the MD5 checksum, and the checksum transfer/read // succeeded, then we need to determine whether to retry or handle it as a failure. - if( md5TryException instanceof ChecksumFailedException ) + if ( md5TryException instanceof ChecksumFailedException ) { // only retry once. - if( firstRun ) + if ( firstRun ) { retry = true; } else { - handleChecksumFailure( repository, md5TryException.getMessage(), md5TryException.getCause() ); + handleChecksumFailure( repository, md5TryException.getMessage(), + md5TryException.getCause() ); } } // otherwise, this was a failed transfer, and we don't want to retry. else { - handleChecksumFailure( repository, "Error retrieving checksum file for " + destination, md5TryException ); + handleChecksumFailure( repository, "Error retrieving checksum file for " + destination, + md5TryException ); } } } @@ -375,7 +380,7 @@ private void getRemoteFile( ArtifactRepository repository, File destination, Str { wagon.addTransferListener( downloadMonitor ); } - + // unset the firstRun flag, so we don't get caught in an infinite loop... firstRun = false; } @@ -429,7 +434,7 @@ private void getRemoteFile( ArtifactRepository repository, File destination, Str private void handleChecksumFailure( ArtifactRepository repository, String message, Throwable cause ) throws ChecksumFailedException { - if( ArtifactRepository.CHECKSUM_POLICY_FAIL.equals( repository.getChecksumPolicy() ) ) + if ( ArtifactRepository.CHECKSUM_POLICY_FAIL.equals( repository.getChecksumPolicy() ) ) { throw new ChecksumFailedException( message, cause ); } @@ -440,7 +445,7 @@ private void handleChecksumFailure( ArtifactRepository repository, String messag } private void verifyChecksum( ChecksumObserver checksumObserver, File destination, String remotePath, - String checksumFileExtension, Wagon wagon ) + String checksumFileExtension, Wagon wagon ) throws WagonException { try @@ -448,8 +453,8 @@ private void verifyChecksum( ChecksumObserver checksumObserver, File destination // grab it first, because it's about to change... String actualChecksum = checksumObserver.getActualChecksum(); - File checksumFile = new File( destination + ".sha1" ); - wagon.get( remotePath + ".sha1", checksumFile ); + File checksumFile = new File( destination + checksumFileExtension ); + wagon.get( remotePath + checksumFileExtension, checksumFile ); String expectedChecksum = FileUtils.fileRead( checksumFile ); if ( !expectedChecksum.equals( actualChecksum ) ) @@ -457,13 +462,14 @@ private void verifyChecksum( ChecksumObserver checksumObserver, File destination // getLogger().warn( // "*** CHECKSUM MISMATCH - currently disabled fail due to bad repository checksums ***" ); - throw new ChecksumFailedException( "Checksum failed on download: local = '" + actualChecksum - + "'; remote = '" + expectedChecksum + "'" ); + throw new ChecksumFailedException( + "Checksum failed on download: local = '" + actualChecksum + "'; remote = '" + expectedChecksum + + "'" ); } } catch ( IOException e ) { - throw new TransferFailedException( "Invalid SHA-1 checksum file", e ); + throw new TransferFailedException( "Invalid checksum file", e ); } } @@ -501,9 +507,9 @@ public AuthenticationInfo getAuthenticationInfo( String id ) return (AuthenticationInfo) authenticationInfoMap.get( id ); } - public Repository getMirror( String mirrorOf ) + public ArtifactRepository getMirror( String mirrorOf ) { - return (Repository) mirrors.get( mirrorOf ); + return (ArtifactRepository) mirrors.get( mirrorOf ); } /** @@ -518,7 +524,8 @@ public Repository getMirror( String mirrorOf ) * property format: *.foo.com|localhost. * @todo [BP] would be nice to configure this via plexus in some way */ - public void addProxy( String protocol, String host, int port, String username, String password, String nonProxyHosts ) + public void addProxy( String protocol, String host, int port, String username, String password, + String nonProxyHosts ) { ProxyInfo proxyInfo = new ProxyInfo(); proxyInfo.setHost( host ); @@ -546,7 +553,7 @@ public void setDownloadMonitor( TransferListener downloadMonitor ) } public void addAuthenticationInfo( String repositoryId, String username, String password, String privateKey, - String passphrase ) + String passphrase ) { AuthenticationInfo authInfo = new AuthenticationInfo(); @@ -563,7 +570,7 @@ public void addAuthenticationInfo( String repositoryId, String username, String public void addMirror( String id, String mirrorOf, String url ) { - Repository mirror = new Repository( id, url ); + ArtifactRepository mirror = new DefaultArtifactRepository( id, url, null ); mirrors.put( mirrorOf, mirror ); } diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/manager/WagonManager.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java similarity index 97% rename from maven-artifact/src/main/java/org/apache/maven/artifact/manager/WagonManager.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java index a5789e9520..dcd8ac93d5 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/manager/WagonManager.java +++ b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/manager/WagonManager.java @@ -19,13 +19,14 @@ import org.apache.maven.artifact.Artifact; 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.wagon.ResourceDoesNotExistException; import org.apache.maven.wagon.TransferFailedException; import org.apache.maven.wagon.UnsupportedProtocolException; import org.apache.maven.wagon.Wagon; import org.apache.maven.wagon.authentication.AuthenticationInfo; -import org.apache.maven.wagon.proxy.ProxyInfo; import org.apache.maven.wagon.events.TransferListener; +import org.apache.maven.wagon.proxy.ProxyInfo; import java.io.File; import java.util.List; diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractVersionArtifactMetadata.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/AbstractVersionArtifactMetadata.java similarity index 100% rename from maven-artifact/src/main/java/org/apache/maven/artifact/metadata/AbstractVersionArtifactMetadata.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/AbstractVersionArtifactMetadata.java diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java similarity index 100% rename from maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/ReleaseArtifactMetadata.java diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java similarity index 100% rename from maven-artifact/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java index 632d1fdc34..01041d3989 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java +++ b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/metadata/SnapshotArtifactMetadata.java @@ -16,8 +16,8 @@ * limitations under the License. */ -import org.codehaus.plexus.util.StringUtils; import org.apache.maven.artifact.Artifact; +import org.codehaus.plexus.util.StringUtils; import java.io.File; import java.text.DateFormat; diff --git a/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java new file mode 100644 index 0000000000..ca02986853 --- /dev/null +++ b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepository.java @@ -0,0 +1,82 @@ +package org.apache.maven.artifact.repository; + +/* + * Copyright 2001-2005 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.metadata.ArtifactMetadata; +import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; +import org.apache.maven.wagon.repository.Repository; + +/** + * This class is an abstraction of the location from/to resources can be + * transfered. + * + * @author Michal Maczka + * @version $Id$ + */ +public class DefaultArtifactRepository + extends Repository + implements ArtifactRepository +{ + private final String snapshotPolicy; + + private final String checksumPolicy; + + private final ArtifactRepositoryLayout layout; + + public DefaultArtifactRepository( String id, String url, ArtifactRepositoryLayout layout ) + { + this( id, url, layout, SNAPSHOT_POLICY_NEVER, CHECKSUM_POLICY_WARN ); + } + + public DefaultArtifactRepository( String id, String url, ArtifactRepositoryLayout layout, String snapshotPolicy, String checksumPolicy ) + { + super( id, url ); + + this.layout = layout; + + this.snapshotPolicy = snapshotPolicy; + + this.checksumPolicy = checksumPolicy; + } + + public String pathOf( Artifact artifact ) + { + return layout.pathOf( artifact ); + } + + public String pathOfMetadata( ArtifactMetadata artifactMetadata ) + { + return layout.pathOfMetadata( artifactMetadata ); + } + + public String getSnapshotPolicy() + { + return snapshotPolicy; + } + + public String getChecksumPolicy() + { + return checksumPolicy; + } + + public boolean failOnChecksumMismatch() + { + return CHECKSUM_POLICY_FAIL.equals( checksumPolicy ); + } + +} \ No newline at end of file diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java similarity index 92% rename from maven-artifact/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java index d3c08d03f9..abaeec6e26 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java +++ b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/repository/DefaultArtifactRepositoryFactory.java @@ -17,13 +17,11 @@ */ import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; -import org.codehaus.plexus.logging.AbstractLogEnabled; /** * @author jdcasey */ public class DefaultArtifactRepositoryFactory - extends AbstractLogEnabled implements ArtifactRepositoryFactory { // TODO: use settings? @@ -61,7 +59,7 @@ public ArtifactRepository createArtifactRepository( String id, String url, csumPolicy = ArtifactRepository.CHECKSUM_POLICY_FAIL; } - repo = new ArtifactRepository( id, url, repositoryLayout, snapPolicy, csumPolicy ); + repo = new DefaultArtifactRepository( id, url, repositoryLayout, snapPolicy, csumPolicy ); return repo; } diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java similarity index 54% rename from maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java index 6f55f3bf87..d745cf5e02 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java +++ b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactResolver.java @@ -32,16 +32,10 @@ import java.io.File; import java.util.Collections; -import java.util.HashMap; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; -import java.util.Map; import java.util.Set; -/** - * @todo create an AbstractArtifactResolver that does the transitive boilerplate - */ public class DefaultArtifactResolver extends AbstractLogEnabled implements ArtifactResolver @@ -56,6 +50,8 @@ public class DefaultArtifactResolver protected ArtifactFactory artifactFactory; + private ArtifactCollector artifactCollector; + // ---------------------------------------------------------------------- // Implementation // ---------------------------------------------------------------------- @@ -75,8 +71,9 @@ public void resolve( Artifact artifact, List remoteRepositories, ArtifactReposit // ---------------------------------------------------------------------- Logger logger = getLogger(); - logger.debug( "Resolving: " + artifact.getId() + " from:\n" + "{localRepository: " + localRepository + "}\n" + - "{remoteRepositories: " + remoteRepositories + "}" ); + logger.debug( + "Resolving: " + artifact.getId() + " from:\n" + "{localRepository: " + localRepository + "}\n" + + "{remoteRepositories: " + remoteRepositories + "}" ); String localPath = localRepository.pathOf( artifact ); @@ -144,7 +141,8 @@ public ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteR { ArtifactResolutionResult artifactResolutionResult; - artifactResolutionResult = collect( artifacts, localRepository, remoteRepositories, source, filter ); + artifactResolutionResult = artifactCollector.collect( artifacts, localRepository, remoteRepositories, source, + filter, artifactFactory ); for ( Iterator i = artifactResolutionResult.getArtifacts().values().iterator(); i.hasNext(); ) { @@ -170,138 +168,4 @@ public ArtifactResolutionResult resolveTransitively( Artifact artifact, List rem { return resolveTransitively( Collections.singleton( artifact ), remoteRepositories, localRepository, source ); } - - // ---------------------------------------------------------------------- - // - // ---------------------------------------------------------------------- - - private ArtifactResolutionResult collect( Set artifacts, ArtifactRepository localRepository, - List remoteRepositories, ArtifactMetadataSource source, - ArtifactFilter filter ) - throws ArtifactResolutionException - { - ArtifactResolutionResult result = new ArtifactResolutionResult(); - - Map resolvedArtifacts = new HashMap(); - - List queue = new LinkedList(); - - queue.add( artifacts ); - - while ( !queue.isEmpty() ) - { - Set currentArtifacts = (Set) queue.remove( 0 ); - - for ( Iterator i = currentArtifacts.iterator(); i.hasNext(); ) - { - Artifact newArtifact = (Artifact) i.next(); - - String id = newArtifact.getDependencyConflictId(); - - if ( resolvedArtifacts.containsKey( id ) ) - { - Artifact knownArtifact = (Artifact) resolvedArtifacts.get( id ); - - String newVersion = newArtifact.getVersion(); - - String knownVersion = knownArtifact.getVersion(); - - if ( !newVersion.equals( knownVersion ) ) - { - addConflict( result, knownArtifact, newArtifact ); - } - - // TODO: scope handler - boolean updateScope = false; - if ( Artifact.SCOPE_RUNTIME.equals( newArtifact.getScope() ) && - Artifact.SCOPE_TEST.equals( knownArtifact.getScope() ) ) - { - updateScope = true; - } - - if ( Artifact.SCOPE_COMPILE.equals( newArtifact.getScope() ) && - !Artifact.SCOPE_COMPILE.equals( knownArtifact.getScope() ) ) - { - updateScope = true; - } - - if ( updateScope ) - { - // TODO: Artifact factory? - // TODO: [jc] Is this a better way to centralize artifact construction here? - - Artifact artifact = artifactFactory.createArtifact( knownArtifact.getGroupId(), - knownArtifact.getArtifactId(), - knownVersion, newArtifact.getScope(), - knownArtifact.getType() ); - resolvedArtifacts.put( artifact.getDependencyConflictId(), artifact ); - } - } - else - { - // ---------------------------------------------------------------------- - // It's the first time we have encountered this artifact - // ---------------------------------------------------------------------- - - if ( filter != null && !filter.include( newArtifact ) ) - { - continue; - } - - resolvedArtifacts.put( id, newArtifact ); - - Set referencedDependencies = null; - - try - { - referencedDependencies = source.retrieve( newArtifact, localRepository, remoteRepositories ); - } - catch ( ArtifactMetadataRetrievalException e ) - { - throw new TransitiveArtifactResolutionException( e.getMessage(), newArtifact, - remoteRepositories, e ); - } - - // the pom for given dependency exisit we will add it to the - // queue - queue.add( referencedDependencies ); - } - } - } - - // ---------------------------------------------------------------------- - // the dependencies list is keyed by groupId+artifactId+type - // so it must be 'rekeyed' to the complete id: - // groupId+artifactId+type+version - // ---------------------------------------------------------------------- - - Map artifactResult = result.getArtifacts(); - - for ( Iterator it = resolvedArtifacts.values().iterator(); it.hasNext(); ) - { - Artifact artifact = (Artifact) it.next(); - - artifactResult.put( artifact.getId(), artifact ); - } - - return result; - } - - private void addConflict( ArtifactResolutionResult result, Artifact knownArtifact, Artifact newArtifact ) - { - List conflicts; - - conflicts = (List) result.getConflicts().get( newArtifact.getDependencyConflictId() ); - - if ( conflicts == null ) - { - conflicts = new LinkedList(); - - conflicts.add( knownArtifact ); - - result.getConflicts().put( newArtifact.getDependencyConflictId(), conflicts ); - } - - conflicts.add( newArtifact ); - } } \ No newline at end of file diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java similarity index 100% rename from maven-artifact/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/AbstractVersionTransformation.java diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java similarity index 100% rename from maven-artifact/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/ReleaseArtifactTransformation.java diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java b/maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java similarity index 100% rename from maven-artifact/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java rename to maven-artifact-manager/src/main/java/org/apache/maven/artifact/transform/SnapshotTransformation.java diff --git a/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml b/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml new file mode 100644 index 0000000000..6ce72633eb --- /dev/null +++ b/maven-artifact-manager/src/main/resources/META-INF/plexus/components.xml @@ -0,0 +1,104 @@ + + + + + org.apache.maven.artifact.manager.WagonManager + org.apache.maven.artifact.manager.DefaultWagonManager + + + + + org.apache.maven.artifact.transform.ArtifactTransformation + snapshot + org.apache.maven.artifact.transform.SnapshotTransformation + + + org.apache.maven.artifact.manager.WagonManager + + + + + + org.apache.maven.artifact.transform.ArtifactTransformation + release + org.apache.maven.artifact.transform.ReleaseArtifactTransformation + + + org.apache.maven.artifact.manager.WagonManager + + + + + + org.apache.maven.artifact.resolver.ArtifactResolver + org.apache.maven.artifact.resolver.DefaultArtifactResolver + + + org.apache.maven.artifact.manager.WagonManager + + + org.apache.maven.artifact.transform.ArtifactTransformation + artifactTransformations + + + org.apache.maven.artifact.factory.ArtifactFactory + + + org.apache.maven.artifact.resolver.ArtifactCollector + + + + + + + org.apache.maven.artifact.installer.ArtifactInstaller + org.apache.maven.artifact.installer.DefaultArtifactInstaller + + + org.apache.maven.artifact.transform.ArtifactTransformation + artifactTransformations + + + + + + + org.apache.maven.artifact.deployer.ArtifactDeployer + org.apache.maven.artifact.deployer.DefaultArtifactDeployer + + + org.apache.maven.artifact.manager.WagonManager + + + org.apache.maven.artifact.transform.ArtifactTransformation + artifactTransformations + + + + + + org.apache.maven.artifact.repository.ArtifactRepositoryFactory + org.apache.maven.artifact.repository.DefaultArtifactRepositoryFactory + + + diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/ArtifactComponentTestCase.java b/maven-artifact-manager/src/test/java/org/apache/maven/artifact/ArtifactComponentTestCase.java similarity index 86% rename from maven-artifact/src/test/java/org/apache/maven/artifact/ArtifactComponentTestCase.java rename to maven-artifact-manager/src/test/java/org/apache/maven/artifact/ArtifactComponentTestCase.java index 724fedb916..d2118177e8 100644 --- a/maven-artifact/src/test/java/org/apache/maven/artifact/ArtifactComponentTestCase.java +++ b/maven-artifact-manager/src/test/java/org/apache/maven/artifact/ArtifactComponentTestCase.java @@ -16,9 +16,10 @@ package org.apache.maven.artifact; -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.artifact.handler.DefaultArtifactHandler; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.DefaultArtifactRepository; +import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.codehaus.plexus.PlexusTestCase; import java.io.File; @@ -55,7 +56,8 @@ protected ArtifactRepository badLocalRepository() ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); - ArtifactRepository localRepository = new ArtifactRepository( "test", "file://" + f.getPath(), repoLayout ); + ArtifactRepository localRepository = new DefaultArtifactRepository( "test", "file://" + f.getPath(), + repoLayout ); return localRepository; } @@ -75,7 +77,8 @@ protected ArtifactRepository localRepository() ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); - ArtifactRepository localRepository = new ArtifactRepository( "local", "file://" + f.getPath(), repoLayout ); + ArtifactRepository localRepository = new DefaultArtifactRepository( "local", "file://" + f.getPath(), + repoLayout ); return localRepository; } @@ -90,7 +93,9 @@ protected ArtifactRepository remoteRepository() ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); - ArtifactRepository repository = new ArtifactRepository( "test", "file://" + f.getPath(), repoLayout, ArtifactRepository.SNAPSHOT_POLICY_NEVER, ArtifactRepository.CHECKSUM_POLICY_WARN ); + ArtifactRepository repository = new DefaultArtifactRepository( "test", "file://" + f.getPath(), repoLayout, + ArtifactRepository.SNAPSHOT_POLICY_NEVER, + ArtifactRepository.CHECKSUM_POLICY_WARN ); return repository; } @@ -101,7 +106,8 @@ protected ArtifactRepository badRemoteRepository() ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); - ArtifactRepository repository = new ArtifactRepository( "test", "http://foo.bar/repository", repoLayout ); + ArtifactRepository repository = new DefaultArtifactRepository( "test", "http://foo.bar/repository", + repoLayout ); return repository; } @@ -243,13 +249,15 @@ protected Artifact createArtifact( String artifactId, String version ) protected Artifact createArtifact( String artifactId, String version, String type ) { // TODO: fix handler instantiation - return new DefaultArtifact( "org.apache.maven", artifactId, version, null, type, null, new DefaultArtifactHandler( type ) ); + return new DefaultArtifact( "org.apache.maven", artifactId, version, null, type, null, + new DefaultArtifactHandler( type ) ); } protected Artifact createArtifact( String groupId, String artifactId, String version, String type ) { // TODO: fix handler instantiation - return new DefaultArtifact( groupId, artifactId, version, Artifact.SCOPE_COMPILE, type, null, new DefaultArtifactHandler( type ) ); + return new DefaultArtifact( groupId, artifactId, version, Artifact.SCOPE_COMPILE, type, null, + new DefaultArtifactHandler( type ) ); } protected void deleteLocalArtifact( Artifact artifact ) diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/NewLayoutArtifactComponentTestCase.java b/maven-artifact-manager/src/test/java/org/apache/maven/artifact/NewLayoutArtifactComponentTestCase.java similarity index 100% rename from maven-artifact/src/test/java/org/apache/maven/artifact/NewLayoutArtifactComponentTestCase.java rename to maven-artifact-manager/src/test/java/org/apache/maven/artifact/NewLayoutArtifactComponentTestCase.java diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/deployer/ArtifactDeployerTest.java b/maven-artifact-manager/src/test/java/org/apache/maven/artifact/deployer/ArtifactDeployerTest.java similarity index 100% rename from maven-artifact/src/test/java/org/apache/maven/artifact/deployer/ArtifactDeployerTest.java rename to maven-artifact-manager/src/test/java/org/apache/maven/artifact/deployer/ArtifactDeployerTest.java diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/installer/ArtifactInstallerTest.java b/maven-artifact-manager/src/test/java/org/apache/maven/artifact/installer/ArtifactInstallerTest.java similarity index 100% rename from maven-artifact/src/test/java/org/apache/maven/artifact/installer/ArtifactInstallerTest.java rename to maven-artifact-manager/src/test/java/org/apache/maven/artifact/installer/ArtifactInstallerTest.java diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java b/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java similarity index 100% rename from maven-artifact/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java rename to maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/DefaultWagonManagerTest.java diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/manager/WagonA.java b/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/WagonA.java similarity index 100% rename from maven-artifact/src/test/java/org/apache/maven/artifact/manager/WagonA.java rename to maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/WagonA.java diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/manager/WagonB.java b/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/WagonB.java similarity index 100% rename from maven-artifact/src/test/java/org/apache/maven/artifact/manager/WagonB.java rename to maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/WagonB.java diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/manager/WagonC.java b/maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/WagonC.java similarity index 100% rename from maven-artifact/src/test/java/org/apache/maven/artifact/manager/WagonC.java rename to maven-artifact-manager/src/test/java/org/apache/maven/artifact/manager/WagonC.java diff --git a/maven-artifact/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java b/maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java similarity index 100% rename from maven-artifact/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java rename to maven-artifact-manager/src/test/java/org/apache/maven/artifact/resolver/ArtifactResolverTest.java diff --git a/maven-artifact/src/test/resources/artifact-install/artifact-1.0.jar b/maven-artifact-manager/src/test/resources/artifact-install/artifact-1.0.jar similarity index 100% rename from maven-artifact/src/test/resources/artifact-install/artifact-1.0.jar rename to maven-artifact-manager/src/test/resources/artifact-install/artifact-1.0.jar diff --git a/maven-artifact/src/test/resources/org/apache/maven/artifact/deployer/ArtifactDeployerTest.xml b/maven-artifact-manager/src/test/resources/org/apache/maven/artifact/deployer/ArtifactDeployerTest.xml similarity index 100% rename from maven-artifact/src/test/resources/org/apache/maven/artifact/deployer/ArtifactDeployerTest.xml rename to maven-artifact-manager/src/test/resources/org/apache/maven/artifact/deployer/ArtifactDeployerTest.xml diff --git a/maven-artifact/src/test/resources/org/apache/maven/artifact/installer/ArtifactInstallerTest.xml b/maven-artifact-manager/src/test/resources/org/apache/maven/artifact/installer/ArtifactInstallerTest.xml similarity index 100% rename from maven-artifact/src/test/resources/org/apache/maven/artifact/installer/ArtifactInstallerTest.xml rename to maven-artifact-manager/src/test/resources/org/apache/maven/artifact/installer/ArtifactInstallerTest.xml diff --git a/maven-artifact/src/test/resources/org/apache/maven/artifact/manager/DefaultWagonManagerTest.xml b/maven-artifact-manager/src/test/resources/org/apache/maven/artifact/manager/DefaultWagonManagerTest.xml similarity index 100% rename from maven-artifact/src/test/resources/org/apache/maven/artifact/manager/DefaultWagonManagerTest.xml rename to maven-artifact-manager/src/test/resources/org/apache/maven/artifact/manager/DefaultWagonManagerTest.xml diff --git a/maven-artifact/src/test/resources/org/apache/maven/artifact/resolver/ArtifactResolverTest.xml b/maven-artifact-manager/src/test/resources/org/apache/maven/artifact/resolver/ArtifactResolverTest.xml similarity index 100% rename from maven-artifact/src/test/resources/org/apache/maven/artifact/resolver/ArtifactResolverTest.xml rename to maven-artifact-manager/src/test/resources/org/apache/maven/artifact/resolver/ArtifactResolverTest.xml diff --git a/maven-artifact/src/test/resources/pom.xml b/maven-artifact-manager/src/test/resources/pom.xml similarity index 100% rename from maven-artifact/src/test/resources/pom.xml rename to maven-artifact-manager/src/test/resources/pom.xml diff --git a/maven-artifact-test/pom.xml b/maven-artifact-test/pom.xml index f9d009e53e..79334f28a5 100755 --- a/maven-artifact-test/pom.xml +++ b/maven-artifact-test/pom.xml @@ -18,6 +18,11 @@ maven-artifact 2.0-SNAPSHOT + + org.apache.maven + maven-artifact-manager + 2.0-SNAPSHOT + org.apache.maven maven-settings diff --git a/maven-artifact-test/src/main/java/org/apache/maven/artifact/test/ArtifactTestCase.java b/maven-artifact-test/src/main/java/org/apache/maven/artifact/test/ArtifactTestCase.java index 781fea7923..7f2f2750f8 100755 --- a/maven-artifact-test/src/main/java/org/apache/maven/artifact/test/ArtifactTestCase.java +++ b/maven-artifact-test/src/main/java/org/apache/maven/artifact/test/ArtifactTestCase.java @@ -17,8 +17,9 @@ */ import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.DefaultArtifactRepository; import org.apache.maven.settings.Settings; import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader; import org.codehaus.plexus.PlexusTestCase; @@ -62,7 +63,7 @@ protected void setUp() ArtifactRepositoryLayout repositoryLayout = (ArtifactRepositoryLayout) container.lookup( ArtifactRepositoryLayout.ROLE, "default" ); - localRepository = new ArtifactRepository( "local", "file://" + localRepo, repositoryLayout ); + localRepository = new DefaultArtifactRepository( "local", "file://" + localRepo, repositoryLayout ); } } diff --git a/maven-artifact/pom.xml b/maven-artifact/pom.xml index 2ba0bf9fbd..1b11913090 100644 --- a/maven-artifact/pom.xml +++ b/maven-artifact/pom.xml @@ -10,19 +10,8 @@ plexus - plexus-container-default - 1.0-alpha-4-SNAPSHOT - - - org.apache.maven.wagon - wagon-provider-api - 1.0-alpha-4 - - - org.apache.maven.wagon - wagon-file - 1.0-alpha-4 - test + plexus-utils + 1.0-alpha-3 diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java b/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java index 0aaaca3098..e5fa73b024 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/Artifact.java @@ -16,11 +16,10 @@ * limitations under the License. */ +import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.artifact.metadata.ArtifactMetadata; -import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; -import org.apache.maven.artifact.handler.ArtifactHandler; import java.io.File; import java.util.List; diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java b/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java index 8fb30f1882..c7949d9179 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/DefaultArtifact.java @@ -16,10 +16,10 @@ * limitations under the License. */ +import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.artifact.metadata.ArtifactMetadata; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; -import org.apache.maven.artifact.handler.ArtifactHandler; import org.codehaus.plexus.util.StringUtils; import java.io.File; diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java b/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java index 0a5cb49e33..17ab6cbceb 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/metadata/ArtifactMetadataSource.java @@ -17,8 +17,8 @@ */ import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.resolver.ArtifactResolutionException; import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.resolver.ArtifactResolutionException; import java.util.List; import java.util.Set; diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java b/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java index 6c9c2b189c..c783e6e3bb 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/repository/ArtifactRepository.java @@ -18,84 +18,44 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.metadata.ArtifactMetadata; -import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; -import org.apache.maven.wagon.repository.Repository; /** - * This class is an abstraction of the location from/to resources can be - * transfered. + * TODO: describe * - * @author Michal Maczka + * @author Brett Porter * @version $Id$ */ -public class ArtifactRepository - extends Repository +public interface ArtifactRepository { - private final String snapshotPolicy; - - private final String checksumPolicy; + String SNAPSHOT_POLICY_NEVER = "never"; - private final ArtifactRepositoryLayout layout; + String SNAPSHOT_POLICY_ALWAYS = "always"; - public static final String SNAPSHOT_POLICY_NEVER = "never"; + String SNAPSHOT_POLICY_DAILY = "daily"; - public static final String SNAPSHOT_POLICY_ALWAYS = "always"; + String SNAPSHOT_POLICY_INTERVAL = "interval"; - public static final String SNAPSHOT_POLICY_DAILY = "daily"; + String CHECKSUM_POLICY_FAIL = "fail"; - public static final String SNAPSHOT_POLICY_INTERVAL = "interval"; - - public static final String CHECKSUM_POLICY_FAIL = "fail"; - - public static final String CHECKSUM_POLICY_WARN = "warn"; - - public static final String CHECKSUM_ALGORITHM_SHA1 = "SHA-1"; - - public static final String CHECKSUM_ALGORITHM_MD5 = "MD5"; + String CHECKSUM_POLICY_WARN = "warn"; - public ArtifactRepository( String id, String url, ArtifactRepositoryLayout layout ) - { - this( id, url, layout, SNAPSHOT_POLICY_NEVER, CHECKSUM_POLICY_WARN ); - } + String CHECKSUM_ALGORITHM_SHA1 = "SHA-1"; - public ArtifactRepository( String id, String url, ArtifactRepositoryLayout layout, String snapshotPolicy, String checksumPolicy ) - { - super( id, url ); + String CHECKSUM_ALGORITHM_MD5 = "MD5"; - this.layout = layout; + String pathOf( Artifact artifact ); - this.snapshotPolicy = snapshotPolicy; - - this.checksumPolicy = checksumPolicy; - } + String pathOfMetadata( ArtifactMetadata artifactMetadata ); - public String pathOf( Artifact artifact ) - { - return layout.pathOf( artifact ); - } + String getUrl(); - public String pathOfMetadata( ArtifactMetadata artifactMetadata ) - { - return layout.pathOfMetadata( artifactMetadata ); - } + String getBasedir(); - public String getSnapshotPolicy() - { - return snapshotPolicy; - } - - public String getChecksumPolicy() - { - return checksumPolicy; - } - - public boolean failOnChecksumMismatch() - { - return CHECKSUM_POLICY_FAIL.equals( checksumPolicy ); - } - - public ArtifactRepository createMirror( Repository mirror ) - { - return new ArtifactRepository( mirror.getId(), mirror.getUrl(), layout, snapshotPolicy, checksumPolicy ); - } -} \ No newline at end of file + String getSnapshotPolicy(); + + String getProtocol(); + + String getId(); + + String getChecksumPolicy(); +} diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java b/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java index 11f3204d54..8f02c666ba 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/repository/layout/DefaultRepositoryLayout.java @@ -19,7 +19,6 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.handler.ArtifactHandler; import org.apache.maven.artifact.metadata.ArtifactMetadata; -import org.apache.maven.artifact.transform.ReleaseArtifactTransformation; /** * @author jdcasey @@ -58,7 +57,7 @@ public String pathOfMetadata( ArtifactMetadata metadata ) path.append( metadata.getGroupId().replace( '.', '/' ) ).append( '/' ); path.append( metadata.getArtifactId() ).append( '/' ); - if ( !metadata.getBaseVersion().equals( ReleaseArtifactTransformation.RELEASE_VERSION ) ) + if ( !metadata.getBaseVersion().equals( "RELEASE" ) ) { path.append( metadata.getBaseVersion() ).append( '/' ); } diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java new file mode 100644 index 0000000000..d446505e9d --- /dev/null +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactCollector.java @@ -0,0 +1,37 @@ +package org.apache.maven.artifact.resolver;/* + * Copyright 2001-2005 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.metadata.ArtifactMetadataSource; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.resolver.filter.ArtifactFilter; + +import java.util.List; +import java.util.Set; + +/** + * TODO: describe + * + * @author Brett Porter + * @version $Id$ + */ +public interface ArtifactCollector +{ + ArtifactResolutionResult collect( Set artifacts, ArtifactRepository localRepository, List remoteRepositories, + ArtifactMetadataSource source, ArtifactFilter filter, + ArtifactFactory artifactFactory ) + throws ArtifactResolutionException; +} diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java index 55c6add2b8..07e1874267 100644 --- a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/ArtifactResolutionException.java @@ -1,11 +1,5 @@ package org.apache.maven.artifact.resolver; -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.repository.ArtifactRepository; - -import java.util.Iterator; -import java.util.List; - /* * Copyright 2001-2005 The Apache Software Foundation. * @@ -22,6 +16,12 @@ * limitations under the License. */ +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.repository.ArtifactRepository; + +import java.util.Iterator; +import java.util.List; + /** * @author Jason van Zyl * @version $Id$ diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java new file mode 100644 index 0000000000..8d562e380b --- /dev/null +++ b/maven-artifact/src/main/java/org/apache/maven/artifact/resolver/DefaultArtifactCollector.java @@ -0,0 +1,170 @@ +package org.apache.maven.artifact.resolver; + +/* + * Copyright 2001-2005 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException; +import org.apache.maven.artifact.metadata.ArtifactMetadataSource; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.resolver.filter.ArtifactFilter; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * TODO: describe + * + * @author Brett Porter + * @version $Id$ + */ +public class DefaultArtifactCollector + implements ArtifactCollector +{ + public ArtifactResolutionResult collect( Set artifacts, ArtifactRepository localRepository, List remoteRepositories, + ArtifactMetadataSource source, ArtifactFilter filter, + ArtifactFactory artifactFactory ) + throws ArtifactResolutionException + { + ArtifactResolutionResult result = new ArtifactResolutionResult(); + + Map resolvedArtifacts = new HashMap(); + + List queue = new LinkedList(); + + queue.add( artifacts ); + + while ( !queue.isEmpty() ) + { + Set currentArtifacts = (Set) queue.remove( 0 ); + + for ( Iterator i = currentArtifacts.iterator(); i.hasNext(); ) + { + Artifact newArtifact = (Artifact) i.next(); + + String id = newArtifact.getDependencyConflictId(); + + if ( resolvedArtifacts.containsKey( id ) ) + { + Artifact knownArtifact = (Artifact) resolvedArtifacts.get( id ); + + String newVersion = newArtifact.getVersion(); + + String knownVersion = knownArtifact.getVersion(); + + if ( !newVersion.equals( knownVersion ) ) + { + addConflict( result, knownArtifact, newArtifact ); + } + + // TODO: scope handler + boolean updateScope = false; + if ( Artifact.SCOPE_RUNTIME.equals( newArtifact.getScope() ) && + Artifact.SCOPE_TEST.equals( knownArtifact.getScope() ) ) + { + updateScope = true; + } + + if ( Artifact.SCOPE_COMPILE.equals( newArtifact.getScope() ) && + !Artifact.SCOPE_COMPILE.equals( knownArtifact.getScope() ) ) + { + updateScope = true; + } + + if ( updateScope ) + { + // TODO: Artifact factory? + // TODO: [jc] Is this a better way to centralize artifact construction here? + + Artifact artifact = artifactFactory.createArtifact( + knownArtifact.getGroupId(), knownArtifact.getArtifactId(), knownVersion, + newArtifact.getScope(), knownArtifact.getType() ); + resolvedArtifacts.put( artifact.getDependencyConflictId(), artifact ); + } + } + else + { + // ---------------------------------------------------------------------- + // It's the first time we have encountered this artifact + // ---------------------------------------------------------------------- + + if ( filter != null && !filter.include( newArtifact ) ) + { + continue; + } + + resolvedArtifacts.put( id, newArtifact ); + + Set referencedDependencies = null; + + try + { + referencedDependencies = source.retrieve( newArtifact, localRepository, remoteRepositories ); + } + catch ( ArtifactMetadataRetrievalException e ) + { + throw new TransitiveArtifactResolutionException( e.getMessage(), newArtifact, + remoteRepositories, e ); + } + + // the pom for given dependency exisit we will add it to the + // queue + queue.add( referencedDependencies ); + } + } + } + + // ---------------------------------------------------------------------- + // the dependencies list is keyed by groupId+artifactId+type + // so it must be 'rekeyed' to the complete id: + // groupId+artifactId+type+version + // ---------------------------------------------------------------------- + + Map artifactResult = result.getArtifacts(); + + for ( Iterator it = resolvedArtifacts.values().iterator(); it.hasNext(); ) + { + Artifact artifact = (Artifact) it.next(); + + artifactResult.put( artifact.getId(), artifact ); + } + + return result; + } + + private void addConflict( ArtifactResolutionResult result, Artifact knownArtifact, Artifact newArtifact ) + { + List conflicts; + + conflicts = (List) result.getConflicts().get( newArtifact.getDependencyConflictId() ); + + if ( conflicts == null ) + { + conflicts = new LinkedList(); + + conflicts.add( knownArtifact ); + + result.getConflicts().put( newArtifact.getDependencyConflictId(), conflicts ); + } + + conflicts.add( newArtifact ); + } +} diff --git a/maven-artifact/src/main/resources/META-INF/plexus/components.xml b/maven-artifact/src/main/resources/META-INF/plexus/components.xml index eeed6b7b37..c69d663f6b 100644 --- a/maven-artifact/src/main/resources/META-INF/plexus/components.xml +++ b/maven-artifact/src/main/resources/META-INF/plexus/components.xml @@ -1,98 +1,5 @@ - - - org.apache.maven.artifact.manager.WagonManager - org.apache.maven.artifact.manager.DefaultWagonManager - - - - - org.apache.maven.artifact.transform.ArtifactTransformation - snapshot - org.apache.maven.artifact.transform.SnapshotTransformation - - - org.apache.maven.artifact.manager.WagonManager - - - - - - org.apache.maven.artifact.transform.ArtifactTransformation - release - org.apache.maven.artifact.transform.ReleaseArtifactTransformation - - - org.apache.maven.artifact.manager.WagonManager - - - - - - org.apache.maven.artifact.resolver.ArtifactResolver - org.apache.maven.artifact.resolver.DefaultArtifactResolver - - - org.apache.maven.artifact.manager.WagonManager - - - org.apache.maven.artifact.transform.ArtifactTransformation - artifactTransformations - - - org.apache.maven.artifact.factory.ArtifactFactory - - - - - - - org.apache.maven.artifact.installer.ArtifactInstaller - org.apache.maven.artifact.installer.DefaultArtifactInstaller - - - org.apache.maven.artifact.transform.ArtifactTransformation - artifactTransformations - - - - - - - org.apache.maven.artifact.deployer.ArtifactDeployer - org.apache.maven.artifact.deployer.DefaultArtifactDeployer - - - org.apache.maven.artifact.manager.WagonManager - - - org.apache.maven.artifact.transform.ArtifactTransformation - artifactTransformations - - - - org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout default @@ -215,5 +122,10 @@ org.apache.maven.artifact.repository.ArtifactRepositoryFactory org.apache.maven.artifact.repository.DefaultArtifactRepositoryFactory + + + org.apache.maven.artifact.resolver.ArtifactCollector + org.apache.maven.artifact.resolver.DefaultArtifactCollector + diff --git a/maven-core/pom.xml b/maven-core/pom.xml index 916163291b..eeda2b9069 100644 --- a/maven-core/pom.xml +++ b/maven-core/pom.xml @@ -56,6 +56,12 @@ maven-artifact 2.0-SNAPSHOT + + + org.apache.maven + maven-artifact-manager + 2.0-SNAPSHOT + org.apache.maven maven-plugin-api diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java index 6d22ee4ad0..0351215dec 100644 --- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java +++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java @@ -46,6 +46,7 @@ import org.codehaus.plexus.PlexusConstants; import org.codehaus.plexus.PlexusContainer; import org.codehaus.plexus.component.repository.exception.ComponentLookupException; +import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException; import org.codehaus.plexus.context.Context; import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.logging.AbstractLogEnabled; @@ -104,6 +105,10 @@ public MavenExecutionResponse execute( MavenExecutionRequest request ) { throw new ReactorException( "Unable to configure Maven for execution", e ); } + catch ( ComponentLifecycleException e ) + { + throw new ReactorException( "Unable to configure Maven for execution", e ); + } EventDispatcher dispatcher = request.getEventDispatcher(); String event = MavenEvents.REACTOR_EXECUTION; @@ -398,31 +403,38 @@ protected MavenSession createSession( MavenExecutionRequest request, MavenProjec * the wagons, shouldn't we? */ private void resolveParameters( Settings settings ) - throws ComponentLookupException + throws ComponentLookupException, ComponentLifecycleException { WagonManager wagonManager = (WagonManager) container.lookup( WagonManager.ROLE ); - Proxy proxy = settings.getActiveProxy(); - - if ( proxy != null ) + try { - wagonManager.addProxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(), proxy.getUsername(), - proxy.getPassword(), proxy.getNonProxyHosts() ); + Proxy proxy = settings.getActiveProxy(); + + if ( proxy != null ) + { + wagonManager.addProxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(), proxy.getUsername(), + proxy.getPassword(), proxy.getNonProxyHosts() ); + } + + for ( Iterator i = settings.getServers().iterator(); i.hasNext(); ) + { + Server server = (Server) i.next(); + + wagonManager.addAuthenticationInfo( server.getId(), server.getUsername(), server.getPassword(), + server.getPrivateKey(), server.getPassphrase() ); + } + + for ( Iterator i = settings.getMirrors().iterator(); i.hasNext(); ) + { + Mirror mirror = (Mirror) i.next(); + + wagonManager.addMirror( mirror.getId(), mirror.getMirrorOf(), mirror.getUrl() ); + } } - - for ( Iterator i = settings.getServers().iterator(); i.hasNext(); ) + finally { - Server server = (Server) i.next(); - - wagonManager.addAuthenticationInfo( server.getId(), server.getUsername(), server.getPassword(), - server.getPrivateKey(), server.getPassphrase() ); - } - - for ( Iterator i = settings.getMirrors().iterator(); i.hasNext(); ) - { - Mirror mirror = (Mirror) i.next(); - - wagonManager.addMirror( mirror.getId(), mirror.getMirrorOf(), mirror.getUrl() ); + container.release( wagonManager ); } } @@ -596,7 +608,7 @@ else if ( secs == 1 ) { msg += "1 second"; } - else if ( min > 0 ) + else if ( min == 0 ) { msg += "< 1 second"; } diff --git a/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java index b47b723f06..f030ebadcc 100644 --- a/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java +++ b/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java @@ -25,8 +25,9 @@ import org.apache.commons.cli.PosixParser; import org.apache.maven.Maven; import org.apache.maven.artifact.manager.WagonManager; -import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.DefaultArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; +import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.execution.DefaultMavenExecutionRequest; import org.apache.maven.execution.MavenExecutionRequest; @@ -376,7 +377,7 @@ private static ArtifactRepository createLocalRepository( Embedder embedder, Sett ArtifactRepositoryFactory.ROLE ); String url = "file://" + settings.getLocalRepository(); - ArtifactRepository localRepository = new ArtifactRepository( "local", url, repositoryLayout ); + ArtifactRepository localRepository = new DefaultArtifactRepository( "local", url, repositoryLayout ); boolean snapshotPolicySet = false; if ( commandLine.hasOption( CLIManager.OFFLINE ) ) diff --git a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java index 0e0c29a436..274e683166 100644 --- a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java +++ b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java @@ -18,6 +18,7 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.DefaultArtifact; +import org.apache.maven.artifact.repository.DefaultArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.execution.MavenSession; @@ -77,7 +78,7 @@ public void testLocalRepositoryExtraction() ExpressionEvaluator expressionEvaluator = createExpressionEvaluator( createDefaultProject(), null ); Object value = expressionEvaluator.evaluate( "${localRepository}" ); - assertEquals( "local", ( (ArtifactRepository) value ).getId() ); + assertEquals( "local", ( (DefaultArtifactRepository) value ).getId() ); } public void testTwoExpressions() @@ -132,7 +133,7 @@ private ExpressionEvaluator createExpressionEvaluator( MavenProject project, Plu ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); - ArtifactRepository repo = new ArtifactRepository( "local", "target/repo", repoLayout ); + ArtifactRepository repo = new DefaultArtifactRepository( "local", "target/repo", repoLayout ); PlexusContainer container = getContainer(); MavenSession session = createSession( project, container, repo ); diff --git a/maven-mboot2/src/main/java/MBoot.java b/maven-mboot2/src/main/java/MBoot.java index 084c9d64ca..cf73ab27d4 100644 --- a/maven-mboot2/src/main/java/MBoot.java +++ b/maven-mboot2/src/main/java/MBoot.java @@ -1,4 +1,3 @@ - import compile.CompilerConfiguration; import compile.JavacCompiler; import download.ArtifactDownloader; @@ -35,28 +34,23 @@ public class MBoot { - String[] builds = new String[]{"maven-model", "maven-monitor", "maven-plugin-api", - "maven-plugin-descriptor", "maven-artifact", "maven-script/maven-script-marmalade", - "maven-script/maven-script-beanshell", "maven-project", - "maven-settings", "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", - "maven-plugin-tools/maven-plugin-tools-beanshell", - "maven-plugin-tools/maven-plugin-tools-pluggy", - "maven-plugin-tools/maven-plugin-tools-marmalade", "maven-core-it-verifier"}; + String[] builds = new String[]{"maven-model", "maven-monitor", "maven-plugin-api", "maven-plugin-descriptor", + "maven-artifact", "maven-artifact-manager", "maven-artifact-test", "maven-script/maven-script-marmalade", + "maven-script/maven-script-beanshell", "maven-project", "maven-settings", "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", + "maven-plugin-tools/maven-plugin-tools-beanshell", "maven-plugin-tools/maven-plugin-tools-pluggy", + "maven-plugin-tools/maven-plugin-tools-marmalade", "maven-core-it-verifier"}; String[] pluginBuilds = new String[]{"maven-plugins/maven-clean-plugin", "maven-plugins/maven-compiler-plugin", - "maven-plugins/maven-install-plugin", "maven-plugins/maven-jar-plugin", - "maven-plugins/maven-plugin-plugin", "maven-plugins/maven-resources-plugin", - "maven-plugins/maven-surefire-plugin"}; + "maven-plugins/maven-install-plugin", "maven-plugins/maven-jar-plugin", "maven-plugins/maven-plugin-plugin", + "maven-plugins/maven-resources-plugin", "maven-plugins/maven-surefire-plugin"}; private static final Map MODELLO_TARGET_VERSIONS; private static final Map MODELLO_MODEL_FILES; - static - { + static { Map targetVersions = new TreeMap(); targetVersions.put( "maven-model", "4.0.0" ); targetVersions.put( "maven-settings", "1.0.0" ); @@ -182,8 +176,9 @@ public void run( String[] args ) System.out.println(); - System.out.println( "HOWEVER, since you did not specify a repository path, maven will use: " + - repoDir.getAbsolutePath() + " to store artifacts locally." ); + System.out.println( + "HOWEVER, since you did not specify a repository path, maven will use: " + repoDir.getAbsolutePath() + + " to store artifacts locally." ); } File repoLocalFile = new File( mavenRepoLocal ); @@ -220,11 +215,13 @@ public void run( String[] args ) { if ( !new File( dist, "bin/m2.conf" ).exists() ) { - System.err.println( "The directory given to install Maven in already exists, but does not contain a Maven installation" ); + System.err.println( + "The directory given to install Maven in already exists, but does not contain a Maven installation" ); System.err.println(); System.err.println( "\t" + dist ); System.err.println(); - System.err.println( "If you really mean to install Maven to this location, please delete the directory first" ); + System.err.println( + "If you really mean to install Maven to this location, please delete the directory first" ); System.exit( 1 ); } } @@ -435,8 +432,8 @@ public void run( String[] args ) { FileUtils.copyFileToDirectory( source, boot ); } - else if ( d.getArtifactId().equals( "plexus-container-default" ) - || d.getArtifactId().equals( "plexus-utils" ) ) + else if ( d.getArtifactId().equals( "plexus-container-default" ) || + d.getArtifactId().equals( "plexus-utils" ) ) { FileUtils.copyFileToDirectory( source, core ); } @@ -589,7 +586,8 @@ private ModelReader buildProject( String basedir, String projectId, ClassLoader } else { - compile( reader.getDependencies(), sources, classes, null, null, Dependency.SCOPE_COMPILE, localRepository ); + compile( reader.getDependencies(), sources, classes, null, null, Dependency.SCOPE_COMPILE, + localRepository ); } // ---------------------------------------------------------------------- @@ -663,8 +661,8 @@ private void generatePluginDescriptor( String sourceDirectory, String outputDire m.invoke( null, new Object[]{args} ); } - private void generateSources( String model, String mode, String dir, String modelVersion, - String packageWithVersion, ClassLoader modelloClassLoader ) + private void generateSources( String model, String mode, String dir, String modelVersion, String packageWithVersion, + ClassLoader modelloClassLoader ) throws Exception { Class c = modelloClassLoader.loadClass( "org.codehaus.modello.ModelloCli" ); @@ -856,7 +854,8 @@ private List classpath( Collection dependencies, String extraClasspath, String s } else if ( Dependency.SCOPE_RUNTIME.equals( scope ) ) { - if ( d.getScope().equals( Dependency.SCOPE_COMPILE ) || d.getScope().equals( Dependency.SCOPE_RUNTIME ) ) + if ( d.getScope().equals( Dependency.SCOPE_COMPILE ) || + d.getScope().equals( Dependency.SCOPE_RUNTIME ) ) { classpath.add( element ); } @@ -986,9 +985,9 @@ class SettingsReader private Proxy activeProxy = null; private Mirror currentMirror; - + private String localRepository; - + public String getLocalRepository() { return localRepository; @@ -1016,8 +1015,8 @@ public void endElement( String uri, String localName, String rawName ) } else { - throw new SAXException( "Invalid profile entry. Missing one or more " + - "fields: {localRepository}." ); + throw new SAXException( + "Invalid profile entry. Missing one or more " + "fields: {localRepository}." ); } } else if ( "proxy".equals( rawName ) ) diff --git a/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java b/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java index daa9e7ea5a..549abd40e5 100644 --- a/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java +++ b/maven-plugin-descriptor/src/main/java/org/apache/maven/plugin/descriptor/PluginDescriptor.java @@ -132,12 +132,7 @@ public String getPluginLookupKey() public String getId() { - String id = constructPluginKey( groupId, artifactId, version ); - if ( groupId == null || artifactId == null || version == null ) - { - throw new IllegalStateException( "Plugin descriptor ID incomplete: " + id + " in " + getSource() ); - } - return id; + return constructPluginKey( groupId, artifactId, version ); } /** diff --git a/maven-plugins/maven-eclipse-plugin/pom.xml b/maven-plugins/maven-eclipse-plugin/pom.xml index 654aa692c4..466a49a4b5 100644 --- a/maven-plugins/maven-eclipse-plugin/pom.xml +++ b/maven-plugins/maven-eclipse-plugin/pom.xml @@ -15,6 +15,12 @@ maven-project 2.0-SNAPSHOT + + org.apache.maven + maven-artifact-test + 2.0-SNAPSHOT + test + plexus plexus-utils diff --git a/maven-plugins/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java b/maven-plugins/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java index 78aa95f567..659ef61e43 100644 --- a/maven-plugins/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java +++ b/maven-plugins/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java @@ -1,43 +1,37 @@ package org.apache.maven.plugin.eclipse; /* - * Copyright (c) 2004, Codehaus.org + * Copyright 2001-2005 The Apache Software Foundation. * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is furnished to do - * so, subject to the following conditions: + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. + * http://www.apache.org/licenses/LICENSE-2.0 * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.DefaultArtifactRepository; import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectBuilder; import org.codehaus.plexus.PlexusTestCase; -import org.codehaus.plexus.util.StringUtils; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Collections; /** * @author Trygve Laugstøl @@ -75,7 +69,8 @@ private void testProject( String projectName ) ArtifactRepositoryLayout localRepositoryLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); - ArtifactRepository localRepository = new ArtifactRepository("local", "file://" + repo.getAbsolutePath(), localRepositoryLayout); + ArtifactRepository localRepository = new DefaultArtifactRepository( "local", "file://" + repo.getAbsolutePath(), + localRepositoryLayout ); MavenProject project = builder.build( new File( basedir, "project.xml" ), localRepository, Collections.EMPTY_LIST ); diff --git a/maven-plugins/maven-ejb-plugin/pom.xml b/maven-plugins/maven-ejb-plugin/pom.xml index d0ae6569be..d1bc6288f9 100644 --- a/maven-plugins/maven-ejb-plugin/pom.xml +++ b/maven-plugins/maven-ejb-plugin/pom.xml @@ -13,7 +13,7 @@ org.apache.maven maven-archiver - 2.0-alpha-2 + 2.0-SNAPSHOT org.apache.maven diff --git a/maven-plugins/maven-war-plugin/pom.xml b/maven-plugins/maven-war-plugin/pom.xml index ec14a2c7b6..14085ad02e 100644 --- a/maven-plugins/maven-war-plugin/pom.xml +++ b/maven-plugins/maven-war-plugin/pom.xml @@ -13,7 +13,7 @@ org.apache.maven maven-archiver - 2.0-alpha-2 + 2.0-SNAPSHOT org.apache.maven diff --git a/maven-project/pom.xml b/maven-project/pom.xml index 5812db17a1..5970eb4698 100755 --- a/maven-project/pom.xml +++ b/maven-project/pom.xml @@ -33,5 +33,11 @@ plexus-utils 1.0-alpha-3 + + org.apache.maven + maven-artifact-test + 2.0-SNAPSHOT + test + diff --git a/maven-project/src/main/java/org/apache/maven/profiles/activation/AlwaysOnProfileActivator.java b/maven-project/src/main/java/org/apache/maven/profiles/activation/AlwaysOnProfileActivator.java index 89c25bd780..249b845da9 100644 --- a/maven-project/src/main/java/org/apache/maven/profiles/activation/AlwaysOnProfileActivator.java +++ b/maven-project/src/main/java/org/apache/maven/profiles/activation/AlwaysOnProfileActivator.java @@ -22,7 +22,6 @@ public class AlwaysOnProfileActivator implements ProfileActivator { - public boolean canDetermineActivation( Profile profile ) { return profile.getActivation() != null && profile.getActivation() instanceof AlwaysOnActivation; diff --git a/maven-project/src/main/java/org/apache/maven/profiles/activation/DetectedProfileActivator.java b/maven-project/src/main/java/org/apache/maven/profiles/activation/DetectedProfileActivator.java index b7b9ee7352..b2cadf7a12 100644 --- a/maven-project/src/main/java/org/apache/maven/profiles/activation/DetectedProfileActivator.java +++ b/maven-project/src/main/java/org/apache/maven/profiles/activation/DetectedProfileActivator.java @@ -21,12 +21,11 @@ public abstract class DetectedProfileActivator implements ProfileActivator { - public boolean canDetermineActivation( Profile profile ) { return !ProfileActivationUtils.profilesWereExplicitlyGiven() && canDetectActivation( profile ); } - + protected abstract boolean canDetectActivation( Profile profile ); } diff --git a/maven-project/src/main/java/org/apache/maven/profiles/activation/ExplicitListingProfileActivator.java b/maven-project/src/main/java/org/apache/maven/profiles/activation/ExplicitListingProfileActivator.java index 593ea8360e..128fa8ed5f 100644 --- a/maven-project/src/main/java/org/apache/maven/profiles/activation/ExplicitListingProfileActivator.java +++ b/maven-project/src/main/java/org/apache/maven/profiles/activation/ExplicitListingProfileActivator.java @@ -21,7 +21,6 @@ public class ExplicitListingProfileActivator implements ProfileActivator { - public boolean canDetermineActivation( Profile profile ) { return ProfileActivationUtils.profilesWereExplicitlyGiven(); diff --git a/maven-project/src/main/java/org/apache/maven/profiles/activation/JdkPrefixProfileActivator.java b/maven-project/src/main/java/org/apache/maven/profiles/activation/JdkPrefixProfileActivator.java index c7fffd8a9b..82cac4a1ea 100644 --- a/maven-project/src/main/java/org/apache/maven/profiles/activation/JdkPrefixProfileActivator.java +++ b/maven-project/src/main/java/org/apache/maven/profiles/activation/JdkPrefixProfileActivator.java @@ -23,7 +23,6 @@ public class JdkPrefixProfileActivator extends DetectedProfileActivator { - private static final String JDK_VERSION = System.getProperty( "java.version" ); public boolean isActive( Profile profile ) diff --git a/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivationCalculator.java b/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivationCalculator.java index ae47bab4fc..9dde6c5151 100644 --- a/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivationCalculator.java +++ b/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivationCalculator.java @@ -36,7 +36,6 @@ public class ProfileActivationCalculator extends AbstractLogEnabled implements Contextualizable { - public static final String ROLE = ProfileActivationCalculator.class.getName(); private PlexusContainer container; @@ -59,7 +58,8 @@ public List calculateActiveProfiles( List profiles ) Activation activation = profile.getActivation(); - activatorLoop: for ( Iterator activatorIterator = activators.iterator(); activatorIterator.hasNext(); ) + activatorLoop: + for ( Iterator activatorIterator = activators.iterator(); activatorIterator.hasNext(); ) { ProfileActivator activator = (ProfileActivator) activatorIterator.next(); diff --git a/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivationUtils.java b/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivationUtils.java index 064025bc10..58c39f0b2d 100644 --- a/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivationUtils.java +++ b/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivationUtils.java @@ -24,44 +24,43 @@ public final class ProfileActivationUtils { - public static final String ACTIVE_PROFILE_IDS = "org.apache.maven.ActiveProfiles"; - + private static List profileList; private ProfileActivationUtils() { } - + public static boolean profilesWereExplicitlyGiven() { return StringUtils.isNotEmpty( System.getProperty( ACTIVE_PROFILE_IDS ) ); } - + public static List getExplicitProfileList() { - if(!profilesWereExplicitlyGiven()) + if ( !profilesWereExplicitlyGiven() ) { return null; } - - if( profileList == null ) + + if ( profileList == null ) { profileList = new ArrayList(); - + StringTokenizer profileTokens = new StringTokenizer( System.getProperty( ACTIVE_PROFILE_IDS ), "," ); - - while( profileTokens.hasMoreTokens() ) + + while ( profileTokens.hasMoreTokens() ) { String token = profileTokens.nextToken().trim(); - - if( StringUtils.isNotEmpty( token ) ) + + if ( StringUtils.isNotEmpty( token ) ) { profileList.add( token ); } } } - + return profileList; } diff --git a/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivator.java b/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivator.java index d13e39ea56..973f27957e 100644 --- a/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivator.java +++ b/maven-project/src/main/java/org/apache/maven/profiles/activation/ProfileActivator.java @@ -20,7 +20,6 @@ public interface ProfileActivator { - static final String ROLE = ProfileActivator.class.getName(); boolean canDetermineActivation( Profile profile ); diff --git a/maven-project/src/main/java/org/apache/maven/profiles/activation/SystemPropertyProfileActivator.java b/maven-project/src/main/java/org/apache/maven/profiles/activation/SystemPropertyProfileActivator.java index 68b8a4ce09..1c162cb5c5 100644 --- a/maven-project/src/main/java/org/apache/maven/profiles/activation/SystemPropertyProfileActivator.java +++ b/maven-project/src/main/java/org/apache/maven/profiles/activation/SystemPropertyProfileActivator.java @@ -24,7 +24,6 @@ public class SystemPropertyProfileActivator extends DetectedProfileActivator { - protected boolean canDetectActivation( Profile profile ) { return profile.getActivation() != null && profile.getActivation().getProperty() != null; diff --git a/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java b/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java index 6aef286625..18e64aaa0f 100644 --- a/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java +++ b/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java @@ -24,7 +24,6 @@ import org.apache.maven.artifact.resolver.ArtifactResolutionException; import org.apache.maven.artifact.resolver.ArtifactResolutionResult; import org.apache.maven.artifact.resolver.ArtifactResolver; -import org.apache.maven.artifact.transform.ReleaseArtifactTransformation; import org.apache.maven.model.Build; import org.apache.maven.model.DistributionManagement; import org.apache.maven.model.Model; @@ -99,7 +98,7 @@ public class DefaultMavenProjectBuilder private ModelInterpolator modelInterpolator; private ArtifactRepositoryFactory artifactRepositoryFactory; - + private ProfileActivationCalculator profileActivationCalculator; private final Map modelCache = new HashMap(); @@ -148,7 +147,8 @@ public MavenProject build( File projectDescriptor, ArtifactRepository localRepos return buildFromSourceFile( projectDescriptor, localRepository, externalProfiles ); } - private MavenProject buildFromSourceFile( File projectDescriptor, ArtifactRepository localRepository, List externalProfiles ) + private MavenProject buildFromSourceFile( File projectDescriptor, ArtifactRepository localRepository, + List externalProfiles ) throws ProjectBuildingException, ArtifactResolutionException { Model model = readModel( projectDescriptor ); @@ -216,24 +216,29 @@ private Model findModelFromRepository( Artifact artifact, List remoteArtifactRep return model; } - private MavenProject build( String pomLocation, Model model, ArtifactRepository localRepository, List externalProfiles ) + private MavenProject build( String pomLocation, Model model, ArtifactRepository localRepository, + List externalProfiles ) throws ProjectBuildingException, ArtifactResolutionException { Model superModel = getSuperModel(); LinkedList lineage = new LinkedList(); - List aggregatedRemoteWagonRepositories = ProjectUtils.buildArtifactRepositories( superModel.getRepositories(), artifactRepositoryFactory, container ); + List aggregatedRemoteWagonRepositories = ProjectUtils.buildArtifactRepositories( superModel.getRepositories(), + artifactRepositoryFactory, + container ); for ( Iterator i = externalProfiles.iterator(); i.hasNext(); ) { Profile externalProfile = (Profile) i.next(); - + for ( Iterator repoIterator = externalProfile.getRepositories().iterator(); repoIterator.hasNext(); ) { Repository mavenRepo = (Repository) repoIterator.next(); - ArtifactRepository artifactRepo = ProjectUtils.buildArtifactRepository( mavenRepo, artifactRepositoryFactory, container ); + ArtifactRepository artifactRepo = ProjectUtils.buildArtifactRepository( mavenRepo, + artifactRepositoryFactory, + container ); if ( !aggregatedRemoteWagonRepositories.contains( artifactRepo ) ) { @@ -241,7 +246,7 @@ private MavenProject build( String pomLocation, Model model, ArtifactRepository } } } - + MavenProject project = assembleLineage( model, lineage, aggregatedRemoteWagonRepositories, localRepository ); // we don't have to force the collision exception for superModel here, it's already been done in getSuperModel() @@ -264,7 +269,8 @@ private MavenProject build( String pomLocation, Model model, ArtifactRepository } catch ( ModelInterpolationException e ) { - throw new ProjectBuildingException( "Error building project from \'" + pomLocation + "\': " + model.getId(), e ); + throw new ProjectBuildingException( "Error building project from \'" + pomLocation + "\': " + model.getId(), + e ); } return project; } @@ -298,7 +304,8 @@ private void forcePluginExecutionIdCollision( Model model ) * the resolved source roots, etc for the parent - that occurs for the parent when it is constructed independently * and projects are not cached or reused */ - private MavenProject processProjectLogic( String pomLocation, MavenProject project, List remoteRepositories, List externalProfiles ) + private MavenProject processProjectLogic( String pomLocation, MavenProject project, List remoteRepositories, + List externalProfiles ) throws ProjectBuildingException, ModelInterpolationException { Model model = project.getModel(); @@ -308,45 +315,48 @@ private MavenProject processProjectLogic( String pomLocation, MavenProject proje { modelCache.put( key, model ); } - + List activeProfiles = new ArrayList( externalProfiles ); - + List activePomProfiles = profileActivationCalculator.calculateActiveProfiles( model.getProfiles() ); - + activeProfiles.addAll( activePomProfiles ); - + Properties profileProperties = new Properties(); - + for ( Iterator it = activeProfiles.iterator(); it.hasNext(); ) { Profile profile = (Profile) it.next(); - + modelInheritanceAssembler.mergeProfileWithModel( model, profile ); - + profileProperties.putAll( profile.getProperties() ); } - + // TODO: Clean this up...we're using this to 'jump' the interpolation step for model properties not expressed in XML. model = modelInterpolator.interpolate( model ); - + // interpolation is before injection, because interpolation is off-limits in the injected variables modelDefaultsInjector.injectDefaults( model ); MavenProject parentProject = project.getParent(); project = new MavenProject( model ); - + project.addProfileProperties( profileProperties ); - + project.setActiveProfiles( activeProfiles ); - project.setPluginArtifactRepositories( ProjectUtils.buildArtifactRepositories( model.getPluginRepositories(), artifactRepositoryFactory, container ) ); + project.setPluginArtifactRepositories( + ProjectUtils.buildArtifactRepositories( model.getPluginRepositories(), artifactRepositoryFactory, + container ) ); DistributionManagement dm = model.getDistributionManagement(); if ( dm != null ) { - project.setDistributionManagementArtifactRepository( ProjectUtils.buildArtifactRepository( dm.getRepository(), artifactRepositoryFactory, container ) ); + project.setDistributionManagementArtifactRepository( + ProjectUtils.buildArtifactRepository( dm.getRepository(), artifactRepositoryFactory, container ) ); } project.setParent( parentProject ); @@ -355,9 +365,7 @@ private MavenProject processProjectLogic( String pomLocation, MavenProject proje { Artifact parentArtifact = artifactFactory.createArtifact( parentProject.getGroupId(), parentProject.getArtifactId(), - parentProject.getVersion(), - null, - "pom", null ); + parentProject.getVersion(), null, "pom", null ); project.setParentArtifact( parentArtifact ); } @@ -369,7 +377,9 @@ private MavenProject processProjectLogic( String pomLocation, MavenProject proje if ( validationResult.getMessageCount() > 0 ) { - throw new ProjectBuildingException( "Failed to validate POM for \'" + pomLocation + "\'.\n\n Reason(s):\n" + validationResult.render( " " ) ); + throw new ProjectBuildingException( + "Failed to validate POM for \'" + pomLocation + "\'.\n\n Reason(s):\n" + + validationResult.render( " " ) ); } return project; @@ -381,7 +391,8 @@ private MavenProject assembleLineage( Model model, LinkedList lineage, List aggr { if ( !model.getRepositories().isEmpty() ) { - List respositories = ProjectUtils.buildArtifactRepositories( model.getRepositories(), artifactRepositoryFactory, container ); + List respositories = ProjectUtils.buildArtifactRepositories( model.getRepositories(), + artifactRepositoryFactory, container ); aggregatedRemoteWagonRepositories.addAll( respositories ); } @@ -447,12 +458,14 @@ private Model readModel( File file ) catch ( IOException e ) { throw new ProjectBuildingException( - "Failed to build model from file '" + file.getAbsolutePath() + "'.\nError: \'" + e.getLocalizedMessage() + "\'", e ); + "Failed to build model from file '" + file.getAbsolutePath() + "'.\nError: \'" + + e.getLocalizedMessage() + "\'", e ); } catch ( XmlPullParserException e ) { throw new ProjectBuildingException( - "Failed to parse model from file '" + file.getAbsolutePath() + "'.\nError: \'" + e.getLocalizedMessage() + "\'", e ); + "Failed to parse model from file '" + file.getAbsolutePath() + "'.\nError: \'" + + e.getLocalizedMessage() + "\'", e ); } finally { @@ -471,11 +484,15 @@ private Model readModel( URL url ) } catch ( IOException e ) { - throw new ProjectBuildingException( "Failed build model from URL \'" + url.toExternalForm() + "\'\nError: \'" + e.getLocalizedMessage() + "\'", e ); + throw new ProjectBuildingException( + "Failed build model from URL \'" + url.toExternalForm() + "\'\nError: \'" + e.getLocalizedMessage() + + "\'", e ); } catch ( XmlPullParserException e ) { - throw new ProjectBuildingException( "Failed to parse model from URL \'" + url.toExternalForm() + "\'\nError: \'" + e.getLocalizedMessage() + "\'", e ); + throw new ProjectBuildingException( + "Failed to parse model from URL \'" + url.toExternalForm() + "\'\nError: \'" + e.getLocalizedMessage() + + "\'", e ); } finally { @@ -496,7 +513,8 @@ private static String createCacheKey( String groupId, String artifactId, String protected Set createArtifacts( List dependencies ) { // TODO: merge with MavenMetadataSource properly - return new MavenMetadataSource( artifactResolver, this, artifactFactory ).createArtifacts( dependencies, null, null ); + return new MavenMetadataSource( artifactResolver, this, artifactFactory ).createArtifacts( dependencies, null, + null ); } protected Set createPluginArtifacts( List plugins ) @@ -510,15 +528,15 @@ protected Set createPluginArtifacts( List plugins ) String version; if ( StringUtils.isEmpty( p.getVersion() ) ) { - version = ReleaseArtifactTransformation.RELEASE_VERSION; + version = "RELEASE"; } else { version = p.getVersion(); } - Artifact artifact = artifactFactory.createArtifact( p.getGroupId(), p.getArtifactId(), version, - null, "maven-plugin", null ); + Artifact artifact = artifactFactory.createArtifact( p.getGroupId(), p.getArtifactId(), version, null, + "maven-plugin", null ); if ( artifact != null ) { pluginArtifacts.add( artifact ); @@ -545,7 +563,8 @@ public MavenProject buildStandaloneSuperProject( ArtifactRepository localReposit { project.setFile( new File( ".", "pom.xml" ) ); - List remoteRepositories = ProjectUtils.buildArtifactRepositories( superModel.getRepositories(), artifactRepositoryFactory, container ); + List remoteRepositories = ProjectUtils.buildArtifactRepositories( superModel.getRepositories(), + artifactRepositoryFactory, container ); project = processProjectLogic( "", project, remoteRepositories, externalProfiles ); diff --git a/maven-project/src/main/java/org/apache/maven/project/MavenProject.java b/maven-project/src/main/java/org/apache/maven/project/MavenProject.java index 5733cebc4a..a86e660188 100644 --- a/maven-project/src/main/java/org/apache/maven/project/MavenProject.java +++ b/maven-project/src/main/java/org/apache/maven/project/MavenProject.java @@ -34,12 +34,12 @@ import org.apache.maven.model.Model; import org.apache.maven.model.Organization; import org.apache.maven.model.Plugin; -import org.apache.maven.model.PluginManagement; -import org.apache.maven.model.Reporting; -import org.apache.maven.model.Scm; import org.apache.maven.model.PluginExecution; +import org.apache.maven.model.PluginManagement; import org.apache.maven.model.ReportPlugin; import org.apache.maven.model.ReportSet; +import org.apache.maven.model.Reporting; +import org.apache.maven.model.Scm; import org.apache.maven.model.io.xpp3.MavenXpp3Writer; import org.codehaus.plexus.util.xml.Xpp3Dom; @@ -1036,11 +1036,12 @@ public void setExecutionProject( MavenProject executionProject ) { this.executionProject = executionProject; } - - public void writeModel( Writer writer ) throws IOException + + public void writeModel( Writer writer ) + throws IOException { MavenXpp3Writer pomWriter = new MavenXpp3Writer(); - + pomWriter.write( writer, getModel() ); } } diff --git a/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java b/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java index 442b672f14..6c2bcf7a60 100644 --- a/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java +++ b/maven-project/src/main/java/org/apache/maven/project/MavenProjectBuilder.java @@ -44,8 +44,8 @@ MavenProject buildWithDependencies( File project, ArtifactRepository localReposi /** * Build the artifact from the local repository, resolving it if necessary. * - * @param artifact the artifact description - * @param localRepository the local repository + * @param artifact the artifact description + * @param localRepository the local repository * @param remoteArtifactRepositories the remote repository list * @return the built project * @throws ProjectBuildingException diff --git a/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java b/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java index d4ec7a1ff6..6aed6004e8 100644 --- a/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java +++ b/maven-project/src/main/java/org/apache/maven/project/ModelUtils.java @@ -17,12 +17,12 @@ */ import org.apache.maven.model.Goal; +import org.apache.maven.model.Model; import org.apache.maven.model.Plugin; import org.apache.maven.model.PluginContainer; import org.apache.maven.model.PluginExecution; -import org.apache.maven.model.Model; -import org.apache.maven.project.inheritance.ModelInheritanceAssembler; import org.apache.maven.project.inheritance.DefaultModelInheritanceAssembler; +import org.apache.maven.project.inheritance.ModelInheritanceAssembler; import org.codehaus.plexus.util.xml.Xpp3Dom; import java.util.ArrayList; diff --git a/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java b/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java index 0fc50e675d..21dc9c3474 100644 --- a/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java +++ b/maven-project/src/main/java/org/apache/maven/project/ProjectUtils.java @@ -29,14 +29,13 @@ public final class ProjectUtils { - private ProjectUtils() { } public static List buildArtifactRepositories( List repositories, - ArtifactRepositoryFactory artifactRepositoryFactory, - PlexusContainer container ) + ArtifactRepositoryFactory artifactRepositoryFactory, + PlexusContainer container ) throws ProjectBuildingException { @@ -46,7 +45,8 @@ public static List buildArtifactRepositories( List repositories, { Repository mavenRepo = (Repository) i.next(); - ArtifactRepository artifactRepo = buildArtifactRepository( mavenRepo, artifactRepositoryFactory, container ); + ArtifactRepository artifactRepo = buildArtifactRepository( mavenRepo, artifactRepositoryFactory, + container ); if ( !repos.contains( artifactRepo ) ) { @@ -57,8 +57,8 @@ public static List buildArtifactRepositories( List repositories, } public static ArtifactRepository buildArtifactRepository( Repository repo, - ArtifactRepositoryFactory artifactRepositoryFactory, - PlexusContainer container ) + ArtifactRepositoryFactory artifactRepositoryFactory, + PlexusContainer container ) throws ProjectBuildingException { if ( repo != null ) @@ -67,11 +67,12 @@ public static ArtifactRepository buildArtifactRepository( Repository repo, String url = repo.getUrl(); String snapshotPolicy = repo.getSnapshotPolicy(); String checksumPolicy = repo.getChecksumPolicy(); - + // TODO: make this a map inside the factory instead, so no lookup needed ArtifactRepositoryLayout layout = getRepositoryLayout( repo, container ); - - return artifactRepositoryFactory.createArtifactRepository( id, url, layout, snapshotPolicy, checksumPolicy ); + + return artifactRepositoryFactory.createArtifactRepository( id, url, layout, snapshotPolicy, + checksumPolicy ); } else { @@ -91,8 +92,9 @@ private static ArtifactRepositoryLayout getRepositoryLayout( Repository mavenRep } catch ( ComponentLookupException e ) { - throw new ProjectBuildingException( "Cannot find layout implementation corresponding to: \'" + layout - + "\' for remote repository with id: \'" + mavenRepo.getId() + "\'.", e ); + throw new ProjectBuildingException( + "Cannot find layout implementation corresponding to: \'" + layout + + "\' for remote repository with id: \'" + mavenRepo.getId() + "\'.", e ); } return repositoryLayout; } diff --git a/maven-project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java b/maven-project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java index e2ba49717a..3d1cfa2219 100644 --- a/maven-project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java +++ b/maven-project/src/main/java/org/apache/maven/project/artifact/ProjectArtifactMetadata.java @@ -19,7 +19,6 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.metadata.AbstractArtifactMetadata; import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException; -import org.apache.maven.artifact.manager.WagonManager; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.model.Model; import org.apache.maven.model.io.xpp3.MavenXpp3Reader; @@ -100,11 +99,6 @@ public void storeInLocalRepository( ArtifactRepository localRepository ) } } - public void retrieveFromRemoteRepository( ArtifactRepository remoteRepository, WagonManager wagonManager ) - { - // not used - TODO: again indicates bad design? - } - public String toString() { return "project information for " + artifact.getArtifactId() + " " + artifact.getVersion(); diff --git a/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java b/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java index 35236c7a53..dace0eb234 100644 --- a/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java +++ b/maven-project/src/main/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssembler.java @@ -229,7 +229,8 @@ private void assembleModelBaseInheritance( ModelBase child, ModelBase parent ) if ( StringUtils.isEmpty( inherited ) || Boolean.valueOf( inherited ).booleanValue() ) { - ReportPlugin childReportPlugin = (ReportPlugin) childReportersByKey.get( parentReportPlugin.getKey() ); + ReportPlugin childReportPlugin = (ReportPlugin) childReportersByKey.get( + parentReportPlugin.getKey() ); ReportPlugin mergedReportPlugin = parentReportPlugin; @@ -408,7 +409,7 @@ private void assembleBuildInheritance( Model child, Build parentBuild ) childBuild = new Build(); child.setBuild( childBuild ); } - + // The build has been set but we want to step in here and fill in // values that have not been set by the child. @@ -506,8 +507,8 @@ private void assembleScmInheritance( Model child, Model parent ) childScm.setConnection( appendPath( parentScm.getConnection(), child.getArtifactId() ) ); } - if ( StringUtils.isEmpty( childScm.getDeveloperConnection() ) - && !StringUtils.isEmpty( parentScm.getDeveloperConnection() ) ) + if ( StringUtils.isEmpty( childScm.getDeveloperConnection() ) && + !StringUtils.isEmpty( parentScm.getDeveloperConnection() ) ) { childScm .setDeveloperConnection( appendPath( parentScm.getDeveloperConnection(), child.getArtifactId() ) ); diff --git a/maven-project/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java b/maven-project/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java index 82288c2de6..641bb09d17 100644 --- a/maven-project/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java +++ b/maven-project/src/main/java/org/apache/maven/project/inheritance/ModelInheritanceAssembler.java @@ -28,6 +28,6 @@ public interface ModelInheritanceAssembler String ROLE = ModelInheritanceAssembler.class.getName(); void assembleModelInheritance( Model child, Model parent ); - + void mergeProfileWithModel( Model model, Profile profile ); } diff --git a/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java b/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java index 477fde426d..5d1351ed9b 100644 --- a/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java +++ b/maven-project/src/main/java/org/apache/maven/project/injection/DefaultModelDefaultsInjector.java @@ -33,7 +33,6 @@ public class DefaultModelDefaultsInjector implements ModelDefaultsInjector { - public void injectDefaults( Model model ) { injectDependencyDefaults( model.getDependencies(), model.getDependencyManagement() ); diff --git a/maven-project/src/main/java/org/apache/maven/project/injection/ModelDefaultsInjector.java b/maven-project/src/main/java/org/apache/maven/project/injection/ModelDefaultsInjector.java index e2d2dd7e8b..fb6436e943 100644 --- a/maven-project/src/main/java/org/apache/maven/project/injection/ModelDefaultsInjector.java +++ b/maven-project/src/main/java/org/apache/maven/project/injection/ModelDefaultsInjector.java @@ -28,5 +28,5 @@ public interface ModelDefaultsInjector void injectDefaults( Model model ); - void mergePluginWithDefaults( Plugin plugin, Plugin def ); + void mergePluginWithDefaults( Plugin plugin, Plugin def ); } \ No newline at end of file diff --git a/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java b/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java index 136d7acd32..af1be4c715 100644 --- a/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java +++ b/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolationException.java @@ -24,7 +24,6 @@ public class ModelInterpolationException extends Exception { - /** * Added: Feb 2, 2005 by jdcasey */ diff --git a/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java b/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java index a70cc6572d..976462019f 100644 --- a/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java +++ b/maven-project/src/main/java/org/apache/maven/project/interpolation/ModelInterpolator.java @@ -25,7 +25,6 @@ */ public interface ModelInterpolator { - String ROLE = ModelInterpolator.class.getName(); Model interpolate( Model project ) diff --git a/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java b/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java index 3f2ff76c3b..87050558ad 100644 --- a/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java +++ b/maven-project/src/main/java/org/apache/maven/project/validation/DefaultModelValidator.java @@ -34,7 +34,7 @@ public class DefaultModelValidator public ModelValidationResult validate( Model model ) { ModelValidationResult result = new ModelValidationResult(); - + validateStringNotEmpty( "modelVersion", result, model.getModelVersion() ); validateStringNotEmpty( "groupId", result, model.getGroupId() ); diff --git a/maven-project/src/main/java/org/apache/maven/project/validation/ModelValidationResult.java b/maven-project/src/main/java/org/apache/maven/project/validation/ModelValidationResult.java index 4a5370f749..3e3decd55d 100644 --- a/maven-project/src/main/java/org/apache/maven/project/validation/ModelValidationResult.java +++ b/maven-project/src/main/java/org/apache/maven/project/validation/ModelValidationResult.java @@ -46,7 +46,7 @@ public String getMessage( int i ) { return messages.get( i ).toString(); } - + public List getMessages() { return Collections.unmodifiableList( messages ); @@ -61,7 +61,7 @@ public String toString() { return render( "" ); } - + public String render( String indentation ) { if ( messages.size() == 0 ) diff --git a/maven-project/src/main/resources/META-INF/plexus/components.xml b/maven-project/src/main/resources/META-INF/plexus/components.xml index d0ee10bac0..dfa84980bd 100644 --- a/maven-project/src/main/resources/META-INF/plexus/components.xml +++ b/maven-project/src/main/resources/META-INF/plexus/components.xml @@ -1,6 +1,6 @@ - diff --git a/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml b/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml index b31dee9529..c48efd15c5 100644 --- a/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml +++ b/maven-project/src/main/resources/org/apache/maven/project/pom-4.0.0.xml @@ -41,4 +41,4 @@ - + diff --git a/maven-project/src/test/java/org/apache/maven/project/MavenProjectTestCase.java b/maven-project/src/test/java/org/apache/maven/project/MavenProjectTestCase.java index 1c4f46d109..936aad2e4d 100644 --- a/maven-project/src/test/java/org/apache/maven/project/MavenProjectTestCase.java +++ b/maven-project/src/test/java/org/apache/maven/project/MavenProjectTestCase.java @@ -16,9 +16,10 @@ * limitations under the License. */ -import org.apache.maven.artifact.repository.ArtifactRepository; -import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.artifact.factory.ArtifactFactory; +import org.apache.maven.artifact.repository.ArtifactRepository; +import org.apache.maven.artifact.repository.DefaultArtifactRepository; +import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.codehaus.plexus.PlexusTestCase; import java.io.File; @@ -43,7 +44,7 @@ protected void setUp() super.setUp(); projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE ); - artifactFactory = ( ArtifactFactory ) lookup( ArtifactFactory.ROLE ); + artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE ); } // ---------------------------------------------------------------------- @@ -84,8 +85,9 @@ protected ArtifactRepository getLocalRepository() ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "legacy" ); - ArtifactRepository r = new ArtifactRepository( "local", "file://" + getLocalRepositoryPath().getAbsolutePath(), - repoLayout ); + ArtifactRepository r = new DefaultArtifactRepository( "local", + "file://" + getLocalRepositoryPath().getAbsolutePath(), + repoLayout ); return r; } diff --git a/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java b/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java index 1d08cd06c2..c744099a90 100644 --- a/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java +++ b/maven-project/src/test/java/org/apache/maven/project/ModelUtilsTest.java @@ -1,10 +1,9 @@ package org.apache.maven.project; +import junit.framework.TestCase; import org.apache.maven.model.Plugin; import org.apache.maven.model.PluginExecution; -import junit.framework.TestCase; - /* * Copyright 2001-2005 The Apache Software Foundation. * @@ -24,7 +23,6 @@ public class ModelUtilsTest extends TestCase { - public void testShouldInheritOnePluginWithExecution() { Plugin parent = new Plugin(); diff --git a/maven-project/src/test/java/org/apache/maven/project/ProjectBaseDirectoryAlignmentTest.java b/maven-project/src/test/java/org/apache/maven/project/ProjectBaseDirectoryAlignmentTest.java index e515adc4bf..ce9caaddef 100644 --- a/maven-project/src/test/java/org/apache/maven/project/ProjectBaseDirectoryAlignmentTest.java +++ b/maven-project/src/test/java/org/apache/maven/project/ProjectBaseDirectoryAlignmentTest.java @@ -24,7 +24,6 @@ public class ProjectBaseDirectoryAlignmentTest extends MavenProjectTestCase { - private String dir = "src/test/resources/projects/base-directory-alignment/"; public void testProjectDirectoryBaseDirectoryAlignment() diff --git a/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java b/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java index 98187aad6b..0b964a23e6 100644 --- a/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java +++ b/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathArtifactResolver.java @@ -18,7 +18,6 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; -import org.apache.maven.artifact.factory.DefaultArtifactFactory; import org.apache.maven.artifact.metadata.ArtifactMetadataRetrievalException; import org.apache.maven.artifact.metadata.ArtifactMetadataSource; import org.apache.maven.artifact.repository.ArtifactRepository; @@ -112,7 +111,8 @@ public ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteR ArtifactMetadataSource source, ArtifactFilter filter ) throws ArtifactResolutionException { - return super.resolveTransitively( artifacts, remoteRepositories, localRepository, new Source( artifactFactory ), filter ); + return super.resolveTransitively( artifacts, remoteRepositories, localRepository, new Source( artifactFactory ), + filter ); } public ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteRepositories, @@ -120,7 +120,8 @@ public ArtifactResolutionResult resolveTransitively( Set artifacts, List remoteR ArtifactMetadataSource source ) throws ArtifactResolutionException { - return super.resolveTransitively( artifacts, remoteRepositories, localRepository, new Source( artifactFactory ) ); + return super.resolveTransitively( artifacts, remoteRepositories, localRepository, + new Source( artifactFactory ) ); } public ArtifactResolutionResult resolveTransitively( Artifact artifact, List remoteRepositories, @@ -128,6 +129,7 @@ public ArtifactResolutionResult resolveTransitively( Artifact artifact, List rem ArtifactMetadataSource source ) throws ArtifactResolutionException { - return super.resolveTransitively( artifact, remoteRepositories, localRepository, new Source( artifactFactory ) ); + return super.resolveTransitively( artifact, remoteRepositories, localRepository, + new Source( artifactFactory ) ); } } \ No newline at end of file diff --git a/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java b/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java index 11c35be692..226d9cb365 100644 --- a/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java +++ b/maven-project/src/test/java/org/apache/maven/project/ProjectClasspathTest.java @@ -28,7 +28,6 @@ public class ProjectClasspathTest extends MavenProjectTestCase { - private String dir = "projects/scope/"; public void testProjectClasspath() diff --git a/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java b/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java index 745e340162..5fe651b38d 100644 --- a/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java +++ b/maven-project/src/test/java/org/apache/maven/project/inheritance/DefaultModelInheritanceAssemblerTest.java @@ -82,7 +82,8 @@ public void testShouldOverrideUnitTestExcludesOnly() assembler.assembleModelInheritance( child, parent ); - assertEquals( "source directory should be from parent", "src/main/java", child.getBuild().getSourceDirectory() ); + assertEquals( "source directory should be from parent", "src/main/java", + child.getBuild().getSourceDirectory() ); assertEquals( "unit test source directory should be from parent", "src/test/java", child.getBuild().getTestSourceDirectory() ); @@ -322,45 +323,45 @@ public void testPluginInheritanceWhereParentPluginWithFalseInheritFlagAndChildHa Model parent = makeBaseModel( "parent" ); Model child = makeBaseModel( "child" ); - + Plugin parentPlugin = new Plugin(); - parentPlugin.setArtifactId("maven-testInheritance3-plugin"); - parentPlugin.setGroupId("org.apache.maven.plugins"); - parentPlugin.setVersion("1.0"); - parentPlugin.setInherited("false"); - - List parentPlugins = Collections.singletonList(parentPlugin); - + parentPlugin.setArtifactId( "maven-testInheritance3-plugin" ); + parentPlugin.setGroupId( "org.apache.maven.plugins" ); + parentPlugin.setVersion( "1.0" ); + parentPlugin.setInherited( "false" ); + + List parentPlugins = Collections.singletonList( parentPlugin ); + Build parentBuild = new Build(); - parentBuild.setPlugins(parentPlugins); - - parent.setBuild(parentBuild); + parentBuild.setPlugins( parentPlugins ); + + parent.setBuild( parentBuild ); assembler.assembleModelInheritance( child, parent ); - + assertPlugins( new ArrayList(), child ); } private void assertPlugins( List expectedPlugins, Model child ) { Build childBuild = child.getBuild(); - - if( expectedPlugins != null && !expectedPlugins.isEmpty() ) + + if ( expectedPlugins != null && !expectedPlugins.isEmpty() ) { assertNotNull( childBuild ); - + Map childPluginsMap = childBuild.getPluginsAsMap(); - - if( childPluginsMap != null ) + + if ( childPluginsMap != null ) { assertEquals( expectedPlugins.size(), childPluginsMap.size() ); - + for ( Iterator it = expectedPlugins.iterator(); it.hasNext(); ) { Plugin expectedPlugin = (Plugin) it.next(); - + Plugin childPlugin = (Plugin) childPluginsMap.get( expectedPlugin.getKey() ); - + assertPluginsEqual( expectedPlugin, childPlugin ); } } @@ -377,25 +378,26 @@ private void assertPlugins( List expectedPlugins, Model child ) private void assertPluginsEqual( Plugin reference, Plugin test ) { - assertEquals("Plugin keys don't match", reference.getKey(), test.getKey()); - assertEquals("Plugin configurations don't match", reference.getConfiguration(), test.getConfiguration()); - + assertEquals( "Plugin keys don't match", reference.getKey(), test.getKey() ); + assertEquals( "Plugin configurations don't match", reference.getConfiguration(), test.getConfiguration() ); + List referenceGoals = reference.getGoals(); Map testGoalsMap = test.getGoalsAsMap(); - - if( referenceGoals != null && !referenceGoals.isEmpty() ) + + if ( referenceGoals != null && !referenceGoals.isEmpty() ) { assertTrue( "Missing goals specification", ( testGoalsMap != null && !testGoalsMap.isEmpty() ) ); - + for ( Iterator it = referenceGoals.iterator(); it.hasNext(); ) { Goal referenceGoal = (Goal) it.next(); Goal testGoal = (Goal) testGoalsMap.get( referenceGoal.getId() ); - + assertNotNull( "Goal from reference not found in test", testGoal ); - + assertEquals( "Goal IDs don't match", referenceGoal.getId(), testGoal.getId() ); - assertEquals( "Goal configurations don't match", referenceGoal.getConfiguration(), testGoal.getConfiguration() ); + assertEquals( "Goal configurations don't match", referenceGoal.getConfiguration(), + testGoal.getConfiguration() ); } } else @@ -500,7 +502,8 @@ private void assertRepositories( List expected, List actual ) if ( actualRepository.getId().equals( expectedRepository.getId() ) ) { - assertEquals( "Repository URLs don't match", expectedRepository.getUrl(), actualRepository.getUrl() ); + assertEquals( "Repository URLs don't match", expectedRepository.getUrl(), + actualRepository.getUrl() ); found = true; } } diff --git a/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java b/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java index ad460abedb..d655c03268 100644 --- a/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java +++ b/maven-project/src/test/java/org/apache/maven/project/injection/DefaultModelDefaultsInjectorTest.java @@ -29,7 +29,6 @@ public class DefaultModelDefaultsInjectorTest extends TestCase { - public void testShouldConstructWithNoParams() { new DefaultModelDefaultsInjector(); diff --git a/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java b/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java index 08c51247ee..ebaf2a1948 100644 --- a/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java +++ b/maven-project/src/test/java/org/apache/maven/project/validation/DefaultModelValidatorTest.java @@ -34,8 +34,9 @@ public class DefaultModelValidatorTest private Model model; private ModelValidator validator; - - public void testMissingModelVersion() throws Exception + + public void testMissingModelVersion() + throws Exception { ModelValidationResult result = validate( "missing-modelVersion-pom.xml" ); @@ -92,11 +93,11 @@ public void testMissingAll() assertEquals( 4, result.getMessageCount() ); List messages = result.getMessages(); - - assertTrue( messages.contains("\'modelVersion\' is missing.")); - assertTrue( messages.contains("\'groupId\' is missing.")); - assertTrue( messages.contains("\'artifactId\' is missing.")); - assertTrue( messages.contains("\'version\' is missing.")); + + assertTrue( messages.contains( "\'modelVersion\' is missing." ) ); + assertTrue( messages.contains( "\'groupId\' is missing." ) ); + assertTrue( messages.contains( "\'artifactId\' is missing." ) ); + assertTrue( messages.contains( "\'version\' is missing." ) ); // type is inherited from the super pom } diff --git a/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml b/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml index 5396b658d2..ee33a26b0b 100644 --- a/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml +++ b/maven-project/src/test/resources/org/apache/maven/project/ProjectClasspathTest.xml @@ -1,6 +1,6 @@ -