From 7979e9dbfe01931c771f9fd8d13bc8a65cbb49d7 Mon Sep 17 00:00:00 2001 From: Fabrice Bellingard Date: Wed, 14 Dec 2011 16:45:32 +0100 Subject: [PATCH] Sonar Persistence API refactoring - Class mapped to tables should now be named "MyTableDto" - DTOs, DAOs and Mappers of a same concern should be packed in a single package, allowing to use package visibility amongst them. => org.sonar.persistence has been reorganized following those rules. --- .../core/sensors/ManualViolationInjector.java | 32 ++--- .../sensors/ViolationSeverityUpdater.java | 16 +-- .../sensors/ManualViolationInjectorTest.java | 10 +- .../sensors/ViolationSeverityUpdaterTest.java | 10 +- .../org/sonar/plugins/cpd/SonarEngine.java | 2 +- .../cpd/index/DbDuplicationsIndex.java | 12 +- .../batch/bootstrap/BootstrapModule.java | 2 +- .../sonar/persistence/{dao => }/DaoUtils.java | 9 +- .../java/org/sonar/persistence/MyBatis.java | 48 ++++---- .../ActiveDashboardDao.java | 8 +- .../ActiveDashboardDto.java} | 4 +- .../ActiveDashboardMapper.java | 5 +- .../{dao => dashboard}/DashboardDao.java | 24 ++-- .../DashboardDto.java} | 17 +-- .../{model => dashboard}/DashboardMapper.java | 5 +- .../Widget.java => dashboard/WidgetDto.java} | 16 +-- .../{model => dashboard}/WidgetMapper.java | 4 +- .../WidgetPropertyDto.java} | 4 +- .../WidgetPropertyMapper.java | 4 +- .../{dao => duplication}/DuplicationDao.java | 10 +- .../DuplicationMapper.java | 6 +- .../DuplicationUnitDto.java} | 8 +- .../{dao => review}/ReviewDao.java | 13 +- .../Review.java => review/ReviewDto.java} | 36 +++--- .../{model => review}/ReviewMapper.java | 10 +- .../{model => review}/ReviewQuery.java | 4 +- .../persistence/{dao => rule}/RuleDao.java | 8 +- .../{model/Rule.java => rule/RuleDto.java} | 4 +- .../{model => rule}/RuleMapper.java | 6 +- .../{dao => template}/LoadedTemplateDao.java | 10 +- .../LoadedTemplateDto.java} | 8 +- .../LoadedTemplateMapper.java | 6 +- .../ActiveDashboardMapper-oracle.xml | 2 +- .../ActiveDashboardMapper.xml | 2 +- .../DashboardMapper-oracle.xml | 2 +- .../{model => dashboard}/DashboardMapper.xml | 2 +- .../WidgetMapper-oracle.xml | 2 +- .../{model => dashboard}/WidgetMapper.xml | 2 +- .../WidgetPropertyMapper-oracle.xml | 2 +- .../WidgetPropertyMapper.xml | 2 +- .../DuplicationMapper-mssql.xml | 2 +- .../DuplicationMapper-oracle.xml | 2 +- .../DuplicationMapper.xml | 2 +- .../{model => review}/ReviewMapper.xml | 4 +- .../{model => rule}/RuleMapper.xml | 2 +- .../LoadedTemplateMapper-oracle.xml | 2 +- .../LoadedTemplateMapper.xml | 2 +- .../persistence/{dao => }/DaoTestCase.java | 2 +- .../persistence/{dao => }/DaoUtilsTest.java | 3 +- .../{dao => }/DatabaseCommands.java | 2 +- .../org/sonar/persistence/MyBatisTest.java | 2 +- .../persistence/dao/DashboardDaoTest.java | 112 ----------------- .../ActiveDashboardDaoTest.java | 10 +- .../dashboard/DashboardDaoTest.java | 114 ++++++++++++++++++ .../DuplicationDaoTest.java | 18 +-- .../{dao => review}/ReviewDaoTest.java | 76 ++++++------ .../{dao => rule}/RuleDaoTest.java | 32 ++--- .../LoadedTemplateDaoTest.java | 10 +- .../ActiveDashboardDaoTest/empty.xml | 0 .../shouldGetMaxOrderIndexForNullUser.xml | 0 .../shouldInsert-result.xml | 0 .../ActiveDashboardDaoTest/shouldInsert.xml | 0 .../shouldInsertWithNoUser-result.xml | 0 .../DashboardDaoTest/shouldInsert-result.xml | 0 .../DashboardDaoTest/shouldInsert.xml | 0 ...shouldInsertWithNullableColumns-result.xml | 0 .../DuplicationDaoTest/shouldGetByHash.xml | 0 .../shouldInsert-result.xml | 0 .../DuplicationDaoTest/shouldInsert.xml | 0 .../{dao => review}/ReviewDaoTest/shared.xml | 0 .../shouldPartitionFiltersOnPermanentId.xml | 0 .../{dao => rule}/RuleDaoTest/selectAll.xml | 0 .../{dao => rule}/RuleDaoTest/selectById.xml | 0 .../LoadedTemplateDaoTest/shared.xml | 0 .../shouldInsert-result.xml | 0 .../LoadedTemplateDaoTest/shouldInsert.xml | 0 .../org/sonar/server/platform/Platform.java | 2 +- .../startup/RegisterProvidedDashboards.java | 56 ++++----- .../RegisterProvidedDashboardsTest.java | 82 ++++++------- 79 files changed, 460 insertions(+), 454 deletions(-) rename sonar-core/src/main/java/org/sonar/persistence/{dao => }/DaoUtils.java (77%) rename sonar-core/src/main/java/org/sonar/persistence/{dao => dashboard}/ActiveDashboardDao.java (87%) rename sonar-core/src/main/java/org/sonar/persistence/{model/ActiveDashboard.java => dashboard/ActiveDashboardDto.java} (96%) rename sonar-core/src/main/java/org/sonar/persistence/{model => dashboard}/ActiveDashboardMapper.java (90%) rename sonar-core/src/main/java/org/sonar/persistence/{dao => dashboard}/DashboardDao.java (68%) rename sonar-core/src/main/java/org/sonar/persistence/{model/Dashboard.java => dashboard/DashboardDto.java} (91%) rename sonar-core/src/main/java/org/sonar/persistence/{model => dashboard}/DashboardMapper.java (91%) rename sonar-core/src/main/java/org/sonar/persistence/{model/Widget.java => dashboard/WidgetDto.java} (90%) rename sonar-core/src/main/java/org/sonar/persistence/{model => dashboard}/WidgetMapper.java (92%) rename sonar-core/src/main/java/org/sonar/persistence/{model/WidgetProperty.java => dashboard/WidgetPropertyDto.java} (96%) rename sonar-core/src/main/java/org/sonar/persistence/{model => dashboard}/WidgetPropertyMapper.java (90%) rename sonar-core/src/main/java/org/sonar/persistence/{dao => duplication}/DuplicationDao.java (85%) rename sonar-core/src/main/java/org/sonar/persistence/{model => duplication}/DuplicationMapper.java (89%) rename sonar-core/src/main/java/org/sonar/persistence/{model/DuplicationUnit.java => duplication/DuplicationUnitDto.java} (90%) rename sonar-core/src/main/java/org/sonar/persistence/{dao => review}/ReviewDao.java (86%) rename sonar-core/src/main/java/org/sonar/persistence/{model/Review.java => review/ReviewDto.java} (80%) rename sonar-core/src/main/java/org/sonar/persistence/{model => review}/ReviewMapper.java (77%) rename sonar-core/src/main/java/org/sonar/persistence/{model => review}/ReviewQuery.java (97%) rename sonar-core/src/main/java/org/sonar/persistence/{dao => rule}/RuleDao.java (89%) rename sonar-core/src/main/java/org/sonar/persistence/{model/Rule.java => rule/RuleDto.java} (96%) rename sonar-core/src/main/java/org/sonar/persistence/{model => rule}/RuleMapper.java (90%) rename sonar-core/src/main/java/org/sonar/persistence/{dao => template}/LoadedTemplateDao.java (84%) rename sonar-core/src/main/java/org/sonar/persistence/{model/LoadedTemplate.java => template/LoadedTemplateDto.java} (93%) rename sonar-core/src/main/java/org/sonar/persistence/{model => template}/LoadedTemplateMapper.java (84%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => dashboard}/ActiveDashboardMapper-oracle.xml (90%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => dashboard}/ActiveDashboardMapper.xml (88%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => dashboard}/DashboardMapper-oracle.xml (91%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => dashboard}/DashboardMapper.xml (89%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => dashboard}/WidgetMapper-oracle.xml (92%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => dashboard}/WidgetMapper.xml (90%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => dashboard}/WidgetPropertyMapper-oracle.xml (87%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => dashboard}/WidgetPropertyMapper.xml (86%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => duplication}/DuplicationMapper-mssql.xml (94%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => duplication}/DuplicationMapper-oracle.xml (94%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => duplication}/DuplicationMapper.xml (94%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => review}/ReviewMapper.xml (96%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => rule}/RuleMapper.xml (90%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => template}/LoadedTemplateMapper-oracle.xml (92%) rename sonar-core/src/main/resources/org/sonar/persistence/{model => template}/LoadedTemplateMapper.xml (91%) rename sonar-core/src/test/java/org/sonar/persistence/{dao => }/DaoTestCase.java (99%) rename sonar-core/src/test/java/org/sonar/persistence/{dao => }/DaoUtilsTest.java (94%) rename sonar-core/src/test/java/org/sonar/persistence/{dao => }/DatabaseCommands.java (99%) delete mode 100644 sonar-core/src/test/java/org/sonar/persistence/dao/DashboardDaoTest.java rename sonar-core/src/test/java/org/sonar/persistence/{dao => dashboard}/ActiveDashboardDaoTest.java (87%) create mode 100644 sonar-core/src/test/java/org/sonar/persistence/dashboard/DashboardDaoTest.java rename sonar-core/src/test/java/org/sonar/persistence/{dao => duplication}/DuplicationDaoTest.java (79%) rename sonar-core/src/test/java/org/sonar/persistence/{dao => review}/ReviewDaoTest.java (54%) rename sonar-core/src/test/java/org/sonar/persistence/{dao => rule}/RuleDaoTest.java (59%) rename sonar-core/src/test/java/org/sonar/persistence/{dao => template}/LoadedTemplateDaoTest.java (83%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => dashboard}/ActiveDashboardDaoTest/empty.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => dashboard}/ActiveDashboardDaoTest/shouldGetMaxOrderIndexForNullUser.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => dashboard}/ActiveDashboardDaoTest/shouldInsert-result.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => dashboard}/ActiveDashboardDaoTest/shouldInsert.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => dashboard}/ActiveDashboardDaoTest/shouldInsertWithNoUser-result.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => dashboard}/DashboardDaoTest/shouldInsert-result.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => dashboard}/DashboardDaoTest/shouldInsert.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => dashboard}/DashboardDaoTest/shouldInsertWithNullableColumns-result.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => duplication}/DuplicationDaoTest/shouldGetByHash.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => duplication}/DuplicationDaoTest/shouldInsert-result.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => duplication}/DuplicationDaoTest/shouldInsert.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => review}/ReviewDaoTest/shared.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => review}/ReviewDaoTest/shouldPartitionFiltersOnPermanentId.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => rule}/RuleDaoTest/selectAll.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => rule}/RuleDaoTest/selectById.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => template}/LoadedTemplateDaoTest/shared.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => template}/LoadedTemplateDaoTest/shouldInsert-result.xml (100%) rename sonar-core/src/test/resources/org/sonar/persistence/{dao => template}/LoadedTemplateDaoTest/shouldInsert.xml (100%) diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ManualViolationInjector.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ManualViolationInjector.java index e85c0bae1e9..15fb8f8b4dd 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ManualViolationInjector.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ManualViolationInjector.java @@ -28,9 +28,9 @@ import org.sonar.api.resources.Resource; import org.sonar.api.rules.RuleFinder; import org.sonar.api.rules.RulePriority; import org.sonar.api.rules.Violation; -import org.sonar.persistence.dao.ReviewDao; -import org.sonar.persistence.model.Review; -import org.sonar.persistence.model.ReviewQuery; +import org.sonar.persistence.review.ReviewDao; +import org.sonar.persistence.review.ReviewDto; +import org.sonar.persistence.review.ReviewQuery; import java.util.List; @@ -51,23 +51,23 @@ public class ManualViolationInjector implements Decorator { public void decorate(Resource resource, DecoratorContext context) { if (resource.getId() != null) { - ReviewQuery query = ReviewQuery.create().setManualViolation(true).setResourceId(resource.getId()).setStatus(Review.STATUS_OPENED); - List reviews = reviewDao.selectByQuery(query); - for (Review review : reviews) { - if (review.getRuleId() == null) { - LoggerFactory.getLogger(getClass()).warn("No rule is defined on the review with id: " + review.getId()); + ReviewQuery query = ReviewQuery.create().setManualViolation(true).setResourceId(resource.getId()).setStatus(ReviewDto.STATUS_OPENED); + List reviewDtos = reviewDao.selectByQuery(query); + for (ReviewDto reviewDto : reviewDtos) { + if (reviewDto.getRuleId() == null) { + LoggerFactory.getLogger(getClass()).warn("No rule is defined on the review with id: " + reviewDto.getId()); } - if (review.getViolationPermanentId() == null) { - LoggerFactory.getLogger(getClass()).warn("Permanent id of manual violation is missing on the review with id: " + review.getId()); + if (reviewDto.getViolationPermanentId() == null) { + LoggerFactory.getLogger(getClass()).warn("Permanent id of manual violation is missing on the review with id: " + reviewDto.getId()); } - Violation violation = Violation.create(ruleFinder.findById(review.getRuleId()), resource); + Violation violation = Violation.create(ruleFinder.findById(reviewDto.getRuleId()), resource); violation.setManual(true); - violation.setLineId(review.getLine()); - violation.setPermanentId(review.getViolationPermanentId()); + violation.setLineId(reviewDto.getLine()); + violation.setPermanentId(reviewDto.getViolationPermanentId()); violation.setSwitchedOff(false); - violation.setCreatedAt(review.getCreatedAt()); - violation.setMessage(review.getTitle()); - violation.setSeverity(RulePriority.valueOf(review.getSeverity())); + violation.setCreatedAt(reviewDto.getCreatedAt()); + violation.setMessage(reviewDto.getTitle()); + violation.setSeverity(RulePriority.valueOf(reviewDto.getSeverity())); context.saveViolation(violation); } } diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ViolationSeverityUpdater.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ViolationSeverityUpdater.java index f5c63aa9fe7..882ddebc4b8 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ViolationSeverityUpdater.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/sensors/ViolationSeverityUpdater.java @@ -27,9 +27,9 @@ import org.sonar.api.resources.Resource; import org.sonar.api.resources.ResourceUtils; import org.sonar.api.rules.RulePriority; import org.sonar.api.rules.Violation; -import org.sonar.persistence.dao.ReviewDao; -import org.sonar.persistence.model.Review; -import org.sonar.persistence.model.ReviewQuery; +import org.sonar.persistence.review.ReviewDao; +import org.sonar.persistence.review.ReviewDto; +import org.sonar.persistence.review.ReviewQuery; import org.sonar.plugins.core.timemachine.ViolationTrackingDecorator; import java.util.List; @@ -69,17 +69,17 @@ public class ViolationSeverityUpdater implements Decorator { Map violationMap = filterViolationsPerPermanent(context.getViolations()); if (!violationMap.isEmpty()) { Set permanentIds = violationMap.keySet(); - List reviews = selectReviewsWithManualSeverity(permanentIds); - for (Review review : reviews) { - Violation violation = violationMap.get(review.getViolationPermanentId()); + List reviewDtos = selectReviewsWithManualSeverity(permanentIds); + for (ReviewDto reviewDto : reviewDtos) { + Violation violation = violationMap.get(reviewDto.getViolationPermanentId()); if (violation != null) { - violation.setSeverity(RulePriority.valueOf(review.getSeverity())); + violation.setSeverity(RulePriority.valueOf(reviewDto.getSeverity())); } } } } - private List selectReviewsWithManualSeverity(Set permanentIds) { + private List selectReviewsWithManualSeverity(Set permanentIds) { ReviewQuery query = ReviewQuery.create() .setManualSeverity(Boolean.TRUE) .setViolationPermanentIds(Lists.newArrayList(permanentIds)); diff --git a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ManualViolationInjectorTest.java b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ManualViolationInjectorTest.java index bb7c3e8b483..ed62cc0c53b 100644 --- a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ManualViolationInjectorTest.java +++ b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ManualViolationInjectorTest.java @@ -30,9 +30,9 @@ import org.sonar.api.rules.RuleFinder; import org.sonar.api.rules.RulePriority; import org.sonar.api.rules.Violation; import org.sonar.api.utils.DateUtils; -import org.sonar.persistence.dao.ReviewDao; -import org.sonar.persistence.model.Review; -import org.sonar.persistence.model.ReviewQuery; +import org.sonar.persistence.review.ReviewDao; +import org.sonar.persistence.review.ReviewDto; +import org.sonar.persistence.review.ReviewQuery; import java.util.Arrays; import java.util.Date; @@ -45,8 +45,8 @@ public class ManualViolationInjectorTest { public void shouldInjectManualViolationsDefinedByReviews() { ReviewDao reviewDao = mock(ReviewDao.class); final Date reviewCreatedAt = DateUtils.parseDate("2011-12-25"); - Review review = new Review().setRuleId(3).setViolationPermanentId(100).setCreatedAt(reviewCreatedAt).setSeverity("BLOCKER"); - when(reviewDao.selectByQuery(Matchers.anyObject())).thenReturn(Arrays.asList(review)); + ReviewDto reviewDto = new ReviewDto().setRuleId(3).setViolationPermanentId(100).setCreatedAt(reviewCreatedAt).setSeverity("BLOCKER"); + when(reviewDao.selectByQuery(Matchers.anyObject())).thenReturn(Arrays.asList(reviewDto)); RuleFinder ruleFinder = mock(RuleFinder.class); when(ruleFinder.findById(3)).thenReturn(new Rule()); DecoratorContext context = mock(DecoratorContext.class); diff --git a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ViolationSeverityUpdaterTest.java b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ViolationSeverityUpdaterTest.java index 3b8a49aed2b..a9803001c34 100644 --- a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ViolationSeverityUpdaterTest.java +++ b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/sensors/ViolationSeverityUpdaterTest.java @@ -30,9 +30,9 @@ import org.sonar.api.resources.Resource; import org.sonar.api.rules.Rule; import org.sonar.api.rules.RulePriority; import org.sonar.api.rules.Violation; -import org.sonar.persistence.dao.ReviewDao; -import org.sonar.persistence.model.Review; -import org.sonar.persistence.model.ReviewQuery; +import org.sonar.persistence.review.ReviewDao; +import org.sonar.persistence.review.ReviewDto; +import org.sonar.persistence.review.ReviewQuery; import java.util.Arrays; @@ -52,8 +52,8 @@ public class ViolationSeverityUpdaterTest { @Test public void shouldUpdateSeverityFixedByEndUsers() { ReviewDao reviewDao = mock(ReviewDao.class); - when(reviewDao.selectByQuery(argThat(newReviewQueryMatcher(380)))).thenReturn(Arrays.asList( - new Review().setManualSeverity(true).setSeverity(RulePriority.BLOCKER.toString()).setViolationPermanentId(380))); + when(reviewDao.selectByQuery(argThat(newReviewQueryMatcher(380)))).thenReturn(Arrays.asList( + new ReviewDto().setManualSeverity(true).setSeverity(RulePriority.BLOCKER.toString()).setViolationPermanentId(380))); DecoratorContext context = mock(DecoratorContext.class); Violation newViolation = Violation.create(new Rule(), project).setSeverity(RulePriority.MINOR); Violation unchangedViolation = Violation.create(new Rule(), project).setPermanentId(120).setSeverity(RulePriority.MINOR); diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java index 14056dd47c3..06e74995a4e 100644 --- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java +++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/SonarEngine.java @@ -42,7 +42,7 @@ import org.sonar.duplications.java.JavaTokenProducer; import org.sonar.duplications.statement.Statement; import org.sonar.duplications.statement.StatementChunker; import org.sonar.duplications.token.TokenChunker; -import org.sonar.persistence.dao.DuplicationDao; +import org.sonar.persistence.duplication.DuplicationDao; import org.sonar.plugins.cpd.index.DbDuplicationsIndex; import org.sonar.plugins.cpd.index.SonarDuplicationsIndex; diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/index/DbDuplicationsIndex.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/index/DbDuplicationsIndex.java index 831464be4e8..755b8e3766a 100644 --- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/index/DbDuplicationsIndex.java +++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/index/DbDuplicationsIndex.java @@ -30,8 +30,8 @@ import org.sonar.api.resources.Resource; import org.sonar.batch.index.ResourcePersister; import org.sonar.duplications.block.Block; import org.sonar.duplications.block.ByteArray; -import org.sonar.persistence.dao.DuplicationDao; -import org.sonar.persistence.model.DuplicationUnit; +import org.sonar.persistence.duplication.DuplicationDao; +import org.sonar.persistence.duplication.DuplicationUnitDto; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -71,10 +71,10 @@ public class DbDuplicationsIndex { public void prepareCache(Resource resource) { int resourceSnapshotId = getSnapshotIdFor(resource); - List units = dao.selectCandidates(resourceSnapshotId, lastSnapshotId); + List units = dao.selectCandidates(resourceSnapshotId, lastSnapshotId); cache.clear(); // TODO Godin: maybe remove conversion of units to blocks? - for (DuplicationUnit unit : units) { + for (DuplicationUnitDto unit : units) { String hash = unit.getHash(); String resourceKey = unit.getResourceKey(); int indexInFile = unit.getIndexInFile(); @@ -107,9 +107,9 @@ public class DbDuplicationsIndex { int resourceSnapshotId = getSnapshotIdFor(resource); // TODO Godin: maybe remove conversion of blocks to units? - List units = Lists.newArrayList(); + List units = Lists.newArrayList(); for (Block block : blocks) { - DuplicationUnit unit = new DuplicationUnit( + DuplicationUnitDto unit = new DuplicationUnitDto( currentProjectSnapshotId, resourceSnapshotId, block.getBlockHash().toString(), diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java index 99d6ed5ee7d..62990dc1eef 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java +++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BootstrapModule.java @@ -30,8 +30,8 @@ import org.sonar.batch.config.BatchSettingsEnhancer; import org.sonar.jpa.session.DatabaseSessionProvider; import org.sonar.jpa.session.DefaultDatabaseConnector; import org.sonar.jpa.session.ThreadLocalDatabaseSessionFactory; +import org.sonar.persistence.DaoUtils; import org.sonar.persistence.MyBatis; -import org.sonar.persistence.dao.DaoUtils; import java.net.URLClassLoader; diff --git a/sonar-core/src/main/java/org/sonar/persistence/dao/DaoUtils.java b/sonar-core/src/main/java/org/sonar/persistence/DaoUtils.java similarity index 77% rename from sonar-core/src/main/java/org/sonar/persistence/dao/DaoUtils.java rename to sonar-core/src/main/java/org/sonar/persistence/DaoUtils.java index 54efc6f793f..ce9df3619d6 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/dao/DaoUtils.java +++ b/sonar-core/src/main/java/org/sonar/persistence/DaoUtils.java @@ -17,11 +17,18 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence; import java.util.Arrays; import java.util.List; +import org.sonar.persistence.dashboard.ActiveDashboardDao; +import org.sonar.persistence.dashboard.DashboardDao; +import org.sonar.persistence.duplication.DuplicationDao; +import org.sonar.persistence.review.ReviewDao; +import org.sonar.persistence.rule.RuleDao; +import org.sonar.persistence.template.LoadedTemplateDao; + public final class DaoUtils { private DaoUtils() { diff --git a/sonar-core/src/main/java/org/sonar/persistence/MyBatis.java b/sonar-core/src/main/java/org/sonar/persistence/MyBatis.java index 3267866ff09..af790601f94 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/MyBatis.java +++ b/sonar-core/src/main/java/org/sonar/persistence/MyBatis.java @@ -34,22 +34,22 @@ import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory; import org.sonar.api.BatchComponent; import org.sonar.api.ServerComponent; -import org.sonar.persistence.model.ActiveDashboard; -import org.sonar.persistence.model.ActiveDashboardMapper; -import org.sonar.persistence.model.Dashboard; -import org.sonar.persistence.model.DashboardMapper; -import org.sonar.persistence.model.DuplicationMapper; -import org.sonar.persistence.model.DuplicationUnit; -import org.sonar.persistence.model.LoadedTemplate; -import org.sonar.persistence.model.LoadedTemplateMapper; -import org.sonar.persistence.model.Review; -import org.sonar.persistence.model.ReviewMapper; -import org.sonar.persistence.model.Rule; -import org.sonar.persistence.model.RuleMapper; -import org.sonar.persistence.model.Widget; -import org.sonar.persistence.model.WidgetMapper; -import org.sonar.persistence.model.WidgetProperty; -import org.sonar.persistence.model.WidgetPropertyMapper; +import org.sonar.persistence.dashboard.ActiveDashboardDto; +import org.sonar.persistence.dashboard.ActiveDashboardMapper; +import org.sonar.persistence.dashboard.DashboardDto; +import org.sonar.persistence.dashboard.DashboardMapper; +import org.sonar.persistence.dashboard.WidgetDto; +import org.sonar.persistence.dashboard.WidgetMapper; +import org.sonar.persistence.dashboard.WidgetPropertyDto; +import org.sonar.persistence.dashboard.WidgetPropertyMapper; +import org.sonar.persistence.duplication.DuplicationMapper; +import org.sonar.persistence.duplication.DuplicationUnitDto; +import org.sonar.persistence.review.ReviewDto; +import org.sonar.persistence.review.ReviewMapper; +import org.sonar.persistence.rule.RuleDto; +import org.sonar.persistence.rule.RuleMapper; +import org.sonar.persistence.template.LoadedTemplateDto; +import org.sonar.persistence.template.LoadedTemplateMapper; public class MyBatis implements BatchComponent, ServerComponent { @@ -66,14 +66,14 @@ public class MyBatis implements BatchComponent, ServerComponent { conf.setUseGeneratedKeys(true); conf.setLazyLoadingEnabled(false); - loadAlias(conf, "ActiveDashboard", ActiveDashboard.class); - loadAlias(conf, "Dashboard", Dashboard.class); - loadAlias(conf, "DuplicationUnit", DuplicationUnit.class); - loadAlias(conf, "LoadedTemplate", LoadedTemplate.class); - loadAlias(conf, "Review", Review.class); - loadAlias(conf, "Rule", Rule.class); - loadAlias(conf, "Widget", Widget.class); - loadAlias(conf, "WidgetProperty", WidgetProperty.class); + loadAlias(conf, "ActiveDashboard", ActiveDashboardDto.class); + loadAlias(conf, "Dashboard", DashboardDto.class); + loadAlias(conf, "DuplicationUnit", DuplicationUnitDto.class); + loadAlias(conf, "LoadedTemplate", LoadedTemplateDto.class); + loadAlias(conf, "Review", ReviewDto.class); + loadAlias(conf, "Rule", RuleDto.class); + loadAlias(conf, "Widget", WidgetDto.class); + loadAlias(conf, "WidgetProperty", WidgetPropertyDto.class); loadMapper(conf, ActiveDashboardMapper.class); loadMapper(conf, DashboardMapper.class); diff --git a/sonar-core/src/main/java/org/sonar/persistence/dao/ActiveDashboardDao.java b/sonar-core/src/main/java/org/sonar/persistence/dashboard/ActiveDashboardDao.java similarity index 87% rename from sonar-core/src/main/java/org/sonar/persistence/dao/ActiveDashboardDao.java rename to sonar-core/src/main/java/org/sonar/persistence/dashboard/ActiveDashboardDao.java index 9fcab4cb6cc..54394966840 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/dao/ActiveDashboardDao.java +++ b/sonar-core/src/main/java/org/sonar/persistence/dashboard/ActiveDashboardDao.java @@ -17,14 +17,12 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.dashboard; import org.apache.ibatis.session.SqlSession; import org.sonar.api.BatchComponent; import org.sonar.api.ServerComponent; import org.sonar.persistence.MyBatis; -import org.sonar.persistence.model.ActiveDashboard; -import org.sonar.persistence.model.ActiveDashboardMapper; public class ActiveDashboardDao implements BatchComponent, ServerComponent { @@ -34,11 +32,11 @@ public class ActiveDashboardDao implements BatchComponent, ServerComponent { this.mybatis = mybatis; } - public void insert(ActiveDashboard activeDashboard) { + public void insert(ActiveDashboardDto activeDashboardDto) { SqlSession session = mybatis.openSession(); ActiveDashboardMapper mapper = session.getMapper(ActiveDashboardMapper.class); try { - mapper.insert(activeDashboard); + mapper.insert(activeDashboardDto); session.commit(); } finally { session.close(); diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/ActiveDashboard.java b/sonar-core/src/main/java/org/sonar/persistence/dashboard/ActiveDashboardDto.java similarity index 96% rename from sonar-core/src/main/java/org/sonar/persistence/model/ActiveDashboard.java rename to sonar-core/src/main/java/org/sonar/persistence/dashboard/ActiveDashboardDto.java index 4d40321034d..2e8ad023144 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/ActiveDashboard.java +++ b/sonar-core/src/main/java/org/sonar/persistence/dashboard/ActiveDashboardDto.java @@ -17,12 +17,12 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.dashboard; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; -public class ActiveDashboard { +public class ActiveDashboardDto { private Long id; private Long dashboardId; diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/ActiveDashboardMapper.java b/sonar-core/src/main/java/org/sonar/persistence/dashboard/ActiveDashboardMapper.java similarity index 90% rename from sonar-core/src/main/java/org/sonar/persistence/model/ActiveDashboardMapper.java rename to sonar-core/src/main/java/org/sonar/persistence/dashboard/ActiveDashboardMapper.java index 421c30bf6bc..63b28ecf2fa 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/ActiveDashboardMapper.java +++ b/sonar-core/src/main/java/org/sonar/persistence/dashboard/ActiveDashboardMapper.java @@ -17,11 +17,12 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.dashboard; + public interface ActiveDashboardMapper { - void insert(ActiveDashboard activeDashboard); + void insert(ActiveDashboardDto activeDashboardDto); Integer selectMaxOrderIndexForNullUser(); diff --git a/sonar-core/src/main/java/org/sonar/persistence/dao/DashboardDao.java b/sonar-core/src/main/java/org/sonar/persistence/dashboard/DashboardDao.java similarity index 68% rename from sonar-core/src/main/java/org/sonar/persistence/dao/DashboardDao.java rename to sonar-core/src/main/java/org/sonar/persistence/dashboard/DashboardDao.java index 1d61dcf3b9d..edacc692d9e 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/dao/DashboardDao.java +++ b/sonar-core/src/main/java/org/sonar/persistence/dashboard/DashboardDao.java @@ -17,18 +17,12 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.dashboard; import org.apache.ibatis.session.SqlSession; import org.sonar.api.BatchComponent; import org.sonar.api.ServerComponent; import org.sonar.persistence.MyBatis; -import org.sonar.persistence.model.Dashboard; -import org.sonar.persistence.model.DashboardMapper; -import org.sonar.persistence.model.Widget; -import org.sonar.persistence.model.WidgetMapper; -import org.sonar.persistence.model.WidgetProperty; -import org.sonar.persistence.model.WidgetPropertyMapper; public class DashboardDao implements BatchComponent, ServerComponent { @@ -38,19 +32,19 @@ public class DashboardDao implements BatchComponent, ServerComponent { this.mybatis = mybatis; } - public void insert(Dashboard dashboard) { + public void insert(DashboardDto dashboardDto) { SqlSession session = mybatis.openSession(); DashboardMapper dashboardMapper = session.getMapper(DashboardMapper.class); WidgetMapper widgetMapper = session.getMapper(WidgetMapper.class); WidgetPropertyMapper widgetPropertyMapper = session.getMapper(WidgetPropertyMapper.class); try { - dashboardMapper.insert(dashboard); - for (Widget widget : dashboard.getWidgets()) { - widget.setDashboardId(dashboard.getId()); - widgetMapper.insert(widget); - for (WidgetProperty widgetProperty : widget.getWidgetProperties()) { - widgetProperty.setWidgetId(widget.getId()); - widgetPropertyMapper.insert(widgetProperty); + dashboardMapper.insert(dashboardDto); + for (WidgetDto widgetDto : dashboardDto.getWidgets()) { + widgetDto.setDashboardId(dashboardDto.getId()); + widgetMapper.insert(widgetDto); + for (WidgetPropertyDto widgetPropertyDto : widgetDto.getWidgetProperties()) { + widgetPropertyDto.setWidgetId(widgetDto.getId()); + widgetPropertyMapper.insert(widgetPropertyDto); } } session.commit(); diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/Dashboard.java b/sonar-core/src/main/java/org/sonar/persistence/dashboard/DashboardDto.java similarity index 91% rename from sonar-core/src/main/java/org/sonar/persistence/model/Dashboard.java rename to sonar-core/src/main/java/org/sonar/persistence/dashboard/DashboardDto.java index 91429cd1005..c32f401c2cd 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/Dashboard.java +++ b/sonar-core/src/main/java/org/sonar/persistence/dashboard/DashboardDto.java @@ -17,15 +17,16 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.dashboard; import java.util.Collection; import java.util.Date; import java.util.List; + import com.google.common.collect.Lists; -public class Dashboard { +public class DashboardDto { private Long id; private String key; @@ -36,7 +37,7 @@ public class Dashboard { private boolean shared; private Date createdAt; private Date updatedAt; - private List widgets = Lists.newArrayList(); + private List widgetDtos = Lists.newArrayList(); /** * @return the id @@ -176,16 +177,16 @@ public class Dashboard { /** * @return the widgets */ - public Collection getWidgets() { - return widgets; + public Collection getWidgets() { + return widgetDtos; } /** - * @param widget + * @param widgetDto * the widget to add */ - public void addWidget(Widget widget) { - widgets.add(widget); + public void addWidget(WidgetDto widgetDto) { + widgetDtos.add(widgetDto); } } diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/DashboardMapper.java b/sonar-core/src/main/java/org/sonar/persistence/dashboard/DashboardMapper.java similarity index 91% rename from sonar-core/src/main/java/org/sonar/persistence/model/DashboardMapper.java rename to sonar-core/src/main/java/org/sonar/persistence/dashboard/DashboardMapper.java index 5e46913d624..c1d89860e7e 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/DashboardMapper.java +++ b/sonar-core/src/main/java/org/sonar/persistence/dashboard/DashboardMapper.java @@ -17,10 +17,11 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.dashboard; + public interface DashboardMapper { - void insert(Dashboard dashboard); + void insert(DashboardDto dashboardDto); } diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/Widget.java b/sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetDto.java similarity index 90% rename from sonar-core/src/main/java/org/sonar/persistence/model/Widget.java rename to sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetDto.java index a90a4834819..df1c25bdfbc 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/Widget.java +++ b/sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetDto.java @@ -17,7 +17,7 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.dashboard; import java.util.Collection; import java.util.Date; @@ -25,7 +25,7 @@ import java.util.List; import com.google.common.collect.Lists; -public class Widget { +public class WidgetDto { private Long id; private Long dashboardId; @@ -37,7 +37,7 @@ public class Widget { private boolean configured; private Date createdAt; private Date updatedAt; - private List widgetProperties = Lists.newArrayList(); + private List widgetPropertyDtos = Lists.newArrayList(); /** * @return the id @@ -192,16 +192,16 @@ public class Widget { /** * @return the widgetProperties */ - public Collection getWidgetProperties() { - return widgetProperties; + public Collection getWidgetProperties() { + return widgetPropertyDtos; } /** - * @param widgetProperty + * @param widgetPropertyDto * the widgetProperty to set */ - public void addWidgetProperty(WidgetProperty widgetProperty) { - widgetProperties.add(widgetProperty); + public void addWidgetProperty(WidgetPropertyDto widgetPropertyDto) { + widgetPropertyDtos.add(widgetPropertyDto); } } diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/WidgetMapper.java b/sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetMapper.java similarity index 92% rename from sonar-core/src/main/java/org/sonar/persistence/model/WidgetMapper.java rename to sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetMapper.java index 6a8e5f54d34..d84ee52c5a0 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/WidgetMapper.java +++ b/sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetMapper.java @@ -17,10 +17,10 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.dashboard; public interface WidgetMapper { - void insert(Widget widget); + void insert(WidgetDto widgetDto); } diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/WidgetProperty.java b/sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetPropertyDto.java similarity index 96% rename from sonar-core/src/main/java/org/sonar/persistence/model/WidgetProperty.java rename to sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetPropertyDto.java index e4613b1ccbf..d71e64228e4 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/WidgetProperty.java +++ b/sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetPropertyDto.java @@ -17,9 +17,9 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.dashboard; -public class WidgetProperty { +public class WidgetPropertyDto { private Long id; private Long widgetId; diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/WidgetPropertyMapper.java b/sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetPropertyMapper.java similarity index 90% rename from sonar-core/src/main/java/org/sonar/persistence/model/WidgetPropertyMapper.java rename to sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetPropertyMapper.java index 987b2a50eba..6a14fb294e8 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/WidgetPropertyMapper.java +++ b/sonar-core/src/main/java/org/sonar/persistence/dashboard/WidgetPropertyMapper.java @@ -17,10 +17,10 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.dashboard; public interface WidgetPropertyMapper { - void insert(WidgetProperty widgetProperty); + void insert(WidgetPropertyDto widgetPropertyDto); } diff --git a/sonar-core/src/main/java/org/sonar/persistence/dao/DuplicationDao.java b/sonar-core/src/main/java/org/sonar/persistence/duplication/DuplicationDao.java similarity index 85% rename from sonar-core/src/main/java/org/sonar/persistence/dao/DuplicationDao.java rename to sonar-core/src/main/java/org/sonar/persistence/duplication/DuplicationDao.java index a781ac25fae..b6575f15817 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/dao/DuplicationDao.java +++ b/sonar-core/src/main/java/org/sonar/persistence/duplication/DuplicationDao.java @@ -17,15 +17,13 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.duplication; import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.session.SqlSession; import org.sonar.api.BatchComponent; import org.sonar.api.ServerComponent; import org.sonar.persistence.MyBatis; -import org.sonar.persistence.model.DuplicationMapper; -import org.sonar.persistence.model.DuplicationUnit; import java.util.Collection; import java.util.List; @@ -38,7 +36,7 @@ public class DuplicationDao implements BatchComponent, ServerComponent { this.mybatis = mybatis; } - public List selectCandidates(int resourceSnapshotId, Integer lastSnapshotId) { + public List selectCandidates(int resourceSnapshotId, Integer lastSnapshotId) { SqlSession sqlSession = mybatis.openSession(); try { DuplicationMapper mapper = sqlSession.getMapper(DuplicationMapper.class); @@ -52,11 +50,11 @@ public class DuplicationDao implements BatchComponent, ServerComponent { * Insert rows in the table DUPLICATIONS_INDEX. * Note that generated ids are not returned. */ - public void insert(Collection units) { + public void insert(Collection units) { SqlSession session = mybatis.openSession(ExecutorType.BATCH); try { DuplicationMapper mapper = session.getMapper(DuplicationMapper.class); - for (DuplicationUnit unit : units) { + for (DuplicationUnitDto unit : units) { mapper.batchInsert(unit); } session.commit(); diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/DuplicationMapper.java b/sonar-core/src/main/java/org/sonar/persistence/duplication/DuplicationMapper.java similarity index 89% rename from sonar-core/src/main/java/org/sonar/persistence/model/DuplicationMapper.java rename to sonar-core/src/main/java/org/sonar/persistence/duplication/DuplicationMapper.java index 4bf65ce760a..33f93430066 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/DuplicationMapper.java +++ b/sonar-core/src/main/java/org/sonar/persistence/duplication/DuplicationMapper.java @@ -17,7 +17,7 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.duplication; import java.util.List; @@ -25,11 +25,11 @@ import org.apache.ibatis.annotations.Param; public interface DuplicationMapper { - List selectCandidates( + List selectCandidates( @Param("resource_snapshot_id") int resourceSnapshotId, @Param("last_project_snapshot_id") Integer lastSnapshotId); - void batchInsert(DuplicationUnit unit); + void batchInsert(DuplicationUnitDto unit); } diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/DuplicationUnit.java b/sonar-core/src/main/java/org/sonar/persistence/duplication/DuplicationUnitDto.java similarity index 90% rename from sonar-core/src/main/java/org/sonar/persistence/model/DuplicationUnit.java rename to sonar-core/src/main/java/org/sonar/persistence/duplication/DuplicationUnitDto.java index 618587f0deb..5770211ef63 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/DuplicationUnit.java +++ b/sonar-core/src/main/java/org/sonar/persistence/duplication/DuplicationUnitDto.java @@ -17,12 +17,12 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.duplication; /** * A simple DTO (Data Transfer Object) class that provides the mapping of data to a table. */ -public class DuplicationUnit { +public class DuplicationUnitDto { private Long id; @@ -36,10 +36,10 @@ public class DuplicationUnit { private String resourceKey; - public DuplicationUnit() { + public DuplicationUnitDto() { } - public DuplicationUnit(Integer projectSnapshotId, Integer snapshotId, String hash, Integer indexInFile, Integer startLine, Integer endLine) { + public DuplicationUnitDto(Integer projectSnapshotId, Integer snapshotId, String hash, Integer indexInFile, Integer startLine, Integer endLine) { this.projectSnapshotId = projectSnapshotId; this.snapshotId = snapshotId; this.hash = hash; diff --git a/sonar-core/src/main/java/org/sonar/persistence/dao/ReviewDao.java b/sonar-core/src/main/java/org/sonar/persistence/review/ReviewDao.java similarity index 86% rename from sonar-core/src/main/java/org/sonar/persistence/dao/ReviewDao.java rename to sonar-core/src/main/java/org/sonar/persistence/review/ReviewDao.java index 4e58fba69af..1e2964b0929 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/dao/ReviewDao.java +++ b/sonar-core/src/main/java/org/sonar/persistence/review/ReviewDao.java @@ -17,16 +17,13 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.review; import com.google.common.collect.Lists; import org.apache.ibatis.session.SqlSession; import org.sonar.api.BatchComponent; import org.sonar.api.ServerComponent; import org.sonar.persistence.MyBatis; -import org.sonar.persistence.model.Review; -import org.sonar.persistence.model.ReviewMapper; -import org.sonar.persistence.model.ReviewQuery; import java.util.List; @@ -37,7 +34,7 @@ public class ReviewDao implements BatchComponent, ServerComponent { this.mybatis = mybatis; } - public Review selectById(long id) { + public ReviewDto selectById(long id) { SqlSession sqlSession = mybatis.openSession(); try { ReviewMapper mapper = sqlSession.getMapper(ReviewMapper.class); @@ -47,7 +44,7 @@ public class ReviewDao implements BatchComponent, ServerComponent { } } - public List selectByResource(int resourceId) { + public List selectByResource(int resourceId) { SqlSession sqlSession = mybatis.openSession(); try { ReviewMapper mapper = sqlSession.getMapper(ReviewMapper.class); @@ -57,11 +54,11 @@ public class ReviewDao implements BatchComponent, ServerComponent { } } - public List selectByQuery(ReviewQuery query) { + public List selectByQuery(ReviewQuery query) { SqlSession sqlSession = mybatis.openSession(); try { ReviewMapper mapper = sqlSession.getMapper(ReviewMapper.class); - List result; + List result; if (query.needToPartitionQuery()) { result = Lists.newArrayList(); for (ReviewQuery partitionedQuery : query.partition()) { diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/Review.java b/sonar-core/src/main/java/org/sonar/persistence/review/ReviewDto.java similarity index 80% rename from sonar-core/src/main/java/org/sonar/persistence/model/Review.java rename to sonar-core/src/main/java/org/sonar/persistence/review/ReviewDto.java index 4f680448212..33f46196e46 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/Review.java +++ b/sonar-core/src/main/java/org/sonar/persistence/review/ReviewDto.java @@ -17,7 +17,7 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.review; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; @@ -27,7 +27,7 @@ import java.util.Date; /** * @since 2.13 */ -public class Review { +public class ReviewDto { public static final String STATUS_OPENED = "OPEN"; public static final String STATUS_REOPENED = "REOPENED"; @@ -55,7 +55,7 @@ public class Review { return id; } - public Review setId(Long id) { + public ReviewDto setId(Long id) { this.id = id; return this; } @@ -64,7 +64,7 @@ public class Review { return userId; } - public Review setUserId(Integer userId) { + public ReviewDto setUserId(Integer userId) { this.userId = userId; return this; } @@ -73,7 +73,7 @@ public class Review { return assigneeId; } - public Review setAssigneeId(Integer assigneeId) { + public ReviewDto setAssigneeId(Integer assigneeId) { this.assigneeId = assigneeId; return this; } @@ -82,7 +82,7 @@ public class Review { return title; } - public Review setTitle(String title) { + public ReviewDto setTitle(String title) { this.title = title; return this; } @@ -91,7 +91,7 @@ public class Review { return status; } - public Review setStatus(String status) { + public ReviewDto setStatus(String status) { this.status = status; return this; } @@ -100,7 +100,7 @@ public class Review { return resolution; } - public Review setResolution(String resolution) { + public ReviewDto setResolution(String resolution) { this.resolution = resolution; return this; } @@ -109,7 +109,7 @@ public class Review { return violationPermanentId; } - public Review setViolationPermanentId(Integer violationPermanentId) { + public ReviewDto setViolationPermanentId(Integer violationPermanentId) { this.violationPermanentId = violationPermanentId; return this; } @@ -118,7 +118,7 @@ public class Review { return projectId; } - public Review setProjectId(Integer projectId) { + public ReviewDto setProjectId(Integer projectId) { this.projectId = projectId; return this; } @@ -127,7 +127,7 @@ public class Review { return resourceId; } - public Review setResourceId(Integer resourceId) { + public ReviewDto setResourceId(Integer resourceId) { this.resourceId = resourceId; return this; } @@ -136,7 +136,7 @@ public class Review { return line; } - public Review setLine(Integer line) { + public ReviewDto setLine(Integer line) { this.line = line; return this; } @@ -145,7 +145,7 @@ public class Review { return createdAt; } - public Review setCreatedAt(Date createdAt) { + public ReviewDto setCreatedAt(Date createdAt) { this.createdAt = createdAt; return this; } @@ -154,7 +154,7 @@ public class Review { return updatedAt; } - public Review setUpdatedAt(Date updatedAt) { + public ReviewDto setUpdatedAt(Date updatedAt) { this.updatedAt = updatedAt; return this; } @@ -163,7 +163,7 @@ public class Review { return severity; } - public Review setSeverity(String severity) { + public ReviewDto setSeverity(String severity) { this.severity = severity; return this; } @@ -172,7 +172,7 @@ public class Review { return ruleId; } - public Review setRuleId(Integer ruleId) { + public ReviewDto setRuleId(Integer ruleId) { this.ruleId = ruleId; return this; } @@ -181,7 +181,7 @@ public class Review { return manualViolation; } - public Review setManualViolation(Boolean b) { + public ReviewDto setManualViolation(Boolean b) { this.manualViolation = b; return this; } @@ -190,7 +190,7 @@ public class Review { return manualSeverity; } - public Review setManualSeverity(Boolean b) { + public ReviewDto setManualSeverity(Boolean b) { this.manualSeverity = b; return this; } diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/ReviewMapper.java b/sonar-core/src/main/java/org/sonar/persistence/review/ReviewMapper.java similarity index 77% rename from sonar-core/src/main/java/org/sonar/persistence/model/ReviewMapper.java rename to sonar-core/src/main/java/org/sonar/persistence/review/ReviewMapper.java index 2eb0c23025a..dccdb518eb9 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/ReviewMapper.java +++ b/sonar-core/src/main/java/org/sonar/persistence/review/ReviewMapper.java @@ -17,7 +17,7 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.review; import org.apache.ibatis.annotations.Param; @@ -27,11 +27,11 @@ import java.util.List; * @since 2.13 */ public interface ReviewMapper { - Review selectById(long id); + ReviewDto selectById(long id); - List selectByResource(int resourceId); + List selectByResource(int resourceId); - List selectByQuery(ReviewQuery query); + List selectByQuery(ReviewQuery query); - List selectCloseables(@Param("resourceId") int resourceId, @Param("snapshotId") int snapshotId); + List selectCloseables(@Param("resourceId") int resourceId, @Param("snapshotId") int snapshotId); } diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/ReviewQuery.java b/sonar-core/src/main/java/org/sonar/persistence/review/ReviewQuery.java similarity index 97% rename from sonar-core/src/main/java/org/sonar/persistence/model/ReviewQuery.java rename to sonar-core/src/main/java/org/sonar/persistence/review/ReviewQuery.java index 9873e2bedfc..8f3cdda15bb 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/ReviewQuery.java +++ b/sonar-core/src/main/java/org/sonar/persistence/review/ReviewQuery.java @@ -17,7 +17,7 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.review; import com.google.common.collect.Lists; import org.sonar.persistence.DatabaseUtils; @@ -128,7 +128,7 @@ public final class ReviewQuery { return this; } - public boolean needToPartitionQuery() { + protected boolean needToPartitionQuery() { return violationPermanentIds != null && violationPermanentIds.size() > DatabaseUtils.MAX_IN_ELEMENTS; } diff --git a/sonar-core/src/main/java/org/sonar/persistence/dao/RuleDao.java b/sonar-core/src/main/java/org/sonar/persistence/rule/RuleDao.java similarity index 89% rename from sonar-core/src/main/java/org/sonar/persistence/dao/RuleDao.java rename to sonar-core/src/main/java/org/sonar/persistence/rule/RuleDao.java index 1332b04d44a..0843ca8728b 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/dao/RuleDao.java +++ b/sonar-core/src/main/java/org/sonar/persistence/rule/RuleDao.java @@ -17,14 +17,12 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.rule; import org.apache.ibatis.session.SqlSession; import org.sonar.api.BatchComponent; import org.sonar.api.ServerComponent; import org.sonar.persistence.MyBatis; -import org.sonar.persistence.model.Rule; -import org.sonar.persistence.model.RuleMapper; import java.util.List; @@ -36,7 +34,7 @@ public class RuleDao implements BatchComponent, ServerComponent { this.mybatis = mybatis; } - public List selectAll() { + public List selectAll() { SqlSession sqlSession = mybatis.openSession(); try { RuleMapper mapper = sqlSession.getMapper(RuleMapper.class); @@ -46,7 +44,7 @@ public class RuleDao implements BatchComponent, ServerComponent { } } - public Rule selectById(Long id) { + public RuleDto selectById(Long id) { SqlSession sqlSession = mybatis.openSession(); try { RuleMapper mapper = sqlSession.getMapper(RuleMapper.class); diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/Rule.java b/sonar-core/src/main/java/org/sonar/persistence/rule/RuleDto.java similarity index 96% rename from sonar-core/src/main/java/org/sonar/persistence/model/Rule.java rename to sonar-core/src/main/java/org/sonar/persistence/rule/RuleDto.java index d86d68c498b..8dbed520350 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/Rule.java +++ b/sonar-core/src/main/java/org/sonar/persistence/rule/RuleDto.java @@ -17,9 +17,9 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.rule; -public class Rule { +public class RuleDto { private Long id; private String repositoryKey; private String ruleKey; diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/RuleMapper.java b/sonar-core/src/main/java/org/sonar/persistence/rule/RuleMapper.java similarity index 90% rename from sonar-core/src/main/java/org/sonar/persistence/model/RuleMapper.java rename to sonar-core/src/main/java/org/sonar/persistence/rule/RuleMapper.java index 3e22a222bae..c82eee8c805 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/RuleMapper.java +++ b/sonar-core/src/main/java/org/sonar/persistence/rule/RuleMapper.java @@ -17,11 +17,11 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.rule; import java.util.List; public interface RuleMapper { - List selectAll(); - Rule selectById(Long id); + List selectAll(); + RuleDto selectById(Long id); } diff --git a/sonar-core/src/main/java/org/sonar/persistence/dao/LoadedTemplateDao.java b/sonar-core/src/main/java/org/sonar/persistence/template/LoadedTemplateDao.java similarity index 84% rename from sonar-core/src/main/java/org/sonar/persistence/dao/LoadedTemplateDao.java rename to sonar-core/src/main/java/org/sonar/persistence/template/LoadedTemplateDao.java index 88226fab091..4c83635791e 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/dao/LoadedTemplateDao.java +++ b/sonar-core/src/main/java/org/sonar/persistence/template/LoadedTemplateDao.java @@ -17,14 +17,12 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.template; import org.apache.ibatis.session.SqlSession; import org.sonar.api.BatchComponent; import org.sonar.api.ServerComponent; import org.sonar.persistence.MyBatis; -import org.sonar.persistence.model.LoadedTemplate; -import org.sonar.persistence.model.LoadedTemplateMapper; public class LoadedTemplateDao implements BatchComponent, ServerComponent { @@ -34,7 +32,7 @@ public class LoadedTemplateDao implements BatchComponent, ServerComponent { this.mybatis = mybatis; } - public LoadedTemplate selectByKeyAndType(String key, String type) { + public LoadedTemplateDto selectByKeyAndType(String key, String type) { SqlSession session = mybatis.openSession(); LoadedTemplateMapper mapper = session.getMapper(LoadedTemplateMapper.class); try { @@ -44,11 +42,11 @@ public class LoadedTemplateDao implements BatchComponent, ServerComponent { } } - public void insert(LoadedTemplate loadedTemplate) { + public void insert(LoadedTemplateDto loadedTemplateDto) { SqlSession session = mybatis.openSession(); LoadedTemplateMapper mapper = session.getMapper(LoadedTemplateMapper.class); try { - mapper.insert(loadedTemplate); + mapper.insert(loadedTemplateDto); session.commit(); } finally { session.close(); diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/LoadedTemplate.java b/sonar-core/src/main/java/org/sonar/persistence/template/LoadedTemplateDto.java similarity index 93% rename from sonar-core/src/main/java/org/sonar/persistence/model/LoadedTemplate.java rename to sonar-core/src/main/java/org/sonar/persistence/template/LoadedTemplateDto.java index 9ca82f68b13..17f6168628e 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/LoadedTemplate.java +++ b/sonar-core/src/main/java/org/sonar/persistence/template/LoadedTemplateDto.java @@ -17,12 +17,12 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.template; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; -public class LoadedTemplate { +public class LoadedTemplateDto { public static final String DASHBOARD_TYPE = "DASHBOARD"; @@ -33,14 +33,14 @@ public class LoadedTemplate { /** * Default constructor */ - public LoadedTemplate() { + public LoadedTemplateDto() { } /** * @param key * @param type */ - public LoadedTemplate(String key, String type) { + public LoadedTemplateDto(String key, String type) { super(); this.key = key; this.type = type; diff --git a/sonar-core/src/main/java/org/sonar/persistence/model/LoadedTemplateMapper.java b/sonar-core/src/main/java/org/sonar/persistence/template/LoadedTemplateMapper.java similarity index 84% rename from sonar-core/src/main/java/org/sonar/persistence/model/LoadedTemplateMapper.java rename to sonar-core/src/main/java/org/sonar/persistence/template/LoadedTemplateMapper.java index 8c6c3c3d1de..134015bec0f 100644 --- a/sonar-core/src/main/java/org/sonar/persistence/model/LoadedTemplateMapper.java +++ b/sonar-core/src/main/java/org/sonar/persistence/template/LoadedTemplateMapper.java @@ -17,14 +17,14 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.model; +package org.sonar.persistence.template; import org.apache.ibatis.annotations.Param; public interface LoadedTemplateMapper { - LoadedTemplate selectByKeyAndType(@Param("key") String key, @Param("type") String type); + LoadedTemplateDto selectByKeyAndType(@Param("key") String key, @Param("type") String type); - void insert(LoadedTemplate template); + void insert(LoadedTemplateDto template); } diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/ActiveDashboardMapper-oracle.xml b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/ActiveDashboardMapper-oracle.xml similarity index 90% rename from sonar-core/src/main/resources/org/sonar/persistence/model/ActiveDashboardMapper-oracle.xml rename to sonar-core/src/main/resources/org/sonar/persistence/dashboard/ActiveDashboardMapper-oracle.xml index a03aa4c2b13..e239f77a17f 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/ActiveDashboardMapper-oracle.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/ActiveDashboardMapper-oracle.xml @@ -1,7 +1,7 @@ - + diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/ActiveDashboardMapper.xml b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/ActiveDashboardMapper.xml similarity index 88% rename from sonar-core/src/main/resources/org/sonar/persistence/model/ActiveDashboardMapper.xml rename to sonar-core/src/main/resources/org/sonar/persistence/dashboard/ActiveDashboardMapper.xml index 303d08df62a..9b4b2220b5b 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/ActiveDashboardMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/ActiveDashboardMapper.xml @@ -1,7 +1,7 @@ - + INSERT INTO active_dashboards (dashboard_id, user_id, order_index) diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/DashboardMapper-oracle.xml b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/DashboardMapper-oracle.xml similarity index 91% rename from sonar-core/src/main/resources/org/sonar/persistence/model/DashboardMapper-oracle.xml rename to sonar-core/src/main/resources/org/sonar/persistence/dashboard/DashboardMapper-oracle.xml index 6bdc37cac9d..4f287e953bc 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/DashboardMapper-oracle.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/DashboardMapper-oracle.xml @@ -1,7 +1,7 @@ - + diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/DashboardMapper.xml b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/DashboardMapper.xml similarity index 89% rename from sonar-core/src/main/resources/org/sonar/persistence/model/DashboardMapper.xml rename to sonar-core/src/main/resources/org/sonar/persistence/dashboard/DashboardMapper.xml index de0975119bb..8c1a7c3f8c4 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/DashboardMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/DashboardMapper.xml @@ -1,7 +1,7 @@ - + INSERT INTO dashboards (kee, user_id, name, description, column_layout, shared, created_at, updated_at) diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/WidgetMapper-oracle.xml b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetMapper-oracle.xml similarity index 92% rename from sonar-core/src/main/resources/org/sonar/persistence/model/WidgetMapper-oracle.xml rename to sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetMapper-oracle.xml index 7c9891c21be..328fd919710 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/WidgetMapper-oracle.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetMapper-oracle.xml @@ -1,7 +1,7 @@ - + diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/WidgetMapper.xml b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetMapper.xml similarity index 90% rename from sonar-core/src/main/resources/org/sonar/persistence/model/WidgetMapper.xml rename to sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetMapper.xml index 8a10d7b57f8..3d9598bc2cd 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/WidgetMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetMapper.xml @@ -1,7 +1,7 @@ - + INSERT INTO widgets (dashboard_id, widget_key, name, description, column_index, row_index, configured, created_at, updated_at) diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/WidgetPropertyMapper-oracle.xml b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetPropertyMapper-oracle.xml similarity index 87% rename from sonar-core/src/main/resources/org/sonar/persistence/model/WidgetPropertyMapper-oracle.xml rename to sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetPropertyMapper-oracle.xml index 7dc61274337..35234fd036f 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/WidgetPropertyMapper-oracle.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetPropertyMapper-oracle.xml @@ -1,7 +1,7 @@ - + INSERT INTO widget_properties (id, widget_id, kee, text_value, value_type) diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/WidgetPropertyMapper.xml b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetPropertyMapper.xml similarity index 86% rename from sonar-core/src/main/resources/org/sonar/persistence/model/WidgetPropertyMapper.xml rename to sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetPropertyMapper.xml index 3eb252ad97a..9fafa59e58f 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/WidgetPropertyMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/dashboard/WidgetPropertyMapper.xml @@ -1,7 +1,7 @@ - + INSERT INTO widget_properties (widget_id, kee, text_value, value_type) diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/DuplicationMapper-mssql.xml b/sonar-core/src/main/resources/org/sonar/persistence/duplication/DuplicationMapper-mssql.xml similarity index 94% rename from sonar-core/src/main/resources/org/sonar/persistence/model/DuplicationMapper-mssql.xml rename to sonar-core/src/main/resources/org/sonar/persistence/duplication/DuplicationMapper-mssql.xml index bc1837a35fa..ff100644a9c 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/DuplicationMapper-mssql.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/duplication/DuplicationMapper-mssql.xml @@ -1,7 +1,7 @@ - + SELECT DISTINCT to_blocks.hash hash, res.kee resourceKey, to_blocks.index_in_file indexInFile, to_blocks.start_line startLine, to_blocks.end_line endLine diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/DuplicationMapper.xml b/sonar-core/src/main/resources/org/sonar/persistence/duplication/DuplicationMapper.xml similarity index 94% rename from sonar-core/src/main/resources/org/sonar/persistence/model/DuplicationMapper.xml rename to sonar-core/src/main/resources/org/sonar/persistence/duplication/DuplicationMapper.xml index 5f39d7dea7c..1dc84fbad26 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/DuplicationMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/duplication/DuplicationMapper.xml @@ -1,7 +1,7 @@ - + - select from reviews diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/RuleMapper.xml b/sonar-core/src/main/resources/org/sonar/persistence/rule/RuleMapper.xml similarity index 90% rename from sonar-core/src/main/resources/org/sonar/persistence/model/RuleMapper.xml rename to sonar-core/src/main/resources/org/sonar/persistence/rule/RuleMapper.xml index ceedad76611..23f776ccfcc 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/RuleMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/rule/RuleMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/LoadedTemplateMapper-oracle.xml b/sonar-core/src/main/resources/org/sonar/persistence/template/LoadedTemplateMapper-oracle.xml similarity index 92% rename from sonar-core/src/main/resources/org/sonar/persistence/model/LoadedTemplateMapper-oracle.xml rename to sonar-core/src/main/resources/org/sonar/persistence/template/LoadedTemplateMapper-oracle.xml index f6af7c06b64..f083ee02218 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/LoadedTemplateMapper-oracle.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/template/LoadedTemplateMapper-oracle.xml @@ -1,7 +1,7 @@ - + diff --git a/sonar-core/src/main/resources/org/sonar/persistence/model/LoadedTemplateMapper.xml b/sonar-core/src/main/resources/org/sonar/persistence/template/LoadedTemplateMapper.xml similarity index 91% rename from sonar-core/src/main/resources/org/sonar/persistence/model/LoadedTemplateMapper.xml rename to sonar-core/src/main/resources/org/sonar/persistence/template/LoadedTemplateMapper.xml index 86544ae8e2f..b3b0e3f8ffe 100644 --- a/sonar-core/src/main/resources/org/sonar/persistence/model/LoadedTemplateMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/persistence/template/LoadedTemplateMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/DaoTestCase.java b/sonar-core/src/test/java/org/sonar/persistence/DaoTestCase.java similarity index 99% rename from sonar-core/src/test/java/org/sonar/persistence/dao/DaoTestCase.java rename to sonar-core/src/test/java/org/sonar/persistence/DaoTestCase.java index 03f25d86e7d..0806dea79cc 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/DaoTestCase.java +++ b/sonar-core/src/test/java/org/sonar/persistence/DaoTestCase.java @@ -17,7 +17,7 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence; import org.apache.commons.io.IOUtils; import org.dbunit.Assertion; diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/DaoUtilsTest.java b/sonar-core/src/test/java/org/sonar/persistence/DaoUtilsTest.java similarity index 94% rename from sonar-core/src/test/java/org/sonar/persistence/dao/DaoUtilsTest.java rename to sonar-core/src/test/java/org/sonar/persistence/DaoUtilsTest.java index efc5579d4f9..9a6459dc21a 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/DaoUtilsTest.java +++ b/sonar-core/src/test/java/org/sonar/persistence/DaoUtilsTest.java @@ -17,9 +17,10 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence; import org.junit.Test; +import org.sonar.persistence.DaoUtils; import static org.hamcrest.Matchers.greaterThan; import static org.junit.Assert.assertThat; diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/DatabaseCommands.java b/sonar-core/src/test/java/org/sonar/persistence/DatabaseCommands.java similarity index 99% rename from sonar-core/src/test/java/org/sonar/persistence/dao/DatabaseCommands.java rename to sonar-core/src/test/java/org/sonar/persistence/DatabaseCommands.java index 61c5bc13caa..ea30a991ee1 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/DatabaseCommands.java +++ b/sonar-core/src/test/java/org/sonar/persistence/DatabaseCommands.java @@ -17,7 +17,7 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence; import org.apache.commons.lang.StringUtils; import org.dbunit.dataset.datatype.DefaultDataTypeFactory; diff --git a/sonar-core/src/test/java/org/sonar/persistence/MyBatisTest.java b/sonar-core/src/test/java/org/sonar/persistence/MyBatisTest.java index f59f232f72b..3807f1e625c 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/MyBatisTest.java +++ b/sonar-core/src/test/java/org/sonar/persistence/MyBatisTest.java @@ -26,7 +26,7 @@ import org.hamcrest.core.Is; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.sonar.persistence.model.RuleMapper; +import org.sonar.persistence.rule.RuleMapper; import java.io.IOException; diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/DashboardDaoTest.java b/sonar-core/src/test/java/org/sonar/persistence/dao/DashboardDaoTest.java deleted file mode 100644 index 1824cd169bd..00000000000 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/DashboardDaoTest.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Sonar, open source software quality management tool. - * Copyright (C) 2008-2011 SonarSource - * mailto:contact AT sonarsource DOT com - * - * Sonar is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * Sonar is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with Sonar; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 - */ -package org.sonar.persistence.dao; - -import java.util.Date; - -import org.junit.Before; -import org.junit.Test; -import org.sonar.persistence.model.Dashboard; -import org.sonar.persistence.model.Widget; -import org.sonar.persistence.model.WidgetProperty; - -public class DashboardDaoTest extends DaoTestCase { - - private DashboardDao dao; - - @Before - public void createDao() throws Exception { - dao = new DashboardDao(getMyBatis()); - } - - @Test - public void shouldInsert() throws Exception { - setupData("shouldInsert"); - Date aDate = new Date(); - - Dashboard dashboard = new Dashboard(); - dashboard.setKey("d-key"); - dashboard.setUserId(6L); - dashboard.setName("My Dashboard"); - dashboard.setDescription("This is a dashboard"); - dashboard.setColumnLayout("100%"); - dashboard.setShared(true); - dashboard.setCreatedAt(aDate); - dashboard.setUpdatedAt(aDate); - - Widget widget = new Widget(); - widget.setKey("code_coverage"); - widget.setName("Code coverage"); - widget.setDescription("Widget for code coverage"); - widget.setColumnIndex(13); - widget.setRowIndex(14); - widget.setConfigured(true); - widget.setCreatedAt(aDate); - widget.setUpdatedAt(aDate); - dashboard.addWidget(widget); - - WidgetProperty property = new WidgetProperty(); - property.setKey("displayITs"); - property.setValue("true"); - property.setValueType("BOOLEAN"); - widget.addWidgetProperty(property); - - dao.insert(dashboard); - - checkTables("shouldInsert", new String[] { "created_at", "updated_at" }, "dashboards", "widgets", "widget_properties"); - } - - @Test - public void shouldInsertWithNullableColumns() throws Exception { - setupData("shouldInsert"); - - Dashboard dashboard = new Dashboard(); - dashboard.setKey("d-key"); - dashboard.setUserId(null); - dashboard.setName(null); - dashboard.setDescription(null); - dashboard.setColumnLayout(null); - dashboard.setShared(true); - dashboard.setCreatedAt(null); - dashboard.setUpdatedAt(null); - - Widget widget = new Widget(); - widget.setKey("code_coverage"); - widget.setName(null); - widget.setDescription(null); - widget.setColumnIndex(null); - widget.setRowIndex(null); - widget.setConfigured(true); - widget.setCreatedAt(null); - widget.setUpdatedAt(null); - dashboard.addWidget(widget); - - WidgetProperty property = new WidgetProperty(); - property.setKey(null); - property.setValue(null); - property.setValueType(null); - widget.addWidgetProperty(property); - - dao.insert(dashboard); - - checkTables("shouldInsertWithNullableColumns", "dashboards", "widgets", "widget_properties"); - } - -} diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/ActiveDashboardDaoTest.java b/sonar-core/src/test/java/org/sonar/persistence/dashboard/ActiveDashboardDaoTest.java similarity index 87% rename from sonar-core/src/test/java/org/sonar/persistence/dao/ActiveDashboardDaoTest.java rename to sonar-core/src/test/java/org/sonar/persistence/dashboard/ActiveDashboardDaoTest.java index d5a24070eb2..6bc5eaf4977 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/ActiveDashboardDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/persistence/dashboard/ActiveDashboardDaoTest.java @@ -17,7 +17,7 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.dashboard; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; @@ -25,7 +25,9 @@ import static org.junit.Assert.assertThat; import org.junit.Before; import org.junit.Test; -import org.sonar.persistence.model.ActiveDashboard; +import org.sonar.persistence.DaoTestCase; +import org.sonar.persistence.dashboard.ActiveDashboardDao; +import org.sonar.persistence.dashboard.ActiveDashboardDto; public class ActiveDashboardDaoTest extends DaoTestCase { @@ -40,7 +42,7 @@ public class ActiveDashboardDaoTest extends DaoTestCase { public void shouldInsert() throws Exception { setupData("shouldInsert"); - ActiveDashboard dashboard = new ActiveDashboard(); + ActiveDashboardDto dashboard = new ActiveDashboardDto(); dashboard.setDashboardId(2L); dashboard.setUserId(3L); dashboard.setOrderIndex(4); @@ -53,7 +55,7 @@ public class ActiveDashboardDaoTest extends DaoTestCase { public void shouldInsertWithNoUser() throws Exception { setupData("shouldInsert"); - ActiveDashboard dashboard = new ActiveDashboard(); + ActiveDashboardDto dashboard = new ActiveDashboardDto(); dashboard.setDashboardId(2L); dashboard.setOrderIndex(4); dao.insert(dashboard); diff --git a/sonar-core/src/test/java/org/sonar/persistence/dashboard/DashboardDaoTest.java b/sonar-core/src/test/java/org/sonar/persistence/dashboard/DashboardDaoTest.java new file mode 100644 index 00000000000..9b8c882e100 --- /dev/null +++ b/sonar-core/src/test/java/org/sonar/persistence/dashboard/DashboardDaoTest.java @@ -0,0 +1,114 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2008-2011 SonarSource + * mailto:contact AT sonarsource DOT com + * + * Sonar is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * Sonar is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Sonar; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 + */ +package org.sonar.persistence.dashboard; + +import java.util.Date; + +import org.junit.Before; +import org.junit.Test; +import org.sonar.persistence.DaoTestCase; +import org.sonar.persistence.dashboard.DashboardDao; +import org.sonar.persistence.dashboard.DashboardDto; +import org.sonar.persistence.dashboard.WidgetDto; +import org.sonar.persistence.dashboard.WidgetPropertyDto; + +public class DashboardDaoTest extends DaoTestCase { + + private DashboardDao dao; + + @Before + public void createDao() throws Exception { + dao = new DashboardDao(getMyBatis()); + } + + @Test + public void shouldInsert() throws Exception { + setupData("shouldInsert"); + Date aDate = new Date(); + + DashboardDto dashboardDto = new DashboardDto(); + dashboardDto.setKey("d-key"); + dashboardDto.setUserId(6L); + dashboardDto.setName("My Dashboard"); + dashboardDto.setDescription("This is a dashboard"); + dashboardDto.setColumnLayout("100%"); + dashboardDto.setShared(true); + dashboardDto.setCreatedAt(aDate); + dashboardDto.setUpdatedAt(aDate); + + WidgetDto widgetDto = new WidgetDto(); + widgetDto.setKey("code_coverage"); + widgetDto.setName("Code coverage"); + widgetDto.setDescription("Widget for code coverage"); + widgetDto.setColumnIndex(13); + widgetDto.setRowIndex(14); + widgetDto.setConfigured(true); + widgetDto.setCreatedAt(aDate); + widgetDto.setUpdatedAt(aDate); + dashboardDto.addWidget(widgetDto); + + WidgetPropertyDto property = new WidgetPropertyDto(); + property.setKey("displayITs"); + property.setValue("true"); + property.setValueType("BOOLEAN"); + widgetDto.addWidgetProperty(property); + + dao.insert(dashboardDto); + + checkTables("shouldInsert", new String[] { "created_at", "updated_at" }, "dashboards", "widgets", "widget_properties"); + } + + @Test + public void shouldInsertWithNullableColumns() throws Exception { + setupData("shouldInsert"); + + DashboardDto dashboardDto = new DashboardDto(); + dashboardDto.setKey("d-key"); + dashboardDto.setUserId(null); + dashboardDto.setName(null); + dashboardDto.setDescription(null); + dashboardDto.setColumnLayout(null); + dashboardDto.setShared(true); + dashboardDto.setCreatedAt(null); + dashboardDto.setUpdatedAt(null); + + WidgetDto widgetDto = new WidgetDto(); + widgetDto.setKey("code_coverage"); + widgetDto.setName(null); + widgetDto.setDescription(null); + widgetDto.setColumnIndex(null); + widgetDto.setRowIndex(null); + widgetDto.setConfigured(true); + widgetDto.setCreatedAt(null); + widgetDto.setUpdatedAt(null); + dashboardDto.addWidget(widgetDto); + + WidgetPropertyDto property = new WidgetPropertyDto(); + property.setKey(null); + property.setValue(null); + property.setValueType(null); + widgetDto.addWidgetProperty(property); + + dao.insert(dashboardDto); + + checkTables("shouldInsertWithNullableColumns", "dashboards", "widgets", "widget_properties"); + } + +} diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/DuplicationDaoTest.java b/sonar-core/src/test/java/org/sonar/persistence/duplication/DuplicationDaoTest.java similarity index 79% rename from sonar-core/src/test/java/org/sonar/persistence/dao/DuplicationDaoTest.java rename to sonar-core/src/test/java/org/sonar/persistence/duplication/DuplicationDaoTest.java index 7c1c4e0b210..9621999dc85 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/DuplicationDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/persistence/duplication/DuplicationDaoTest.java @@ -17,7 +17,7 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.duplication; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; @@ -29,7 +29,9 @@ import java.util.List; import org.junit.Before; import org.junit.Test; import org.sonar.jpa.test.AbstractDbUnitTestCase; -import org.sonar.persistence.model.DuplicationUnit; +import org.sonar.persistence.DaoTestCase; +import org.sonar.persistence.duplication.DuplicationDao; +import org.sonar.persistence.duplication.DuplicationUnitDto; import com.google.common.collect.Lists; @@ -46,10 +48,10 @@ public class DuplicationDaoTest extends DaoTestCase { public void shouldGetByHash() throws Exception { setupData("shouldGetByHash"); - List blocks = dao.selectCandidates(10, 7); + List blocks = dao.selectCandidates(10, 7); assertThat(blocks.size(), is(1)); - DuplicationUnit block = blocks.get(0); + DuplicationUnitDto block = blocks.get(0); assertThat("block resourceId", block.getResourceKey(), is("bar-last")); assertThat("block hash", block.getHash(), is("aa")); assertThat("block index in file", block.getIndexInFile(), is(0)); @@ -65,20 +67,20 @@ public class DuplicationDaoTest extends DaoTestCase { public void shouldInsert() throws Exception { setupData("shouldInsert"); - dao.insert(Arrays.asList(new DuplicationUnit(1, 2, "bb", 0, 1, 2))); + dao.insert(Arrays.asList(new DuplicationUnitDto(1, 2, "bb", 0, 1, 2))); checkTables("shouldInsert", "duplications_index"); } @Test public void testBatchInsert() { - List duplications = Lists.newArrayList(); + List duplications = Lists.newArrayList(); for (int i = 0; i < 50; i++) { - duplications.add(new DuplicationUnit(i, i, "hash", 2, 30, 40)); + duplications.add(new DuplicationUnitDto(i, i, "hash", 2, 30, 40)); } dao.insert(duplications); - for (DuplicationUnit duplication : duplications) { + for (DuplicationUnitDto duplication : duplications) { // batch insert : faster but generated ids are not returned assertThat(duplication.getId(), nullValue()); } diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/ReviewDaoTest.java b/sonar-core/src/test/java/org/sonar/persistence/review/ReviewDaoTest.java similarity index 54% rename from sonar-core/src/test/java/org/sonar/persistence/dao/ReviewDaoTest.java rename to sonar-core/src/test/java/org/sonar/persistence/review/ReviewDaoTest.java index 234a702e1a2..4e776f276a6 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/ReviewDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/persistence/review/ReviewDaoTest.java @@ -17,15 +17,17 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.review; import com.google.common.collect.Lists; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.junit.Before; import org.junit.Test; -import org.sonar.persistence.model.Review; -import org.sonar.persistence.model.ReviewQuery; +import org.sonar.persistence.DaoTestCase; +import org.sonar.persistence.review.ReviewDao; +import org.sonar.persistence.review.ReviewDto; +import org.sonar.persistence.review.ReviewQuery; import java.util.List; @@ -46,17 +48,17 @@ public class ReviewDaoTest extends DaoTestCase { public void shouldSelectById() throws Exception { setupData("shared"); - Review review = dao.selectById(100L); - assertThat(review.getId(), is(100L)); - assertThat(review.getStatus(), is("OPEN")); - assertThat(review.getResolution(), is("RESOLVE")); - assertThat(review.getProjectId(), is(20)); - assertThat(review.getViolationPermanentId(), is(1)); - assertThat(review.getSeverity(), is("BLOCKER")); - assertThat(review.getUserId(), is(300)); - assertThat(review.getResourceId(), is(400)); - assertThat(review.getRuleId(), is(500)); - assertThat(review.getManualViolation(), is(true)); + ReviewDto reviewDto = dao.selectById(100L); + assertThat(reviewDto.getId(), is(100L)); + assertThat(reviewDto.getStatus(), is("OPEN")); + assertThat(reviewDto.getResolution(), is("RESOLVE")); + assertThat(reviewDto.getProjectId(), is(20)); + assertThat(reviewDto.getViolationPermanentId(), is(1)); + assertThat(reviewDto.getSeverity(), is("BLOCKER")); + assertThat(reviewDto.getUserId(), is(300)); + assertThat(reviewDto.getResourceId(), is(400)); + assertThat(reviewDto.getRuleId(), is(500)); + assertThat(reviewDto.getManualViolation(), is(true)); } @Test @@ -70,11 +72,11 @@ public class ReviewDaoTest extends DaoTestCase { public void shouldSelectByResource() throws Exception { setupData("shared"); - List reviews = dao.selectByResource(400); - assertThat(reviews.size(), is(2)); - for (Review review : reviews) { - assertThat(review.getId(), anyOf(is(100L), is(101L))); - assertThat(review.getResourceId(), is(400)); + List reviewDtos = dao.selectByResource(400); + assertThat(reviewDtos.size(), is(2)); + for (ReviewDto reviewDto : reviewDtos) { + assertThat(reviewDto.getId(), anyOf(is(100L), is(101L))); + assertThat(reviewDto.getResourceId(), is(400)); } } @@ -82,11 +84,11 @@ public class ReviewDaoTest extends DaoTestCase { public void shouldSelectByQuery() throws Exception { setupData("shared"); - List reviews = dao.selectByQuery(ReviewQuery.create().setResourceId(400)); - assertThat(reviews.size(), is(2)); - for (Review review : reviews) { - assertThat(review.getId(), anyOf(is(100L), is(101L))); - assertThat(review.getResourceId(), is(400)); + List reviewDtos = dao.selectByQuery(ReviewQuery.create().setResourceId(400)); + assertThat(reviewDtos.size(), is(2)); + for (ReviewDto reviewDto : reviewDtos) { + assertThat(reviewDto.getId(), anyOf(is(100L), is(101L))); + assertThat(reviewDto.getResourceId(), is(400)); } } @@ -94,10 +96,10 @@ public class ReviewDaoTest extends DaoTestCase { public void shouldSelectByQuery_booleanCriteria() throws Exception { setupData("shared"); - List reviews = dao.selectByQuery(ReviewQuery.create().setResourceId(400).setManualViolation(true)); - assertThat(reviews.size(), is(1)); - assertThat(reviews.get(0).getId(), is(100L)); - assertThat(reviews.get(0).getManualViolation(), is(Boolean.TRUE)); + List reviewDtos = dao.selectByQuery(ReviewQuery.create().setResourceId(400).setManualViolation(true)); + assertThat(reviewDtos.size(), is(1)); + assertThat(reviewDtos.get(0).getId(), is(100L)); + assertThat(reviewDtos.get(0).getManualViolation(), is(Boolean.TRUE)); } /** @@ -112,15 +114,15 @@ public class ReviewDaoTest extends DaoTestCase { } ReviewQuery query = ReviewQuery.create().setViolationPermanentIds(permanentIds); - List reviews = dao.selectByQuery(query); + List reviewDtos = dao.selectByQuery(query); - assertThat(reviews.size(), is(3)); - assertThat(reviews, hasItem(new ReviewMatcherByViolationPermanentId(100))); - assertThat(reviews, hasItem(new ReviewMatcherByViolationPermanentId(1300))); - assertThat(reviews, hasItem(new ReviewMatcherByViolationPermanentId(3200))); + assertThat(reviewDtos.size(), is(3)); + assertThat(reviewDtos, hasItem(new ReviewMatcherByViolationPermanentId(100))); + assertThat(reviewDtos, hasItem(new ReviewMatcherByViolationPermanentId(1300))); + assertThat(reviewDtos, hasItem(new ReviewMatcherByViolationPermanentId(3200))); } - static class ReviewMatcherByViolationPermanentId extends BaseMatcher { + static class ReviewMatcherByViolationPermanentId extends BaseMatcher { Integer expectedId; ReviewMatcherByViolationPermanentId(Integer expectedId) { @@ -128,10 +130,10 @@ public class ReviewDaoTest extends DaoTestCase { } public boolean matches(Object o) { - Review review = (Review) o; - System.out.println(review.getViolationPermanentId()); + ReviewDto reviewDto = (ReviewDto) o; + System.out.println(reviewDto.getViolationPermanentId()); - return expectedId.equals(review.getViolationPermanentId()); + return expectedId.equals(reviewDto.getViolationPermanentId()); } public void describeTo(Description description) { diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/RuleDaoTest.java b/sonar-core/src/test/java/org/sonar/persistence/rule/RuleDaoTest.java similarity index 59% rename from sonar-core/src/test/java/org/sonar/persistence/dao/RuleDaoTest.java rename to sonar-core/src/test/java/org/sonar/persistence/rule/RuleDaoTest.java index 088d357ffab..1c40ae38ab6 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/RuleDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/persistence/rule/RuleDaoTest.java @@ -17,11 +17,13 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.rule; import org.hamcrest.core.Is; import org.junit.Before; import org.junit.Test; +import org.sonar.persistence.DaoTestCase; +import org.sonar.persistence.rule.RuleDao; import java.util.List; @@ -39,27 +41,27 @@ public class RuleDaoTest extends DaoTestCase { @Test public void testSelectAll() throws Exception { setupData("selectAll"); - List rules = dao.selectAll(); + List ruleDtos = dao.selectAll(); - assertThat(rules.size(), Is.is(1)); - org.sonar.persistence.model.Rule rule = rules.get(0); - assertThat(rule.getId(), Is.is(1L)); - assertThat(rule.getName(), Is.is("Avoid Null")); - assertThat(rule.getDescription(), Is.is("Should avoid NULL")); - assertThat(rule.isEnabled(), Is.is(true)); - assertThat(rule.getRepositoryKey(), Is.is("checkstyle")); + assertThat(ruleDtos.size(), Is.is(1)); + org.sonar.persistence.rule.RuleDto ruleDto = ruleDtos.get(0); + assertThat(ruleDto.getId(), Is.is(1L)); + assertThat(ruleDto.getName(), Is.is("Avoid Null")); + assertThat(ruleDto.getDescription(), Is.is("Should avoid NULL")); + assertThat(ruleDto.isEnabled(), Is.is(true)); + assertThat(ruleDto.getRepositoryKey(), Is.is("checkstyle")); } @Test public void testSelectById() throws Exception { setupData("selectById"); - org.sonar.persistence.model.Rule rule = dao.selectById(2L); + org.sonar.persistence.rule.RuleDto ruleDto = dao.selectById(2L); - assertThat(rule.getId(), Is.is(2L)); - assertThat(rule.getName(), Is.is("Avoid Null")); - assertThat(rule.getDescription(), Is.is("Should avoid NULL")); - assertThat(rule.isEnabled(), Is.is(true)); - assertThat(rule.getRepositoryKey(), Is.is("checkstyle")); + assertThat(ruleDto.getId(), Is.is(2L)); + assertThat(ruleDto.getName(), Is.is("Avoid Null")); + assertThat(ruleDto.getDescription(), Is.is("Should avoid NULL")); + assertThat(ruleDto.isEnabled(), Is.is(true)); + assertThat(ruleDto.getRepositoryKey(), Is.is("checkstyle")); } } diff --git a/sonar-core/src/test/java/org/sonar/persistence/dao/LoadedTemplateDaoTest.java b/sonar-core/src/test/java/org/sonar/persistence/template/LoadedTemplateDaoTest.java similarity index 83% rename from sonar-core/src/test/java/org/sonar/persistence/dao/LoadedTemplateDaoTest.java rename to sonar-core/src/test/java/org/sonar/persistence/template/LoadedTemplateDaoTest.java index 01c8414bd49..b10e35149e4 100644 --- a/sonar-core/src/test/java/org/sonar/persistence/dao/LoadedTemplateDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/persistence/template/LoadedTemplateDaoTest.java @@ -17,7 +17,7 @@ * License along with Sonar; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 */ -package org.sonar.persistence.dao; +package org.sonar.persistence.template; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertNull; @@ -25,7 +25,9 @@ import static org.junit.Assert.assertThat; import org.junit.Before; import org.junit.Test; -import org.sonar.persistence.model.LoadedTemplate; +import org.sonar.persistence.DaoTestCase; +import org.sonar.persistence.template.LoadedTemplateDto; +import org.sonar.persistence.template.LoadedTemplateDao; public class LoadedTemplateDaoTest extends DaoTestCase { @@ -40,7 +42,7 @@ public class LoadedTemplateDaoTest extends DaoTestCase { public void shouldSelectByKeyAndType() throws Exception { setupData("shared"); - LoadedTemplate template = dao.selectByKeyAndType("SONAR-HOTSPOT", "DASHBOARD"); + LoadedTemplateDto template = dao.selectByKeyAndType("SONAR-HOTSPOT", "DASHBOARD"); assertThat(template.getId(), is(1L)); assertThat(template.getKey(), is("SONAR-HOTSPOT")); assertThat(template.getType(), is("DASHBOARD")); @@ -57,7 +59,7 @@ public class LoadedTemplateDaoTest extends DaoTestCase { public void shouldInsert() throws Exception { setupData("shouldInsert"); - LoadedTemplate template = new LoadedTemplate("SQALE", "DASHBOARD"); + LoadedTemplateDto template = new LoadedTemplateDto("SQALE", "DASHBOARD"); dao.insert(template); checkTables("shouldInsert", "loaded_templates"); diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/ActiveDashboardDaoTest/empty.xml b/sonar-core/src/test/resources/org/sonar/persistence/dashboard/ActiveDashboardDaoTest/empty.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/ActiveDashboardDaoTest/empty.xml rename to sonar-core/src/test/resources/org/sonar/persistence/dashboard/ActiveDashboardDaoTest/empty.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/ActiveDashboardDaoTest/shouldGetMaxOrderIndexForNullUser.xml b/sonar-core/src/test/resources/org/sonar/persistence/dashboard/ActiveDashboardDaoTest/shouldGetMaxOrderIndexForNullUser.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/ActiveDashboardDaoTest/shouldGetMaxOrderIndexForNullUser.xml rename to sonar-core/src/test/resources/org/sonar/persistence/dashboard/ActiveDashboardDaoTest/shouldGetMaxOrderIndexForNullUser.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/ActiveDashboardDaoTest/shouldInsert-result.xml b/sonar-core/src/test/resources/org/sonar/persistence/dashboard/ActiveDashboardDaoTest/shouldInsert-result.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/ActiveDashboardDaoTest/shouldInsert-result.xml rename to sonar-core/src/test/resources/org/sonar/persistence/dashboard/ActiveDashboardDaoTest/shouldInsert-result.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/ActiveDashboardDaoTest/shouldInsert.xml b/sonar-core/src/test/resources/org/sonar/persistence/dashboard/ActiveDashboardDaoTest/shouldInsert.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/ActiveDashboardDaoTest/shouldInsert.xml rename to sonar-core/src/test/resources/org/sonar/persistence/dashboard/ActiveDashboardDaoTest/shouldInsert.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/ActiveDashboardDaoTest/shouldInsertWithNoUser-result.xml b/sonar-core/src/test/resources/org/sonar/persistence/dashboard/ActiveDashboardDaoTest/shouldInsertWithNoUser-result.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/ActiveDashboardDaoTest/shouldInsertWithNoUser-result.xml rename to sonar-core/src/test/resources/org/sonar/persistence/dashboard/ActiveDashboardDaoTest/shouldInsertWithNoUser-result.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/DashboardDaoTest/shouldInsert-result.xml b/sonar-core/src/test/resources/org/sonar/persistence/dashboard/DashboardDaoTest/shouldInsert-result.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/DashboardDaoTest/shouldInsert-result.xml rename to sonar-core/src/test/resources/org/sonar/persistence/dashboard/DashboardDaoTest/shouldInsert-result.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/DashboardDaoTest/shouldInsert.xml b/sonar-core/src/test/resources/org/sonar/persistence/dashboard/DashboardDaoTest/shouldInsert.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/DashboardDaoTest/shouldInsert.xml rename to sonar-core/src/test/resources/org/sonar/persistence/dashboard/DashboardDaoTest/shouldInsert.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/DashboardDaoTest/shouldInsertWithNullableColumns-result.xml b/sonar-core/src/test/resources/org/sonar/persistence/dashboard/DashboardDaoTest/shouldInsertWithNullableColumns-result.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/DashboardDaoTest/shouldInsertWithNullableColumns-result.xml rename to sonar-core/src/test/resources/org/sonar/persistence/dashboard/DashboardDaoTest/shouldInsertWithNullableColumns-result.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/DuplicationDaoTest/shouldGetByHash.xml b/sonar-core/src/test/resources/org/sonar/persistence/duplication/DuplicationDaoTest/shouldGetByHash.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/DuplicationDaoTest/shouldGetByHash.xml rename to sonar-core/src/test/resources/org/sonar/persistence/duplication/DuplicationDaoTest/shouldGetByHash.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/DuplicationDaoTest/shouldInsert-result.xml b/sonar-core/src/test/resources/org/sonar/persistence/duplication/DuplicationDaoTest/shouldInsert-result.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/DuplicationDaoTest/shouldInsert-result.xml rename to sonar-core/src/test/resources/org/sonar/persistence/duplication/DuplicationDaoTest/shouldInsert-result.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/DuplicationDaoTest/shouldInsert.xml b/sonar-core/src/test/resources/org/sonar/persistence/duplication/DuplicationDaoTest/shouldInsert.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/DuplicationDaoTest/shouldInsert.xml rename to sonar-core/src/test/resources/org/sonar/persistence/duplication/DuplicationDaoTest/shouldInsert.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/ReviewDaoTest/shared.xml b/sonar-core/src/test/resources/org/sonar/persistence/review/ReviewDaoTest/shared.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/ReviewDaoTest/shared.xml rename to sonar-core/src/test/resources/org/sonar/persistence/review/ReviewDaoTest/shared.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/ReviewDaoTest/shouldPartitionFiltersOnPermanentId.xml b/sonar-core/src/test/resources/org/sonar/persistence/review/ReviewDaoTest/shouldPartitionFiltersOnPermanentId.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/ReviewDaoTest/shouldPartitionFiltersOnPermanentId.xml rename to sonar-core/src/test/resources/org/sonar/persistence/review/ReviewDaoTest/shouldPartitionFiltersOnPermanentId.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/RuleDaoTest/selectAll.xml b/sonar-core/src/test/resources/org/sonar/persistence/rule/RuleDaoTest/selectAll.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/RuleDaoTest/selectAll.xml rename to sonar-core/src/test/resources/org/sonar/persistence/rule/RuleDaoTest/selectAll.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/RuleDaoTest/selectById.xml b/sonar-core/src/test/resources/org/sonar/persistence/rule/RuleDaoTest/selectById.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/RuleDaoTest/selectById.xml rename to sonar-core/src/test/resources/org/sonar/persistence/rule/RuleDaoTest/selectById.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/LoadedTemplateDaoTest/shared.xml b/sonar-core/src/test/resources/org/sonar/persistence/template/LoadedTemplateDaoTest/shared.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/LoadedTemplateDaoTest/shared.xml rename to sonar-core/src/test/resources/org/sonar/persistence/template/LoadedTemplateDaoTest/shared.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/LoadedTemplateDaoTest/shouldInsert-result.xml b/sonar-core/src/test/resources/org/sonar/persistence/template/LoadedTemplateDaoTest/shouldInsert-result.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/LoadedTemplateDaoTest/shouldInsert-result.xml rename to sonar-core/src/test/resources/org/sonar/persistence/template/LoadedTemplateDaoTest/shouldInsert-result.xml diff --git a/sonar-core/src/test/resources/org/sonar/persistence/dao/LoadedTemplateDaoTest/shouldInsert.xml b/sonar-core/src/test/resources/org/sonar/persistence/template/LoadedTemplateDaoTest/shouldInsert.xml similarity index 100% rename from sonar-core/src/test/resources/org/sonar/persistence/dao/LoadedTemplateDaoTest/shouldInsert.xml rename to sonar-core/src/test/resources/org/sonar/persistence/template/LoadedTemplateDaoTest/shouldInsert.xml diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java index 77c4395cd7c..3cdb47b9e21 100644 --- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java +++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java @@ -50,10 +50,10 @@ import org.sonar.jpa.session.DatabaseSessionFactory; import org.sonar.jpa.session.DatabaseSessionProvider; import org.sonar.jpa.session.DefaultDatabaseConnector; import org.sonar.jpa.session.ThreadLocalDatabaseSessionFactory; +import org.sonar.persistence.DaoUtils; import org.sonar.persistence.DatabaseMigrator; import org.sonar.persistence.DefaultDatabase; import org.sonar.persistence.MyBatis; -import org.sonar.persistence.dao.DaoUtils; import org.sonar.server.charts.ChartFactory; import org.sonar.server.configuration.Backup; import org.sonar.server.configuration.ProfilesManager; diff --git a/sonar-server/src/main/java/org/sonar/server/startup/RegisterProvidedDashboards.java b/sonar-server/src/main/java/org/sonar/server/startup/RegisterProvidedDashboards.java index 87af9748a50..96cb9f7fa50 100644 --- a/sonar-server/src/main/java/org/sonar/server/startup/RegisterProvidedDashboards.java +++ b/sonar-server/src/main/java/org/sonar/server/startup/RegisterProvidedDashboards.java @@ -34,11 +34,11 @@ import org.sonar.api.web.dashboard.Dashboard; import org.sonar.api.web.dashboard.DashboardTemplate; import org.sonar.api.web.dashboard.Widget; import org.sonar.core.i18n.I18nManager; -import org.sonar.persistence.dao.ActiveDashboardDao; -import org.sonar.persistence.dao.DashboardDao; -import org.sonar.persistence.dao.LoadedTemplateDao; -import org.sonar.persistence.model.ActiveDashboard; -import org.sonar.persistence.model.LoadedTemplate; +import org.sonar.persistence.dashboard.ActiveDashboardDao; +import org.sonar.persistence.dashboard.ActiveDashboardDto; +import org.sonar.persistence.dashboard.DashboardDao; +import org.sonar.persistence.template.LoadedTemplateDto; +import org.sonar.persistence.template.LoadedTemplateDao; import com.google.common.collect.Lists; @@ -71,12 +71,12 @@ public final class RegisterProvidedDashboards { TimeProfiler profiler = new TimeProfiler().start("Load provided dashboards"); // load the dashboards that need to be loaded - ArrayList loadedDashboards = Lists.newArrayList(); - org.sonar.persistence.model.Dashboard mainDashboard = null; + ArrayList loadedDashboards = Lists.newArrayList(); + org.sonar.persistence.dashboard.DashboardDto mainDashboard = null; for (DashboardTemplate dashboardTemplate : dashboardTemplates) { Dashboard dashboard = dashboardTemplate.createDashboard(); if (shouldBeLoaded(dashboard)) { - org.sonar.persistence.model.Dashboard dashboardDataModel = loadDashboard(dashboard); + org.sonar.persistence.dashboard.DashboardDto dashboardDataModel = loadDashboard(dashboard); if (MAIN_DASHBOARD_ID.equals(dashboard.getId())) { mainDashboard = dashboardDataModel; } else { @@ -90,8 +90,8 @@ public final class RegisterProvidedDashboards { profiler.stop(); } - protected void activateDashboards(List loadedDashboards, - org.sonar.persistence.model.Dashboard mainDashboard) { + protected void activateDashboards(List loadedDashboards, + org.sonar.persistence.dashboard.DashboardDto mainDashboard) { int nextOrderIndex = 0; if (mainDashboard != null) { activateDashboard(mainDashboard, 1); @@ -100,31 +100,31 @@ public final class RegisterProvidedDashboards { nextOrderIndex = activeDashboardDao.selectMaxOrderIndexForNullUser() + 1; } Collections.sort(loadedDashboards, new DashboardComparator()); - for (org.sonar.persistence.model.Dashboard dashboard : loadedDashboards) { - activateDashboard(dashboard, nextOrderIndex++); + for (org.sonar.persistence.dashboard.DashboardDto dashboardDto : loadedDashboards) { + activateDashboard(dashboardDto, nextOrderIndex++); } } - private void activateDashboard(org.sonar.persistence.model.Dashboard dashboard, int index) { - ActiveDashboard activeDashboard = new ActiveDashboard(); - activeDashboard.setDashboardId(dashboard.getId()); - activeDashboard.setOrderIndex(index); - activeDashboardDao.insert(activeDashboard); - LOGGER.info("New dashboard '" + dashboard.getName() + "' registered and activated."); + private void activateDashboard(org.sonar.persistence.dashboard.DashboardDto dashboardDto, int index) { + ActiveDashboardDto activeDashboardDto = new ActiveDashboardDto(); + activeDashboardDto.setDashboardId(dashboardDto.getId()); + activeDashboardDto.setOrderIndex(index); + activeDashboardDao.insert(activeDashboardDto); + LOGGER.info("New dashboard '" + dashboardDto.getName() + "' registered and activated."); } - protected org.sonar.persistence.model.Dashboard loadDashboard(Dashboard dashboard) { - org.sonar.persistence.model.Dashboard dashboardDataModel = createDataModelFromExtension(dashboard); + protected org.sonar.persistence.dashboard.DashboardDto loadDashboard(Dashboard dashboard) { + org.sonar.persistence.dashboard.DashboardDto dashboardDataModel = createDataModelFromExtension(dashboard); // save the new dashboard dashboardDao.insert(dashboardDataModel); // and save the fact that is has now already been loaded - loadedTemplateDao.insert(new LoadedTemplate(dashboard.getId(), LoadedTemplate.DASHBOARD_TYPE)); + loadedTemplateDao.insert(new LoadedTemplateDto(dashboard.getId(), LoadedTemplateDto.DASHBOARD_TYPE)); return dashboardDataModel; } - protected org.sonar.persistence.model.Dashboard createDataModelFromExtension(Dashboard dashboard) { + protected org.sonar.persistence.dashboard.DashboardDto createDataModelFromExtension(Dashboard dashboard) { Date now = new Date(); - org.sonar.persistence.model.Dashboard dashboardDataModel = new org.sonar.persistence.model.Dashboard(); + org.sonar.persistence.dashboard.DashboardDto dashboardDataModel = new org.sonar.persistence.dashboard.DashboardDto(); dashboardDataModel.setKey(dashboard.getId()); dashboardDataModel.setName(i18nManager.message(Locale.ENGLISH, "dashboard." + dashboard.getId() + ".name", dashboard.getName())); dashboardDataModel.setDescription(dashboard.getDescription()); @@ -134,7 +134,7 @@ public final class RegisterProvidedDashboards { dashboardDataModel.setUpdatedAt(now); for (Widget widget : dashboard.getWidgets()) { - org.sonar.persistence.model.Widget widgetDataModel = new org.sonar.persistence.model.Widget(); + org.sonar.persistence.dashboard.WidgetDto widgetDataModel = new org.sonar.persistence.dashboard.WidgetDto(); widgetDataModel.setKey(widget.getId()); widgetDataModel.setName(i18nManager.message(Locale.ENGLISH, "widget." + widget.getId() + ".name", "")); widgetDataModel.setColumnIndex(widget.getColumnIndex()); @@ -145,7 +145,7 @@ public final class RegisterProvidedDashboards { dashboardDataModel.addWidget(widgetDataModel); for (Entry property : widget.getProperties().entrySet()) { - org.sonar.persistence.model.WidgetProperty widgetPropertyDataModel = new org.sonar.persistence.model.WidgetProperty(); + org.sonar.persistence.dashboard.WidgetPropertyDto widgetPropertyDataModel = new org.sonar.persistence.dashboard.WidgetPropertyDto(); widgetPropertyDataModel.setKey(property.getKey()); widgetPropertyDataModel.setValue(property.getValue()); widgetDataModel.addWidgetProperty(widgetPropertyDataModel); @@ -156,12 +156,12 @@ public final class RegisterProvidedDashboards { } protected boolean shouldBeLoaded(Dashboard dashboard) { - return loadedTemplateDao.selectByKeyAndType(dashboard.getId(), LoadedTemplate.DASHBOARD_TYPE) == null; + return loadedTemplateDao.selectByKeyAndType(dashboard.getId(), LoadedTemplateDto.DASHBOARD_TYPE) == null; } - protected static class DashboardComparator implements Comparator { + protected static class DashboardComparator implements Comparator { - public int compare(org.sonar.persistence.model.Dashboard d1, org.sonar.persistence.model.Dashboard d2) { + public int compare(org.sonar.persistence.dashboard.DashboardDto d1, org.sonar.persistence.dashboard.DashboardDto d2) { return d1.getName().compareTo(d2.getName()); } diff --git a/sonar-server/src/test/java/org/sonar/server/startup/RegisterProvidedDashboardsTest.java b/sonar-server/src/test/java/org/sonar/server/startup/RegisterProvidedDashboardsTest.java index 6973393972b..52919c27447 100644 --- a/sonar-server/src/test/java/org/sonar/server/startup/RegisterProvidedDashboardsTest.java +++ b/sonar-server/src/test/java/org/sonar/server/startup/RegisterProvidedDashboardsTest.java @@ -39,12 +39,12 @@ import org.junit.Test; import org.sonar.api.web.dashboard.Dashboard; import org.sonar.api.web.dashboard.DashboardTemplate; import org.sonar.core.i18n.I18nManager; -import org.sonar.persistence.dao.ActiveDashboardDao; -import org.sonar.persistence.dao.DashboardDao; -import org.sonar.persistence.dao.LoadedTemplateDao; -import org.sonar.persistence.model.ActiveDashboard; -import org.sonar.persistence.model.LoadedTemplate; -import org.sonar.persistence.model.Widget; +import org.sonar.persistence.dashboard.ActiveDashboardDao; +import org.sonar.persistence.dashboard.ActiveDashboardDto; +import org.sonar.persistence.dashboard.DashboardDao; +import org.sonar.persistence.dashboard.WidgetDto; +import org.sonar.persistence.template.LoadedTemplateDto; +import org.sonar.persistence.template.LoadedTemplateDao; import com.google.common.collect.Lists; @@ -75,14 +75,14 @@ public class RegisterProvidedDashboardsTest { @Test public void testStart() throws Exception { registerProvidedDashboards.start(); - verify(dashboardDao).insert(any(org.sonar.persistence.model.Dashboard.class)); - verify(loadedTemplateDao).insert(any(LoadedTemplate.class)); - verify(activeDashboardDao).insert(any(ActiveDashboard.class)); + verify(dashboardDao).insert(any(org.sonar.persistence.dashboard.DashboardDto.class)); + verify(loadedTemplateDao).insert(any(LoadedTemplateDto.class)); + verify(activeDashboardDao).insert(any(ActiveDashboardDto.class)); } @Test public void testShouldNotBeLoaded() throws Exception { - when(loadedTemplateDao.selectByKeyAndType("fake-dashboard", LoadedTemplate.DASHBOARD_TYPE)).thenReturn(new LoadedTemplate()); + when(loadedTemplateDao.selectByKeyAndType("fake-dashboard", LoadedTemplateDto.DASHBOARD_TYPE)).thenReturn(new LoadedTemplateDto()); assertThat(registerProvidedDashboards.shouldBeLoaded(fakeDashboardTemplate.createDashboard()), is(false)); } @@ -93,16 +93,16 @@ public class RegisterProvidedDashboardsTest { @Test public void shouldLoadDasboard() throws Exception { - org.sonar.persistence.model.Dashboard dataModelDashboard = registerProvidedDashboards.loadDashboard(fakeDashboardTemplate + org.sonar.persistence.dashboard.DashboardDto dataModelDashboard = registerProvidedDashboards.loadDashboard(fakeDashboardTemplate .createDashboard()); assertNotNull(dataModelDashboard); verify(dashboardDao).insert(dataModelDashboard); - verify(loadedTemplateDao).insert(eq(new LoadedTemplate("fake-dashboard", LoadedTemplate.DASHBOARD_TYPE))); + verify(loadedTemplateDao).insert(eq(new LoadedTemplateDto("fake-dashboard", LoadedTemplateDto.DASHBOARD_TYPE))); } @Test public void shouldCreateDataModelFromExtension() { - org.sonar.persistence.model.Dashboard dataModelDashboard = registerProvidedDashboards + org.sonar.persistence.dashboard.DashboardDto dataModelDashboard = registerProvidedDashboards .createDataModelFromExtension(fakeDashboardTemplate.createDashboard()); assertThat(dataModelDashboard.getUserId(), is(nullValue())); assertThat(dataModelDashboard.getKey(), is("fake-dashboard")); @@ -113,52 +113,52 @@ public class RegisterProvidedDashboardsTest { assertNotNull(dataModelDashboard.getCreatedAt()); assertNotNull(dataModelDashboard.getUpdatedAt()); - Widget widget = dataModelDashboard.getWidgets().iterator().next(); - assertThat(widget.getKey(), is("fake-widget")); - assertThat(widget.getName(), is("Fake Widget")); - assertThat(widget.getDescription(), is(nullValue())); - assertThat(widget.getColumnIndex(), is(12)); - assertThat(widget.getRowIndex(), is(13)); - assertThat(widget.getConfigured(), is(true)); - assertNotNull(widget.getCreatedAt()); - assertNotNull(widget.getUpdatedAt()); - - org.sonar.persistence.model.WidgetProperty widgetProperty = widget.getWidgetProperties().iterator().next(); - assertThat(widgetProperty.getKey(), is("fake-property")); - assertThat(widgetProperty.getValue(), is("fake_metric")); + WidgetDto widgetDto = dataModelDashboard.getWidgets().iterator().next(); + assertThat(widgetDto.getKey(), is("fake-widget")); + assertThat(widgetDto.getName(), is("Fake Widget")); + assertThat(widgetDto.getDescription(), is(nullValue())); + assertThat(widgetDto.getColumnIndex(), is(12)); + assertThat(widgetDto.getRowIndex(), is(13)); + assertThat(widgetDto.getConfigured(), is(true)); + assertNotNull(widgetDto.getCreatedAt()); + assertNotNull(widgetDto.getUpdatedAt()); + + org.sonar.persistence.dashboard.WidgetPropertyDto widgetPropertyDto = widgetDto.getWidgetProperties().iterator().next(); + assertThat(widgetPropertyDto.getKey(), is("fake-property")); + assertThat(widgetPropertyDto.getValue(), is("fake_metric")); } @Test public void shouldCompareDashboardForSorting() throws Exception { - org.sonar.persistence.model.Dashboard d1 = mock(org.sonar.persistence.model.Dashboard.class); + org.sonar.persistence.dashboard.DashboardDto d1 = mock(org.sonar.persistence.dashboard.DashboardDto.class); when(d1.getName()).thenReturn("Foo"); - org.sonar.persistence.model.Dashboard d2 = mock(org.sonar.persistence.model.Dashboard.class); + org.sonar.persistence.dashboard.DashboardDto d2 = mock(org.sonar.persistence.dashboard.DashboardDto.class); when(d2.getName()).thenReturn("Bar"); - List dashboards = Lists.newArrayList(d1, d2); - Collections.sort(dashboards, new RegisterProvidedDashboards.DashboardComparator()); + List dashboardDtos = Lists.newArrayList(d1, d2); + Collections.sort(dashboardDtos, new RegisterProvidedDashboards.DashboardComparator()); - assertThat(dashboards.get(0).getName(), is("Bar")); + assertThat(dashboardDtos.get(0).getName(), is("Bar")); } @Test public void shouldActivateAllDashboards() throws Exception { - org.sonar.persistence.model.Dashboard d1 = mock(org.sonar.persistence.model.Dashboard.class); + org.sonar.persistence.dashboard.DashboardDto d1 = mock(org.sonar.persistence.dashboard.DashboardDto.class); when(d1.getName()).thenReturn("Foo"); when(d1.getId()).thenReturn(14L); - org.sonar.persistence.model.Dashboard d2 = mock(org.sonar.persistence.model.Dashboard.class); + org.sonar.persistence.dashboard.DashboardDto d2 = mock(org.sonar.persistence.dashboard.DashboardDto.class); when(d2.getName()).thenReturn("Bar"); when(d2.getId()).thenReturn(16L); - ArrayList loadedDashboards = Lists.newArrayList(d1, d2); + ArrayList loadedDashboards = Lists.newArrayList(d1, d2); when(activeDashboardDao.selectMaxOrderIndexForNullUser()).thenReturn(4); registerProvidedDashboards.activateDashboards(loadedDashboards, null); - ActiveDashboard ad1 = new ActiveDashboard(); + ActiveDashboardDto ad1 = new ActiveDashboardDto(); ad1.setDashboardId(16L); ad1.setOrderIndex(5); verify(activeDashboardDao).insert(eq(ad1)); - ActiveDashboard ad2 = new ActiveDashboard(); + ActiveDashboardDto ad2 = new ActiveDashboardDto(); ad2.setDashboardId(14L); ad2.setOrderIndex(6); verify(activeDashboardDao).insert(eq(ad2)); @@ -166,21 +166,21 @@ public class RegisterProvidedDashboardsTest { @Test public void shouldActivateMainDashboard() throws Exception { - org.sonar.persistence.model.Dashboard mainDashboard = mock(org.sonar.persistence.model.Dashboard.class); + org.sonar.persistence.dashboard.DashboardDto mainDashboard = mock(org.sonar.persistence.dashboard.DashboardDto.class); when(mainDashboard.getName()).thenReturn("Main"); when(mainDashboard.getId()).thenReturn(1L); - org.sonar.persistence.model.Dashboard d1 = mock(org.sonar.persistence.model.Dashboard.class); + org.sonar.persistence.dashboard.DashboardDto d1 = mock(org.sonar.persistence.dashboard.DashboardDto.class); when(d1.getName()).thenReturn("Bar"); when(d1.getId()).thenReturn(16L); - ArrayList loadedDashboards = Lists.newArrayList(d1); + ArrayList loadedDashboards = Lists.newArrayList(d1); registerProvidedDashboards.activateDashboards(loadedDashboards, mainDashboard); - ActiveDashboard ad1 = new ActiveDashboard(); + ActiveDashboardDto ad1 = new ActiveDashboardDto(); ad1.setDashboardId(1L); ad1.setOrderIndex(1); verify(activeDashboardDao).insert(eq(ad1)); - ActiveDashboard ad2 = new ActiveDashboard(); + ActiveDashboardDto ad2 = new ActiveDashboardDto(); ad2.setDashboardId(16L); ad2.setOrderIndex(2); verify(activeDashboardDao).insert(eq(ad2)); -- 2.39.5