From 9f6f69e368d06a0ae064ad9fd6fded06307d0c99 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Sun, 15 Jul 2012 21:54:49 +0200 Subject: [PATCH] Fix some quality flaws --- .../core/persistence/DefaultDatabase.java | 14 +++--- .../api/database/DatabaseProperties.java | 2 - .../sonar/api/platform/NewUserHandler.java | 2 +- .../org/sonar/api/design/DependencyTest.java | 16 +++---- .../sonar/server/platform/ServerSettings.java | 3 +- .../server/startup/RegisterNewDashboards.java | 45 ++++++++----------- .../startup/SetDefaultProjectPermissions.java | 21 +++++---- 7 files changed, 45 insertions(+), 58 deletions(-) diff --git a/sonar-core/src/main/java/org/sonar/core/persistence/DefaultDatabase.java b/sonar-core/src/main/java/org/sonar/core/persistence/DefaultDatabase.java index 5ee2111cd6d..ae05c0b10d3 100644 --- a/sonar-core/src/main/java/org/sonar/core/persistence/DefaultDatabase.java +++ b/sonar-core/src/main/java/org/sonar/core/persistence/DefaultDatabase.java @@ -20,7 +20,6 @@ package org.sonar.core.persistence; import com.google.common.annotations.VisibleForTesting; - import org.apache.commons.dbcp.BasicDataSource; import org.apache.commons.dbcp.BasicDataSourceFactory; import org.apache.commons.lang.StringUtils; @@ -29,15 +28,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.api.config.Settings; import org.sonar.api.database.DatabaseProperties; -import org.sonar.core.persistence.dialect.Dialect; -import org.sonar.core.persistence.dialect.DialectUtils; -import org.sonar.core.persistence.dialect.H2; -import org.sonar.core.persistence.dialect.Oracle; -import org.sonar.core.persistence.dialect.PostgreSql; +import org.sonar.core.persistence.dialect.*; import org.sonar.jpa.session.CustomHibernateConnectionProvider; import javax.sql.DataSource; - import java.sql.SQLException; import java.util.Arrays; import java.util.List; @@ -51,6 +45,8 @@ public class DefaultDatabase implements Database { private static final Logger LOG = LoggerFactory.getLogger(Database.class); + private static final String DEFAULT_URL = "jdbc:h2:tcp://localhost/sonar"; + private Settings settings; private BasicDataSource datasource; private Dialect dialect; @@ -117,7 +113,7 @@ public class DefaultDatabase implements Database { private void initDatasource() throws Exception {// NOSONAR this exception is thrown by BasicDataSourceFactory // but it's correctly caught by start() - LOG.info("Create JDBC datasource to url " + properties.getProperty(DatabaseProperties.PROP_URL, DatabaseProperties.PROP_URL_DEFAULT_VALUE)); + LOG.info("Create JDBC datasource to url " + properties.getProperty(DatabaseProperties.PROP_URL, DEFAULT_URL)); datasource = (BasicDataSource) BasicDataSourceFactory.createDataSource(extractCommonsDbcpProperties(properties)); String initStatement = dialect.getConnectionInitStatement(getSchema()); @@ -212,7 +208,7 @@ public class DefaultDatabase implements Database { private static void completeDefaultProperties(Properties props) { completeDefaultProperty(props, DatabaseProperties.PROP_DRIVER, props.getProperty(DatabaseProperties.PROP_DRIVER_DEPRECATED)); - completeDefaultProperty(props, DatabaseProperties.PROP_URL, DatabaseProperties.PROP_URL_DEFAULT_VALUE); + completeDefaultProperty(props, DatabaseProperties.PROP_URL, DEFAULT_URL); completeDefaultProperty(props, DatabaseProperties.PROP_USER, props.getProperty(DatabaseProperties.PROP_USER_DEPRECATED, DatabaseProperties.PROP_USER_DEFAULT_VALUE)); completeDefaultProperty(props, DatabaseProperties.PROP_PASSWORD, DatabaseProperties.PROP_PASSWORD_DEFAULT_VALUE); completeDefaultProperty(props, DatabaseProperties.PROP_HIBERNATE_HBM2DLL, "validate"); diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/database/DatabaseProperties.java b/sonar-plugin-api/src/main/java/org/sonar/api/database/DatabaseProperties.java index 1c9df357485..20da95de1c1 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/database/DatabaseProperties.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/database/DatabaseProperties.java @@ -24,9 +24,7 @@ public interface DatabaseProperties { int MAX_TEXT_SIZE = 16777215; String PROP_URL = "sonar.jdbc.url"; - String PROP_URL_DEFAULT_VALUE = "jdbc:h2:tcp://localhost/sonar"; String PROP_DRIVER = "sonar.jdbc.driverClassName"; - String PROP_DRIVER_DEFAULT_VALUE = "org.h2.Driver"; String PROP_DRIVER_DEPRECATED = "sonar.jdbc.driver"; String PROP_USER = "sonar.jdbc.username"; String PROP_USER_DEPRECATED = "sonar.jdbc.user"; diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/platform/NewUserHandler.java b/sonar-plugin-api/src/main/java/org/sonar/api/platform/NewUserHandler.java index 3e65e571a98..833c68d7dea 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/platform/NewUserHandler.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/platform/NewUserHandler.java @@ -58,7 +58,7 @@ public interface NewUserHandler extends ServerExtension { return new Builder(); } - public static class Builder { + public static final class Builder { private String login; private String name; private String email; diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/design/DependencyTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/design/DependencyTest.java index f9fd0e10d33..0faaff16ecd 100644 --- a/sonar-plugin-api/src/test/java/org/sonar/api/design/DependencyTest.java +++ b/sonar-plugin-api/src/test/java/org/sonar/api/design/DependencyTest.java @@ -21,9 +21,7 @@ package org.sonar.api.design; import org.junit.Test; -import static junit.framework.Assert.assertTrue; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; +import static org.fest.assertions.Assertions.assertThat; public class DependencyTest { @@ -33,13 +31,13 @@ public class DependencyTest { DependencyDto dep1Clone = new DependencyDto().setFromSnapshotId(10).setToSnapshotId(30); DependencyDto dep2 = new DependencyDto().setFromSnapshotId(10).setToSnapshotId(31); - assertFalse(dep1.equals(dep2)); - assertTrue(dep1.equals(dep1)); - assertTrue(dep1.equals(dep1Clone)); + assertThat(dep1.equals(dep2)).isFalse(); + assertThat(dep1.equals(dep1)).isTrue(); + assertThat(dep1.equals(dep1Clone)).isTrue(); - assertEquals(dep1.hashCode(), dep1.hashCode()); - assertEquals(dep1.hashCode(), dep1Clone.hashCode()); - assertEquals(dep1.toString(), dep1.toString()); + assertThat(dep1.hashCode()).isEqualTo(dep1.hashCode()); + assertThat(dep1.hashCode()).isEqualTo(dep1Clone.hashCode()); + assertThat(dep1.toString()).isEqualTo(dep1.toString()); } @Test(expected = IllegalArgumentException.class) diff --git a/sonar-server/src/main/java/org/sonar/server/platform/ServerSettings.java b/sonar-server/src/main/java/org/sonar/server/platform/ServerSettings.java index 60d2d053263..ba2d3dfdf33 100644 --- a/sonar-server/src/main/java/org/sonar/server/platform/ServerSettings.java +++ b/sonar-server/src/main/java/org/sonar/server/platform/ServerSettings.java @@ -22,7 +22,6 @@ package org.sonar.server.platform; import com.google.common.annotations.VisibleForTesting; import org.apache.commons.configuration.Configuration; import org.sonar.api.CoreProperties; -import org.sonar.api.ServerComponent; import org.sonar.api.config.GlobalPropertyChangeHandler; import org.sonar.api.config.PropertyDefinitions; import org.sonar.api.config.Settings; @@ -46,7 +45,7 @@ import java.util.Properties; * * @since 2.12 */ -public class ServerSettings extends Settings implements ServerComponent { +public class ServerSettings extends Settings { public static final String DEPLOY_DIR = "sonar.web.deployDir"; diff --git a/sonar-server/src/main/java/org/sonar/server/startup/RegisterNewDashboards.java b/sonar-server/src/main/java/org/sonar/server/startup/RegisterNewDashboards.java index 82943acaa0d..ea1cd7f29df 100644 --- a/sonar-server/src/main/java/org/sonar/server/startup/RegisterNewDashboards.java +++ b/sonar-server/src/main/java/org/sonar/server/startup/RegisterNewDashboards.java @@ -21,17 +21,11 @@ package org.sonar.server.startup; import com.google.common.collect.Lists; import com.google.common.collect.Ordering; -import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonar.api.utils.TimeProfiler; import org.sonar.api.web.Dashboard; import org.sonar.api.web.DashboardTemplate; -import org.sonar.core.dashboard.ActiveDashboardDao; -import org.sonar.core.dashboard.ActiveDashboardDto; -import org.sonar.core.dashboard.DashboardDao; -import org.sonar.core.dashboard.DashboardDto; -import org.sonar.core.dashboard.WidgetDto; -import org.sonar.core.dashboard.WidgetPropertyDto; +import org.sonar.core.dashboard.*; import org.sonar.core.template.LoadedTemplateDao; import org.sonar.core.template.LoadedTemplateDto; @@ -44,7 +38,6 @@ import java.util.Map.Entry; * @since 2.13 */ public final class RegisterNewDashboards { - private static final Logger LOG = LoggerFactory.getLogger(RegisterNewDashboards.class); static final String DEFAULT_DASHBOARD_NAME = "Dashboard"; private final List dashboardTemplates; @@ -53,7 +46,7 @@ public final class RegisterNewDashboards { private final LoadedTemplateDao loadedTemplateDao; public RegisterNewDashboards(DashboardTemplate[] dashboardTemplatesArray, DashboardDao dashboardDao, - ActiveDashboardDao activeDashboardDao, LoadedTemplateDao loadedTemplateDao) { + ActiveDashboardDao activeDashboardDao, LoadedTemplateDao loadedTemplateDao) { this.dashboardTemplates = Lists.newArrayList(dashboardTemplatesArray); this.dashboardDao = dashboardDao; this.activeDashboardDao = activeDashboardDao; @@ -89,8 +82,8 @@ public final class RegisterNewDashboards { private void activate(DashboardDto dashboardDto, int index) { ActiveDashboardDto activeDashboardDto = new ActiveDashboardDto() - .setDashboardId(dashboardDto.getId()) - .setOrderIndex(index); + .setDashboardId(dashboardDto.getId()) + .setOrderIndex(index); activeDashboardDao.insert(activeDashboardDto); LoggerFactory.getLogger(getClass()).info("New dashboard '" + dashboardDto.getName() + "' registered"); @@ -111,31 +104,31 @@ public final class RegisterNewDashboards { Date now = new Date(); DashboardDto dashboardDto = new DashboardDto() - .setName(name) - .setDescription(dashboard.getDescription()) - .setColumnLayout(dashboard.getLayout().getCode()) - .setShared(true) - .setGlobal(dashboard.isGlobal()) - .setCreatedAt(now) - .setUpdatedAt(now); + .setName(name) + .setDescription(dashboard.getDescription()) + .setColumnLayout(dashboard.getLayout().getCode()) + .setShared(true) + .setGlobal(dashboard.isGlobal()) + .setCreatedAt(now) + .setUpdatedAt(now); for (int columnIndex = 1; columnIndex <= dashboard.getLayout().getColumns(); columnIndex++) { List widgets = dashboard.getWidgetsOfColumn(columnIndex); for (int rowIndex = 1; rowIndex <= widgets.size(); rowIndex++) { Dashboard.Widget widget = widgets.get(rowIndex - 1); WidgetDto widgetDto = new WidgetDto() - .setKey(widget.getId()) - .setColumnIndex(columnIndex) - .setRowIndex(rowIndex) - .setConfigured(true) - .setCreatedAt(now) - .setUpdatedAt(now); + .setKey(widget.getId()) + .setColumnIndex(columnIndex) + .setRowIndex(rowIndex) + .setConfigured(true) + .setCreatedAt(now) + .setUpdatedAt(now); dashboardDto.addWidget(widgetDto); for (Entry property : widget.getProperties().entrySet()) { WidgetPropertyDto propDto = new WidgetPropertyDto() - .setKey(property.getKey()) - .setValue(property.getValue()); + .setKey(property.getKey()) + .setValue(property.getValue()); widgetDto.addWidgetProperty(propDto); } } diff --git a/sonar-server/src/main/java/org/sonar/server/startup/SetDefaultProjectPermissions.java b/sonar-server/src/main/java/org/sonar/server/startup/SetDefaultProjectPermissions.java index 318a8ff6089..9aa5702ea21 100644 --- a/sonar-server/src/main/java/org/sonar/server/startup/SetDefaultProjectPermissions.java +++ b/sonar-server/src/main/java/org/sonar/server/startup/SetDefaultProjectPermissions.java @@ -29,6 +29,9 @@ import java.util.Map; * @since 3.2 */ public class SetDefaultProjectPermissions { + private static final String SONAR_ADMINISTRATORS = "sonar-administrators"; + private static final String ANYONE_AND_USERS = "Anyone,sonar-users"; + private final PersistentSettings persistentSettings; public SetDefaultProjectPermissions(PersistentSettings persistentSettings) { @@ -39,17 +42,17 @@ public class SetDefaultProjectPermissions { if (persistentSettings.getSettings().getKeysStartingWith("sonar.role.").isEmpty()) { LoggerFactory.getLogger(SetDefaultProjectPermissions.class).info("Setting default project permissions"); Map props = Maps.newHashMap(); - props.put("sonar.role.admin.TRK.defaultGroups", "sonar-administrators"); - props.put("sonar.role.user.TRK.defaultGroups", "Anyone,sonar-users"); - props.put("sonar.role.codeviewer.TRK.defaultGroups", "Anyone,sonar-users"); + props.put("sonar.role.admin.TRK.defaultGroups", SONAR_ADMINISTRATORS); + props.put("sonar.role.user.TRK.defaultGroups", ANYONE_AND_USERS); + props.put("sonar.role.codeviewer.TRK.defaultGroups", ANYONE_AND_USERS); // Support old versions of Views plugin - props.put("sonar.role.admin.VW.defaultGroups", "sonar-administrators"); - props.put("sonar.role.user.VW.defaultGroups", "Anyone,sonar-users"); - props.put("sonar.role.codeviewer.VW.defaultGroups", "Anyone,sonar-users"); - props.put("sonar.role.admin.SVW.defaultGroups", "sonar-administrators"); - props.put("sonar.role.user.SVW.defaultGroups", "Anyone,sonar-users"); - props.put("sonar.role.codeviewer.SVW.defaultGroups", "Anyone,sonar-users"); + props.put("sonar.role.admin.VW.defaultGroups", SONAR_ADMINISTRATORS); + props.put("sonar.role.user.VW.defaultGroups", ANYONE_AND_USERS); + props.put("sonar.role.codeviewer.VW.defaultGroups", ANYONE_AND_USERS); + props.put("sonar.role.admin.SVW.defaultGroups", SONAR_ADMINISTRATORS); + props.put("sonar.role.user.SVW.defaultGroups", ANYONE_AND_USERS); + props.put("sonar.role.codeviewer.SVW.defaultGroups", ANYONE_AND_USERS); persistentSettings.saveProperties(props); } -- 2.39.5