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