Line data Source code
1 : // Copyright (C) 2020 The Android Open Source Project 2 : // 3 : // Licensed under the Apache License, Version 2.0 (the "License"); 4 : // you may not use this file except in compliance with the License. 5 : // You may obtain a copy of the License at 6 : // 7 : // http://www.apache.org/licenses/LICENSE-2.0 8 : // 9 : // Unless required by applicable law or agreed to in writing, software 10 : // distributed under the License is distributed on an "AS IS" BASIS, 11 : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 : // See the License for the specific language governing permissions and 13 : // limitations under the License. 14 : 15 : package com.google.gerrit.server.config; 16 : 17 : import com.google.inject.Inject; 18 : import com.google.inject.Provider; 19 : import com.google.inject.Singleton; 20 : import org.eclipse.jgit.lib.Config; 21 : 22 : /** 23 : * Provides {@link Boolean} annotated with {@link GerritIsReplica}. 24 : * 25 : * <p>The returned boolean indicates whether Gerrit is run as a read-only replica. 26 : */ 27 : @Singleton 28 : public final class GerritIsReplicaProvider implements Provider<Boolean> { 29 : public static final String CONFIG_SECTION = "container"; 30 : public static final String REPLICA_KEY = "replica"; 31 : public static final String DEPRECATED_REPLICA_KEY = "slave"; 32 : 33 : public final boolean isReplica; 34 : 35 : @Inject 36 149 : public GerritIsReplicaProvider(@GerritServerConfig Config config) { 37 149 : this.isReplica = 38 149 : config.getBoolean(CONFIG_SECTION, REPLICA_KEY, false) 39 149 : || config.getBoolean(CONFIG_SECTION, DEPRECATED_REPLICA_KEY, false); 40 149 : } 41 : 42 : @Override 43 : public Boolean get() { 44 1 : return isReplica; 45 : } 46 : }