1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * See LICENSE.txt included in this distribution for the specific 9 * language governing permissions and limitations under the License. 10 * 11 * When distributing Covered Code, include this CDDL HEADER in each 12 * file and include the License file at LICENSE.txt. 13 * If applicable, add the following below this CDDL HEADER, with the 14 * fields enclosed by brackets "[]" replaced with your own identifying 15 * information: Portions Copyright [yyyy] [name of copyright owner] 16 * 17 * CDDL HEADER END 18 */ 19 20 /* 21 * Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved. 22 */ 23 package org.opengrok.indexer.condition; 24 25 import org.opengrok.indexer.history.BazaarRepository; 26 import org.opengrok.indexer.history.BitKeeperRepository; 27 import org.opengrok.indexer.history.CVSRepository; 28 import org.opengrok.indexer.history.MercurialRepository; 29 import org.opengrok.indexer.history.PerforceRepository; 30 import org.opengrok.indexer.history.RCSRepository; 31 import org.opengrok.indexer.history.Repository; 32 import org.opengrok.indexer.history.SCCSRepository; 33 import org.opengrok.indexer.history.SubversionRepository; 34 import org.opengrok.indexer.util.LazilyInstantiate; 35 36 public class RepositoryInstalled { 37 38 private static final String FORCE_ALL_PROPERTY = "junit-force-all"; 39 40 public enum Type { 41 BITKEEPER(new BitKeeperRepository()), 42 MERCURIAL(new MercurialRepository()), 43 RCS(new RCSRepository()), 44 BAZAAR(new BazaarRepository()), 45 CVS(new CVSRepository()), 46 PERFORCE(new PerforceRepository()), 47 SUBVERSION(new SubversionRepository()), 48 SCCS(new SCCSRepository()); 49 50 private final LazilyInstantiate<Boolean> satisfied; 51 Type(Repository repository)52 Type(Repository repository) { 53 satisfied = LazilyInstantiate.using(() -> Boolean.getBoolean(FORCE_ALL_PROPERTY) || repository.isWorking()); 54 } 55 isSatisfied()56 public boolean isSatisfied() { 57 return satisfied.get(); 58 } 59 } 60 RepositoryInstalled()61 private RepositoryInstalled() { 62 } 63 64 } 65