1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.repository;
20
21 import org.apache.maven.artifact.Artifact;
22 import org.apache.maven.artifact.handler.ArtifactHandler;
23 import org.apache.maven.artifact.metadata.ArtifactMetadata;
24 import org.apache.maven.artifact.repository.ArtifactRepository;
25 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
26 import org.codehaus.plexus.component.annotations.Component;
27
28
29
30
31 @Component(role = ArtifactRepositoryLayout.class, hint = "legacy")
32 public class LegacyRepositoryLayout implements ArtifactRepositoryLayout {
33 private static final String PATH_SEPARATOR = "/";
34
35 public String getId() {
36 return "legacy";
37 }
38
39 public String pathOf(Artifact artifact) {
40 ArtifactHandler artifactHandler = artifact.getArtifactHandler();
41
42 StringBuilder path = new StringBuilder(128);
43
44 path.append(artifact.getGroupId()).append('/');
45 path.append(artifactHandler.getDirectory()).append('/');
46 path.append(artifact.getArtifactId()).append('-').append(artifact.getVersion());
47
48 if (artifact.hasClassifier()) {
49 path.append('-').append(artifact.getClassifier());
50 }
51
52 if (artifactHandler.getExtension() != null
53 && artifactHandler.getExtension().length() > 0) {
54 path.append('.').append(artifactHandler.getExtension());
55 }
56
57 return path.toString();
58 }
59
60 public String pathOfLocalRepositoryMetadata(ArtifactMetadata metadata, ArtifactRepository repository) {
61 return pathOfRepositoryMetadata(metadata, metadata.getLocalFilename(repository));
62 }
63
64 private String pathOfRepositoryMetadata(ArtifactMetadata metadata, String filename) {
65 StringBuilder path = new StringBuilder(128);
66
67 path.append(metadata.getGroupId()).append(PATH_SEPARATOR).append("poms").append(PATH_SEPARATOR);
68
69 path.append(filename);
70
71 return path.toString();
72 }
73
74 public String pathOfRemoteRepositoryMetadata(ArtifactMetadata metadata) {
75 return pathOfRepositoryMetadata(metadata, metadata.getRemoteFilename());
76 }
77 }