001/*
002 * SonarQube, open source software quality management tool.
003 * Copyright (C) 2008-2013 SonarSource
004 * mailto:contact AT sonarsource DOT com
005 *
006 * SonarQube 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 * SonarQube 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 License
017 * along with this program; if not, write to the Free Software Foundation,
018 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
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   * @since 2.11
037   */
038  String CATEGORY_GENERAL = "general";
039
040  /**
041   * @since 2.11
042   */
043  String CATEGORY_CODE_COVERAGE = "codeCoverage";
044
045  /**
046   * @since 2.11
047   */
048  String CATEGORY_DUPLICATIONS = "duplications";
049
050  /**
051   * @since 2.11
052   */
053  String CATEGORY_SECURITY = "security";
054
055  /**
056   * @since 2.11
057   */
058  String CATEGORY_L10N = "localization";
059
060  /**
061   * @since 2.11
062   */
063  String CATEGORY_JAVA = "java";
064
065  /**
066   * @since 2.11
067   */
068  String CATEGORY_DIFFERENTIAL_VIEWS = "differentialViews";
069
070  /**
071   * @since 3.3
072   */
073  String CATEGORY_EXCLUSIONS = "exclusions";
074
075  /**
076   * @since 3.7
077   */
078  String CATEGORY_LICENSES = "licenses";
079
080  /* Global settings */
081  String SONAR_HOME = "SONAR_HOME";
082  String PROJECT_BRANCH_PROPERTY = "sonar.branch";
083  String PROJECT_VERSION_PROPERTY = "sonar.projectVersion";
084
085  /**
086   * @since 2.6
087   */
088  String PROJECT_KEY_PROPERTY = "sonar.projectKey";
089
090  /**
091   * @since 2.6
092   */
093  String PROJECT_NAME_PROPERTY = "sonar.projectName";
094
095  /**
096   * @since 2.6
097   */
098  String PROJECT_DESCRIPTION_PROPERTY = "sonar.projectDescription";
099
100  /**
101   * To determine value of this property use {@link org.sonar.api.resources.ProjectFileSystem#getSourceCharset()}.
102   *
103   * @since 2.6
104   */
105  String ENCODING_PROPERTY = "sonar.sourceEncoding";
106
107  /**
108   * Value format is yyyy-MM-dd
109   */
110  String PROJECT_DATE_PROPERTY = "sonar.projectDate";
111
112  String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
113  String DYNAMIC_ANALYSIS_PROPERTY = "sonar.dynamicAnalysis";
114
115  /* Exclusions */
116  String PROJECT_INCLUSIONS_PROPERTY = "sonar.inclusions";
117  String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
118
119  /**
120   * @since 3.3
121   */
122  String PROJECT_TEST_INCLUSIONS_PROPERTY = "sonar.test.inclusions";
123  String PROJECT_TEST_EXCLUSIONS_PROPERTY = "sonar.test.exclusions";
124  String GLOBAL_EXCLUSIONS_PROPERTY = "sonar.global.exclusions";
125  String GLOBAL_TEST_EXCLUSIONS_PROPERTY = "sonar.global.test.exclusions";
126  String GLOBAL_TEST_EXCLUSIONS_DEFAULT = "**/package-info.java";
127
128  /**
129   * @deprecated since 2.5. See discussion from http://jira.codehaus.org/browse/SONAR-1873
130   */
131  @Deprecated
132  String REUSE_RULES_CONFIGURATION_PROPERTY = "sonar.reuseExistingRulesConfiguration";
133
134  /* Sonar Core */
135  String CORE_VIOLATION_LOCALE_PROPERTY = "sonar.violationLocale";
136  String CORE_VIOLATION_LOCALE_DEFAULT_VALUE = "en";
137  String CORE_IMPORT_SOURCES_PROPERTY = "sonar.importSources";
138  boolean CORE_IMPORT_SOURCES_DEFAULT_VALUE = true;
139  String CORE_SKIPPED_MODULES_PROPERTY = "sonar.skippedModules";
140  String CORE_RULE_WEIGHTS_PROPERTY = "sonar.core.rule.weight";
141  String CORE_RULE_WEIGHTS_DEFAULT_VALUE = "INFO=0;MINOR=1;MAJOR=3;CRITICAL=5;BLOCKER=10";
142
143  /**
144   * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
145   */
146  @Deprecated
147  String CORE_TENDENCY_DEPTH_PROPERTY = "tendency.depth";
148
149  /**
150   * @deprecated since 2.5. See http://jira.codehaus.org/browse/SONAR-4145
151   */
152  @Deprecated
153  int CORE_TENDENCY_DEPTH_DEFAULT_VALUE = 30;
154
155  String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
156  boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
157  String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
158  String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
159  String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
160  boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
161
162  /**
163   * @deprecated since 2.14. See http://jira.codehaus.org/browse/SONAR-3153. Replaced by {@link #CORE_AUTHENTICATOR_REALM}.
164   */
165  @Deprecated
166  String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
167
168  /**
169   * @since 2.14
170   */
171  String CORE_AUTHENTICATOR_REALM = "sonar.security.realm";
172
173  String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
174  String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
175
176  /**
177   * @since 3.6
178   */
179  String CORE_AUTHENTICATOR_UPDATE_USER_ATTRIBUTES = "sonar.security.updateUserAttributes";
180
181  String SERVER_VERSION = "sonar.core.version";
182  String SERVER_ID = "sonar.core.id";
183
184  // format is yyyy-MM-dd'T'HH:mm:ssZ
185  String SERVER_STARTTIME = "sonar.core.startTime";
186
187  /**
188   * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
189   */
190  @Deprecated
191  String SKIP_TENDENCIES_PROPERTY = "sonar.skipTendencies";
192
193  /**
194   * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
195   */
196  @Deprecated
197  boolean SKIP_TENDENCIES_DEFAULT_VALUE = false;
198
199  String BATCH_INCLUDE_PLUGINS = "sonar.includePlugins";
200  String BATCH_EXCLUDE_PLUGINS = "sonar.excludePlugins";
201
202  /**
203   * @since 3.4
204   */
205  String DRY_RUN_INCLUDE_PLUGINS = "sonar.dryRun.includePlugins";
206  String DRY_RUN_INCLUDE_PLUGINS_DEFAULT_VALUE = "";
207
208  /**
209   * @since 3.4
210   */
211  String DRY_RUN_EXCLUDE_PLUGINS = "sonar.dryRun.excludePlugins";
212  String DRY_RUN_EXCLUDE_PLUGINS_DEFAULT_VALUE = "devcockpit,pdfreport,report,scmactivity,views,jira";
213
214  /**
215   * @since 2.10
216   */
217  String SERVER_BASE_URL = "sonar.core.serverBaseURL";
218
219  /**
220   * @see #SERVER_BASE_URL
221   * @since 2.10
222   */
223  String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
224
225  /* CPD */
226  String CPD_PLUGIN = "cpd";
227
228  /**
229   * @deprecated in 3.1
230   */
231  @Deprecated
232  String CPD_MINIMUM_TOKENS_PROPERTY = "sonar.cpd.minimumTokens";
233
234  /**
235   * @deprecated in 3.1
236   */
237  @Deprecated
238  int CPD_MINIMUM_TOKENS_DEFAULT_VALUE = 100;
239
240  /**
241   * @deprecated in 3.1
242   */
243  @Deprecated
244  String CPD_IGNORE_LITERALS_PROPERTY = "sonar.cpd.ignore_literals";
245
246  /**
247   * @deprecated in 3.1
248   */
249  @Deprecated
250  String CPD_IGNORE_LITERALS_DEFAULT_VALUE = "true";
251
252  /**
253   * @deprecated in 3.1
254   */
255  @Deprecated
256  String CPD_IGNORE_IDENTIFIERS_PROPERTY = "sonar.cpd.ignore_identifiers";
257
258  /**
259   * @deprecated in 3.1
260   */
261  @Deprecated
262  String CPD_IGNORE_IDENTIFIERS_DEFAULT_VALUE = "false";
263
264  String CPD_SKIP_PROPERTY = "sonar.cpd.skip";
265
266  /**
267   * @since 2.11
268   * @deprecated in 3.1
269   */
270  @Deprecated
271  String CPD_ENGINE = "sonar.cpd.engine";
272
273  /**
274   * @see #CPD_ENGINE
275   * @since 2.11
276   * @deprecated in 3.1
277   */
278  @Deprecated
279  String CPD_ENGINE_DEFAULT_VALUE = "sonar";
280
281  /**
282   * @since 2.11
283   */
284  String CPD_CROSS_RPOJECT = "sonar.cpd.cross_project";
285
286  /**
287   * @see #CPD_CROSS_RPOJECT
288   * @since 2.11
289   */
290  boolean CPD_CROSS_RPOJECT_DEFAULT_VALUE = false;
291
292  /**
293   * @since 3.5
294   */
295  String CPD_EXCLUSIONS = "sonar.cpd.exclusions";
296
297  /* Design */
298
299  /**
300   * Indicates whether Java bytecode analysis should be skipped.
301   *
302   * @since 2.0
303   */
304  String DESIGN_SKIP_DESIGN_PROPERTY = "sonar.skipDesign";
305  boolean DESIGN_SKIP_DESIGN_DEFAULT_VALUE = false;
306
307  /**
308   * Indicates whether Package Design Analysis should be skipped.
309   *
310   * @since 2.9
311   */
312  String DESIGN_SKIP_PACKAGE_DESIGN_PROPERTY = "sonar.skipPackageDesign";
313  boolean DESIGN_SKIP_PACKAGE_DESIGN_DEFAULT_VALUE = false;
314
315  /* Google Analytics */
316  String GOOGLE_ANALYTICS_PLUGIN = "google-analytics";
317  String GOOGLE_ANALYTICS_ACCOUNT_PROPERTY = "sonar.google-analytics.account";
318
319  /* Time machine periods */
320  String TIMEMACHINE_PERIOD_PREFIX = "sonar.timemachine.period";
321  String TIMEMACHINE_MODE_PREVIOUS_ANALYSIS = "previous_analysis";
322  String TIMEMACHINE_MODE_DATE = "date";
323  String TIMEMACHINE_MODE_VERSION = "version";
324  String TIMEMACHINE_MODE_DAYS = "days";
325  String TIMEMACHINE_MODE_PREVIOUS_VERSION = "previous_version";
326  String TIMEMACHINE_DEFAULT_PERIOD_1 = TIMEMACHINE_MODE_PREVIOUS_ANALYSIS;
327  String TIMEMACHINE_DEFAULT_PERIOD_2 = "30";
328  String TIMEMACHINE_DEFAULT_PERIOD_3 = TIMEMACHINE_MODE_PREVIOUS_VERSION;
329  String TIMEMACHINE_DEFAULT_PERIOD_4 = "";
330  String TIMEMACHINE_DEFAULT_PERIOD_5 = "";
331
332  /**
333   * @since 2.11
334   */
335  String ORGANISATION = "sonar.organisation";
336
337  /**
338   * @since 2.11
339   */
340  String PERMANENT_SERVER_ID = "sonar.server_id";
341
342  /**
343   * @since 2.11
344   */
345  String SERVER_ID_IP_ADDRESS = "sonar.server_id.ip_address";
346
347  /**
348   * @since 3.3
349   */
350  String LINKS_HOME_PAGE = "sonar.links.homepage";
351
352  /**
353   * @since 3.3
354   */
355  String LINKS_CI = "sonar.links.ci";
356
357  /**
358   * @since 3.3
359   */
360  String LINKS_ISSUE_TRACKER = "sonar.links.issue";
361
362  /**
363   * @since 3.3
364   */
365  String LINKS_SOURCES = "sonar.links.scm";
366
367  /**
368   * @since 3.3
369   */
370  String LINKS_SOURCES_DEV = "sonar.links.scm_dev";
371
372  /**
373   * @since 3.4
374   */
375  String LOGIN = "sonar.login";
376
377  /**
378   * @since 3.4
379   */
380  String PASSWORD = "sonar.password";
381
382  /**
383   * @since 3.4
384   */
385  String DRY_RUN = "sonar.dryRun";
386
387  /**
388   * @since 3.5
389   */
390  String TASK = "sonar.task";
391
392  /**
393   * @since 3.6
394   */
395  String SCAN_TASK = "scan";
396
397  /**
398   * @since 3.6
399   */
400  String PROFILING_LOG_PROPERTY = "sonar.showProfiling";
401
402  /**
403   * @deprecated replaced in v3.4 by properties specific to languages, for example sonar.java.coveragePlugin
404   *             See http://jira.codehaus.org/browse/SONARJAVA-39 for more details.
405   */
406  @Deprecated
407  String CORE_COVERAGE_PLUGIN_PROPERTY = "sonar.core.codeCoveragePlugin";
408
409  /**
410   * @since 3.7
411   */
412  String DRY_RUN_READ_TIMEOUT_SEC = "sonar.dryRun.readTimeout";
413}