]> source.dussan.org Git - archiva.git/blob
9887a056d80ccb1811d146c0762e30bb8f78dea7
[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[] {RemoteIndexFeature.class.getName()},
50         true,
51         true,
52         true,
53         true,
54         false
55     );
56
57     public MavenRemoteRepository( String id, String name )
58     {
59         super( RepositoryType.MAVEN, id, name );
60     }
61
62     public MavenRemoteRepository( Locale primaryLocale, String id, String name )
63     {
64         super( primaryLocale, RepositoryType.MAVEN, id, name );
65     }
66
67     @Override
68     public RepositoryCapabilities getCapabilities( )
69     {
70         return CAPABILITIES;
71     }
72
73     @Override
74     public <T extends RepositoryFeature<T>> RepositoryFeature<T> getFeature( Class<T> clazz ) throws UnsupportedFeatureException
75     {
76         if (RemoteIndexFeature.class.equals( clazz )) {
77             return (RepositoryFeature<T>) remoteIndexFeature;
78         } else {
79             throw new UnsupportedFeatureException(  );
80         }
81     }
82
83     @Override
84     public <T extends RepositoryFeature<T>> boolean supportsFeature( Class<T> clazz )
85     {
86         if ( RemoteIndexFeature.class.equals(clazz)) {
87             return true;
88         } else {
89             return false;
90         }
91     }
92 }