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       * @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    }