Browse Source

SONAR-2714 Reorganize core properties into categories

tags/2.11^2
Simon Brandhof 12 years ago
parent
commit
b3aa83b929

+ 34
- 17
plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java View File

@@ -48,7 +48,8 @@ import java.util.List;
key = CoreProperties.ORGANIZATION,
name = "Organization",
description = "Identify your installation. Required to generate the server key and to benefit from licensed plugins. Server must be restarted for the change to take effect.",
global = true
global = true,
category = CoreProperties.CATEGORY_GENERAL
),
@Property(
key = CoreProperties.SERVER_BASE_URL,
@@ -56,14 +57,16 @@ import java.util.List;
name = "Server base URL",
description = "HTTP address of the Sonar server, such as <i>http://yourhost.yourdomain/sonar</i>. This value is used i.e. to create links in emails and to generate server key.",
project = false,
global = true),
global = true,
category = CoreProperties.CATEGORY_GENERAL),
@Property(
key = CoreProperties.CORE_COVERAGE_PLUGIN_PROPERTY,
defaultValue = "cobertura",
name = "Code coverage plugin",
description = "Key of the code coverage plugin to use.",
project = true,
global = true),
global = true,
category = CoreProperties.CATEGORY_CODE_COVERAGE),
@Property(
key = CoreProperties.CORE_IMPORT_SOURCES_PROPERTY,
defaultValue = "" + CoreProperties.CORE_IMPORT_SOURCES_DEFAULT_VALUE,
@@ -71,14 +74,16 @@ import java.util.List;
description = "Set to false if sources should not be displayed, e.g. for security reasons.",
project = true,
module = true,
global = true),
global = true,
category = CoreProperties.CATEGORY_SECURITY),
@Property(
key = CoreProperties.CORE_TENDENCY_DEPTH_PROPERTY,
defaultValue = "" + CoreProperties.CORE_TENDENCY_DEPTH_DEFAULT_VALUE,
name = "Tendency period",
description = TendencyDecorator.PROP_DAYS_DESCRIPTION,
project = false,
global = true),
global = true,
category = CoreProperties.CATEGORY_DIFFERENTIAL_VIEWS),
@Property(
key = CoreProperties.SKIP_TENDENCIES_PROPERTY,
defaultValue = "" + CoreProperties.SKIP_TENDENCIES_DEFAULT_VALUE,
@@ -86,48 +91,55 @@ import java.util.List;
description = "Skip calculation of measure tendencies",
project = true,
module = false,
global = true),
global = true,
category = CoreProperties.CATEGORY_DIFFERENTIAL_VIEWS),
@Property(
key = CoreProperties.CORE_SKIPPED_MODULES_PROPERTY,
name = "Exclude modules",
description = "Maven artifact ids of modules to exclude (comma-separated).",
project = true,
global = false),
global = false,
category = CoreProperties.CATEGORY_GENERAL),
@Property(
key = CoreProperties.CORE_RULE_WEIGHTS_PROPERTY,
defaultValue = CoreProperties.CORE_RULE_WEIGHTS_DEFAULT_VALUE,
name = "Rules weight",
description = "A weight is associated to each priority to calculate the Rules Compliance Index.",
project = false,
global = true),
global = true,
category = CoreProperties.CATEGORY_GENERAL),
@Property(
key = CoreProperties.CORE_FORCE_AUTHENTICATION_PROPERTY,
defaultValue = "" + CoreProperties.CORE_FORCE_AUTHENTICATION_DEFAULT_VALUE,
name = "Force user authentication",
description = "Forcing user authentication stops un-logged users to access Sonar.",
project = false,
global = true),
global = true,
category = CoreProperties.CATEGORY_SECURITY),
@Property(
key = CoreProperties.CORE_ALLOW_USERS_TO_SIGNUP_PROPERTY,
defaultValue = "" + CoreProperties.CORE_ALLOW_USERS_TO_SIGNUP_DEAULT_VALUE,
name = "Allow users to sign up online",
description = "Users can sign up online.",
project = false,
global = true),
global = true,
category = CoreProperties.CATEGORY_SECURITY),
@Property(
key = CoreProperties.CORE_DEFAULT_GROUP,
defaultValue = CoreProperties.CORE_DEFAULT_GROUP_DEFAULT_VALUE,
name = "Default user group",
description = "Any new users will automatically join this group.",
project = false,
global = true),
global = true,
category = CoreProperties.CATEGORY_SECURITY),
@Property(
key = CoreProperties.CORE_VIOLATION_LOCALE_PROPERTY,
defaultValue = "en",
name = "Locale used for violation messages",
description = "Locale to be used when generating violation messages. It's up to each rule engine to support this global internationalization property",
project = true,
global = true),
global = true,
category = CoreProperties.CATEGORY_L10N),
@Property(
key = "sonar.timemachine.period1",
name = "Period 1",
@@ -136,21 +148,24 @@ import java.util.List;
"compare to previous analysis</li><li>A version, for example 1.2</li></ul>",
project = false,
global = true,
defaultValue = CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_1),
defaultValue = CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_1,
category = CoreProperties.CATEGORY_DIFFERENTIAL_VIEWS),
@Property(
key = "sonar.timemachine.period2",
name = "Period 2",
description = "See the property 'Period 1'",
project = false,
global = true,
defaultValue = CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_2),
defaultValue = CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_2,
category = CoreProperties.CATEGORY_DIFFERENTIAL_VIEWS),
@Property(
key = "sonar.timemachine.period3",
name = "Period 3",
description = "See the property 'Period 1'",
project = false,
global = true,
defaultValue = CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_3),
defaultValue = CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_3,
category = CoreProperties.CATEGORY_DIFFERENTIAL_VIEWS),
@Property(
key = "sonar.timemachine.period4",
name = "Period 4",
@@ -159,14 +174,16 @@ import java.util.List;
"for example 2010-12-25</li><li>'previous_analysis' to compare to previous analysis</li><li>A version, for example 1.2</li></ul>",
project = true,
global = false,
defaultValue = CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_4),
defaultValue = CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_4,
category = CoreProperties.CATEGORY_DIFFERENTIAL_VIEWS),
@Property(
key = "sonar.timemachine.period5",
name = "Period 5",
description = "See the property 'Period 4'",
project = true,
global = false,
defaultValue = CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_5)
defaultValue = CoreProperties.TIMEMACHINE_DEFAULT_PERIOD_5,
category = CoreProperties.CATEGORY_DIFFERENTIAL_VIEWS)
})
public class CorePlugin extends SonarPlugin {


+ 4
- 12
plugins/sonar-design-plugin/src/main/java/org/sonar/plugins/design/DesignPlugin.java View File

@@ -19,7 +19,8 @@
*/
package org.sonar.plugins.design;

import org.sonar.api.*;
import com.google.common.collect.Lists;
import org.sonar.api.SonarPlugin;
import org.sonar.plugins.design.batch.*;
import org.sonar.plugins.design.ui.dependencies.GwtDependenciesTab;
import org.sonar.plugins.design.ui.lcom4.GwtLcom4Tab;
@@ -29,21 +30,12 @@ import org.sonar.plugins.design.ui.widgets.ChidamberKemererWidget;
import org.sonar.plugins.design.ui.widgets.FileDesignWidget;
import org.sonar.plugins.design.ui.widgets.PackageDesignWidget;

import java.util.ArrayList;
import java.util.List;

@Properties({
@Property(
key = CoreProperties.DESIGN_SKIP_DESIGN_PROPERTY,
defaultValue = "" + CoreProperties.DESIGN_SKIP_DESIGN_DEFAULT_VALUE,
name = "Skip design analysis",
project = true,
global = true)
})
public class DesignPlugin extends SonarPlugin {

public List<Class<? extends Extension>> getExtensions() {
List<Class<? extends Extension>> extensions = new ArrayList<Class<? extends Extension>>();
public List getExtensions() {
List extensions = Lists.newArrayList();

// Batch
extensions.add(MavenDependenciesSensor.class);

+ 6
- 2
plugins/sonar-l10n-en-plugin/src/main/resources/org/sonar/l10n/core.properties View File

@@ -420,8 +420,12 @@ dashboard.update_dashboard=Update dashboard
#
#------------------------------------------------------------------------------
settings.save_category=Save {0} settings
property.category.General=General

property.category.general=General
property.category.security=Security
property.category.java=Java
property.category.differentialViews=Differential Views
property.category.codeCoverage=Code Coverage
property.category.localization=Localization


#------------------------------------------------------------------------------

+ 16
- 3
plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/SquidPlugin.java View File

@@ -19,6 +19,7 @@
*/
package org.sonar.plugins.squid;

import org.sonar.api.CoreProperties;
import org.sonar.api.Properties;
import org.sonar.api.Property;
import org.sonar.api.SonarPlugin;
@@ -34,7 +35,9 @@ import java.util.List;
name = "Separate accessors",
description = "Flag whether Squid should separate accessors (getters/setters) from methods. " +
"In that case, accessors are not counted in metrics such as complexity or API documentation.",
project = true, global = true),
project = true,
global = true,
category = CoreProperties.CATEGORY_JAVA),
@Property(key = SquidPluginProperties.FIELDS_TO_EXCLUDE_FROM_LCOM4_COMPUTATION,
defaultValue = SquidPluginProperties.FIELDS_TO_EXCLUDE_FROM_LCOM4_COMPUTATION_DEFAULT_VALUE,
name = "List of fields to exclude from LCOM4 computation",
@@ -42,8 +45,18 @@ import java.util.List;
"unexpectedly and artificially decrease the LCOM4 measure. "
+ "The best example is a logger used by all methods of a class. " +
"All field names to exclude from LCOM4 computation must be separated by a comma.",
project = true, global = true)})
public class SquidPlugin extends SonarPlugin {
project = true,
global = true,
category = CoreProperties.CATEGORY_JAVA),
@Property(
key = CoreProperties.DESIGN_SKIP_DESIGN_PROPERTY,
defaultValue = "" + CoreProperties.DESIGN_SKIP_DESIGN_DEFAULT_VALUE,
name = "Skip design analysis",
project = true,
global = true,
category = CoreProperties.CATEGORY_JAVA)
})
public final class SquidPlugin extends SonarPlugin {

public List getExtensions() {
return Arrays.asList(SquidSensor.class, SquidRuleRepository.class, JavaSourceImporter.class,

+ 31
- 0
sonar-plugin-api/src/main/java/org/sonar/api/CoreProperties.java View File

@@ -29,6 +29,37 @@ import org.sonar.api.resources.ProjectFileSystem;
*/
public interface CoreProperties {

/**
* @since 2.11
*/
String CATEGORY_GENERAL = "general";

/**
* @since 2.11
*/
String CATEGORY_CODE_COVERAGE = "codeCoverage";

/**
* @since 2.11
*/
String CATEGORY_SECURITY = "security";

/**
* @since 2.11
*/
String CATEGORY_L10N = "localization";

/**
* @since 2.11
*/
String CATEGORY_JAVA = "java";

/**
* @since 2.11
*/
String CATEGORY_DIFFERENTIAL_VIEWS = "differentialViews";


/* Global settings */
String SONAR_HOME = "sonar.home";
String PROJECT_BRANCH_PROPERTY = "sonar.branch";

+ 1
- 1
sonar-server/src/main/webapp/WEB-INF/app/controllers/project_controller.rb View File

@@ -72,7 +72,7 @@ class ProjectController < ApplicationController
redirect_to :action => 'index', :id => params[:id]
end

@category=params[:category] ||= 'General'
@category=params[:category] ||= 'general'
@properties_per_category={}
java_facade.getPluginsMetadata().each do |plugin|
properties=java_facade.getPluginProperties(plugin).select { |property|

+ 1
- 1
sonar-server/src/main/webapp/WEB-INF/app/controllers/settings_controller.rb View File

@@ -26,7 +26,7 @@ class SettingsController < ApplicationController
def index
return access_denied unless is_admin?
load_properties(false)
@category ||= 'General'
@category ||= 'general'
end

def update

Loading…
Cancel
Save