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 */
020 package 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 */
028 public 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 }