1 package org.apache.maven.repository.internal;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.Collection;
23 import java.util.Collections;
24 import java.util.LinkedHashMap;
25 import java.util.Map;
26
27 import org.sonatype.aether.ConfigurationProperties;
28 import org.sonatype.aether.RepositorySystemSession;
29 import org.sonatype.aether.artifact.Artifact;
30 import org.sonatype.aether.impl.MetadataGenerator;
31 import org.sonatype.aether.installation.InstallRequest;
32 import org.sonatype.aether.metadata.Metadata;
33
34
35
36
37 class LocalSnapshotMetadataGenerator
38 implements MetadataGenerator
39 {
40
41 private Map<Object, LocalSnapshotMetadata> snapshots;
42
43 private final boolean legacyFormat;
44
45 public LocalSnapshotMetadataGenerator( RepositorySystemSession session, InstallRequest request )
46 {
47 legacyFormat = ConfigurationProperties.get( session.getConfigProperties(), "maven.metadata.legacy", false );
48
49 snapshots = new LinkedHashMap<Object, LocalSnapshotMetadata>();
50 }
51
52 public Collection<? extends Metadata> prepare( Collection<? extends Artifact> artifacts )
53 {
54 for ( Artifact artifact : artifacts )
55 {
56 if ( artifact.isSnapshot() )
57 {
58 Object key = LocalSnapshotMetadata.getKey( artifact );
59 LocalSnapshotMetadata snapshotMetadata = snapshots.get( key );
60 if ( snapshotMetadata == null )
61 {
62 snapshotMetadata = new LocalSnapshotMetadata( artifact, legacyFormat );
63 snapshots.put( key, snapshotMetadata );
64 }
65 snapshotMetadata.bind( artifact );
66 }
67 }
68
69 return Collections.emptyList();
70 }
71
72 public Artifact transformArtifact( Artifact artifact )
73 {
74 return artifact;
75 }
76
77 public Collection<? extends Metadata> finish( Collection<? extends Artifact> artifacts )
78 {
79 return snapshots.values();
80 }
81
82 }