]> source.dussan.org Git - archiva.git/blob
de2732267214e32ed8facd542ed212917944982b
[archiva.git] /
1 package org.apache.archiva.repository.maven2;
2
3 import org.apache.archiva.repository.AbstractRemoteRepository;
4 import org.apache.archiva.repository.ReleaseScheme;
5 import org.apache.archiva.repository.RemoteRepository;
6 import org.apache.archiva.repository.RepositoryCapabilities;
7 import org.apache.archiva.repository.RepositoryType;
8 import org.apache.archiva.repository.StandardCapabilities;
9 import org.apache.archiva.repository.UnsupportedFeatureException;
10 import org.apache.archiva.repository.features.ArtifactCleanupFeature;
11 import org.apache.archiva.repository.features.IndexCreationFeature;
12 import org.apache.archiva.repository.features.RemoteIndexFeature;
13 import org.apache.archiva.repository.features.RepositoryFeature;
14 import org.apache.archiva.repository.features.StagingRepositoryFeature;
15
16 import java.util.Locale;
17
18 /*
19  * Licensed to the Apache Software Foundation (ASF) under one
20  * or more contributor license agreements.  See the NOTICE file
21  * distributed with this work for additional information
22  * regarding copyright ownership.  The ASF licenses this file
23  * to you under the Apache License, Version 2.0 (the
24  * "License"); you may not use this file except in compliance
25  * with the License.  You may obtain a copy of the License at
26  *
27  *  http://www.apache.org/licenses/LICENSE-2.0
28  *
29  * Unless required by applicable law or agreed to in writing,
30  * software distributed under the License is distributed on an
31  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
32  * KIND, either express or implied.  See the License for the
33  * specific language governing permissions and limitations
34  * under the License.
35  */
36
37 /**
38  * Maven2 remote repository implementation
39  */
40 public class MavenRemoteRepository extends AbstractRemoteRepository
41     implements RemoteRepository
42 {
43     private RemoteIndexFeature remoteIndexFeature = new RemoteIndexFeature();
44
45     private static final RepositoryCapabilities CAPABILITIES = new StandardCapabilities(
46         new ReleaseScheme[] { ReleaseScheme.RELEASE, ReleaseScheme.SNAPSHOT },
47         new String[] { MavenManagedRepository.DEFAULT_LAYOUT, MavenManagedRepository.LEGACY_LAYOUT},
48         new String[] {},
49         new String[] {ArtifactCleanupFeature.class.getName(), IndexCreationFeature.class.getName(),
50             StagingRepositoryFeature.class.getName(), RemoteIndexFeature.class.getName()},
51         true,
52         true,
53         true,
54         true,
55         false
56     );
57
58     public MavenRemoteRepository( String id, String name )
59     {
60         super( RepositoryType.MAVEN, id, name );
61     }
62
63     public MavenRemoteRepository( Locale primaryLocale, String id, String name )
64     {
65         super( primaryLocale, RepositoryType.MAVEN, id, name );
66     }
67
68     @Override
69     public RepositoryCapabilities getCapabilities( )
70     {
71         return CAPABILITIES;
72     }
73
74     @Override
75     public <T extends RepositoryFeature<T>> RepositoryFeature<T> getFeature( Class<T> clazz ) throws UnsupportedFeatureException
76     {
77         if (RemoteIndexFeature.class.equals( clazz )) {
78             return (RepositoryFeature<T>) remoteIndexFeature;
79         } else {
80             throw new UnsupportedFeatureException(  );
81         }
82     }
83
84     @Override
85     public <T extends RepositoryFeature<T>> boolean supportsFeature( Class<T> clazz )
86     {
87         if ( RemoteIndexFeature.class.equals(clazz)) {
88             return true;
89         } else {
90             return false;
91         }
92     }
93 }