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