/** * This file is part of git-as-svn. It is subject to the license terms * in the LICENSE file found in the top-level directory of this distribution * and at http://www.gnu.org/licenses/gpl-2.0.html. No part of git-as-svn, * including this file, may be copied, modified, propagated, or distributed * except according to the terms contained in the LICENSE file. */ package svnserver.config; import org.jetbrains.annotations.NotNull; import svnserver.config.serializer.ConfigType; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; /** * Top configuration object. * * @author a.navrotskiy * @author Marat Radchenko <marat@slonopotamus.org> */ @SuppressWarnings("FieldCanBeLocal") @ConfigType("config") public final class Config { @NotNull private String host = "0.0.0.0"; @NotNull private String realm = ""; @NotNull private RepositoryMappingConfig repositoryMapping = new RepositoryListMappingConfig(); @NotNull private UserDBConfig userDB = new LocalUserDBConfig(); @NotNull private CacheConfig cacheConfig = new PersistentCacheConfig(); @NotNull private AccessConfig acl = new AclConfig(); @NotNull private List<SharedConfig> shared = new ArrayList<>(); private int port = 3690; private boolean reuseAddress = false; private boolean compressionEnabled = true; private long shutdownTimeout = TimeUnit.SECONDS.toMillis(5); @SuppressWarnings("UnusedDeclaration") public Config() { } public Config(@NotNull String host, int port) { this.host = host; this.port = port; } public int getPort() { return port; } @NotNull public String getHost() { return host; } @NotNull public String getRealm() { return realm; } @NotNull public RepositoryMappingConfig getRepositoryMapping() { return repositoryMapping; } public void setRepositoryMapping(@NotNull RepositoryMappingConfig repositoryMapping) { this.repositoryMapping = repositoryMapping; } @NotNull public UserDBConfig getUserDB() { return userDB; } public void setUserDB(@NotNull UserDBConfig userDB) { this.userDB = userDB; } public boolean getReuseAddress() { return reuseAddress; } public long getShutdownTimeout() { return shutdownTimeout; } @NotNull public CacheConfig getCacheConfig() { return cacheConfig; } public void setCacheConfig(@NotNull CacheConfig cacheConfig) { this.cacheConfig = cacheConfig; } @NotNull public List<SharedConfig> getShared() { return shared; } public boolean isCompressionEnabled() { return compressionEnabled; } public void setCompressionEnabled(boolean compressionEnabled) { this.compressionEnabled = compressionEnabled; } }