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    }