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 javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import java.nio.file.Path;
25
26 import org.apache.maven.api.Artifact;
27 import org.apache.maven.api.LocalRepository;
28 import org.apache.maven.api.RemoteRepository;
29 import org.apache.maven.api.Session;
30 import org.apache.maven.api.services.LocalRepositoryManager;
31
32 @Named
33 @Singleton
34 public class DefaultLocalRepositoryManager implements LocalRepositoryManager {
35
36 @Override
37 public Path getPathForLocalArtifact(Session session, LocalRepository local, Artifact artifact) {
38 InternalSession s = InternalSession.from(session);
39 String path = getManager(s, local).getPathForLocalArtifact(s.toArtifact(artifact));
40 return local.getPath().resolve(path);
41 }
42
43 @Override
44 public Path getPathForRemoteArtifact(
45 Session session, LocalRepository local, RemoteRepository remote, Artifact artifact) {
46 InternalSession s = InternalSession.from(session);
47 String path =
48 getManager(s, local).getPathForRemoteArtifact(s.toArtifact(artifact), s.toRepository(remote), null);
49 return local.getPath().resolve(path);
50 }
51
52 private org.eclipse.aether.repository.LocalRepositoryManager getManager(
53 InternalSession session, LocalRepository local) {
54 org.eclipse.aether.repository.LocalRepository repository = session.toRepository(local);
55 if ("enhanced".equals(repository.getContentType())) {
56 repository = new org.eclipse.aether.repository.LocalRepository(repository.getBasedir(), "");
57 }
58 return session.getRepositorySystem().newLocalRepositoryManager(session.getSession(), repository);
59 }
60 }