1 package org.apache.archiva.repository.content.maven2;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.archiva.admin.model.beans.RemoteRepository;
23 import org.apache.archiva.model.ArtifactReference;
24 import org.apache.archiva.model.RepositoryURL;
25 import org.apache.archiva.repository.RemoteRepositoryContent;
26 import org.apache.archiva.repository.layout.LayoutException;
27 import org.springframework.context.annotation.Scope;
28 import org.springframework.stereotype.Service;
29
30
31
32
33
34
35 @Service( "remoteRepositoryContent#default" )
36 @Scope( "prototype" )
37 public class RemoteDefaultRepositoryContent
38 extends AbstractDefaultRepositoryContent
39 implements RemoteRepositoryContent
40 {
41 private RemoteRepository repository;
42
43 @Override
44 public String getId()
45 {
46 return repository.getId();
47 }
48
49 @Override
50 public RemoteRepository getRepository()
51 {
52 return repository;
53 }
54
55 @Override
56 public RepositoryURL getURL()
57 {
58 return new RepositoryURL( repository.getUrl() );
59 }
60
61 @Override
62 public void setRepository( RemoteRepository repository )
63 {
64 this.repository = repository;
65 }
66
67
68
69
70
71
72
73 @Override
74 public ArtifactReference toArtifactReference( String path )
75 throws LayoutException
76 {
77 if ( ( path != null ) && path.startsWith( repository.getUrl() ) )
78 {
79 return super.toArtifactReference( path.substring( repository.getUrl().length() ) );
80 }
81
82 return super.toArtifactReference( path );
83 }
84
85 @Override
86 public RepositoryURL toURL( ArtifactReference reference )
87 {
88 String url = repository.getUrl() + toPath( reference );
89 return new RepositoryURL( url );
90 }
91 }