1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.internal.impl;
20
21 import java.nio.file.Path;
22 import javax.inject.Named;
23 import javax.inject.Singleton;
24 import org.apache.maven.api.Artifact;
25 import org.apache.maven.api.LocalRepository;
26 import org.apache.maven.api.RemoteRepository;
27 import org.apache.maven.api.Session;
28 import org.apache.maven.api.services.LocalRepositoryManager;
29
30 @Named
31 @Singleton
32 public class DefaultLocalRepositoryManager implements LocalRepositoryManager {
33
34 @Override
35 public Path getPathForLocalArtifact(Session session, LocalRepository local, Artifact artifact) {
36 DefaultSession s = (DefaultSession) session;
37 String path = getManager(s, local).getPathForLocalArtifact(s.toArtifact(artifact));
38 return local.getPath().resolve(path);
39 }
40
41 @Override
42 public Path getPathForRemoteArtifact(
43 Session session, LocalRepository local, RemoteRepository remote, Artifact artifact) {
44 DefaultSession s = (DefaultSession) session;
45 String path =
46 getManager(s, local).getPathForRemoteArtifact(s.toArtifact(artifact), s.toRepository(remote), null);
47 return local.getPath().resolve(path);
48 }
49
50 private org.eclipse.aether.repository.LocalRepositoryManager getManager(
51 DefaultSession session, LocalRepository local) {
52 org.eclipse.aether.repository.LocalRepository repository = session.toRepository(local);
53 if ("enhanced".equals(repository.getContentType())) {
54 repository = new org.eclipse.aether.repository.LocalRepository(repository.getBasedir(), "");
55 }
56 return session.getRepositorySystem().newLocalRepositoryManager(session.getSession(), repository);
57 }
58 }