1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.repository.internal;
20
21 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
22 import org.apache.maven.model.Repository;
23 import org.eclipse.aether.artifact.Artifact;
24 import org.eclipse.aether.artifact.DefaultArtifact;
25 import org.eclipse.aether.repository.RemoteRepository;
26 import org.eclipse.aether.repository.RepositoryPolicy;
27
28
29
30
31
32
33 public class ArtifactDescriptorUtils {
34
35 public static Artifact toPomArtifact(Artifact artifact) {
36 Artifact pomArtifact = artifact;
37
38 if (!pomArtifact.getClassifier().isEmpty() || !"pom".equals(pomArtifact.getExtension())) {
39 pomArtifact =
40 new DefaultArtifact(artifact.getGroupId(), artifact.getArtifactId(), "pom", artifact.getVersion());
41 }
42
43 return pomArtifact;
44 }
45
46 public static RemoteRepository toRemoteRepository(Repository repository) {
47 RemoteRepository.Builder builder =
48 new RemoteRepository.Builder(repository.getId(), repository.getLayout(), repository.getUrl());
49 builder.setSnapshotPolicy(toRepositoryPolicy(repository.getSnapshots()));
50 builder.setReleasePolicy(toRepositoryPolicy(repository.getReleases()));
51 return builder.build();
52 }
53
54 public static RepositoryPolicy toRepositoryPolicy(org.apache.maven.model.RepositoryPolicy policy) {
55 boolean enabled = true;
56 String checksums = toRepositoryChecksumPolicy(ArtifactRepositoryPolicy.DEFAULT_CHECKSUM_POLICY);
57 String updates = RepositoryPolicy.UPDATE_POLICY_DAILY;
58
59 if (policy != null) {
60 enabled = policy.isEnabled();
61 if (policy.getUpdatePolicy() != null) {
62 updates = policy.getUpdatePolicy();
63 }
64 if (policy.getChecksumPolicy() != null) {
65 checksums = policy.getChecksumPolicy();
66 }
67 }
68
69 return new RepositoryPolicy(enabled, updates, checksums);
70 }
71
72 public static String toRepositoryChecksumPolicy(final String artifactRepositoryPolicy) {
73 switch (artifactRepositoryPolicy) {
74 case ArtifactRepositoryPolicy.CHECKSUM_POLICY_FAIL:
75 return RepositoryPolicy.CHECKSUM_POLICY_FAIL;
76 case ArtifactRepositoryPolicy.CHECKSUM_POLICY_IGNORE:
77 return RepositoryPolicy.CHECKSUM_POLICY_IGNORE;
78 case ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN:
79 return RepositoryPolicy.CHECKSUM_POLICY_WARN;
80 default:
81 throw new IllegalArgumentException("unknown repository checksum policy: " + artifactRepositoryPolicy);
82 }
83 }
84 }