1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.repository.legacy.repository;
20
21 import java.util.Map;
22
23 import org.apache.maven.artifact.UnknownRepositoryLayoutException;
24 import org.apache.maven.artifact.repository.ArtifactRepository;
25 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
26 import org.apache.maven.artifact.repository.MavenArtifactRepository;
27 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
28 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout2;
29 import org.codehaus.plexus.component.annotations.Component;
30 import org.codehaus.plexus.component.annotations.Requirement;
31
32
33
34
35 @Component(role = ArtifactRepositoryFactory.class)
36 public class DefaultArtifactRepositoryFactory implements ArtifactRepositoryFactory {
37
38 private String globalUpdatePolicy;
39
40 private String globalChecksumPolicy;
41
42 @Requirement(role = ArtifactRepositoryLayout.class)
43 private Map<String, ArtifactRepositoryLayout> repositoryLayouts;
44
45 public ArtifactRepositoryLayout getLayout(String layoutId) throws UnknownRepositoryLayoutException {
46 return repositoryLayouts.get(layoutId);
47 }
48
49 public ArtifactRepository createDeploymentArtifactRepository(
50 String id, String url, String layoutId, boolean uniqueVersion) throws UnknownRepositoryLayoutException {
51 ArtifactRepositoryLayout layout = repositoryLayouts.get(layoutId);
52
53 checkLayout(id, layoutId, layout);
54
55 return createDeploymentArtifactRepository(id, url, layout, uniqueVersion);
56 }
57
58 private void checkLayout(String repositoryId, String layoutId, ArtifactRepositoryLayout layout)
59 throws UnknownRepositoryLayoutException {
60 if (layout == null) {
61 throw new UnknownRepositoryLayoutException(repositoryId, layoutId);
62 }
63 }
64
65 public ArtifactRepository createDeploymentArtifactRepository(
66 String id, String url, ArtifactRepositoryLayout repositoryLayout, boolean uniqueVersion) {
67 return createArtifactRepository(id, url, repositoryLayout, null, null);
68 }
69
70 public ArtifactRepository createArtifactRepository(
71 String id,
72 String url,
73 String layoutId,
74 ArtifactRepositoryPolicy snapshots,
75 ArtifactRepositoryPolicy releases)
76 throws UnknownRepositoryLayoutException {
77 ArtifactRepositoryLayout layout = repositoryLayouts.get(layoutId);
78
79 checkLayout(id, layoutId, layout);
80
81 return createArtifactRepository(id, url, layout, snapshots, releases);
82 }
83
84 public ArtifactRepository createArtifactRepository(
85 String id,
86 String url,
87 ArtifactRepositoryLayout repositoryLayout,
88 ArtifactRepositoryPolicy snapshots,
89 ArtifactRepositoryPolicy releases) {
90 if (snapshots == null) {
91 snapshots = new ArtifactRepositoryPolicy();
92 }
93
94 if (releases == null) {
95 releases = new ArtifactRepositoryPolicy();
96 }
97
98 if (globalUpdatePolicy != null) {
99 snapshots.setUpdatePolicy(globalUpdatePolicy);
100 releases.setUpdatePolicy(globalUpdatePolicy);
101 }
102
103 if (globalChecksumPolicy != null) {
104 snapshots.setChecksumPolicy(globalChecksumPolicy);
105 releases.setChecksumPolicy(globalChecksumPolicy);
106 }
107
108 ArtifactRepository repository;
109 if (repositoryLayout instanceof ArtifactRepositoryLayout2) {
110 repository = ((ArtifactRepositoryLayout2) repositoryLayout)
111 .newMavenArtifactRepository(id, url, snapshots, releases);
112 } else {
113 repository = new MavenArtifactRepository(id, url, repositoryLayout, snapshots, releases);
114 }
115
116 return repository;
117 }
118
119 public void setGlobalUpdatePolicy(String updatePolicy) {
120 globalUpdatePolicy = updatePolicy;
121 }
122
123 public void setGlobalChecksumPolicy(String checksumPolicy) {
124 globalChecksumPolicy = checksumPolicy;
125 }
126 }