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