1package org.apache.archiva.repository.base;
23/*4 * Licensed to the Apache Software Foundation (ASF) under one5 * or more contributor license agreements. See the NOTICE file6 * distributed with this work for additional information7 * regarding copyright ownership. The ASF licenses this file8 * to you under the Apache License, Version 2.0 (the9 * "License"); you may not use this file except in compliance10 * with the License. You may obtain a copy of the License at11 *12 * http://www.apache.org/licenses/LICENSE-2.013 *14 * Unless required by applicable law or agreed to in writing,15 * software distributed under the License is distributed on an16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY17 * KIND, either express or implied. See the License for the18 * specific language governing permissions and limitations19 * under the License.20 */2122import org.apache.archiva.common.filelock.DefaultFileLockManager;
23import org.apache.archiva.common.filelock.FileLockManager;
24import org.apache.archiva.repository.ReleaseScheme;
25import org.apache.archiva.repository.RepositoryCapabilities;
26import org.apache.archiva.repository.RepositoryType;
27import org.apache.archiva.repository.StandardCapabilities;
28import org.apache.archiva.repository.storage.FilesystemStorage;
29import org.apache.archiva.repository.storage.RepositoryStorage;
30import org.apache.archiva.repository.features.IndexCreationFeature;
31import org.apache.archiva.repository.features.RemoteIndexFeature;
32import org.slf4j.Logger;
33import org.slf4j.LoggerFactory;
3435import java.io.IOException;
36import java.nio.file.Path;
37import java.util.Locale;
3839/**40 *41 * Just a helper class, mainly used for unit tests.42 *43 *44 */45publicclassBasicRemoteRepositoryextendsAbstractRemoteRepository4647 {
48 Logger log = LoggerFactory.getLogger(BasicRemoteRepository.class);
4950 RemoteIndexFeature remoteIndexFeature = new RemoteIndexFeature();
51 IndexCreationFeature indexCreationFeature = new IndexCreationFeature(true);
525354staticfinal StandardCapabilities CAPABILITIES = new StandardCapabilities( new ReleaseScheme[] {
55 ReleaseScheme.RELEASE, ReleaseScheme.SNAPSHOT
56 }, new String[] {"default"}, new String[0], new String[] {
57 RemoteIndexFeature.class.toString(),
58 IndexCreationFeature.class.toString()
59 }, true, true, true, true, true );
6061publicBasicRemoteRepository( String id, String name, RepositoryStorage storage)
62 {
63super( RepositoryType.MAVEN, id, name, storage);
64 initFeatures();
65 }
6667publicBasicRemoteRepository( Locale primaryLocale, RepositoryType type, String id, String name, RepositoryStorage storage )
68 {
69super( primaryLocale, type, id, name, storage );
70 initFeatures();
71 }
7273privatevoid initFeatures() {
74 addFeature( remoteIndexFeature );
75 addFeature( indexCreationFeature );
76 }
7778 @Override
79publicboolean hasIndex( )
80 {
81returntrue;
82 }
8384 @Override
85public RepositoryCapabilities getCapabilities( )
86 {
87return CAPABILITIES;
88 }
899091publicstaticBasicRemoteRepository newFilesystemInstance(String id, String name, Path basePath) throws IOException {
92 FileLockManager lockManager = new DefaultFileLockManager();
93 FilesystemStorage storage = new FilesystemStorage(basePath.resolve(id), lockManager);
94returnnewBasicRemoteRepository(id, name, storage);
95 }
96 }