001 /*
002 * Sonar, open source software quality management tool.
003 * Copyright (C) 2008-2011 SonarSource
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 import org.sonar.api.resources.ProjectFileSystem;
023
024 /**
025 * CoreProperties is used to group various properties of Sonar as well
026 * as default values of configuration in a single place
027 *
028 * @since 1.11
029 */
030 public interface CoreProperties {
031
032 /* Global settings */
033 String SONAR_HOME = "sonar.home";
034 String PROJECT_BRANCH_PROPERTY = "sonar.branch";
035 String PROJECT_VERSION_PROPERTY = "sonar.projectVersion";
036
037 /**
038 * @since 2.6
039 */
040 String PROJECT_KEY_PROPERTY = "sonar.projectKey";
041
042 /**
043 * @since 2.6
044 */
045 String PROJECT_NAME_PROPERTY = "sonar.projectName";
046
047 /**
048 * @since 2.6
049 */
050 String PROJECT_DESCRIPTION_PROPERTY = "sonar.projectDescription";
051
052 /**
053 * To determine value of this property use {@link ProjectFileSystem#getSourceCharset()}.
054 *
055 * @since 2.6
056 */
057 String ENCODING_PROPERTY = "sonar.sourceEncoding";
058
059 /**
060 * Value format is yyyy-MM-dd
061 */
062 String PROJECT_DATE_PROPERTY = "sonar.projectDate";
063 String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
064 String DYNAMIC_ANALYSIS_PROPERTY = "sonar.dynamicAnalysis";
065 String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
066
067 /**
068 * @deprecated since 2.5. See discussion from http://jira.codehaus.org/browse/SONAR-1873
069 */
070 @Deprecated
071 String REUSE_RULES_CONFIGURATION_PROPERTY = "sonar.reuseExistingRulesConfiguration";
072
073 /* Checkstyle */
074 String CHECKSTYLE_PLUGIN = "checkstyle";
075
076 /* Cobertura */
077 String COBERTURA_PLUGIN = "cobertura";
078 String COBERTURA_REPORT_PATH_PROPERTY = "sonar.cobertura.reportPath";
079 String COBERTURA_MAXMEM_PROPERTY = "sonar.cobertura.maxmen";
080 String COBERTURA_MAXMEM_DEFAULT_VALUE = "64m";
081
082 /* Sonar Core */
083 String CORE_PLUGIN = "core";
084 String CORE_COVERAGE_PLUGIN_PROPERTY = "sonar.core.codeCoveragePlugin";
085 String CORE_IMPORT_SOURCES_PROPERTY = "sonar.importSources";
086 boolean CORE_IMPORT_SOURCES_DEFAULT_VALUE = true;
087 String CORE_SKIPPED_MODULES_PROPERTY = "sonar.skippedModules";
088 String CORE_RULE_WEIGHTS_PROPERTY = "sonar.core.rule.weight";
089 String CORE_RULE_WEIGHTS_DEFAULT_VALUE = "INFO=0;MINOR=1;MAJOR=3;CRITICAL=5;BLOCKER=10";
090 String CORE_TENDENCY_DEPTH_PROPERTY = "tendency.depth";
091 int CORE_TENDENCY_DEPTH_DEFAULT_VALUE = 30;
092 String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
093 boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
094 String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
095 String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
096 String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
097 boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
098 String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
099 String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
100 String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
101 String SERVER_VERSION = "sonar.core.version";
102 String SERVER_ID = "sonar.core.id";
103 String SERVER_STARTTIME = "sonar.core.startTime"; // format is yyyy-MM-dd'T'HH:mm:ssZ
104 String SKIP_TENDENCIES_PROPERTY = "sonar.skipTendencies";
105 boolean SKIP_TENDENCIES_DEFAULT_VALUE = false;
106
107 /* CPD */
108 String CPD_PLUGIN = "cpd";
109 String CPD_MINIMUM_TOKENS_PROPERTY = "sonar.cpd.minimumTokens";
110 int CPD_MINIMUM_TOKENS_DEFAULT_VALUE = 100;
111 String CPD_IGNORE_LITERALS_PROPERTY = "sonar.cpd.ignore_literals";
112 String CPD_IGNORE_LITERALS_DEFAULT_VALUE = "true";
113 String CPD_IGNORE_IDENTIFIERS_PROPERTY = "sonar.cpd.ignore_identifiers";
114 String CPD_IGNORE_IDENTIFIERS_DEFAULT_VALUE = "false";
115 String CPD_SKIP_PROPERTY = "sonar.cpd.skip";
116
117 /* Design */
118 String DESIGN_SKIP_DESIGN_PROPERTY = "sonar.skipDesign";
119 boolean DESIGN_SKIP_DESIGN_DEFAULT_VALUE = false;
120
121 /* Findbugs */
122 String FINDBUGS_PLUGIN = "findbugs";
123 String FINDBUGS_EFFORT_PROPERTY = "sonar.findbugs.effort";
124 String FINDBUGS_EFFORT_DEFAULT_VALUE = "Default";
125 String FINDBUGS_REPORT_PATH = "sonar.findbugs.reportPath";
126 String FINDBUGS_TIMEOUT_PROPERTY = "sonar.findbugs.timeout";
127 long FINDBUGS_TIMEOUT_DEFAULT_VALUE = 600000;
128
129 /* Google Analytics */
130 String GOOGLE_ANALYTICS_PLUGIN = "google-analytics";
131 String GOOGLE_ANALYTICS_ACCOUNT_PROPERTY = "sonar.google-analytics.account";
132
133 /* PMD */
134 String PMD_PLUGIN = "pmd";
135
136 /* Squid */
137 String SQUID_PLUGIN = "squid";
138
139 /* Surefire */
140 String SUREFIRE_PLUGIN = "surefire";
141 String SUREFIRE_REPORTS_PATH_PROPERTY = "sonar.surefire.reportsPath";
142
143 /* Time machine periods */
144 String TIMEMACHINE_PERIOD_PREFIX = "sonar.timemachine.period";
145 String TIMEMACHINE_MODE_PREVIOUS_ANALYSIS = "previous_analysis";
146 String TIMEMACHINE_DEFAULT_PERIOD_1 = TIMEMACHINE_MODE_PREVIOUS_ANALYSIS;
147 String TIMEMACHINE_DEFAULT_PERIOD_2 = "5";
148 String TIMEMACHINE_DEFAULT_PERIOD_3 = "30";
149 String TIMEMACHINE_DEFAULT_PERIOD_4 = "";
150 String TIMEMACHINE_DEFAULT_PERIOD_5 = "";
151 }