001 package org.apache.maven.repository.internal; 002 003 /* 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, 015 * software distributed under the License is distributed on an 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 017 * KIND, either express or implied. See the License for the 018 * specific language governing permissions and limitations 019 * under the License. 020 */ 021 022 import java.util.Arrays; 023 import java.util.List; 024 025 import org.eclipse.aether.artifact.Artifact; 026 import org.eclipse.aether.collection.CollectRequest; 027 import org.eclipse.aether.collection.CollectResult; 028 import org.eclipse.aether.graph.Dependency; 029 import org.eclipse.aether.graph.DependencyNode; 030 import org.eclipse.aether.resolution.ArtifactDescriptorRequest; 031 import org.eclipse.aether.resolution.ArtifactDescriptorResult; 032 import org.eclipse.aether.resolution.ArtifactRequest; 033 import org.eclipse.aether.resolution.ArtifactResult; 034 import org.eclipse.aether.artifact.DefaultArtifact; 035 036 public class RepositorySystemTest 037 extends AbstractRepositoryTestCase 038 { 039 public void testResolveVersionRange() 040 throws Exception 041 { 042 //VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request ) 043 // throws VersionRangeResolutionException; 044 045 } 046 047 public void testResolveVersion() 048 throws Exception 049 { 050 //VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) 051 // throws VersionResolutionException; 052 } 053 054 public void testReadArtifactDescriptor() 055 throws Exception 056 { 057 Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" ); 058 059 ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(); 060 request.setArtifact( artifact ); 061 request.addRepository( newTestRepository() ); 062 063 ArtifactDescriptorResult result = system.readArtifactDescriptor( session, request ); 064 065 List<Dependency> deps = result.getDependencies(); 066 assertEquals( 2, deps.size() ); 067 checkUtSimpleArtifactDependencies( deps.get( 0 ), deps.get( 1 ) ); 068 } 069 070 /** 071 * check ut.simple:artifact:1.0 dependencies 072 */ 073 private void checkUtSimpleArtifactDependencies( Dependency dep1, Dependency dep2 ) 074 { 075 assertEquals( "compile", dep1.getScope() ); 076 assertFalse( dep1.isOptional() ); 077 assertEquals( 0, dep1.getExclusions().size() ); 078 Artifact depArtifact = dep1.getArtifact(); 079 assertEquals( "ut.simple", depArtifact.getGroupId() ); 080 assertEquals( "dependency", depArtifact.getArtifactId() ); 081 assertEquals( "1.0", depArtifact.getVersion() ); 082 assertEquals( "1.0", depArtifact.getBaseVersion() ); 083 assertNull( depArtifact.getFile() ); 084 assertFalse( depArtifact.isSnapshot() ); 085 assertEquals( "", depArtifact.getClassifier() ); 086 assertEquals( "jar", depArtifact.getExtension() ); 087 assertEquals( "java", depArtifact.getProperty( "language", null ) ); 088 assertEquals( "jar", depArtifact.getProperty( "type", null ) ); 089 assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) ); 090 assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) ); 091 assertEquals( 4, depArtifact.getProperties().size() ); 092 093 assertEquals( "compile", dep2.getScope() ); 094 assertFalse( dep2.isOptional() ); 095 assertEquals( 0, dep2.getExclusions().size() ); 096 depArtifact = dep2.getArtifact(); 097 assertEquals( "ut.simple", depArtifact.getGroupId() ); 098 assertEquals( "dependency", depArtifact.getArtifactId() ); 099 assertEquals( "1.0", depArtifact.getVersion() ); 100 assertEquals( "1.0", depArtifact.getBaseVersion() ); 101 assertNull( depArtifact.getFile() ); 102 assertFalse( depArtifact.isSnapshot() ); 103 assertEquals( "sources", depArtifact.getClassifier() ); 104 assertEquals( "jar", depArtifact.getExtension() ); 105 assertEquals( "java", depArtifact.getProperty( "language", null ) ); 106 assertEquals( "jar", depArtifact.getProperty( "type", null ) ); // shouldn't it be java-sources given the classifier? 107 assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) ); // shouldn't it be false given the classifier? 108 assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) ); 109 assertEquals( 4, depArtifact.getProperties().size() ); 110 } 111 112 public void testCollectDependencies() 113 throws Exception 114 { 115 Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" ); 116 // notice: extension and classifier not really used in this test... 117 118 CollectRequest collectRequest = new CollectRequest(); 119 collectRequest.setRoot( new Dependency( artifact, null ) ); 120 collectRequest.addRepository( newTestRepository() ); 121 122 CollectResult collectResult = system.collectDependencies( session, collectRequest ); 123 124 List<DependencyNode> nodes = collectResult.getRoot().getChildren(); 125 assertEquals( 2, nodes.size() ); 126 checkUtSimpleArtifactDependencies( nodes.get( 0 ).getDependency(), nodes.get( 1 ).getDependency() ); 127 } 128 129 public void testResolveArtifact() 130 throws Exception 131 { 132 Artifact artifact = new DefaultArtifact( "ut.simple:artifact:1.0" ); 133 134 ArtifactRequest artifactRequest = new ArtifactRequest(); 135 artifactRequest.setArtifact( artifact ); 136 artifactRequest.addRepository( newTestRepository() ); 137 138 ArtifactResult artifactResult = system.resolveArtifact( session, artifactRequest ); 139 checkArtifactResult( artifactResult, "artifact-1.0.jar" ); 140 141 artifact = new DefaultArtifact( "ut.simple:artifact:zip:1.0" ); 142 artifactRequest.setArtifact( artifact ); 143 artifactResult = system.resolveArtifact( session, artifactRequest ); 144 checkArtifactResult( artifactResult, "artifact-1.0.zip" ); 145 146 artifact = new DefaultArtifact( "ut.simple:artifact:zip:classifier:1.0" ); 147 artifactRequest.setArtifact( artifact ); 148 artifactResult = system.resolveArtifact( session, artifactRequest ); 149 checkArtifactResult( artifactResult, "artifact-1.0-classifier.zip" ); 150 } 151 152 private void checkArtifactResult( ArtifactResult result, String filename ) 153 { 154 assertFalse( result.isMissing() ); 155 assertTrue( result.isResolved() ); 156 Artifact artifact = result.getArtifact(); 157 assertNotNull( artifact.getFile() ); 158 assertEquals( filename, artifact.getFile().getName() ); 159 } 160 161 public void testResolveArtifacts() 162 throws Exception 163 { 164 ArtifactRequest req1 = new ArtifactRequest(); 165 req1.setArtifact( new DefaultArtifact( "ut.simple:artifact:1.0" ) ); 166 req1.addRepository( newTestRepository() ); 167 168 ArtifactRequest req2 = new ArtifactRequest(); 169 req2.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:1.0" ) ); 170 req2.addRepository( newTestRepository() ); 171 172 ArtifactRequest req3 = new ArtifactRequest(); 173 req3.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:classifier:1.0" ) ); 174 req3.addRepository( newTestRepository() ); 175 176 List<ArtifactRequest> requests = Arrays.asList( req1, req2, req3 ); 177 178 List<ArtifactResult> results = system.resolveArtifacts( session, requests ); 179 180 assertEquals( 3, results.size() ); 181 checkArtifactResult( results.get( 0 ), "artifact-1.0.jar" ); 182 checkArtifactResult( results.get( 1 ), "artifact-1.0.zip" ); 183 checkArtifactResult( results.get( 2 ), "artifact-1.0-classifier.zip" ); 184 } 185 186 public void testResolveMetadata() 187 throws Exception 188 { 189 //List<MetadataResult> resolveMetadata( RepositorySystemSession session, 190 // Collection<? extends MetadataRequest> requests ); 191 } 192 193 public void testInstall() 194 throws Exception 195 { 196 //InstallResult install( RepositorySystemSession session, InstallRequest request ) 197 // throws InstallationException; 198 // release, snapshot unique ou non unique, attachement 199 } 200 201 public void testDeploy() 202 throws Exception 203 { 204 //DeployResult deploy( RepositorySystemSession session, DeployRequest request ) 205 // throws DeploymentException; 206 } 207 208 public void testNewLocalRepositoryManager() 209 throws Exception 210 { 211 //LocalRepositoryManager newLocalRepositoryManager( LocalRepository localRepository ); 212 } 213 214 public void testNewSyncContext() 215 throws Exception 216 { 217 //SyncContext newSyncContext( RepositorySystemSession session, boolean shared ); 218 } 219 220 }