001    /*
002     * Sonar, open source software quality management tool.
003     * Copyright (C) 2009 SonarSource SA
004     * mailto:contact AT sonarsource DOT com
005     *
006     * Sonar is free software; you can redistribute it and/or
007     * modify it under the terms of the GNU Lesser General Public
008     * License as published by the Free Software Foundation; either
009     * version 3 of the License, or (at your option) any later version.
010     *
011     * Sonar is distributed in the hope that it will be useful,
012     * but WITHOUT ANY WARRANTY; without even the implied warranty of
013     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014     * Lesser General Public License for more details.
015     *
016     * You should have received a copy of the GNU Lesser General Public
017     * License along with Sonar; if not, write to the Free Software
018     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
019     */
020    package org.sonar.api;
021    
022    /**
023     * CoreProperties is used to group various properties of Sonar as well
024     * as default values of configuration in a single place
025     *
026     * @since 1.11
027     */
028    public interface CoreProperties {
029    
030      /* Global settings */
031      String SONAR_HOME = "sonar.home";
032      String PROJECT_BRANCH_PROPERTY = "sonar.branch";
033      String PROJECT_VERSION_PROPERTY = "sonar.projectVersion";
034    
035      /**
036       * Value format is yyyy-MM-dd
037       */
038      String PROJECT_DATE_PROPERTY = "sonar.projectDate";
039      String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
040      String DYNAMIC_ANALYSIS_PROPERTY = "sonar.dynamicAnalysis";
041      String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
042      String REUSE_RULES_CONFIGURATION_PROPERTY = "sonar.reuseExistingRulesConfiguration";
043    
044    
045      /* Checkstyle */
046      String CHECKSTYLE_PLUGIN = "checkstyle";
047    
048      /* Cobertura */
049      String COBERTURA_PLUGIN = "cobertura";
050      String COBERTURA_REPORT_PATH_PROPERTY = "sonar.cobertura.reportPath";
051      String COBERTURA_MAXMEM_PROPERTY = "sonar.cobertura.maxmen";
052      String COBERTURA_MAXMEM_DEFAULT_VALUE = "64m";
053    
054      /* Sonar Core */
055      String CORE_PLUGIN = "core";
056      String CORE_COVERAGE_PLUGIN_PROPERTY = "sonar.core.codeCoveragePlugin";
057      String CORE_IMPORT_SOURCES_PROPERTY = "sonar.importSources";
058      boolean CORE_IMPORT_SOURCES_DEFAULT_VALUE = true;
059      String CORE_SKIPPED_MODULES_PROPERTY = "sonar.skippedModules";
060      String CORE_RULE_WEIGHTS_PROPERTY = "sonar.core.rule.weight";
061      String CORE_RULE_WEIGHTS_DEFAULT_VALUE = "INFO=0;MINOR=1;MAJOR=3;CRITICAL=5;BLOCKER=10";
062      String CORE_TENDENCY_DEPTH_PROPERTY = "tendency.depth";
063      int CORE_TENDENCY_DEPTH_DEFAULT_VALUE = 30;
064      String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
065      boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
066      String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
067      String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
068      String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
069      boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
070      String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
071      String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
072      String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
073      String SERVER_VERSION = "sonar.core.version";
074      String SERVER_ID = "sonar.core.id";
075      String SERVER_STARTTIME = "sonar.core.startTime";  // format is yyyy-MM-dd'T'HH:mm:ssZ
076    
077      /* CPD */
078      String CPD_PLUGIN = "cpd";
079      String CPD_MINIMUM_TOKENS_PROPERTY = "sonar.cpd.minimumTokens";
080      int CPD_MINIMUM_TOKENS_DEFAULT_VALUE = 100;
081      String CPD_IGNORE_LITERALS_PROPERTY = "sonar.cpd.ignore_literals";
082      String CPD_IGNORE_LITERALS_DEFAULT_VALUE = "true";
083      String CPD_IGNORE_IDENTIFIERS_PROPERTY = "sonar.cpd.ignore_identifiers";
084      String CPD_IGNORE_IDENTIFIERS_DEFAULT_VALUE = "false";
085      String CPD_SKIP_PROPERTY = "sonar.cpd.skip";
086    
087      /* Design */
088      String DESIGN_SKIP_DESIGN_PROPERTY = "sonar.skipDesign";
089      boolean DESIGN_SKIP_DESIGN_DEFAULT_VALUE = false;
090    
091      /* Findbugs */
092      String FINDBUGS_PLUGIN = "findbugs";
093      String FINDBUGS_EFFORT_PROPERTY = "sonar.findbugs.effort";
094      String FINDBUGS_EFFORT_DEFAULT_VALUE = "Default";
095      String FINDBUGS_MAXHEAP_PROPERTY = "sonar.findbugs.maxHeap";
096      String FINDBUGS_TIMEOUT_PROPERTY = "sonar.findbugs.timeout";
097      int FINDBUGS_MAXHEAP_DEFAULT_VALUE = 512;
098    
099      /* Google Analytics */
100      String GOOGLE_ANALYTICS_PLUGIN = "google-analytics";
101      String GOOGLE_ANALYTICS_ACCOUNT_PROPERTY = "sonar.google-analytics.account";
102    
103      /* PMD */
104      String PMD_PLUGIN = "pmd";
105    
106      /* Squid */
107      String SQUID_PLUGIN = "squid";
108      String SQUID_ANALYSE_ACCESSORS_PROPERTY = "sonar.squid.analyse.property.accessors";
109      boolean SQUID_ANALYSE_ACCESSORS_DEFAULT_VALUE = true;
110    
111      /* Surefire */
112      String SUREFIRE_PLUGIN = "surefire";
113      String SUREFIRE_REPORTS_PATH_PROPERTY = "sonar.surefire.reportsPath";
114    }