001    /*
002     * Sonar, open source software quality management tool.
003     * Copyright (C) 2008-2012 SonarSource
004     * mailto:contact AT sonarsource DOT com
005     *
006     * Sonar 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     * Sonar 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
017     * License along with Sonar; if not, write to the Free Software
018     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
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      /**
037       * @since 2.11
038       */
039      String CATEGORY_GENERAL = "general";
040    
041      /**
042       * @since 2.11
043       */
044      String CATEGORY_CODE_COVERAGE = "codeCoverage";
045    
046      /**
047       * @since 2.11
048       */
049      String CATEGORY_DUPLICATIONS = "duplications";
050    
051      /**
052       * @since 2.11
053       */
054      String CATEGORY_SECURITY = "security";
055    
056      /**
057       * @since 2.11
058       */
059      String CATEGORY_L10N = "localization";
060    
061      /**
062       * @since 2.11
063       */
064      String CATEGORY_JAVA = "java";
065    
066      /**
067       * @since 2.11
068       */
069      String CATEGORY_DIFFERENTIAL_VIEWS = "differentialViews";
070    
071    
072      /* Global settings */
073      String SONAR_HOME = "SONAR_HOME";
074      String PROJECT_BRANCH_PROPERTY = "sonar.branch";
075      String PROJECT_VERSION_PROPERTY = "sonar.projectVersion";
076    
077      /**
078       * @since 2.6
079       */
080      String PROJECT_KEY_PROPERTY = "sonar.projectKey";
081    
082      /**
083       * @since 2.6
084       */
085      String PROJECT_NAME_PROPERTY = "sonar.projectName";
086    
087      /**
088       * @since 2.6
089       */
090      String PROJECT_DESCRIPTION_PROPERTY = "sonar.projectDescription";
091    
092      /**
093       * To determine value of this property use {@link org.sonar.api.resources.ProjectFileSystem#getSourceCharset()}.
094       *
095       * @since 2.6
096       */
097      String ENCODING_PROPERTY = "sonar.sourceEncoding";
098    
099      /**
100       * Value format is yyyy-MM-dd
101       */
102      String PROJECT_DATE_PROPERTY = "sonar.projectDate";
103      String PROJECT_LANGUAGE_PROPERTY = "sonar.language";
104      String DYNAMIC_ANALYSIS_PROPERTY = "sonar.dynamicAnalysis";
105      String PROJECT_EXCLUSIONS_PROPERTY = "sonar.exclusions";
106    
107      /**
108       * @deprecated since 2.5. See discussion from http://jira.codehaus.org/browse/SONAR-1873
109       */
110      @Deprecated
111      String REUSE_RULES_CONFIGURATION_PROPERTY = "sonar.reuseExistingRulesConfiguration";
112    
113      /* Checkstyle */
114      String CHECKSTYLE_PLUGIN = "checkstyle";
115    
116      /* Cobertura */
117      String COBERTURA_PLUGIN = "cobertura";
118      String COBERTURA_REPORT_PATH_PROPERTY = "sonar.cobertura.reportPath";
119      String COBERTURA_MAXMEM_PROPERTY = "sonar.cobertura.maxmem";
120      String COBERTURA_MAXMEM_DEFAULT_VALUE = "64m";
121    
122      /* Sonar Core */
123      String CORE_PLUGIN = "core";
124      String CORE_VIOLATION_LOCALE_PROPERTY = "sonar.violationLocale";
125      String CORE_VIOLATION_LOCALE_DEFAULT_VALUE = "en";
126      String CORE_COVERAGE_PLUGIN_PROPERTY = "sonar.core.codeCoveragePlugin";
127      String CORE_IMPORT_SOURCES_PROPERTY = "sonar.importSources";
128      boolean CORE_IMPORT_SOURCES_DEFAULT_VALUE = true;
129      String CORE_SKIPPED_MODULES_PROPERTY = "sonar.skippedModules";
130      String CORE_RULE_WEIGHTS_PROPERTY = "sonar.core.rule.weight";
131      String CORE_RULE_WEIGHTS_DEFAULT_VALUE = "INFO=0;MINOR=1;MAJOR=3;CRITICAL=5;BLOCKER=10";
132      String CORE_TENDENCY_DEPTH_PROPERTY = "tendency.depth";
133      int CORE_TENDENCY_DEPTH_DEFAULT_VALUE = 30;
134      String CORE_FORCE_AUTHENTICATION_PROPERTY = "sonar.forceAuthentication";
135      boolean CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE = false;
136      String CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY = "sonar.allowUsersToSignUp";
137      String CORE_DEFAULT_GROUP = "sonar.defaultGroup";
138      String CORE_DEFAULT_GROUP_DEFAULT_VALUE = "sonar-users";
139      boolean CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE = false;
140      String CORE_AUTHENTICATOR_CLASS = "sonar.authenticator.class";
141      String CORE_AUTHENTICATOR_IGNORE_STARTUP_FAILURE = "sonar.authenticator.ignoreStartupFailure";
142      String CORE_AUTHENTICATOR_CREATE_USERS = "sonar.authenticator.createUsers";
143      String SERVER_VERSION = "sonar.core.version";
144      String SERVER_ID = "sonar.core.id";
145      String SERVER_STARTTIME = "sonar.core.startTime"; // format is yyyy-MM-dd'T'HH:mm:ssZ
146      String SKIP_TENDENCIES_PROPERTY = "sonar.skipTendencies";
147      boolean SKIP_TENDENCIES_DEFAULT_VALUE = false;
148      String BATCH_INCLUDE_PLUGINS = "sonar.includePlugins";
149      String BATCH_EXCLUDE_PLUGINS = "sonar.excludePlugins";
150    
151      /**
152       * @since 2.10
153       */
154      String SERVER_BASE_URL = "sonar.core.serverBaseURL";
155    
156      /**
157       * @see #SERVER_BASE_URL
158       * @since 2.10
159       */
160      String SERVER_BASE_URL_DEFAULT_VALUE = "http://localhost:9000";
161    
162      /* CPD */
163      String CPD_PLUGIN = "cpd";
164    
165      /**
166       * @deprecated in 3.1
167       */
168      @Deprecated
169      String CPD_MINIMUM_TOKENS_PROPERTY = "sonar.cpd.minimumTokens";
170    
171      /**
172       * @deprecated in 3.1
173       */
174      @Deprecated
175      int CPD_MINIMUM_TOKENS_DEFAULT_VALUE = 100;
176    
177      /**
178       * @deprecated in 3.1
179       */
180      @Deprecated
181      String CPD_IGNORE_LITERALS_PROPERTY = "sonar.cpd.ignore_literals";
182    
183      /**
184       * @deprecated in 3.1
185       */
186      @Deprecated
187      String CPD_IGNORE_LITERALS_DEFAULT_VALUE = "true";
188    
189      /**
190       * @deprecated in 3.1
191       */
192      @Deprecated
193      String CPD_IGNORE_IDENTIFIERS_PROPERTY = "sonar.cpd.ignore_identifiers";
194    
195      /**
196       * @deprecated in 3.1
197       */
198      @Deprecated
199      String CPD_IGNORE_IDENTIFIERS_DEFAULT_VALUE = "false";
200    
201      String CPD_SKIP_PROPERTY = "sonar.cpd.skip";
202    
203      /**
204       * @since 2.11
205       * @deprecated in 3.1
206       */
207      @Deprecated
208      String CPD_ENGINE = "sonar.cpd.engine";
209    
210      /**
211       * @see #CPD_ENGINE
212       * @since 2.11
213       * @deprecated in 3.1
214       */
215      @Deprecated
216      String CPD_ENGINE_DEFAULT_VALUE = "sonar";
217    
218      /**
219       * @since 2.11
220       */
221      String CPD_CROSS_RPOJECT = "sonar.cpd.cross_project";
222    
223      /**
224       * @see #CPD_CROSS_RPOJECT
225       * @since 2.11
226       */
227      boolean CPD_CROSS_RPOJECT_DEFAULT_VALUE = false;
228    
229      /* Design */
230    
231      /**
232       * Indicates whether Java bytecode analysis should be skipped.
233       *
234       * @since 2.0
235       */
236      String DESIGN_SKIP_DESIGN_PROPERTY = "sonar.skipDesign";
237      boolean DESIGN_SKIP_DESIGN_DEFAULT_VALUE = false;
238    
239      /**
240       * Indicates whether Package Design Analysis should be skipped.
241       *
242       * @since 2.9
243       */
244      String DESIGN_SKIP_PACKAGE_DESIGN_PROPERTY = "sonar.skipPackageDesign";
245      boolean DESIGN_SKIP_PACKAGE_DESIGN_DEFAULT_VALUE = false;
246    
247      /* Findbugs */
248      String FINDBUGS_PLUGIN = "findbugs";
249      String FINDBUGS_EFFORT_PROPERTY = "sonar.findbugs.effort";
250      String FINDBUGS_EFFORT_DEFAULT_VALUE = "Default";
251      String FINDBUGS_REPORT_PATH = "sonar.findbugs.reportPath";
252      String FINDBUGS_TIMEOUT_PROPERTY = "sonar.findbugs.timeout";
253      long FINDBUGS_TIMEOUT_DEFAULT_VALUE = 600000;
254    
255      /* Google Analytics */
256      String GOOGLE_ANALYTICS_PLUGIN = "google-analytics";
257      String GOOGLE_ANALYTICS_ACCOUNT_PROPERTY = "sonar.google-analytics.account";
258    
259      /* PMD */
260      String PMD_PLUGIN = "pmd";
261    
262      /* Squid */
263      String SQUID_PLUGIN = "squid";
264    
265      /* Surefire */
266      String SUREFIRE_PLUGIN = "surefire";
267      String SUREFIRE_REPORTS_PATH_PROPERTY = "sonar.surefire.reportsPath";
268    
269      /* Time machine periods */
270      String TIMEMACHINE_PERIOD_PREFIX = "sonar.timemachine.period";
271      String TIMEMACHINE_MODE_PREVIOUS_ANALYSIS = "previous_analysis";
272      String TIMEMACHINE_MODE_DATE = "date";
273      String TIMEMACHINE_MODE_VERSION = "version";
274      String TIMEMACHINE_MODE_DAYS = "days";
275      String TIMEMACHINE_DEFAULT_PERIOD_1 = TIMEMACHINE_MODE_PREVIOUS_ANALYSIS;
276      String TIMEMACHINE_DEFAULT_PERIOD_2 = "5";
277      String TIMEMACHINE_DEFAULT_PERIOD_3 = "30";
278      String TIMEMACHINE_DEFAULT_PERIOD_4 = "";
279      String TIMEMACHINE_DEFAULT_PERIOD_5 = "";
280    
281      /**
282       * @since 2.11
283       */
284      String ORGANISATION = "sonar.organisation";
285    
286      /**
287       * @since 2.11
288       */
289      String PERMANENT_SERVER_ID = "sonar.server_id";
290    
291      /**
292       * @since 2.11
293       */
294      String SERVER_ID_IP_ADDRESS = "sonar.server_id.ip_address";
295    }