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 4.0
042   */
043  String SUBCATEGORY_DATABASE_CLEANER = "databaseCleaner";
044
045  /**
046   * @since 4.0
047   */
048  String SUBCATEGORY_DUPLICATIONS = "duplications";
049
050  /**
051   * @since 4.0
052   */
053  String SUBCATEGORY_DIFFERENTIAL_VIEWS = "differentialViews";
054
055  /**
056   * @since 4.0
057   */
058  String SUBCATEGORY_L10N = "localization";
059
060  /**
061   * @since 2.11
062   */
063  String CATEGORY_CODE_COVERAGE = "codeCoverage";
064
065  /**
066   * @see #SUBCATEGORY_DUPLICATIONS
067   * @since 2.11
068   * @deprecated since 4.0. See http://jira.codehaus.org/browse/SONAR-4660. Do not forget to remove the properties from core bundles
069   */
070  @Deprecated
071  String CATEGORY_DUPLICATIONS = "duplications";
072
073  /**
074   * @since 2.11
075   */
076  String CATEGORY_SECURITY = "security";
077
078  /**
079   * @see #SUBCATEGORY_L10N
080   * @since 2.11
081   * @deprecated since 4.0. See http://jira.codehaus.org/browse/SONAR-4660. Do not forget to remove the properties from core bundles
082   */
083  @Deprecated
084  String CATEGORY_L10N = "localization";
085
086  /**
087   * @since 2.11
088   */
089  String CATEGORY_JAVA = "java";
090
091  /**
092   * @see #SUBCATEGORY_DIFFERENTIAL_VIEWS
093   * @since 2.11
094   * @deprecated since 4.0. See http://jira.codehaus.org/browse/SONAR-4660. Do not forget to remove the properties from core bundles
095   */
096  @Deprecated
097  String CATEGORY_DIFFERENTIAL_VIEWS = "differentialViews";
098
099  /**
100   * @since 3.3
101   */
102  String CATEGORY_EXCLUSIONS = "exclusions";
103
104  /**
105   * @since 4.0
106   */
107  String SUBCATEGORY_FILES_EXCLUSIONS = "files";
108
109  /**
110   * @since 4.0
111   */
112  String SUBCATEGORY_DUPLICATIONS_EXCLUSIONS = "duplications";
113
114  /**
115   * @since 4.0
116   */
117  String SUBCATEGORY_COVERAGE_EXCLUSIONS = "coverage";
118
119  /**
120   * @since 3.7
121   */
122  String CATEGORY_LICENSES = "licenses";
123
124  /**
125   * @since 4.0
126   */
127  String CATEGORY_TECHNICAL_DEBT = "technicalDebt";
128
129  /* Global settings */
130  String SONAR_HOME = "SONAR_HOME";
131  String PROJECT_BRANCH_PROPERTY = "sonar.branch";
132  String PROJECT_VERSION_PROPERTY = "sonar.projectVersion";
133
134  /**
135   * @since 2.6
136   */
137  String PROJECT_KEY_PROPERTY = "sonar.projectKey";
138
139  /**
140   * @since 2.6
141   */
142  String PROJECT_NAME_PROPERTY = "sonar.projectName";
143
144  /**
145   * @since 2.6
146   */
147  String PROJECT_DESCRIPTION_PROPERTY = "sonar.projectDescription";
148
149  /**
150   * To determine value of this property use {@link org.sonar.api.resources.ProjectFileSystem#getSourceCharset()}.
151   *
152   * @since 2.6
153   */
154  String ENCODING_PROPERTY = "sonar.sourceEncoding";
155
156  /**
157   * Value format is yyyy-MM-dd
158   */
159  String PROJECT_DATE_PROPERTY = "sonar.projectDate";
160
161  /**
162   * @deprecated since 4.2 project are now multi-language
163   */
164  @Deprecated
165  String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
166  String DYNAMIC_ANALYSIS_PROPERTY = "sonar.dynamicAnalysis";
167
168  /* Exclusions */
169  String PROJECT_INCLUSIONS_PROPERTY = "sonar.inclusions";
170  String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
171
172  /**
173   * @since 3.3
174   */
175  String PROJECT_TEST_INCLUSIONS_PROPERTY = "sonar.test.inclusions";
176  String PROJECT_TEST_EXCLUSIONS_PROPERTY = "sonar.test.exclusions";
177  String GLOBAL_EXCLUSIONS_PROPERTY = "sonar.global.exclusions";
178  String GLOBAL_TEST_EXCLUSIONS_PROPERTY = "sonar.global.test.exclusions";
179  /**
180   * @deprecated since 4.2. See http://jira.codehaus.org/browse/SONAR-5058
181   */
182  @Deprecated
183  String GLOBAL_TEST_EXCLUSIONS_DEFAULT = "";
184
185  /**
186   * @deprecated since 2.5. See discussion from http://jira.codehaus.org/browse/SONAR-1873
187   */
188  @Deprecated
189  String REUSE_RULES_CONFIGURATION_PROPERTY = "sonar.reuseExistingRulesConfiguration";
190
191  /* Sonar Core */
192
193  /**
194   * @deprecated since 4.1. See http://jira.codehaus.org/browse/SONAR-4875
195   */
196  @Deprecated
197  String CORE_VIOLATION_LOCALE_PROPERTY = "sonar.violationLocale";
198
199  String CORE_VIOLATION_LOCALE_DEFAULT_VALUE = "en";
200  String CORE_IMPORT_SOURCES_PROPERTY = "sonar.importSources";
201  boolean CORE_IMPORT_SOURCES_DEFAULT_VALUE = true;
202  String CORE_SKIPPED_MODULES_PROPERTY = "sonar.skippedModules";
203  String CORE_RULE_WEIGHTS_PROPERTY = "sonar.core.rule.weight";
204  String CORE_RULE_WEIGHTS_DEFAULT_VALUE = "INFO=0;MINOR=1;MAJOR=3;CRITICAL=5;BLOCKER=10";
205
206  /**
207   * @since 4.0
208   */
209  String CORE_INCLUDED_MODULES_PROPERTY = "sonar.includedModules";
210
211  /**
212   * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
213   */
214  @Deprecated
215  String CORE_TENDENCY_DEPTH_PROPERTY = "tendency.depth";
216
217  /**
218   * @deprecated since 2.5. See http://jira.codehaus.org/browse/SONAR-4145
219   */
220  @Deprecated
221  int CORE_TENDENCY_DEPTH_DEFAULT_VALUE = 30;
222
223  String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
224  boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
225  String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
226  String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
227  String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
228  boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
229
230  /**
231   * @deprecated since 2.14. See http://jira.codehaus.org/browse/SONAR-3153. Replaced by {@link #CORE_AUTHENTICATOR_REALM}.
232   */
233  @Deprecated
234  String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
235
236  /**
237   * @since 2.14
238   */
239  String CORE_AUTHENTICATOR_REALM = "sonar.security.realm";
240
241  String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
242  String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
243
244  /**
245   * @since 3.6
246   */
247  String CORE_AUTHENTICATOR_UPDATE_USER_ATTRIBUTES = "sonar.security.updateUserAttributes";
248
249  String SERVER_VERSION = "sonar.core.version";
250  String SERVER_ID = "sonar.core.id";
251
252  // format is yyyy-MM-dd'T'HH:mm:ssZ
253  String SERVER_STARTTIME = "sonar.core.startTime";
254
255  /**
256   * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
257   */
258  @Deprecated
259  String SKIP_TENDENCIES_PROPERTY = "sonar.skipTendencies";
260
261  /**
262   * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
263   */
264  @Deprecated
265  boolean SKIP_TENDENCIES_DEFAULT_VALUE = false;
266
267  /**
268   * @since 2.10
269   */
270  String SERVER_BASE_URL = "sonar.core.serverBaseURL";
271
272  /**
273   * @see #SERVER_BASE_URL
274   * @since 2.10
275   */
276  String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
277
278  /* CPD */
279  String CPD_PLUGIN = "cpd";
280
281  /**
282   * @deprecated in 3.1
283   */
284  @Deprecated
285  String CPD_MINIMUM_TOKENS_PROPERTY = "sonar.cpd.minimumTokens";
286
287  /**
288   * @deprecated in 3.1
289   */
290  @Deprecated
291  int CPD_MINIMUM_TOKENS_DEFAULT_VALUE = 100;
292
293  /**
294   * @deprecated in 3.1
295   */
296  @Deprecated
297  String CPD_IGNORE_LITERALS_PROPERTY = "sonar.cpd.ignore_literals";
298
299  /**
300   * @deprecated in 3.1
301   */
302  @Deprecated
303  String CPD_IGNORE_LITERALS_DEFAULT_VALUE = "true";
304
305  /**
306   * @deprecated in 3.1
307   */
308  @Deprecated
309  String CPD_IGNORE_IDENTIFIERS_PROPERTY = "sonar.cpd.ignore_identifiers";
310
311  /**
312   * @deprecated in 3.1
313   */
314  @Deprecated
315  String CPD_IGNORE_IDENTIFIERS_DEFAULT_VALUE = "false";
316
317  String CPD_SKIP_PROPERTY = "sonar.cpd.skip";
318
319  /**
320   * @since 2.11
321   * @deprecated in 3.1
322   */
323  @Deprecated
324  String CPD_ENGINE = "sonar.cpd.engine";
325
326  /**
327   * @see #CPD_ENGINE
328   * @since 2.11
329   * @deprecated in 3.1
330   */
331  @Deprecated
332  String CPD_ENGINE_DEFAULT_VALUE = "sonar";
333
334  /**
335   * @since 2.11
336   */
337  String CPD_CROSS_RPOJECT = "sonar.cpd.cross_project";
338
339  /**
340   * @see #CPD_CROSS_RPOJECT
341   * @since 2.11
342   */
343  boolean CPD_CROSS_RPOJECT_DEFAULT_VALUE = false;
344
345  /**
346   * @since 3.5
347   */
348  String CPD_EXCLUSIONS = "sonar.cpd.exclusions";
349
350  /* Design */
351
352  /**
353   * Indicates whether Java bytecode analysis should be skipped.
354   *
355   * @since 2.0
356   */
357  String DESIGN_SKIP_DESIGN_PROPERTY = "sonar.skipDesign";
358  boolean DESIGN_SKIP_DESIGN_DEFAULT_VALUE = false;
359
360  /**
361   * Indicates whether Package Design Analysis should be skipped.
362   *
363   * @since 2.9
364   */
365  String DESIGN_SKIP_PACKAGE_DESIGN_PROPERTY = "sonar.skipPackageDesign";
366  boolean DESIGN_SKIP_PACKAGE_DESIGN_DEFAULT_VALUE = false;
367
368  /* Google Analytics */
369  String GOOGLE_ANALYTICS_PLUGIN = "google-analytics";
370  String GOOGLE_ANALYTICS_ACCOUNT_PROPERTY = "sonar.google-analytics.account";
371
372  /* Time machine periods */
373  String TIMEMACHINE_PERIOD_PREFIX = "sonar.timemachine.period";
374  String TIMEMACHINE_MODE_PREVIOUS_ANALYSIS = "previous_analysis";
375  String TIMEMACHINE_MODE_DATE = "date";
376  String TIMEMACHINE_MODE_VERSION = "version";
377  String TIMEMACHINE_MODE_DAYS = "days";
378  String TIMEMACHINE_MODE_PREVIOUS_VERSION = "previous_version";
379  String TIMEMACHINE_DEFAULT_PERIOD_1 = TIMEMACHINE_MODE_PREVIOUS_ANALYSIS;
380  String TIMEMACHINE_DEFAULT_PERIOD_2 = "30";
381  String TIMEMACHINE_DEFAULT_PERIOD_3 = TIMEMACHINE_MODE_PREVIOUS_VERSION;
382  String TIMEMACHINE_DEFAULT_PERIOD_4 = "";
383  String TIMEMACHINE_DEFAULT_PERIOD_5 = "";
384
385  /**
386   * @since 2.11
387   */
388  String ORGANISATION = "sonar.organisation";
389
390  /**
391   * @since 2.11
392   */
393  String PERMANENT_SERVER_ID = "sonar.server_id";
394
395  /**
396   * @since 2.11
397   */
398  String SERVER_ID_IP_ADDRESS = "sonar.server_id.ip_address";
399
400  /**
401   * @since 3.3
402   */
403  String LINKS_HOME_PAGE = "sonar.links.homepage";
404
405  /**
406   * @since 3.3
407   */
408  String LINKS_CI = "sonar.links.ci";
409
410  /**
411   * @since 3.3
412   */
413  String LINKS_ISSUE_TRACKER = "sonar.links.issue";
414
415  /**
416   * @since 3.3
417   */
418  String LINKS_SOURCES = "sonar.links.scm";
419
420  /**
421   * @since 3.3
422   */
423  String LINKS_SOURCES_DEV = "sonar.links.scm_dev";
424
425  /**
426   * @since 3.4
427   */
428  String LOGIN = "sonar.login";
429
430  /**
431   * @since 3.4
432   */
433  String PASSWORD = "sonar.password";
434
435  /**
436   * @since 3.4
437   */
438  String DRY_RUN = "sonar.dryRun";
439
440  /**
441   * @since 3.5
442   */
443  String TASK = "sonar.task";
444
445  /**
446   * @since 3.6
447   */
448  String SCAN_TASK = "scan";
449
450  /**
451   * @since 3.6
452   */
453  String PROFILING_LOG_PROPERTY = "sonar.showProfiling";
454
455  /**
456   * @deprecated replaced in v3.4 by properties specific to languages, for example sonar.java.coveragePlugin
457   * See http://jira.codehaus.org/browse/SONARJAVA-39 for more details.
458   */
459  @Deprecated
460  String CORE_COVERAGE_PLUGIN_PROPERTY = "sonar.core.codeCoveragePlugin";
461
462  /**
463   * @since 3.7
464   * @deprecated in 4.0 replaced by {@link CoreProperties#PREVIEW_READ_TIMEOUT_SEC}
465   */
466  @Deprecated
467  String DRY_RUN_READ_TIMEOUT_SEC = "sonar.dryRun.readTimeout";
468
469  /**
470   * @since 4.0
471   */
472  String PREVIEW_READ_TIMEOUT_SEC = "sonar.preview.readTimeout";
473
474  /**
475   * @since 4.0
476   */
477  String CORE_PREVENT_AUTOMATIC_PROJECT_CREATION = "sonar.preventAutoProjectCreation";
478
479  /**
480   * @since 4.0
481   */
482  String ANALYSIS_MODE = "sonar.analysis.mode";
483
484  /**
485   * @since 4.0
486   */
487  String ANALYSIS_MODE_ANALYSIS = "analysis";
488
489  /**
490   * @since 4.0
491   */
492  String ANALYSIS_MODE_PREVIEW = "preview";
493
494  /**
495   * @since 4.0
496   */
497  String ANALYSIS_MODE_INCREMENTAL = "incremental";
498
499  /**
500   * @since 4.0
501   */
502  String PREVIEW_INCLUDE_PLUGINS = "sonar.preview.includePlugins";
503  String PREVIEW_INCLUDE_PLUGINS_DEFAULT_VALUE = "";
504
505  /**
506   * @since 4.0
507   */
508  String PREVIEW_EXCLUDE_PLUGINS = "sonar.preview.excludePlugins";
509  String PREVIEW_EXCLUDE_PLUGINS_DEFAULT_VALUE = "buildstability,devcockpit,pdfreport,report,scmactivity,views,jira,buildbreaker";
510
511  /**
512   * @since 4.0
513   */
514  String WORKING_DIRECTORY = "sonar.working.directory";
515  String WORKING_DIRECTORY_DEFAULT_VALUE = ".sonar";
516
517  String BATCH_INCLUDE_PLUGINS = "sonar.includePlugins";
518  String BATCH_EXCLUDE_PLUGINS = "sonar.excludePlugins";
519
520  /**
521   * @since 3.4
522   * @deprecated in 4.0 replaced by {@link CoreProperties#PREVIEW_INCLUDE_PLUGINS}
523   */
524  @Deprecated
525  String DRY_RUN_INCLUDE_PLUGINS = "sonar.dryRun.includePlugins";
526  /**
527   * @since 3.4
528   * @deprecated in 4.0 replaced by {@link CoreProperties#PREVIEW_INCLUDE_PLUGINS_DEFAULT_VALUE}
529   */
530  @Deprecated
531  String DRY_RUN_INCLUDE_PLUGINS_DEFAULT_VALUE = PREVIEW_INCLUDE_PLUGINS_DEFAULT_VALUE;
532
533  /**
534   * @since 3.4
535   * @deprecated in 4.0 replaced by {@link CoreProperties#PREVIEW_EXCLUDE_PLUGINS}
536   */
537  @Deprecated
538  String DRY_RUN_EXCLUDE_PLUGINS = "sonar.dryRun.excludePlugins";
539  /**
540   * @since 3.4
541   * @deprecated in 4.0 replaced by {@link CoreProperties#PREVIEW_EXCLUDE_PLUGINS_DEFAULT_VALUE}
542   */
543  @Deprecated
544  String DRY_RUN_EXCLUDE_PLUGINS_DEFAULT_VALUE = PREVIEW_EXCLUDE_PLUGINS_DEFAULT_VALUE;
545
546  /**
547   * @since 4.2
548   */
549  String CORE_AUTHENTICATOR_LOCAL_USERS = "sonar.security.localUsers";
550
551  /**
552   * @since 4.0
553   */
554  String HOURS_IN_DAY = "sonar.technicalDebt.hoursInDay";
555}