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