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 2.11
042       */
043      String CATEGORY_CODE_COVERAGE = "codeCoverage";
044    
045      /**
046       * @since 2.11
047       */
048      String CATEGORY_DUPLICATIONS = "duplications";
049    
050      /**
051       * @since 2.11
052       */
053      String CATEGORY_SECURITY = "security";
054    
055      /**
056       * @since 2.11
057       */
058      String CATEGORY_L10N = "localization";
059    
060      /**
061       * @since 2.11
062       */
063      String CATEGORY_JAVA = "java";
064    
065      /**
066       * @since 2.11
067       */
068      String CATEGORY_DIFFERENTIAL_VIEWS = "differentialViews";
069    
070      /**
071       * @since 3.3
072       */
073      String CATEGORY_EXCLUSIONS = "exclusions";
074    
075      /**
076       * @since 3.7
077       */
078      String CATEGORY_LICENSES = "licenses";
079    
080      /* Global settings */
081      String SONAR_HOME = "SONAR_HOME";
082      String PROJECT_BRANCH_PROPERTY = "sonar.branch";
083      String PROJECT_VERSION_PROPERTY = "sonar.projectVersion";
084    
085      /**
086       * @since 2.6
087       */
088      String PROJECT_KEY_PROPERTY = "sonar.projectKey";
089    
090      /**
091       * @since 2.6
092       */
093      String PROJECT_NAME_PROPERTY = "sonar.projectName";
094    
095      /**
096       * @since 2.6
097       */
098      String PROJECT_DESCRIPTION_PROPERTY = "sonar.projectDescription";
099    
100      /**
101       * To determine value of this property use {@link org.sonar.api.resources.ProjectFileSystem#getSourceCharset()}.
102       *
103       * @since 2.6
104       */
105      String ENCODING_PROPERTY = "sonar.sourceEncoding";
106    
107      /**
108       * Value format is yyyy-MM-dd
109       */
110      String PROJECT_DATE_PROPERTY = "sonar.projectDate";
111    
112      String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
113      String DYNAMIC_ANALYSIS_PROPERTY = "sonar.dynamicAnalysis";
114    
115      /* Exclusions */
116      String PROJECT_INCLUSIONS_PROPERTY = "sonar.inclusions";
117      String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
118    
119      /**
120       * @since 3.3
121       */
122      String PROJECT_TEST_INCLUSIONS_PROPERTY = "sonar.test.inclusions";
123      String PROJECT_TEST_EXCLUSIONS_PROPERTY = "sonar.test.exclusions";
124      String GLOBAL_EXCLUSIONS_PROPERTY = "sonar.global.exclusions";
125      String GLOBAL_TEST_EXCLUSIONS_PROPERTY = "sonar.global.test.exclusions";
126      String GLOBAL_TEST_EXCLUSIONS_DEFAULT = "**/package-info.java";
127    
128      /**
129       * @deprecated since 2.5. See discussion from http://jira.codehaus.org/browse/SONAR-1873
130       */
131      @Deprecated
132      String REUSE_RULES_CONFIGURATION_PROPERTY = "sonar.reuseExistingRulesConfiguration";
133    
134      /* Sonar Core */
135      String CORE_VIOLATION_LOCALE_PROPERTY = "sonar.violationLocale";
136      String CORE_VIOLATION_LOCALE_DEFAULT_VALUE = "en";
137      String CORE_IMPORT_SOURCES_PROPERTY = "sonar.importSources";
138      boolean CORE_IMPORT_SOURCES_DEFAULT_VALUE = true;
139      String CORE_SKIPPED_MODULES_PROPERTY = "sonar.skippedModules";
140      String CORE_RULE_WEIGHTS_PROPERTY = "sonar.core.rule.weight";
141      String CORE_RULE_WEIGHTS_DEFAULT_VALUE = "INFO=0;MINOR=1;MAJOR=3;CRITICAL=5;BLOCKER=10";
142    
143      /**
144       * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
145       */
146      @Deprecated
147      String CORE_TENDENCY_DEPTH_PROPERTY = "tendency.depth";
148    
149      /**
150       * @deprecated since 2.5. See http://jira.codehaus.org/browse/SONAR-4145
151       */
152      @Deprecated
153      int CORE_TENDENCY_DEPTH_DEFAULT_VALUE = 30;
154    
155      String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
156      boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
157      String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
158      String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
159      String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
160      boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
161    
162      /**
163       * @deprecated since 2.14. See http://jira.codehaus.org/browse/SONAR-3153. Replaced by {@link #CORE_AUTHENTICATOR_REALM}.
164       */
165      @Deprecated
166      String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
167    
168      /**
169       * @since 2.14
170       */
171      String CORE_AUTHENTICATOR_REALM = "sonar.security.realm";
172    
173      String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
174      String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
175    
176      /**
177       * @since 3.6
178       */
179      String CORE_AUTHENTICATOR_UPDATE_USER_ATTRIBUTES = "sonar.security.updateUserAttributes";
180    
181      String SERVER_VERSION = "sonar.core.version";
182      String SERVER_ID = "sonar.core.id";
183    
184      // format is yyyy-MM-dd'T'HH:mm:ssZ
185      String SERVER_STARTTIME = "sonar.core.startTime";
186    
187      /**
188       * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
189       */
190      @Deprecated
191      String SKIP_TENDENCIES_PROPERTY = "sonar.skipTendencies";
192    
193      /**
194       * @deprecated since 3.6. See http://jira.codehaus.org/browse/SONAR-4145
195       */
196      @Deprecated
197      boolean SKIP_TENDENCIES_DEFAULT_VALUE = false;
198    
199      String BATCH_INCLUDE_PLUGINS = "sonar.includePlugins";
200      String BATCH_EXCLUDE_PLUGINS = "sonar.excludePlugins";
201    
202      /**
203       * @since 3.4
204       */
205      String DRY_RUN_INCLUDE_PLUGINS = "sonar.dryRun.includePlugins";
206      String DRY_RUN_INCLUDE_PLUGINS_DEFAULT_VALUE = "";
207    
208      /**
209       * @since 3.4
210       */
211      String DRY_RUN_EXCLUDE_PLUGINS = "sonar.dryRun.excludePlugins";
212      String DRY_RUN_EXCLUDE_PLUGINS_DEFAULT_VALUE = "devcockpit,pdfreport,report,scmactivity,views,jira";
213    
214      /**
215       * @since 2.10
216       */
217      String SERVER_BASE_URL = "sonar.core.serverBaseURL";
218    
219      /**
220       * @see #SERVER_BASE_URL
221       * @since 2.10
222       */
223      String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
224    
225      /* CPD */
226      String CPD_PLUGIN = "cpd";
227    
228      /**
229       * @deprecated in 3.1
230       */
231      @Deprecated
232      String CPD_MINIMUM_TOKENS_PROPERTY = "sonar.cpd.minimumTokens";
233    
234      /**
235       * @deprecated in 3.1
236       */
237      @Deprecated
238      int CPD_MINIMUM_TOKENS_DEFAULT_VALUE = 100;
239    
240      /**
241       * @deprecated in 3.1
242       */
243      @Deprecated
244      String CPD_IGNORE_LITERALS_PROPERTY = "sonar.cpd.ignore_literals";
245    
246      /**
247       * @deprecated in 3.1
248       */
249      @Deprecated
250      String CPD_IGNORE_LITERALS_DEFAULT_VALUE = "true";
251    
252      /**
253       * @deprecated in 3.1
254       */
255      @Deprecated
256      String CPD_IGNORE_IDENTIFIERS_PROPERTY = "sonar.cpd.ignore_identifiers";
257    
258      /**
259       * @deprecated in 3.1
260       */
261      @Deprecated
262      String CPD_IGNORE_IDENTIFIERS_DEFAULT_VALUE = "false";
263    
264      String CPD_SKIP_PROPERTY = "sonar.cpd.skip";
265    
266      /**
267       * @since 2.11
268       * @deprecated in 3.1
269       */
270      @Deprecated
271      String CPD_ENGINE = "sonar.cpd.engine";
272    
273      /**
274       * @see #CPD_ENGINE
275       * @since 2.11
276       * @deprecated in 3.1
277       */
278      @Deprecated
279      String CPD_ENGINE_DEFAULT_VALUE = "sonar";
280    
281      /**
282       * @since 2.11
283       */
284      String CPD_CROSS_RPOJECT = "sonar.cpd.cross_project";
285    
286      /**
287       * @see #CPD_CROSS_RPOJECT
288       * @since 2.11
289       */
290      boolean CPD_CROSS_RPOJECT_DEFAULT_VALUE = false;
291    
292      /**
293       * @since 3.5
294       */
295      String CPD_EXCLUSIONS = "sonar.cpd.exclusions";
296    
297      /* Design */
298    
299      /**
300       * Indicates whether Java bytecode analysis should be skipped.
301       *
302       * @since 2.0
303       */
304      String DESIGN_SKIP_DESIGN_PROPERTY = "sonar.skipDesign";
305      boolean DESIGN_SKIP_DESIGN_DEFAULT_VALUE = false;
306    
307      /**
308       * Indicates whether Package Design Analysis should be skipped.
309       *
310       * @since 2.9
311       */
312      String DESIGN_SKIP_PACKAGE_DESIGN_PROPERTY = "sonar.skipPackageDesign";
313      boolean DESIGN_SKIP_PACKAGE_DESIGN_DEFAULT_VALUE = false;
314    
315      /* Google Analytics */
316      String GOOGLE_ANALYTICS_PLUGIN = "google-analytics";
317      String GOOGLE_ANALYTICS_ACCOUNT_PROPERTY = "sonar.google-analytics.account";
318    
319      /* Time machine periods */
320      String TIMEMACHINE_PERIOD_PREFIX = "sonar.timemachine.period";
321      String TIMEMACHINE_MODE_PREVIOUS_ANALYSIS = "previous_analysis";
322      String TIMEMACHINE_MODE_DATE = "date";
323      String TIMEMACHINE_MODE_VERSION = "version";
324      String TIMEMACHINE_MODE_DAYS = "days";
325      String TIMEMACHINE_MODE_PREVIOUS_VERSION = "previous_version";
326      String TIMEMACHINE_DEFAULT_PERIOD_1 = TIMEMACHINE_MODE_PREVIOUS_ANALYSIS;
327      String TIMEMACHINE_DEFAULT_PERIOD_2 = "30";
328      String TIMEMACHINE_DEFAULT_PERIOD_3 = TIMEMACHINE_MODE_PREVIOUS_VERSION;
329      String TIMEMACHINE_DEFAULT_PERIOD_4 = "";
330      String TIMEMACHINE_DEFAULT_PERIOD_5 = "";
331    
332      /**
333       * @since 2.11
334       */
335      String ORGANISATION = "sonar.organisation";
336    
337      /**
338       * @since 2.11
339       */
340      String PERMANENT_SERVER_ID = "sonar.server_id";
341    
342      /**
343       * @since 2.11
344       */
345      String SERVER_ID_IP_ADDRESS = "sonar.server_id.ip_address";
346    
347      /**
348       * @since 3.3
349       */
350      String LINKS_HOME_PAGE = "sonar.links.homepage";
351    
352      /**
353       * @since 3.3
354       */
355      String LINKS_CI = "sonar.links.ci";
356    
357      /**
358       * @since 3.3
359       */
360      String LINKS_ISSUE_TRACKER = "sonar.links.issue";
361    
362      /**
363       * @since 3.3
364       */
365      String LINKS_SOURCES = "sonar.links.scm";
366    
367      /**
368       * @since 3.3
369       */
370      String LINKS_SOURCES_DEV = "sonar.links.scm_dev";
371    
372      /**
373       * @since 3.4
374       */
375      String LOGIN = "sonar.login";
376    
377      /**
378       * @since 3.4
379       */
380      String PASSWORD = "sonar.password";
381    
382      /**
383       * @since 3.4
384       */
385      String DRY_RUN = "sonar.dryRun";
386    
387      /**
388       * @since 3.5
389       */
390      String TASK = "sonar.task";
391    
392      /**
393       * @since 3.6
394       */
395      String SCAN_TASK = "scan";
396    
397      /**
398       * @since 3.6
399       */
400      String PROFILING_LOG_PROPERTY = "sonar.showProfiling";
401    
402      /**
403       * @deprecated replaced in v3.4 by properties specific to languages, for example sonar.java.coveragePlugin
404       *             See http://jira.codehaus.org/browse/SONARJAVA-39 for more details.
405       */
406      @Deprecated
407      String CORE_COVERAGE_PLUGIN_PROPERTY = "sonar.core.codeCoveragePlugin";
408    
409      /**
410       * @since 3.7
411       */
412      String DRY_RUN_READ_TIMEOUT_SEC = "sonar.dryRun.readTimeout";
413    }