View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.repository.internal;
20  
21  import java.net.MalformedURLException;
22  
23  import org.apache.maven.repository.internal.util.ConsoleRepositoryListener;
24  import org.apache.maven.repository.internal.util.ConsoleTransferListener;
25  import org.codehaus.plexus.ContainerConfiguration;
26  import org.codehaus.plexus.PlexusConstants;
27  import org.codehaus.plexus.PlexusTestCase;
28  import org.eclipse.aether.DefaultRepositorySystemSession;
29  import org.eclipse.aether.RepositorySystem;
30  import org.eclipse.aether.RepositorySystemSession;
31  import org.eclipse.aether.repository.LocalRepository;
32  import org.eclipse.aether.repository.RemoteRepository;
33  
34  public abstract class AbstractRepositoryTestCase extends PlexusTestCase {
35      protected RepositorySystem system;
36  
37      protected RepositorySystemSession session;
38  
39      @Override
40      protected void customizeContainerConfiguration(ContainerConfiguration containerConfiguration) {
41          super.customizeContainerConfiguration(containerConfiguration);
42          containerConfiguration.setAutoWiring(true);
43          containerConfiguration.setClassPathScanning(PlexusConstants.SCANNING_INDEX);
44      }
45  
46      @Override
47      protected void setUp() throws Exception {
48          super.setUp();
49          system = lookup(RepositorySystem.class);
50          session = newMavenRepositorySystemSession(system);
51      }
52  
53      @Override
54      protected void tearDown() throws Exception {
55          session = null;
56          system = null;
57          super.tearDown();
58      }
59  
60      public static RepositorySystemSession newMavenRepositorySystemSession(RepositorySystem system) {
61          DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
62  
63          LocalRepository localRepo = new LocalRepository("target/local-repo");
64          session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo));
65  
66          session.setTransferListener(new ConsoleTransferListener());
67          session.setRepositoryListener(new ConsoleRepositoryListener());
68  
69          return session;
70      }
71  
72      public static RemoteRepository newTestRepository() throws MalformedURLException {
73          return new RemoteRepository.Builder(
74                          "repo",
75                          "default",
76                          getTestFile("target/test-classes/repo").toURI().toURL().toString())
77                  .build();
78      }
79  }