001/*
002 * Sonar, open source software quality management tool.
003 * Copyright (C) 2008-2012 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 */
020package 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 */
028public interface CoreProperties {
029
030  /**
031   * @since 3.0
032   */
033  String ENCRYPTION_SECRET_KEY_PATH = "sonar.secretKeyPath";
034
035
036  /**
037   * @since 2.11
038   */
039  String CATEGORY_GENERAL = "general";
040
041  /**
042   * @since 2.11
043   */
044  String CATEGORY_CODE_COVERAGE = "codeCoverage";
045
046  /**
047   * @since 2.11
048   */
049  String CATEGORY_DUPLICATIONS = "duplications";
050
051  /**
052   * @since 2.11
053   */
054  String CATEGORY_SECURITY = "security";
055
056  /**
057   * @since 2.11
058   */
059  String CATEGORY_L10N = "localization";
060
061  /**
062   * @since 2.11
063   */
064  String CATEGORY_JAVA = "java";
065
066  /**
067   * @since 2.11
068   */
069  String CATEGORY_DIFFERENTIAL_VIEWS = "differentialViews";
070
071
072  /* Global settings */
073  String SONAR_HOME = "SONAR_HOME";
074  String PROJECT_BRANCH_PROPERTY = "sonar.branch";
075  String PROJECT_VERSION_PROPERTY = "sonar.projectVersion";
076
077  /**
078   * @since 2.6
079   */
080  String PROJECT_KEY_PROPERTY = "sonar.projectKey";
081
082  /**
083   * @since 2.6
084   */
085  String PROJECT_NAME_PROPERTY = "sonar.projectName";
086
087  /**
088   * @since 2.6
089   */
090  String PROJECT_DESCRIPTION_PROPERTY = "sonar.projectDescription";
091
092  /**
093   * To determine value of this property use {@link org.sonar.api.resources.ProjectFileSystem#getSourceCharset()}.
094   *
095   * @since 2.6
096   */
097  String ENCODING_PROPERTY = "sonar.sourceEncoding";
098
099  /**
100   * Value format is yyyy-MM-dd
101   */
102  String PROJECT_DATE_PROPERTY = "sonar.projectDate";
103  String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
104  String DYNAMIC_ANALYSIS_PROPERTY = "sonar.dynamicAnalysis";
105  String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
106
107  /**
108   * @deprecated since 2.5. See discussion from http://jira.codehaus.org/browse/SONAR-1873
109   */
110  @Deprecated
111  String REUSE_RULES_CONFIGURATION_PROPERTY = "sonar.reuseExistingRulesConfiguration";
112
113  /* Checkstyle */
114  String CHECKSTYLE_PLUGIN = "checkstyle";
115
116  /* Cobertura */
117  String COBERTURA_PLUGIN = "cobertura";
118  String COBERTURA_REPORT_PATH_PROPERTY = "sonar.cobertura.reportPath";
119  String COBERTURA_MAXMEM_PROPERTY = "sonar.cobertura.maxmem";
120  String COBERTURA_MAXMEM_DEFAULT_VALUE = "64m";
121
122  /* Sonar Core */
123  String CORE_PLUGIN = "core";
124  String CORE_VIOLATION_LOCALE_PROPERTY = "sonar.violationLocale";
125  String CORE_VIOLATION_LOCALE_DEFAULT_VALUE = "en";
126  String CORE_COVERAGE_PLUGIN_PROPERTY = "sonar.core.codeCoveragePlugin";
127  String CORE_IMPORT_SOURCES_PROPERTY = "sonar.importSources";
128  boolean CORE_IMPORT_SOURCES_DEFAULT_VALUE = true;
129  String CORE_SKIPPED_MODULES_PROPERTY = "sonar.skippedModules";
130  String CORE_RULE_WEIGHTS_PROPERTY = "sonar.core.rule.weight";
131  String CORE_RULE_WEIGHTS_DEFAULT_VALUE = "INFO=0;MINOR=1;MAJOR=3;CRITICAL=5;BLOCKER=10";
132  String CORE_TENDENCY_DEPTH_PROPERTY = "tendency.depth";
133  int CORE_TENDENCY_DEPTH_DEFAULT_VALUE = 30;
134  String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
135  boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
136  String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
137  String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
138  String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
139  boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
140  String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
141  String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
142  String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
143  String SERVER_VERSION = "sonar.core.version";
144  String SERVER_ID = "sonar.core.id";
145  String SERVER_STARTTIME = "sonar.core.startTime"; // format is yyyy-MM-dd'T'HH:mm:ssZ
146  String SKIP_TENDENCIES_PROPERTY = "sonar.skipTendencies";
147  boolean SKIP_TENDENCIES_DEFAULT_VALUE = false;
148  String BATCH_INCLUDE_PLUGINS = "sonar.includePlugins";
149  String BATCH_EXCLUDE_PLUGINS = "sonar.excludePlugins";
150
151  /**
152   * @since 2.10
153   */
154  String SERVER_BASE_URL = "sonar.core.serverBaseURL";
155
156  /**
157   * @see #SERVER_BASE_URL
158   * @since 2.10
159   */
160  String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
161
162  /* CPD */
163  String CPD_PLUGIN = "cpd";
164
165  /**
166   * @deprecated in 3.1
167   */
168  @Deprecated
169  String CPD_MINIMUM_TOKENS_PROPERTY = "sonar.cpd.minimumTokens";
170
171  /**
172   * @deprecated in 3.1
173   */
174  @Deprecated
175  int CPD_MINIMUM_TOKENS_DEFAULT_VALUE = 100;
176
177  /**
178   * @deprecated in 3.1
179   */
180  @Deprecated
181  String CPD_IGNORE_LITERALS_PROPERTY = "sonar.cpd.ignore_literals";
182
183  /**
184   * @deprecated in 3.1
185   */
186  @Deprecated
187  String CPD_IGNORE_LITERALS_DEFAULT_VALUE = "true";
188
189  /**
190   * @deprecated in 3.1
191   */
192  @Deprecated
193  String CPD_IGNORE_IDENTIFIERS_PROPERTY = "sonar.cpd.ignore_identifiers";
194
195  /**
196   * @deprecated in 3.1
197   */
198  @Deprecated
199  String CPD_IGNORE_IDENTIFIERS_DEFAULT_VALUE = "false";
200
201  String CPD_SKIP_PROPERTY = "sonar.cpd.skip";
202
203  /**
204   * @since 2.11
205   * @deprecated in 3.1
206   */
207  @Deprecated
208  String CPD_ENGINE = "sonar.cpd.engine";
209
210  /**
211   * @see #CPD_ENGINE
212   * @since 2.11
213   * @deprecated in 3.1
214   */
215  @Deprecated
216  String CPD_ENGINE_DEFAULT_VALUE = "sonar";
217
218  /**
219   * @since 2.11
220   */
221  String CPD_CROSS_RPOJECT = "sonar.cpd.cross_project";
222
223  /**
224   * @see #CPD_CROSS_RPOJECT
225   * @since 2.11
226   */
227  boolean CPD_CROSS_RPOJECT_DEFAULT_VALUE = false;
228
229  /* Design */
230
231  /**
232   * Indicates whether Java bytecode analysis should be skipped.
233   *
234   * @since 2.0
235   */
236  String DESIGN_SKIP_DESIGN_PROPERTY = "sonar.skipDesign";
237  boolean DESIGN_SKIP_DESIGN_DEFAULT_VALUE = false;
238
239  /**
240   * Indicates whether Package Design Analysis should be skipped.
241   *
242   * @since 2.9
243   */
244  String DESIGN_SKIP_PACKAGE_DESIGN_PROPERTY = "sonar.skipPackageDesign";
245  boolean DESIGN_SKIP_PACKAGE_DESIGN_DEFAULT_VALUE = false;
246
247  /* Findbugs */
248  String FINDBUGS_PLUGIN = "findbugs";
249  String FINDBUGS_EFFORT_PROPERTY = "sonar.findbugs.effort";
250  String FINDBUGS_EFFORT_DEFAULT_VALUE = "Default";
251  String FINDBUGS_REPORT_PATH = "sonar.findbugs.reportPath";
252  String FINDBUGS_TIMEOUT_PROPERTY = "sonar.findbugs.timeout";
253  long FINDBUGS_TIMEOUT_DEFAULT_VALUE = 600000;
254
255  /* Google Analytics */
256  String GOOGLE_ANALYTICS_PLUGIN = "google-analytics";
257  String GOOGLE_ANALYTICS_ACCOUNT_PROPERTY = "sonar.google-analytics.account";
258
259  /* PMD */
260  String PMD_PLUGIN = "pmd";
261
262  /* Squid */
263  String SQUID_PLUGIN = "squid";
264
265  /* Surefire */
266  String SUREFIRE_PLUGIN = "surefire";
267  String SUREFIRE_REPORTS_PATH_PROPERTY = "sonar.surefire.reportsPath";
268
269  /* Time machine periods */
270  String TIMEMACHINE_PERIOD_PREFIX = "sonar.timemachine.period";
271  String TIMEMACHINE_MODE_PREVIOUS_ANALYSIS = "previous_analysis";
272  String TIMEMACHINE_MODE_DATE = "date";
273  String TIMEMACHINE_MODE_VERSION = "version";
274  String TIMEMACHINE_MODE_DAYS = "days";
275  String TIMEMACHINE_DEFAULT_PERIOD_1 = TIMEMACHINE_MODE_PREVIOUS_ANALYSIS;
276  String TIMEMACHINE_DEFAULT_PERIOD_2 = "5";
277  String TIMEMACHINE_DEFAULT_PERIOD_3 = "30";
278  String TIMEMACHINE_DEFAULT_PERIOD_4 = "";
279  String TIMEMACHINE_DEFAULT_PERIOD_5 = "";
280
281  /**
282   * @since 2.11
283   */
284  String ORGANISATION = "sonar.organisation";
285
286  /**
287   * @since 2.11
288   */
289  String PERMANENT_SERVER_ID = "sonar.server_id";
290
291  /**
292   * @since 2.11
293   */
294  String SERVER_ID_IP_ADDRESS = "sonar.server_id.ip_address";
295}