http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java deleted file mode 100644 index b81450c..0000000 --- a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/AbstractRepositoryTestCase.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.apache.maven.repository.internal; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 java.net.MalformedURLException; - -import org.apache.maven.repository.internal.util.ConsoleRepositoryListener; -import org.apache.maven.repository.internal.util.ConsoleTransferListener; -import org.codehaus.plexus.ContainerConfiguration; -import org.codehaus.plexus.PlexusConstants; -import org.codehaus.plexus.PlexusTestCase; -import org.eclipse.aether.DefaultRepositorySystemSession; -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.RepositorySystemSession; -import org.eclipse.aether.repository.LocalRepository; -import org.eclipse.aether.repository.RemoteRepository; - -public abstract class AbstractRepositoryTestCase - extends PlexusTestCase -{ - protected RepositorySystem system; - - protected RepositorySystemSession session; - - @Override - protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration ) - { - super.customizeContainerConfiguration( containerConfiguration ); - containerConfiguration.setAutoWiring( true ); - containerConfiguration.setClassPathScanning( PlexusConstants.SCANNING_INDEX ); - } - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - system = lookup( RepositorySystem.class ); - session = newMavenRepositorySystemSession( system ); - } - - @Override - protected void tearDown() - throws Exception - { - session = null; - system = null; - super.tearDown(); - } - - public static RepositorySystemSession newMavenRepositorySystemSession( RepositorySystem system ) - { - DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); - - LocalRepository localRepo = new LocalRepository( "target/local-repo" ); - session.setLocalRepositoryManager( system.newLocalRepositoryManager( session, localRepo ) ); - - session.setTransferListener( new ConsoleTransferListener() ); - session.setRepositoryListener( new ConsoleRepositoryListener() ); - - return session; - } - - public static RemoteRepository newTestRepository() - throws MalformedURLException - { - return new RemoteRepository.Builder( "repo", "default", - getTestFile( "target/test-classes/repo" ).toURI().toURL().toString() ).build(); - } -}
http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java deleted file mode 100644 index e873138..0000000 --- a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReaderTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.apache.maven.repository.internal; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -import org.eclipse.aether.RepositoryEvent; -import org.eclipse.aether.RepositoryEvent.EventType; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.eclipse.aether.impl.ArtifactDescriptorReader; -import org.eclipse.aether.impl.RepositoryEventDispatcher; -import org.eclipse.aether.resolution.ArtifactDescriptorRequest; -import org.mockito.ArgumentCaptor; - -public class DefaultArtifactDescriptorReaderTest - extends AbstractRepositoryTestCase -{ - - public void testMng5459() - throws Exception - { - // prepare - DefaultArtifactDescriptorReader reader = (DefaultArtifactDescriptorReader) lookup( ArtifactDescriptorReader.class ); - - RepositoryEventDispatcher eventDispatcher = mock( RepositoryEventDispatcher.class ); - - ArgumentCaptor<RepositoryEvent> event = ArgumentCaptor.forClass( RepositoryEvent.class ); - - reader.setRepositoryEventDispatcher( eventDispatcher ); - - ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(); - - request.addRepository( newTestRepository() ); - - request.setArtifact( new DefaultArtifact( "org.apache.maven.its", "dep-mng5459", "jar", "0.4.0-SNAPSHOT" ) ); - - // execute - reader.readArtifactDescriptor( session, request ); - - // verify - verify( eventDispatcher ).dispatch( event.capture() ); - - boolean missingArtifactDescriptor = false; - - for( RepositoryEvent evt : event.getAllValues() ) - { - if ( EventType.ARTIFACT_DESCRIPTOR_MISSING.equals( evt.getType() ) ) - { - assertEquals( "Could not find artifact org.apache.maven.its:dep-mng5459:pom:0.4.0-20130404.090532-2 in repo (" + newTestRepository().getUrl() + ")", evt.getException().getMessage() ); - missingArtifactDescriptor = true; - } - } - - if( !missingArtifactDescriptor ) - { - fail( "Expected missing artifact descriptor for org.apache.maven.its:dep-mng5459:pom:0.4.0-20130404.090532-2" ); - } - } -} http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java deleted file mode 100644 index 90dd6a4..0000000 --- a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/DefaultVersionResolverTest.java +++ /dev/null @@ -1,96 +0,0 @@ -package org.apache.maven.repository.internal; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.impl.VersionResolver; -import org.eclipse.aether.resolution.VersionRequest; -import org.eclipse.aether.resolution.VersionResult; -import org.eclipse.aether.artifact.DefaultArtifact; - -public class DefaultVersionResolverTest - extends AbstractRepositoryTestCase -{ - private DefaultVersionResolver versionResolver; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - // be sure we're testing the right class, i.e. DefaultVersionResolver.class - versionResolver = (DefaultVersionResolver) lookup( VersionResolver.class, "default" ); - } - - @Override - protected void tearDown() - throws Exception - { - versionResolver = null; - super.tearDown(); - } - - public void testResolveSeparateInstalledClassifiedNonUniqueVersionedArtifacts() - throws Exception - { - VersionRequest requestB = new VersionRequest(); - requestB.addRepository( newTestRepository() ); - Artifact artifactB = - new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierB", "jar", "07.20.3-SNAPSHOT" ); - requestB.setArtifact( artifactB ); - - VersionResult resultB = versionResolver.resolveVersion( session, requestB ); - assertEquals( "07.20.3-20120809.112920-97", resultB.getVersion() ); - - VersionRequest requestA = new VersionRequest(); - requestA.addRepository( newTestRepository() ); - - Artifact artifactA = - new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierA", "jar", "07.20.3-SNAPSHOT" ); - requestA.setArtifact( artifactA ); - - VersionResult resultA = versionResolver.resolveVersion( session, requestA ); - assertEquals( "07.20.3-20120809.112124-88", resultA.getVersion() ); - } - - public void testResolveSeparateInstalledClassifiedNonVersionedArtifacts() - throws Exception - { - VersionRequest requestA = new VersionRequest(); - requestA.addRepository( newTestRepository() ); - String versionA = "07.20.3-20120809.112124-88"; - Artifact artifactA = - new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierA", "jar", versionA ); - requestA.setArtifact( artifactA ); - - VersionResult resultA = versionResolver.resolveVersion( session, requestA ); - assertEquals( versionA, resultA.getVersion() ); - - VersionRequest requestB = new VersionRequest(); - requestB.addRepository( newTestRepository() ); - String versionB = "07.20.3-20120809.112920-97"; - Artifact artifactB = - new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierB", "jar", versionB ); - requestB.setArtifact( artifactB ); - - VersionResult resultB = versionResolver.resolveVersion( session, requestB ); - assertEquals( versionB, resultB.getVersion() ); - } -} http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java deleted file mode 100644 index 768835a..0000000 --- a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/MavenRepositorySystemUtilsTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.apache.maven.repository.internal; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.eclipse.aether.RepositorySystem; -import org.eclipse.aether.impl.MetadataGeneratorFactory; -import org.eclipse.aether.spi.locator.ServiceLocator; - -import junit.framework.TestCase; - -public class MavenRepositorySystemUtilsTest - extends TestCase -{ - - public void testGetRepositorySystem() - { - ServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator(); - RepositorySystem repoSys = locator.getService( RepositorySystem.class ); - assertNotNull( repoSys ); - } - - public void testGetMetadataGeneratorFactories() - { - ServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator(); - assertEquals( 2, locator.getServices( MetadataGeneratorFactory.class ).size() ); - } - -} http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java deleted file mode 100644 index 278231f..0000000 --- a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RemoteSnapshotMetadataTest.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.apache.maven.repository.internal; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 static org.junit.Assert.assertTrue; - -import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.HashSet; -import java.util.Locale; -import java.util.Set; - -import org.apache.maven.artifact.repository.metadata.Metadata; -import org.eclipse.aether.artifact.DefaultArtifact; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class RemoteSnapshotMetadataTest -{ - private Locale defaultLocale; - - @Before - public void setLocaleToUseBuddhistCalendar() - { - defaultLocale = Locale.getDefault(); - Locale.setDefault( new Locale( "th", "TH" ) ); - } - - @After - public void restoreLocale() - { - Locale.setDefault( defaultLocale ); - } - - static String gregorianDate() - { - SimpleDateFormat df = new SimpleDateFormat( "yyyyMMdd" ); - df.setCalendar( new GregorianCalendar() ); - df.setTimeZone( RemoteSnapshotMetadata.DEFAULT_SNAPSHOT_TIME_ZONE ); - return df.format( new Date() ); - } - - @Test - public void gregorianCalendarIsUsed() - { - String dateBefore = gregorianDate(); - - RemoteSnapshotMetadata metadata = new RemoteSnapshotMetadata( - new DefaultArtifact( "a:b:1-SNAPSHOT" ), false); - metadata.merge( new Metadata() ); - - String dateAfter = gregorianDate(); - - String ts = metadata.metadata.getVersioning().getSnapshot().getTimestamp(); - String datePart = ts.replaceAll( "\\..*", "" ); - - /* Allow for this test running across midnight */ - Set<String> expected = new HashSet<String>( Arrays.asList( dateBefore, dateAfter ) ); - assertTrue( "Expected " + datePart + " to be in " + expected, - expected.contains( datePart ) ); - } -} http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java deleted file mode 100644 index db77a44..0000000 --- a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/RepositorySystemTest.java +++ /dev/null @@ -1,220 +0,0 @@ -package org.apache.maven.repository.internal; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 java.util.Arrays; -import java.util.List; - -import org.eclipse.aether.artifact.Artifact; -import org.eclipse.aether.collection.CollectRequest; -import org.eclipse.aether.collection.CollectResult; -import org.eclipse.aether.graph.Dependency; -import org.eclipse.aether.graph.DependencyNode; -import org.eclipse.aether.resolution.ArtifactDescriptorRequest; -import org.eclipse.aether.resolution.ArtifactDescriptorResult; -import org.eclipse.aether.resolution.ArtifactRequest; -import org.eclipse.aether.resolution.ArtifactResult; -import org.eclipse.aether.artifact.DefaultArtifact; - -public class RepositorySystemTest - extends AbstractRepositoryTestCase -{ - public void testResolveVersionRange() - throws Exception - { - //VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request ) - // throws VersionRangeResolutionException; - - } - - public void testResolveVersion() - throws Exception - { - //VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) - // throws VersionResolutionException; - } - - public void testReadArtifactDescriptor() - throws Exception - { - Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" ); - - ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(); - request.setArtifact( artifact ); - request.addRepository( newTestRepository() ); - - ArtifactDescriptorResult result = system.readArtifactDescriptor( session, request ); - - List<Dependency> deps = result.getDependencies(); - assertEquals( 2, deps.size() ); - checkUtSimpleArtifactDependencies( deps.get( 0 ), deps.get( 1 ) ); - } - - /** - * check ut.simple:artifact:1.0 dependencies - */ - private void checkUtSimpleArtifactDependencies( Dependency dep1, Dependency dep2 ) - { - assertEquals( "compile", dep1.getScope() ); - assertFalse( dep1.isOptional() ); - assertEquals( 0, dep1.getExclusions().size() ); - Artifact depArtifact = dep1.getArtifact(); - assertEquals( "ut.simple", depArtifact.getGroupId() ); - assertEquals( "dependency", depArtifact.getArtifactId() ); - assertEquals( "1.0", depArtifact.getVersion() ); - assertEquals( "1.0", depArtifact.getBaseVersion() ); - assertNull( depArtifact.getFile() ); - assertFalse( depArtifact.isSnapshot() ); - assertEquals( "", depArtifact.getClassifier() ); - assertEquals( "jar", depArtifact.getExtension() ); - assertEquals( "java", depArtifact.getProperty( "language", null ) ); - assertEquals( "jar", depArtifact.getProperty( "type", null ) ); - assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) ); - assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) ); - assertEquals( 4, depArtifact.getProperties().size() ); - - assertEquals( "compile", dep2.getScope() ); - assertFalse( dep2.isOptional() ); - assertEquals( 0, dep2.getExclusions().size() ); - depArtifact = dep2.getArtifact(); - assertEquals( "ut.simple", depArtifact.getGroupId() ); - assertEquals( "dependency", depArtifact.getArtifactId() ); - assertEquals( "1.0", depArtifact.getVersion() ); - assertEquals( "1.0", depArtifact.getBaseVersion() ); - assertNull( depArtifact.getFile() ); - assertFalse( depArtifact.isSnapshot() ); - assertEquals( "sources", depArtifact.getClassifier() ); - assertEquals( "jar", depArtifact.getExtension() ); - assertEquals( "java", depArtifact.getProperty( "language", null ) ); - assertEquals( "jar", depArtifact.getProperty( "type", null ) ); // shouldn't it be java-sources given the classifier? - assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) ); // shouldn't it be false given the classifier? - assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) ); - assertEquals( 4, depArtifact.getProperties().size() ); - } - - public void testCollectDependencies() - throws Exception - { - Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" ); - // notice: extension and classifier not really used in this test... - - CollectRequest collectRequest = new CollectRequest(); - collectRequest.setRoot( new Dependency( artifact, null ) ); - collectRequest.addRepository( newTestRepository() ); - - CollectResult collectResult = system.collectDependencies( session, collectRequest ); - - List<DependencyNode> nodes = collectResult.getRoot().getChildren(); - assertEquals( 2, nodes.size() ); - checkUtSimpleArtifactDependencies( nodes.get( 0 ).getDependency(), nodes.get( 1 ).getDependency() ); - } - - public void testResolveArtifact() - throws Exception - { - Artifact artifact = new DefaultArtifact( "ut.simple:artifact:1.0" ); - - ArtifactRequest artifactRequest = new ArtifactRequest(); - artifactRequest.setArtifact( artifact ); - artifactRequest.addRepository( newTestRepository() ); - - ArtifactResult artifactResult = system.resolveArtifact( session, artifactRequest ); - checkArtifactResult( artifactResult, "artifact-1.0.jar" ); - - artifact = new DefaultArtifact( "ut.simple:artifact:zip:1.0" ); - artifactRequest.setArtifact( artifact ); - artifactResult = system.resolveArtifact( session, artifactRequest ); - checkArtifactResult( artifactResult, "artifact-1.0.zip" ); - - artifact = new DefaultArtifact( "ut.simple:artifact:zip:classifier:1.0" ); - artifactRequest.setArtifact( artifact ); - artifactResult = system.resolveArtifact( session, artifactRequest ); - checkArtifactResult( artifactResult, "artifact-1.0-classifier.zip" ); - } - - private void checkArtifactResult( ArtifactResult result, String filename ) - { - assertFalse( result.isMissing() ); - assertTrue( result.isResolved() ); - Artifact artifact = result.getArtifact(); - assertNotNull( artifact.getFile() ); - assertEquals( filename, artifact.getFile().getName() ); - } - - public void testResolveArtifacts() - throws Exception - { - ArtifactRequest req1 = new ArtifactRequest(); - req1.setArtifact( new DefaultArtifact( "ut.simple:artifact:1.0" ) ); - req1.addRepository( newTestRepository() ); - - ArtifactRequest req2 = new ArtifactRequest(); - req2.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:1.0" ) ); - req2.addRepository( newTestRepository() ); - - ArtifactRequest req3 = new ArtifactRequest(); - req3.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:classifier:1.0" ) ); - req3.addRepository( newTestRepository() ); - - List<ArtifactRequest> requests = Arrays.asList( req1, req2, req3 ); - - List<ArtifactResult> results = system.resolveArtifacts( session, requests ); - - assertEquals( 3, results.size() ); - checkArtifactResult( results.get( 0 ), "artifact-1.0.jar" ); - checkArtifactResult( results.get( 1 ), "artifact-1.0.zip" ); - checkArtifactResult( results.get( 2 ), "artifact-1.0-classifier.zip" ); - } - - public void testResolveMetadata() - throws Exception - { - //List<MetadataResult> resolveMetadata( RepositorySystemSession session, - // Collection<? extends MetadataRequest> requests ); - } - - public void testInstall() - throws Exception - { - //InstallResult install( RepositorySystemSession session, InstallRequest request ) - // throws InstallationException; - // release, snapshot unique ou non unique, attachement - } - - public void testDeploy() - throws Exception - { - //DeployResult deploy( RepositorySystemSession session, DeployRequest request ) - // throws DeploymentException; - } - - public void testNewLocalRepositoryManager() - throws Exception - { - //LocalRepositoryManager newLocalRepositoryManager( LocalRepository localRepository ); - } - - public void testNewSyncContext() - throws Exception - { - //SyncContext newSyncContext( RepositorySystemSession session, boolean shared ); - } - -} http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java deleted file mode 100644 index 2879a9f..0000000 --- a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleRepositoryListener.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.apache.maven.repository.internal.util; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 java.io.PrintStream; - -import org.eclipse.aether.AbstractRepositoryListener; -import org.eclipse.aether.RepositoryEvent; - -public class ConsoleRepositoryListener - extends AbstractRepositoryListener -{ - - private PrintStream out; - - public ConsoleRepositoryListener() - { - this( null ); - } - - public ConsoleRepositoryListener( PrintStream out ) - { - this.out = ( out != null ) ? out : System.out; - } - - public void artifactDeployed( RepositoryEvent event ) - { - println( "artifactDeployed", event.getArtifact() + " to " + event.getRepository() ); - } - - public void artifactDeploying( RepositoryEvent event ) - { - println( "artifactDeploying", event.getArtifact() + " to " + event.getRepository() ); - } - - public void artifactDescriptorInvalid( RepositoryEvent event ) - { - println( "artifactDescriptorInvalid", "for " + event.getArtifact() + ": " + event.getException().getMessage() ); - } - - public void artifactDescriptorMissing( RepositoryEvent event ) - { - println( "artifactDescriptorMissing", "for " + event.getArtifact() ); - } - - public void artifactInstalled( RepositoryEvent event ) - { - println( "artifactInstalled", event.getArtifact() + " to " + event.getFile() ); - } - - public void artifactInstalling( RepositoryEvent event ) - { - println( "artifactInstalling", event.getArtifact() + " to " + event.getFile() ); - } - - public void artifactResolved( RepositoryEvent event ) - { - println( "artifactResolved", event.getArtifact() + " from " + event.getRepository() ); - } - - public void artifactDownloading( RepositoryEvent event ) - { - println( "artifactDownloading", event.getArtifact() + " from " + event.getRepository() ); - } - - public void artifactDownloaded( RepositoryEvent event ) - { - println( "artifactDownloaded", event.getArtifact() + " from " + event.getRepository() ); - } - - public void artifactResolving( RepositoryEvent event ) - { - println( "artifactResolving", event.getArtifact().toString() ); - } - - public void metadataDeployed( RepositoryEvent event ) - { - println( "metadataDeployed", event.getMetadata() + " to " + event.getRepository() ); - } - - public void metadataDeploying( RepositoryEvent event ) - { - println( "metadataDeploying", event.getMetadata() + " to " + event.getRepository() ); - } - - public void metadataInstalled( RepositoryEvent event ) - { - println( "metadataInstalled", event.getMetadata() + " to " + event.getFile() ); - } - - public void metadataInstalling( RepositoryEvent event ) - { - println( "metadataInstalling", event.getMetadata() + " to " + event.getFile() ); - } - - public void metadataInvalid( RepositoryEvent event ) - { - println( "metadataInvalid", event.getMetadata().toString() ); - } - - public void metadataResolved( RepositoryEvent event ) - { - println( "metadataResolved", event.getMetadata() + " from " + event.getRepository() ); - } - - public void metadataResolving( RepositoryEvent event ) - { - println( "metadataResolving", event.getMetadata() + " from " + event.getRepository() ); - } - - private void println( String event, String message ) - { - out.println( "Aether Repository - " + event + ": " + message ); - } -} http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java b/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java deleted file mode 100644 index cf587d8..0000000 --- a/maven-aether-provider/src/test/java/org/apache/maven/repository/internal/util/ConsoleTransferListener.java +++ /dev/null @@ -1,186 +0,0 @@ -package org.apache.maven.repository.internal.util; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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 java.io.PrintStream; -import java.text.DecimalFormat; -import java.text.DecimalFormatSymbols; -import java.util.Locale; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -import org.eclipse.aether.transfer.AbstractTransferListener; -import org.eclipse.aether.transfer.TransferEvent; -import org.eclipse.aether.transfer.TransferResource; - -public class ConsoleTransferListener - extends AbstractTransferListener -{ - - private PrintStream out; - - private Map<TransferResource, Long> downloads = new ConcurrentHashMap<>(); - - private int lastLength; - - public ConsoleTransferListener() - { - this( null ); - } - - public ConsoleTransferListener( PrintStream out ) - { - this.out = ( out != null ) ? out : System.out; - } - - @Override - public void transferInitiated( TransferEvent event ) - { - String message = event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploading" : "Downloading"; - - println( "transferInitiated", message + ": " + event.getResource().getRepositoryUrl() + event.getResource().getResourceName() ); - } - - @Override - public void transferProgressed( TransferEvent event ) - { - TransferResource resource = event.getResource(); - downloads.put( resource, event.getTransferredBytes() ); - - StringBuilder buffer = new StringBuilder( 64 ); - - for ( Map.Entry<TransferResource, Long> entry : downloads.entrySet() ) - { - long total = entry.getKey().getContentLength(); - long complete = entry.getValue(); - - buffer.append( getStatus( complete, total ) ).append( " " ); - } - - int pad = lastLength - buffer.length(); - lastLength = buffer.length(); - pad( buffer, pad ); - buffer.append( '\r' ); - - print( "transferProgressed", buffer.toString() ); - } - - private String getStatus( long complete, long total ) - { - if ( total >= 1024 ) - { - return toKB( complete ) + "/" + toKB( total ) + " KB "; - } - else if ( total >= 0 ) - { - return complete + "/" + total + " B "; - } - else if ( complete >= 1024 ) - { - return toKB( complete ) + " KB "; - } - else - { - return complete + " B "; - } - } - - private void pad( StringBuilder buffer, int spaces ) - { - String block = " "; - while ( spaces > 0 ) - { - int n = Math.min( spaces, block.length() ); - buffer.append( block, 0, n ); - spaces -= n; - } - } - - @Override - public void transferSucceeded( TransferEvent event ) - { - transferCompleted( event ); - - TransferResource resource = event.getResource(); - long contentLength = event.getTransferredBytes(); - if ( contentLength >= 0 ) - { - String type = ( event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploaded" : "Downloaded" ); - String len = contentLength >= 1024 ? toKB( contentLength ) + " KB" : contentLength + " B"; - - String throughput = ""; - long duration = System.currentTimeMillis() - resource.getTransferStartTime(); - if ( duration > 0 ) - { - DecimalFormat format = new DecimalFormat( "0.0", new DecimalFormatSymbols( Locale.ENGLISH ) ); - double kbPerSec = ( contentLength / 1024.0 ) / ( duration / 1000.0 ); - throughput = " at " + format.format( kbPerSec ) + " KB/sec"; - } - - println( "transferSucceeded", type + ": " + resource.getRepositoryUrl() + resource.getResourceName() + " (" - + len + throughput + ")" ); - } - } - - @Override - public void transferFailed( TransferEvent event ) - { - transferCompleted( event ); - - println( "transferFailed", event.getException().getClass() + ": " + event.getException().getMessage() ); - } - - private void transferCompleted( TransferEvent event ) - { - downloads.remove( event.getResource() ); - - StringBuilder buffer = new StringBuilder( 64 ); - pad( buffer, lastLength ); - buffer.append( '\r' ); - out.println( buffer ); - } - - @Override - public void transferCorrupted( TransferEvent event ) - { - println( "transferCorrupted", event.getException().getClass() + ": " + event.getException().getMessage() ); - } - - protected long toKB( long bytes ) - { - return ( bytes + 1023 ) / 1024; - } - - private void println( String event, String message ) - { - print( event, message ); - out.println(); - } - - private void print( String event, String message ) - { - out.print( "Aether Transfer - " + event ); - if ( message != null ) - { - out.print( ": " ); - out.print( message ); - } - } -} http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml b/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 9f0a7fe..0000000 --- a/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5324/07.20.3-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you 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. ---> - -<metadata xmlns="http://maven.apache.org/METADATA/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/METADATA/1.1.0 http://maven.apache.org/xsd/metadata-1.1.0.xsd" - modelVersion="1.1.0"> - <groupId>org.apache.maven.its</groupId> - <artifactId>dep-mng5324</artifactId> - <version>07.20.3-SNAPSHOT</version><!-- metadata for artifact snapshot --> - <versioning> - <snapshot> - <timestamp>20120809.112920</timestamp> - <buildNumber>97</buildNumber> - </snapshot> - <lastUpdated>20120809112920</lastUpdated> - <snapshotVersions> - <snapshotVersion> - <classifier>classifierA</classifier> - <extension>jar</extension> - <value>07.20.3-20120809.112124-88</value> - <updated>20120809112124</updated> - </snapshotVersion> - <snapshotVersion> - <classifier>classifierB</classifier> - <extension>jar</extension> - <value>07.20.3-20120809.112920-97</value> - <updated>20120809112920</updated> - </snapshotVersion> - </snapshotVersions> - </versioning> -</metadata> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml b/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml deleted file mode 100644 index 923f26f..0000000 --- a/maven-aether-provider/src/test/resources/repo/org/apache/maven/its/dep-mng5459/0.4.0-SNAPSHOT/maven-metadata.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you 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. ---> - -<metadata xmlns="http://maven.apache.org/METADATA/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/METADATA/1.1.0 http://maven.apache.org/xsd/metadata-1.1.0.xsd" - modelVersion="1.1.0"> - <groupId>org.apache.maven.its</groupId> - <artifactId>dep-mng5459</artifactId> - <version>0.4.0-SNAPSHOT</version> - <versioning> - <snapshot> - <timestamp>20130404.090532</timestamp> - <buildNumber>2</buildNumber> - </snapshot> - <lastUpdated>20130404093657</lastUpdated> - <snapshotVersions> - <snapshotVersion> - <extension>pom</extension> - <value>0.4.0-20130404.090532-2</value> - <updated>20130404090532</updated> - </snapshotVersion> - <snapshotVersion> - <extension>jar</extension> - <value>0.4.0-20130404.093655-3</value> - <updated>20130404093655</updated> - </snapshotVersion> - </snapshotVersions> - </versioning> -</metadata> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0-classifier.zip ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0-classifier.zip b/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0-classifier.zip deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.jar ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.jar b/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.jar deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom b/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom deleted file mode 100644 index f8b72af..0000000 --- a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.pom +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you 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. ---> - -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>ut.simple</groupId> - <artifactId>parent</artifactId> - <version>1.0</version> - </parent> - - <artifactId>artifact</artifactId> - - <name>Simple Unit Test Artifact</name> - - <dependencies> - <dependency> - <groupId>ut.simple</groupId> - <artifactId>dependency</artifactId> - </dependency> - <dependency> - <groupId>ut.simple</groupId> - <artifactId>dependency</artifactId> - <version>1.0</version> - <classifier>sources</classifier> - </dependency> - </dependencies> -</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.zip ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.zip b/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/1.0/artifact-1.0.zip deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml b/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml deleted file mode 100644 index 2de7ecc..0000000 --- a/maven-aether-provider/src/test/resources/repo/ut/simple/artifact/maven-metadata.xml +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you 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. ---> - -<metadata xmlns="http://maven.apache.org/METADATA/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/METADATA/1.1.0 http://maven.apache.org/xsd/metadata-1.1.0.xsd"> - <groupId>ut.simple</groupId> - <artifactId>artifact</artifactId> - <versioning> - <latest>1.0</latest> - <release>1.0</release> - <versions> - <version>1.0</version> - </versions> - <lastUpdated>20111123122038</lastUpdated> - </versioning> -</metadata> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0-sources.jar ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0-sources.jar b/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0-sources.jar deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.jar ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.jar b/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.jar deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom b/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom deleted file mode 100644 index c021dfa..0000000 --- a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/1.0/dependency-1.0.pom +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you 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. ---> - -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>ut.simple</groupId> - <artifactId>dependency</artifactId> - <version>1.0</version> - - <name>Simple Unit Test Dependency</name> -</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml b/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml deleted file mode 100644 index 8a97c34..0000000 --- a/maven-aether-provider/src/test/resources/repo/ut/simple/dependency/maven-metadata.xml +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you 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. ---> - -<metadata xmlns="http://maven.apache.org/METADATA/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/METADATA/1.1.0 http://maven.apache.org/xsd/metadata-1.1.0.xsd"> - <groupId>ut.simple</groupId> - <artifactId>dependency</artifactId> - <versioning> - <latest>1.0</latest> - <release>1.0</release> - <versions> - <version>1.0</version> - </versions> - <lastUpdated>20111123122038</lastUpdated> - </versioning> -</metadata> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom b/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom deleted file mode 100644 index ed64c9e..0000000 --- a/maven-aether-provider/src/test/resources/repo/ut/simple/parent/1.0/parent-1.0.pom +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you 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. ---> - -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>ut.simple</groupId> - <artifactId>parent</artifactId> - <version>1.0</version> - <packaging>pom</packaging> - - <name>Simple Unit Test Parent</name> - - <dependencyManagement> - <dependencies> - <dependency> - <groupId>ut.simple</groupId> - <artifactId>dependency</artifactId> - <version>1.0</version> - </dependency> - </dependencies> - </dependencyManagement> - -</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml ---------------------------------------------------------------------- diff --git a/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml b/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml deleted file mode 100644 index 7199d52..0000000 --- a/maven-aether-provider/src/test/resources/repo/ut/simple/parent/maven-metadata.xml +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> - -<!-- - ~ Licensed to the Apache Software Foundation (ASF) under one - ~ or more contributor license agreements. See the NOTICE file - ~ distributed with this work for additional information - ~ regarding copyright ownership. The ASF licenses this file - ~ to you 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. ---> - -<metadata xmlns="http://maven.apache.org/METADATA/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/METADATA/1.1.0 http://maven.apache.org/xsd/metadata-1.1.0.xsd"> - <groupId>ut.simple</groupId> - <artifactId>parent</artifactId> - <versioning> - <latest>1.0</latest> - <release>1.0</release> - <versions> - <version>1.0</version> - </versions> - <lastUpdated>20111123122038</lastUpdated> - </versioning> -</metadata> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-compat/pom.xml ---------------------------------------------------------------------- diff --git a/maven-compat/pom.xml b/maven-compat/pom.xml index 876c11c..c740504 100644 --- a/maven-compat/pom.xml +++ b/maven-compat/pom.xml @@ -60,7 +60,7 @@ under the License. </dependency> <dependency> <groupId>org.apache.maven</groupId> - <artifactId>maven-aether-provider</artifactId> + <artifactId>maven-resolver-provider</artifactId> </dependency> <dependency> <groupId>org.apache.maven.resolver</groupId> http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-core/pom.xml ---------------------------------------------------------------------- diff --git a/maven-core/pom.xml b/maven-core/pom.xml index ad5484a..95162bd 100644 --- a/maven-core/pom.xml +++ b/maven-core/pom.xml @@ -70,7 +70,7 @@ under the License. </dependency> <dependency> <groupId>org.apache.maven</groupId> - <artifactId>maven-aether-provider</artifactId> + <artifactId>maven-resolver-provider</artifactId> </dependency> <dependency> <groupId>org.apache.maven.resolver</groupId> http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-core/src/main/resources/META-INF/maven/extension.xml ---------------------------------------------------------------------- diff --git a/maven-core/src/main/resources/META-INF/maven/extension.xml b/maven-core/src/main/resources/META-INF/maven/extension.xml index f9cf07a..1d24d92 100644 --- a/maven-core/src/main/resources/META-INF/maven/extension.xml +++ b/maven-core/src/main/resources/META-INF/maven/extension.xml @@ -54,7 +54,7 @@ under the License. <exportedPackage>org.apache.maven.wagon.repository</exportedPackage> <exportedPackage>org.apache.maven.wagon.resource</exportedPackage> - <!-- aether-api, aether-spi, aether-impl --> + <!-- maven-resolver-api, maven-resolver-spi, maven-resolver-impl --> <exportedPackage>org.eclipse.aether.*</exportedPackage> <exportedPackage>org.eclipse.aether.artifact</exportedPackage> <exportedPackage>org.eclipse.aether.collection</exportedPackage> @@ -132,7 +132,7 @@ under the License. <exportedArtifact>org.sonatype.sisu:sisu-inject-plexus</exportedArtifact> <exportedArtifact>org.eclipse.sisu:org.eclipse.sisu.plexus</exportedArtifact> <exportedArtifact>org.apache.maven:maven-artifact</exportedArtifact> - <exportedArtifact>org.apache.maven:maven-aether-provider</exportedArtifact> + <exportedArtifact>org.apache.maven:maven-resolver-provider</exportedArtifact> <exportedArtifact>org.apache.maven:maven-artifact-manager</exportedArtifact> <exportedArtifact>org.apache.maven:maven-compat</exportedArtifact> <exportedArtifact>org.apache.maven:maven-core</exportedArtifact> @@ -152,9 +152,9 @@ under the License. <exportedArtifact>org.apache.maven:maven-settings-builder</exportedArtifact> <exportedArtifact>org.apache.maven:maven-toolchain</exportedArtifact> <exportedArtifact>org.apache.maven.wagon:wagon-provider-api</exportedArtifact> - <exportedArtifact>org.eclipse.aether:aether-api</exportedArtifact> - <exportedArtifact>org.eclipse.aether:aether-spi</exportedArtifact> - <exportedArtifact>org.eclipse.aether:aether-impl</exportedArtifact> + <exportedArtifact>org.apache.maven.resolver:maven-resolver-api</exportedArtifact> + <exportedArtifact>org.apache.maven.resolver:maven-resolver-spi</exportedArtifact> + <exportedArtifact>org.apache.maven.resolver:maven-resolver-impl</exportedArtifact> <exportedArtifact>javax.inject:javax.inject</exportedArtifact> <exportedArtifact>org.slf4j:slf4j-api</exportedArtifact> @@ -166,6 +166,9 @@ under the License. <exportedArtifact>org.sonatype.aether:aether-api</exportedArtifact> <exportedArtifact>org.sonatype.aether:aether-spi</exportedArtifact> <exportedArtifact>org.sonatype.aether:aether-impl</exportedArtifact> + <exportedArtifact>org.eclipse.aether:aether-api</exportedArtifact> + <exportedArtifact>org.eclipse.aether:aether-spi</exportedArtifact> + <exportedArtifact>org.eclipse.aether:aether-impl</exportedArtifact> <!-- | NOTE: Don't exclude the wagons or any of their dependencies (apart from the wagon API). This would otherwise http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-resolver-provider/pom.xml ---------------------------------------------------------------------- diff --git a/maven-resolver-provider/pom.xml b/maven-resolver-provider/pom.xml new file mode 100644 index 0000000..7d71e33 --- /dev/null +++ b/maven-resolver-provider/pom.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you 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. +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.maven</groupId> + <artifactId>maven</artifactId> + <version>3.5.0-SNAPSHOT</version> + </parent> + + <artifactId>maven-resolver-provider</artifactId> + + <name>Maven Artifact Resolver Provider</name> + <description>Extensions to Maven Resolver for utilizing Maven POM and repository metadata.</description> + + <dependencies> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model-builder</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.resolver</groupId> + <artifactId>maven-resolver-api</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.resolver</groupId> + <artifactId>maven-resolver-spi</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.resolver</groupId> + <artifactId>maven-resolver-util</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.resolver</groupId> + <artifactId>maven-resolver-impl</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-annotations</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>com.google.inject</groupId> + <artifactId>guice</artifactId> + <classifier>no_aop</classifier> + <optional>true</optional> + <exclusions> + <exclusion> + <groupId>aopalliance</groupId> + <artifactId>aopalliance</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + </dependency> + <!-- Testing --> + <dependency> + <groupId>org.apache.maven.resolver</groupId> + <artifactId>maven-resolver-connector-basic</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.resolver</groupId> + <artifactId>maven-resolver-transport-wagon</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-file</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.sisu</groupId> + <artifactId>org.eclipse.sisu.plexus</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>1.9.5</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-metadata</artifactId> + </plugin> + </plugins> + </build> + +</project> + http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java ---------------------------------------------------------------------- diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java new file mode 100644 index 0000000..2395b36 --- /dev/null +++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorReaderDelegate.java @@ -0,0 +1,153 @@ +package org.apache.maven.repository.internal; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.apache.maven.model.DependencyManagement; +import org.apache.maven.model.DistributionManagement; +import org.apache.maven.model.License; +import org.apache.maven.model.Model; +import org.apache.maven.model.Prerequisites; +import org.apache.maven.model.Repository; +import org.eclipse.aether.RepositorySystemSession; +import org.eclipse.aether.artifact.Artifact; +import org.eclipse.aether.artifact.ArtifactProperties; +import org.eclipse.aether.artifact.ArtifactType; +import org.eclipse.aether.artifact.ArtifactTypeRegistry; +import org.eclipse.aether.artifact.DefaultArtifact; +import org.eclipse.aether.artifact.DefaultArtifactType; +import org.eclipse.aether.graph.Dependency; +import org.eclipse.aether.graph.Exclusion; +import org.eclipse.aether.resolution.ArtifactDescriptorResult; + +/** + * Populates Aether {@link ArtifactDescriptorResult} from Maven project {@link Model}. + * + * @since 3.2.4 + * @provisional This class is part of work in progress and can be changed or removed without notice. + */ +public class ArtifactDescriptorReaderDelegate +{ + public void populateResult( RepositorySystemSession session, ArtifactDescriptorResult result, Model model ) + { + ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry(); + + for ( Repository r : model.getRepositories() ) + { + result.addRepository( ArtifactDescriptorUtils.toRemoteRepository( r ) ); + } + + for ( org.apache.maven.model.Dependency dependency : model.getDependencies() ) + { + result.addDependency( convert( dependency, stereotypes ) ); + } + + DependencyManagement mngt = model.getDependencyManagement(); + if ( mngt != null ) + { + for ( org.apache.maven.model.Dependency dependency : mngt.getDependencies() ) + { + result.addManagedDependency( convert( dependency, stereotypes ) ); + } + } + + Map<String, Object> properties = new LinkedHashMap<>(); + + Prerequisites prerequisites = model.getPrerequisites(); + if ( prerequisites != null ) + { + properties.put( "prerequisites.maven", prerequisites.getMaven() ); + } + + List<License> licenses = model.getLicenses(); + properties.put( "license.count", licenses.size() ); + for ( int i = 0; i < licenses.size(); i++ ) + { + License license = licenses.get( i ); + properties.put( "license." + i + ".name", license.getName() ); + properties.put( "license." + i + ".url", license.getUrl() ); + properties.put( "license." + i + ".comments", license.getComments() ); + properties.put( "license." + i + ".distribution", license.getDistribution() ); + } + + result.setProperties( properties ); + + setArtifactProperties( result, model ); + } + + private Dependency convert( org.apache.maven.model.Dependency dependency, ArtifactTypeRegistry stereotypes ) + { + ArtifactType stereotype = stereotypes.get( dependency.getType() ); + if ( stereotype == null ) + { + stereotype = new DefaultArtifactType( dependency.getType() ); + } + + boolean system = dependency.getSystemPath() != null && dependency.getSystemPath().length() > 0; + + Map<String, String> props = null; + if ( system ) + { + props = Collections.singletonMap( ArtifactProperties.LOCAL_PATH, dependency.getSystemPath() ); + } + + Artifact artifact = + new DefaultArtifact( dependency.getGroupId(), dependency.getArtifactId(), dependency.getClassifier(), null, + dependency.getVersion(), props, stereotype ); + + List<Exclusion> exclusions = new ArrayList<>( dependency.getExclusions().size() ); + for ( org.apache.maven.model.Exclusion exclusion : dependency.getExclusions() ) + { + exclusions.add( convert( exclusion ) ); + } + + Dependency result = new Dependency( artifact, dependency.getScope(), dependency.isOptional(), exclusions ); + + return result; + } + + private Exclusion convert( org.apache.maven.model.Exclusion exclusion ) + { + return new Exclusion( exclusion.getGroupId(), exclusion.getArtifactId(), "*", "*" ); + } + + private void setArtifactProperties( ArtifactDescriptorResult result, Model model ) + { + String downloadUrl = null; + DistributionManagement distMngt = model.getDistributionManagement(); + if ( distMngt != null ) + { + downloadUrl = distMngt.getDownloadUrl(); + } + if ( downloadUrl != null && downloadUrl.length() > 0 ) + { + Artifact artifact = result.getArtifact(); + Map<String, String> props = new HashMap<>( artifact.getProperties() ); + props.put( ArtifactProperties.DOWNLOAD_URL, downloadUrl ); + result.setArtifact( artifact.setProperties( props ) ); + } + } +} http://git-wip-us.apache.org/repos/asf/maven/blob/8972072e/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java ---------------------------------------------------------------------- diff --git a/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java new file mode 100644 index 0000000..7d4ede8 --- /dev/null +++ b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java @@ -0,0 +1,81 @@ +package org.apache.maven.repository.internal; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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.model.Repository; +import org.eclipse.aether.artifact.Artifact; +import org.eclipse.aether.artifact.DefaultArtifact; +import org.eclipse.aether.repository.RemoteRepository; +import org.eclipse.aether.repository.RepositoryPolicy; + +/** + * <strong>Warning:</strong> This is an internal utility class that is only public for technical reasons, it is not part + * of the public API. In particular, this class can be changed or deleted without prior notice. + * + * @author Benjamin Bentmann + */ +public class ArtifactDescriptorUtils +{ + + public static Artifact toPomArtifact( Artifact artifact ) + { + Artifact pomArtifact = artifact; + + if ( pomArtifact.getClassifier().length() > 0 || !"pom".equals( pomArtifact.getExtension() ) ) + { + pomArtifact = + new DefaultArtifact( artifact.getGroupId(), artifact.getArtifactId(), "pom", artifact.getVersion() ); + } + + return pomArtifact; + } + + public static RemoteRepository toRemoteRepository( Repository repository ) + { + RemoteRepository.Builder builder = + new RemoteRepository.Builder( repository.getId(), repository.getLayout(), repository.getUrl() ); + builder.setSnapshotPolicy( toRepositoryPolicy( repository.getSnapshots() ) ); + builder.setReleasePolicy( toRepositoryPolicy( repository.getReleases() ) ); + return builder.build(); + } + + public static RepositoryPolicy toRepositoryPolicy( org.apache.maven.model.RepositoryPolicy policy ) + { + boolean enabled = true; + String checksums = RepositoryPolicy.CHECKSUM_POLICY_WARN; + String updates = RepositoryPolicy.UPDATE_POLICY_DAILY; + + if ( policy != null ) + { + enabled = policy.isEnabled(); + if ( policy.getUpdatePolicy() != null ) + { + updates = policy.getUpdatePolicy(); + } + if ( policy.getChecksumPolicy() != null ) + { + checksums = policy.getChecksumPolicy(); + } + } + + return new RepositoryPolicy( enabled, updates, checksums ); + } + +}