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