View Javadoc
1   package org.apache.maven.repository.internal;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import java.util.Arrays;
23  import java.util.List;
24  
25  import org.eclipse.aether.artifact.Artifact;
26  import org.eclipse.aether.collection.CollectRequest;
27  import org.eclipse.aether.collection.CollectResult;
28  import org.eclipse.aether.graph.Dependency;
29  import org.eclipse.aether.graph.DependencyNode;
30  import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
31  import org.eclipse.aether.resolution.ArtifactDescriptorResult;
32  import org.eclipse.aether.resolution.ArtifactRequest;
33  import org.eclipse.aether.resolution.ArtifactResult;
34  import org.eclipse.aether.artifact.DefaultArtifact;
35  
36  public class RepositorySystemTest
37      extends AbstractRepositoryTestCase
38  {
39      public void testResolveVersionRange()
40          throws Exception
41      {
42          //VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request )
43          //                throws VersionRangeResolutionException;
44  
45      }
46  
47      public void testResolveVersion()
48          throws Exception
49      {
50          //VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request )
51          //                throws VersionResolutionException;
52      }
53  
54      public void testReadArtifactDescriptor()
55          throws Exception
56      {
57          Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" );
58  
59          ArtifactDescriptorRequest request = new ArtifactDescriptorRequest();
60          request.setArtifact( artifact );
61          request.addRepository( newTestRepository() );
62  
63          ArtifactDescriptorResult result = system.readArtifactDescriptor( session, request );
64  
65          List<Dependency> deps = result.getDependencies();
66          assertEquals( 2, deps.size() );
67          checkUtSimpleArtifactDependencies( deps.get( 0 ), deps.get( 1 ) );
68      }
69  
70      /**
71       * check ut.simple:artifact:1.0 dependencies
72       */
73      private void checkUtSimpleArtifactDependencies( Dependency dep1, Dependency dep2 )
74      {
75          assertEquals( "compile", dep1.getScope() );
76          assertFalse( dep1.isOptional() );
77          assertEquals( 0, dep1.getExclusions().size() );
78          Artifact depArtifact = dep1.getArtifact();
79          assertEquals( "ut.simple", depArtifact.getGroupId() );
80          assertEquals( "dependency", depArtifact.getArtifactId() );
81          assertEquals( "1.0", depArtifact.getVersion() );
82          assertEquals( "1.0", depArtifact.getBaseVersion() );
83          assertNull( depArtifact.getFile() );
84          assertFalse( depArtifact.isSnapshot() );
85          assertEquals( "", depArtifact.getClassifier() );
86          assertEquals( "jar", depArtifact.getExtension() );
87          assertEquals( "java", depArtifact.getProperty( "language", null ) );
88          assertEquals( "jar", depArtifact.getProperty( "type", null ) );
89          assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) );
90          assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) );
91          assertEquals( 4, depArtifact.getProperties().size() );
92  
93          assertEquals( "compile", dep2.getScope() );
94          assertFalse( dep2.isOptional() );
95          assertEquals( 0, dep2.getExclusions().size() );
96          depArtifact = dep2.getArtifact();
97          assertEquals( "ut.simple", depArtifact.getGroupId() );
98          assertEquals( "dependency", depArtifact.getArtifactId() );
99          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, attachment
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 }