001/*
002 * Extra Bnd Repository Plugins
003 * Copyright (C) 2019  Michael N. Lipp
004 * 
005 * This program is free software; you can redistribute it and/or modify it 
006 * under the terms of the GNU Affero General Public License as published by 
007 * the Free Software Foundation; either version 3 of the License, or 
008 * (at your option) any later version.
009 * 
010 * This program is distributed in the hope that it will be useful, but 
011 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
012 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License 
013 * for more details.
014 * 
015 * You should have received a copy of the GNU Affero General Public License along 
016 * with this program; if not, see <http://www.gnu.org/licenses/>.
017 */
018
019package de.mnl.osgi.bnd.repository.maven.idxmvn;
020
021/**
022 * The configuration information.
023 */
024public interface IndexedMavenConfiguration {
025
026    /**
027     * The path to the local repository.
028     *
029     * @param deflt the default value
030     * @return the result
031     */
032    // default "~/.m2/repository"
033    String local(String deflt);
034
035    /**
036     * Points to a directory that is used as database.
037     * 
038     * @param deflt the default value
039     * @return the result
040     */
041    String location(String deflt);
042
043    /**
044     * The name of the repo. Required.
045     * 
046     * @param deflt the default value
047     * @return the result
048     */
049    String name(String deflt);
050
051    /**
052     * The url to the remote release repository.
053     * 
054     * @return the result
055     */
056    String releaseUrls();
057
058    /**
059     * The url to the remote snapshot repository. If this is not specified,
060     * it falls back to the release repository or just local if this is also
061     * not specified.
062     * 
063     * @return the result
064     */
065    String snapshotUrls();
066
067    /**
068     * Must be set to get a log of the indexing operation.
069     *
070     * @return true, if a log is to be written
071     */
072    boolean logIndexing();
073}