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