]> source.dussan.org Git - archiva.git/blob
7a7d3f3eb53b0890505e050e07de47e9ec0c2005
[archiva.git] /
1 package org.apache.archiva.repository.content.legacy;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *  http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
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.content.legacy.AbstractLegacyRepositoryContent;
27 import org.apache.archiva.repository.layout.LayoutException;
28 import org.springframework.context.annotation.Scope;
29 import org.springframework.stereotype.Service;
30
31 /**
32  * RemoteLegacyRepositoryContent
33  *
34  *
35  * TODO no need to be a component once legacy path parser is not
36  */
37 @Service( "remoteRepositoryContent#legacy" )
38 @Scope( "prototype" )
39 public class RemoteLegacyRepositoryContent
40     extends AbstractLegacyRepositoryContent
41     implements RemoteRepositoryContent
42 {
43     private RemoteRepository repository;
44
45     @Override
46     public String getId()
47     {
48         return repository.getId();
49     }
50
51     @Override
52     public RemoteRepository getRepository()
53     {
54         return repository;
55     }
56
57     @Override
58     public RepositoryURL getURL()
59     {
60         return new RepositoryURL( repository.getUrl() );
61     }
62
63     @Override
64     public void setRepository( RemoteRepository repository )
65     {
66         this.repository = repository;
67     }
68
69     /**
70      * Convert a path to an artifact reference.
71      *
72      * @param path the path to convert. (relative or full url path)
73      * @throws org.apache.archiva.repository.layout.LayoutException if the path cannot be converted to an artifact reference.
74      */
75     @Override
76     public ArtifactReference toArtifactReference( String path )
77         throws LayoutException
78     {
79         if ( path.startsWith( repository.getUrl() ) )
80         {
81             return super.toArtifactReference( path.substring( repository.getUrl().length() ) );
82         }
83
84         return super.toArtifactReference( path );
85     }
86
87     @Override
88     public RepositoryURL toURL( ArtifactReference reference )
89     {
90         String url = repository.getUrl() + toPath( reference );
91         return new RepositoryURL( url );
92     }
93 }