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