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     */
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       * @see #SUBCATEGORY_DUPLICATIONS
067       * @since 2.11
068       * @deprecated since 4.0. See http://jira.codehaus.org/browse/SONAR-4660. Do not forget to remove the properties from core bundles
069       */
070      @Deprecated
071      String CATEGORY_DUPLICATIONS = "duplications";
072    
073      /**
074       * @since 2.11
075       */
076      String CATEGORY_SECURITY = "security";
077    
078      /**
079       * @see #SUBCATEGORY_L10N
080       * @since 2.11
081       * @deprecated since 4.0. See http://jira.codehaus.org/browse/SONAR-4660. Do not forget to remove the properties from core bundles
082       */
083      @Deprecated
084      String CATEGORY_L10N = "localization";
085    
086      /**
087       * @since 2.11
088       */
089      String CATEGORY_JAVA = "java";
090    
091      /**
092       * @see #SUBCATEGORY_DIFFERENTIAL_VIEWS
093       * @since 2.11
094       * @deprecated since 4.0. See http://jira.codehaus.org/browse/SONAR-4660. Do not forget to remove the properties from core bundles
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      /**
162       * @deprecated since 4.2 project are now multi-language
163       */
164      @Deprecated
165      String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
166    
167      /**
168       * @deprecated since 4.3. See http://jira.codehaus.org/browse/SONAR-5185
169       */
170      @Deprecated
171      String DYNAMIC_ANALYSIS_PROPERTY = "sonar.dynamicAnalysis";
172    
173      /* Exclusions */
174      String PROJECT_INCLUSIONS_PROPERTY = "sonar.inclusions";
175      String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
176    
177      /**
178       * @since 3.3
179       */
180      String PROJECT_TEST_INCLUSIONS_PROPERTY = "sonar.test.inclusions";
181      String PROJECT_TEST_EXCLUSIONS_PROPERTY = "sonar.test.exclusions";
182      String GLOBAL_EXCLUSIONS_PROPERTY = "sonar.global.exclusions";
183      String GLOBAL_TEST_EXCLUSIONS_PROPERTY = "sonar.global.test.exclusions";
184      /**
185       * @deprecated since 4.2. See http://jira.codehaus.org/browse/SONAR-5058
186       */
187      @Deprecated
188      String GLOBAL_TEST_EXCLUSIONS_DEFAULT = "";
189    
190      /**
191       * @deprecated since 2.5. See discussion from http://jira.codehaus.org/browse/SONAR-1873
192       */
193      @Deprecated
194      String REUSE_RULES_CONFIGURATION_PROPERTY = "sonar.reuseExistingRulesConfiguration";
195    
196      /* Sonar Core */
197    
198      /**
199       * @deprecated since 4.1. See http://jira.codehaus.org/browse/SONAR-4875
200       */
201      @Deprecated
202      String CORE_VIOLATION_LOCALE_PROPERTY = "sonar.violationLocale";
203    
204      String CORE_VIOLATION_LOCALE_DEFAULT_VALUE = "en";
205      String CORE_IMPORT_SOURCES_PROPERTY = "sonar.importSources";
206      boolean CORE_IMPORT_SOURCES_DEFAULT_VALUE = true;
207    
208      /**
209       * @deprecated since 4.3. See http://jira.codehaus.org/browse/SONAR-5109
210       */
211      @Deprecated
212      String CORE_SKIPPED_MODULES_PROPERTY = "sonar.skippedModules";
213    
214      String CORE_RULE_WEIGHTS_PROPERTY = "sonar.core.rule.weight";
215      String CORE_RULE_WEIGHTS_DEFAULT_VALUE = "INFO=0;MINOR=1;MAJOR=3;CRITICAL=5;BLOCKER=10";
216    
217      /**
218       * @since 4.0
219       * @deprecated since 4.3. See http://jira.codehaus.org/browse/SONAR-5109
220       */
221      @Deprecated
222      String CORE_INCLUDED_MODULES_PROPERTY = "sonar.includedModules";
223    
224      /**
225       * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
226       */
227      @Deprecated
228      String CORE_TENDENCY_DEPTH_PROPERTY = "tendency.depth";
229    
230      /**
231       * @deprecated since 2.5. See http://jira.codehaus.org/browse/SONAR-4145
232       */
233      @Deprecated
234      int CORE_TENDENCY_DEPTH_DEFAULT_VALUE = 30;
235    
236      String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
237      boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
238      String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
239      String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
240      String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
241      boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
242    
243      /**
244       * @deprecated since 2.14. See http://jira.codehaus.org/browse/SONAR-3153. Replaced by {@link #CORE_AUTHENTICATOR_REALM}.
245       */
246      @Deprecated
247      String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
248    
249      /**
250       * @since 2.14
251       */
252      String CORE_AUTHENTICATOR_REALM = "sonar.security.realm";
253    
254      String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
255      String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
256    
257      /**
258       * @since 3.6
259       */
260      String CORE_AUTHENTICATOR_UPDATE_USER_ATTRIBUTES = "sonar.security.updateUserAttributes";
261    
262      String SERVER_VERSION = "sonar.core.version";
263      String SERVER_ID = "sonar.core.id";
264    
265      // format is yyyy-MM-dd'T'HH:mm:ssZ
266      String SERVER_STARTTIME = "sonar.core.startTime";
267    
268      /**
269       * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
270       */
271      @Deprecated
272      String SKIP_TENDENCIES_PROPERTY = "sonar.skipTendencies";
273    
274      /**
275       * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
276       */
277      @Deprecated
278      boolean SKIP_TENDENCIES_DEFAULT_VALUE = false;
279    
280      /**
281       * @since 2.10
282       */
283      String SERVER_BASE_URL = "sonar.core.serverBaseURL";
284    
285      /**
286       * @see #SERVER_BASE_URL
287       * @since 2.10
288       */
289      String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
290    
291      /* CPD */
292      String CPD_PLUGIN = "cpd";
293    
294      /**
295       * @deprecated in 3.1
296       */
297      @Deprecated
298      String CPD_MINIMUM_TOKENS_PROPERTY = "sonar.cpd.minimumTokens";
299    
300      /**
301       * @deprecated in 3.1
302       */
303      @Deprecated
304      int CPD_MINIMUM_TOKENS_DEFAULT_VALUE = 100;
305    
306      /**
307       * @deprecated in 3.1
308       */
309      @Deprecated
310      String CPD_IGNORE_LITERALS_PROPERTY = "sonar.cpd.ignore_literals";
311    
312      /**
313       * @deprecated in 3.1
314       */
315      @Deprecated
316      String CPD_IGNORE_LITERALS_DEFAULT_VALUE = "true";
317    
318      /**
319       * @deprecated in 3.1
320       */
321      @Deprecated
322      String CPD_IGNORE_IDENTIFIERS_PROPERTY = "sonar.cpd.ignore_identifiers";
323    
324      /**
325       * @deprecated in 3.1
326       */
327      @Deprecated
328      String CPD_IGNORE_IDENTIFIERS_DEFAULT_VALUE = "false";
329    
330      String CPD_SKIP_PROPERTY = "sonar.cpd.skip";
331    
332      /**
333       * @since 2.11
334       * @deprecated in 3.1
335       */
336      @Deprecated
337      String CPD_ENGINE = "sonar.cpd.engine";
338    
339      /**
340       * @see #CPD_ENGINE
341       * @since 2.11
342       * @deprecated in 3.1
343       */
344      @Deprecated
345      String CPD_ENGINE_DEFAULT_VALUE = "sonar";
346    
347      /**
348       * @since 2.11
349       */
350      String CPD_CROSS_RPOJECT = "sonar.cpd.cross_project";
351    
352      /**
353       * @see #CPD_CROSS_RPOJECT
354       * @since 2.11
355       */
356      boolean CPD_CROSS_RPOJECT_DEFAULT_VALUE = false;
357    
358      /**
359       * @since 3.5
360       */
361      String CPD_EXCLUSIONS = "sonar.cpd.exclusions";
362    
363      /* Design */
364    
365      /**
366       * Indicates whether Java bytecode analysis should be skipped.
367       *
368       * @since 2.0
369       */
370      String DESIGN_SKIP_DESIGN_PROPERTY = "sonar.skipDesign";
371      boolean DESIGN_SKIP_DESIGN_DEFAULT_VALUE = false;
372    
373      /**
374       * Indicates whether Package Design Analysis should be skipped.
375       *
376       * @since 2.9
377       */
378      String DESIGN_SKIP_PACKAGE_DESIGN_PROPERTY = "sonar.skipPackageDesign";
379      boolean DESIGN_SKIP_PACKAGE_DESIGN_DEFAULT_VALUE = false;
380    
381      /* Google Analytics */
382      String GOOGLE_ANALYTICS_PLUGIN = "google-analytics";
383      String GOOGLE_ANALYTICS_ACCOUNT_PROPERTY = "sonar.google-analytics.account";
384    
385      /* Time machine periods */
386      String TIMEMACHINE_PERIOD_PREFIX = "sonar.timemachine.period";
387      String TIMEMACHINE_MODE_PREVIOUS_ANALYSIS = "previous_analysis";
388      String TIMEMACHINE_MODE_DATE = "date";
389      String TIMEMACHINE_MODE_VERSION = "version";
390      String TIMEMACHINE_MODE_DAYS = "days";
391      String TIMEMACHINE_MODE_PREVIOUS_VERSION = "previous_version";
392      String TIMEMACHINE_DEFAULT_PERIOD_1 = TIMEMACHINE_MODE_PREVIOUS_ANALYSIS;
393      String TIMEMACHINE_DEFAULT_PERIOD_2 = "30";
394      String TIMEMACHINE_DEFAULT_PERIOD_3 = TIMEMACHINE_MODE_PREVIOUS_VERSION;
395      String TIMEMACHINE_DEFAULT_PERIOD_4 = "";
396      String TIMEMACHINE_DEFAULT_PERIOD_5 = "";
397    
398      /**
399       * @since 2.11
400       */
401      String ORGANISATION = "sonar.organisation";
402    
403      /**
404       * @since 2.11
405       */
406      String PERMANENT_SERVER_ID = "sonar.server_id";
407    
408      /**
409       * @since 2.11
410       */
411      String SERVER_ID_IP_ADDRESS = "sonar.server_id.ip_address";
412    
413      /**
414       * @since 3.3
415       */
416      String LINKS_HOME_PAGE = "sonar.links.homepage";
417    
418      /**
419       * @since 3.3
420       */
421      String LINKS_CI = "sonar.links.ci";
422    
423      /**
424       * @since 3.3
425       */
426      String LINKS_ISSUE_TRACKER = "sonar.links.issue";
427    
428      /**
429       * @since 3.3
430       */
431      String LINKS_SOURCES = "sonar.links.scm";
432    
433      /**
434       * @since 3.3
435       */
436      String LINKS_SOURCES_DEV = "sonar.links.scm_dev";
437    
438      /**
439       * @since 3.4
440       */
441      String LOGIN = "sonar.login";
442    
443      /**
444       * @since 3.4
445       */
446      String PASSWORD = "sonar.password";
447    
448      /**
449       * @since 3.4
450       */
451      String DRY_RUN = "sonar.dryRun";
452    
453      /**
454       * @since 3.5
455       */
456      String TASK = "sonar.task";
457    
458      /**
459       * @since 3.6
460       */
461      String SCAN_TASK = "scan";
462    
463      /**
464       * @since 3.6
465       */
466      String PROFILING_LOG_PROPERTY = "sonar.showProfiling";
467    
468      /**
469       * @deprecated replaced in v3.4 by properties specific to languages, for example sonar.java.coveragePlugin
470       * See http://jira.codehaus.org/browse/SONARJAVA-39 for more details.
471       */
472      @Deprecated
473      String CORE_COVERAGE_PLUGIN_PROPERTY = "sonar.core.codeCoveragePlugin";
474    
475      /**
476       * @since 3.7
477       * @deprecated in 4.0 replaced by {@link CoreProperties#PREVIEW_READ_TIMEOUT_SEC}
478       */
479      @Deprecated
480      String DRY_RUN_READ_TIMEOUT_SEC = "sonar.dryRun.readTimeout";
481    
482      /**
483       * @since 4.0
484       */
485      String PREVIEW_READ_TIMEOUT_SEC = "sonar.preview.readTimeout";
486    
487      /**
488       * @since 4.0
489       */
490      String CORE_PREVENT_AUTOMATIC_PROJECT_CREATION = "sonar.preventAutoProjectCreation";
491    
492      /**
493       * @since 4.0
494       */
495      String ANALYSIS_MODE = "sonar.analysis.mode";
496    
497      /**
498       * @since 4.0
499       */
500      String ANALYSIS_MODE_ANALYSIS = "analysis";
501    
502      /**
503       * @since 4.0
504       */
505      String ANALYSIS_MODE_PREVIEW = "preview";
506    
507      /**
508       * @since 4.0
509       */
510      String ANALYSIS_MODE_INCREMENTAL = "incremental";
511    
512      /**
513       * @since 4.4
514       */
515      String ANALYSIS_MODE_SENSOR = "sensor";
516    
517      /**
518       * @since 4.0
519       */
520      String PREVIEW_INCLUDE_PLUGINS = "sonar.preview.includePlugins";
521      String PREVIEW_INCLUDE_PLUGINS_DEFAULT_VALUE = "";
522    
523      /**
524       * @since 4.0
525       */
526      String PREVIEW_EXCLUDE_PLUGINS = "sonar.preview.excludePlugins";
527      String PREVIEW_EXCLUDE_PLUGINS_DEFAULT_VALUE = "buildstability,devcockpit,pdfreport,report,scmactivity,views,jira,buildbreaker";
528    
529      /**
530       * @since 4.0
531       */
532      String WORKING_DIRECTORY = "sonar.working.directory";
533      String WORKING_DIRECTORY_DEFAULT_VALUE = ".sonar";
534    
535      String BATCH_INCLUDE_PLUGINS = "sonar.includePlugins";
536      String BATCH_EXCLUDE_PLUGINS = "sonar.excludePlugins";
537    
538      /**
539       * @since 3.4
540       * @deprecated in 4.0 replaced by {@link CoreProperties#PREVIEW_INCLUDE_PLUGINS}
541       */
542      @Deprecated
543      String DRY_RUN_INCLUDE_PLUGINS = "sonar.dryRun.includePlugins";
544      /**
545       * @since 3.4
546       * @deprecated in 4.0 replaced by {@link CoreProperties#PREVIEW_INCLUDE_PLUGINS_DEFAULT_VALUE}
547       */
548      @Deprecated
549      String DRY_RUN_INCLUDE_PLUGINS_DEFAULT_VALUE = PREVIEW_INCLUDE_PLUGINS_DEFAULT_VALUE;
550    
551      /**
552       * @since 3.4
553       * @deprecated in 4.0 replaced by {@link CoreProperties#PREVIEW_EXCLUDE_PLUGINS}
554       */
555      @Deprecated
556      String DRY_RUN_EXCLUDE_PLUGINS = "sonar.dryRun.excludePlugins";
557      /**
558       * @since 3.4
559       * @deprecated in 4.0 replaced by {@link CoreProperties#PREVIEW_EXCLUDE_PLUGINS_DEFAULT_VALUE}
560       */
561      @Deprecated
562      String DRY_RUN_EXCLUDE_PLUGINS_DEFAULT_VALUE = PREVIEW_EXCLUDE_PLUGINS_DEFAULT_VALUE;
563    
564      /**
565       * @since 4.2
566       */
567      String CORE_AUTHENTICATOR_LOCAL_USERS = "sonar.security.localUsers";
568    
569      /**
570       * @since 4.0
571       */
572      String HOURS_IN_DAY = "sonar.technicalDebt.hoursInDay";
573    }