]> source.dussan.org Git - jgit.git/commitdiff
Remove RepositoryConfig and use FileBasedConfig instead 50/950/1
authorShawn O. Pearce <spearce@spearce.org>
Wed, 23 Jun 2010 17:13:55 +0000 (10:13 -0700)
committerShawn O. Pearce <spearce@spearce.org>
Sat, 26 Jun 2010 00:46:40 +0000 (17:46 -0700)
Change the Repository API to use straight-up FileBasedConfig.
This lets us remove the subclass RepositoryConfig and stop having
a specialized configuration type for repository, letting us instead
focus the config type heirarchy on type-of-storage rather than use.

Change-Id: I7236800e8090624453a89cb0c7a9a632702691c6
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/AdvertiseErrorTest.java
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/HookMessageTest.java
org.eclipse.jgit.http.test/tst/org/eclipse/jgit/http/test/SmartClientSmartServerTest.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectWriter.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryConfig.java [deleted file]

index 47d7806a1e72ce779198d2804453b1fd6ad08169..d8268bf93f96156cf6efa2a76485572e691c40af 100644 (file)
@@ -59,10 +59,10 @@ import org.eclipse.jgit.http.server.resolver.ServiceNotEnabledException;
 import org.eclipse.jgit.http.test.util.HttpTestCase;
 import org.eclipse.jgit.junit.TestRepository;
 import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.FileBasedConfig;
 import org.eclipse.jgit.lib.NullProgressMonitor;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.lib.RepositoryConfig;
 import org.eclipse.jgit.revwalk.RevBlob;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.transport.ReceivePack;
@@ -114,7 +114,7 @@ public class AdvertiseErrorTest extends HttpTestCase {
                remoteRepository = src.getRepository();
                remoteURI = toURIish(app, srcName);
 
-               RepositoryConfig cfg = remoteRepository.getConfig();
+               FileBasedConfig cfg = remoteRepository.getConfig();
                cfg.setBoolean("http", null, "receivepack", true);
                cfg.save();
        }
index 224ea05c182f91584f3f78563a189c0452619d25..b98171ebd21c93e714b9938fd95f41f02959b656 100644 (file)
@@ -61,10 +61,10 @@ import org.eclipse.jgit.http.test.util.AccessEvent;
 import org.eclipse.jgit.http.test.util.HttpTestCase;
 import org.eclipse.jgit.junit.TestRepository;
 import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.FileBasedConfig;
 import org.eclipse.jgit.lib.NullProgressMonitor;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.lib.RepositoryConfig;
 import org.eclipse.jgit.revwalk.RevBlob;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.transport.PreReceiveHook;
@@ -124,7 +124,7 @@ public class HookMessageTest extends HttpTestCase {
                remoteRepository = src.getRepository();
                remoteURI = toURIish(app, srcName);
 
-               RepositoryConfig cfg = remoteRepository.getConfig();
+               FileBasedConfig cfg = remoteRepository.getConfig();
                cfg.setBoolean("http", null, "receivepack", true);
                cfg.save();
        }
index f7b3bdb2034174b298ceed76c76406f767a6f6f1..74dd8af8e27d95597a1d72bc6b1256ff708089fb 100644 (file)
@@ -76,12 +76,12 @@ import org.eclipse.jgit.http.test.util.HttpTestCase;
 import org.eclipse.jgit.junit.TestRepository;
 import org.eclipse.jgit.junit.TestRng;
 import org.eclipse.jgit.lib.Constants;
+import org.eclipse.jgit.lib.FileBasedConfig;
 import org.eclipse.jgit.lib.NullProgressMonitor;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.lib.ReflogReader;
 import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.lib.RepositoryConfig;
 import org.eclipse.jgit.revwalk.RevBlob;
 import org.eclipse.jgit.revwalk.RevCommit;
 import org.eclipse.jgit.transport.FetchConnection;
@@ -547,7 +547,7 @@ public class SmartClientSmartServerTest extends HttpTestCase {
        }
 
        private void enableReceivePack() throws IOException {
-               final RepositoryConfig cfg = remoteRepository.getConfig();
+               final FileBasedConfig cfg = remoteRepository.getConfig();
                cfg.setBoolean("http", null, "receivepack", true);
                cfg.save();
        }
index 20147ed6ce74108c6595384a12fc9861b8caf27c..3ba67476e9656e35e842a48d63729dcee03b745b 100644 (file)
@@ -336,7 +336,7 @@ public class ObjectWriter {
 
                md.reset();
                if (store) {
-                       def = new Deflater(r.getConfig().getCore().getCompression());
+                       def = new Deflater(r.getConfig().get(CoreConfig.KEY).getCompression());
                        deflateStream = new DeflaterOutputStream(fileStream, def);
                } else
                        deflateStream = null;
index e605928daa9a2bac16a39490c16bb4c617d5344a..78fe6065a0e0fb5613428ac8ba5c45ef71ddf0db 100644 (file)
@@ -110,7 +110,7 @@ public class Repository {
 
        private final FileBasedConfig userConfig;
 
-       private final RepositoryConfig config;
+       private final FileBasedConfig config;
 
        private final RefDatabase refs;
 
@@ -244,7 +244,7 @@ public class Repository {
                this.fs = fs;
 
                userConfig = SystemReader.getInstance().openUserConfig(fs);
-               config = new RepositoryConfig(userConfig, fs.resolve(gitDir, "config"));
+               config = new FileBasedConfig(userConfig, fs.resolve(gitDir, "config"));
 
                loadUserConfig();
                loadConfig();
@@ -351,7 +351,7 @@ public class Repository {
         *             in case of IO problem
         */
        public void create(boolean bare) throws IOException {
-               final RepositoryConfig cfg = getConfig();
+               final FileBasedConfig cfg = getConfig();
                if (cfg.getFile().exists()) {
                        throw new IllegalStateException(MessageFormat.format(
                                        JGitText.get().repositoryAlreadyExists, gitDir));
@@ -409,7 +409,7 @@ public class Repository {
        /**
         * @return the configuration of this repository
         */
-       public RepositoryConfig getConfig() {
+       public FileBasedConfig getConfig() {
                if (userConfig.isOutdated()) {
                        try {
                                loadUserConfig();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryConfig.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/RepositoryConfig.java
deleted file mode 100644 (file)
index 805975a..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2009, Constantine Plotnikov <constantine.plotnikov@gmail.com>
- * Copyright (C) 2007, Dave Watson <dwatson@mimvista.com>
- * Copyright (C) 2008-2009, Google Inc.
- * Copyright (C) 2009, JetBrains s.r.o.
- * Copyright (C) 2007-2008, Robin Rosenberg <robin.rosenberg@dewire.com>
- * Copyright (C) 2006-2008, Shawn O. Pearce <spearce@spearce.org>
- * Copyright (C) 2008, Thad Hughes <thadh@thad.corp.google.com>
- * Copyright (C) 2009, Yann Simon <yann.simon.fr@gmail.com>
- * and other copyright owners as documented in the project's IP log.
- *
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Distribution License v1.0 which
- * accompanies this distribution, is reproduced below, and is
- * available at http://www.eclipse.org/org/documents/edl-v10.php
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or
- * without modification, are permitted provided that the following
- * conditions are met:
- *
- * - Redistributions of source code must retain the above copyright
- *   notice, this list of conditions and the following disclaimer.
- *
- * - Redistributions in binary form must reproduce the above
- *   copyright notice, this list of conditions and the following
- *   disclaimer in the documentation and/or other materials provided
- *   with the distribution.
- *
- * - Neither the name of the Eclipse Foundation, Inc. nor the
- *   names of its contributors may be used to endorse or promote
- *   products derived from this software without specific prior
- *   written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.eclipse.jgit.lib;
-
-import java.io.File;
-
-/**
- * An object representing the Git config file.
- *
- * This can be either the repository specific file or the user global
- * file depending on how it is instantiated.
- */
-public class RepositoryConfig extends FileBasedConfig {
-       /** Section name for a branch configuration. */
-       public static final String BRANCH_SECTION = "branch";
-
-       /**
-        * Create a Git configuration file reader/writer/cache for a specific file.
-        *
-        * @param base
-        *            configuration that provides default values if this file does
-        *            not set/override a particular key. Often this is the user's
-        *            global configuration file, or the system level configuration.
-        * @param cfgLocation
-        *            path of the file to load (or save).
-        */
-       public RepositoryConfig(final Config base, final File cfgLocation) {
-               super(base, cfgLocation);
-       }
-
-       /**
-        * @return Core configuration values
-        */
-       public CoreConfig getCore() {
-               return get(CoreConfig.KEY);
-       }
-
-       /**
-        * @return transfer, fetch and receive configuration values
-        */
-       public TransferConfig getTransfer() {
-               return get(TransferConfig.KEY);
-       }
-
-       /** @return standard user configuration data */
-       public UserConfig getUserConfig() {
-               return get(UserConfig.KEY);
-       }
-
-       /**
-        * @return the author name as defined in the git variables
-        *         and configurations. If no name could be found, try
-        *         to use the system user name instead.
-        */
-       public String getAuthorName() {
-               return getUserConfig().getAuthorName();
-       }
-
-       /**
-        * @return the committer name as defined in the git variables
-        *         and configurations. If no name could be found, try
-        *         to use the system user name instead.
-        */
-       public String getCommitterName() {
-               return getUserConfig().getCommitterName();
-       }
-
-       /**
-        * @return the author email as defined in git variables and
-        *         configurations. If no email could be found, try to
-        *         propose one default with the user name and the
-        *         host name.
-        */
-       public String getAuthorEmail() {
-               return getUserConfig().getAuthorEmail();
-       }
-
-       /**
-        * @return the committer email as defined in git variables and
-        *         configurations. If no email could be found, try to
-        *         propose one default with the user name and the
-        *         host name.
-        */
-       public String getCommitterEmail() {
-               return getUserConfig().getCommitterEmail();
-       }
-}