From: Jean-Baptiste Lievremont Date: Wed, 18 Mar 2015 09:19:11 +0000 (+0100) Subject: SONAR-6236 Remove BaseDao from WidgetDao and WidgetPropertyDao X-Git-Tag: 5.2-RC1~2543 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=687a7c52ce233822635bb566a3632f1d8bfa55d6;p=sonarqube.git SONAR-6236 Remove BaseDao from WidgetDao and WidgetPropertyDao --- diff --git a/server/sonar-server/src/main/java/org/sonar/server/dashboard/db/WidgetDao.java b/server/sonar-server/src/main/java/org/sonar/server/dashboard/db/WidgetDao.java index d6d12e4c0f5..3b3c6476fbd 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/dashboard/db/WidgetDao.java +++ b/server/sonar-server/src/main/java/org/sonar/server/dashboard/db/WidgetDao.java @@ -19,27 +19,45 @@ */ package org.sonar.server.dashboard.db; -import org.sonar.api.utils.System2; import org.sonar.core.dashboard.WidgetDto; import org.sonar.core.dashboard.WidgetMapper; +import org.sonar.core.persistence.DaoComponent; import org.sonar.core.persistence.DbSession; -import org.sonar.server.db.BaseDao; +import org.sonar.core.persistence.MyBatis; import java.util.Collection; -public class WidgetDao extends BaseDao { +public class WidgetDao implements DaoComponent { - public WidgetDao(System2 system2) { - super(WidgetMapper.class, system2); + private MyBatis myBatis; + + public WidgetDao(MyBatis myBatis) { + this.myBatis = myBatis; + } + + public WidgetDto getNullableByKey(Long widgetId) { + DbSession session = myBatis.openSession(false); + try { + return getNullableByKey(session, widgetId); + } finally { + MyBatis.closeQuietly(session); + } } - @Override - protected WidgetDto doGetNullableByKey(DbSession session, Long widgetId) { + public WidgetDto getNullableByKey(DbSession session, Long widgetId) { return mapper(session).selectById(widgetId); } - @Override - protected WidgetDto doUpdate(DbSession session, WidgetDto item) { + public WidgetDto update(WidgetDto item) { + DbSession session = myBatis.openSession(false); + try { + return update(session, item); + } finally { + MyBatis.closeQuietly(session); + } + } + + public WidgetDto update(DbSession session, WidgetDto item) { mapper(session).update(item); return item; } @@ -51,4 +69,9 @@ public class WidgetDao extends BaseDao { public Collection findAll(DbSession session) { return mapper(session).selectAll(); } + + private WidgetMapper mapper(DbSession session) { + return session.getMapper(WidgetMapper.class); + } + } diff --git a/server/sonar-server/src/main/java/org/sonar/server/dashboard/db/WidgetPropertyDao.java b/server/sonar-server/src/main/java/org/sonar/server/dashboard/db/WidgetPropertyDao.java index 9aeead48d6a..763d1843469 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/dashboard/db/WidgetPropertyDao.java +++ b/server/sonar-server/src/main/java/org/sonar/server/dashboard/db/WidgetPropertyDao.java @@ -19,29 +19,53 @@ */ package org.sonar.server.dashboard.db; -import org.sonar.api.utils.System2; import org.sonar.core.dashboard.WidgetPropertyDto; import org.sonar.core.dashboard.WidgetPropertyMapper; +import org.sonar.core.persistence.DaoComponent; import org.sonar.core.persistence.DbSession; -import org.sonar.server.db.BaseDao; +import org.sonar.core.persistence.MyBatis; import java.util.Collection; import java.util.List; -public class WidgetPropertyDao extends BaseDao { +public class WidgetPropertyDao implements DaoComponent { - public WidgetPropertyDao(System2 system2) { - super(WidgetPropertyMapper.class, system2); + private final MyBatis myBatis; + + public WidgetPropertyDao(MyBatis myBatis) { + this.myBatis = myBatis; + } + + public WidgetPropertyDto insert(WidgetPropertyDto item) { + DbSession session = myBatis.openSession(false); + try { + return insert(session, item); + } finally { + MyBatis.closeQuietly(session); + } } - @Override - protected WidgetPropertyDto doInsert(DbSession session, WidgetPropertyDto item) { + public WidgetPropertyDto insert(DbSession session, WidgetPropertyDto item) { mapper(session).insert(item); return item; } - @Override - protected WidgetPropertyDto doGetNullableByKey(DbSession session, Long propertyId) { + public void insert(DbSession session, Collection items) { + for (WidgetPropertyDto item : items) { + insert(session, item); + } + } + + public WidgetPropertyDto getNullableByKey(Long propertyId) { + DbSession session = myBatis.openSession(false); + try { + return getNullableByKey(session, propertyId); + } finally { + MyBatis.closeQuietly(session); + } + } + + public WidgetPropertyDto getNullableByKey(DbSession session, Long propertyId) { return mapper(session).selectById(propertyId); } @@ -53,4 +77,7 @@ public class WidgetPropertyDao extends BaseDao widgetIdsWithPropertiesToDelete = Lists.newArrayList(); List widgetPropertiesToCreate = Lists.newArrayList(); + Date now = system.newDate(); for (WidgetDto widget : dbClient.widgetDao().findAll(session)) { switch (widget.getWidgetKey()) { @@ -139,6 +145,7 @@ public class RenameIssueWidgets implements Startable { private void updateWidget(DbSession session, List widgetIdsWithPropertiesToDelete, WidgetDto widget) { dbClient.widgetDao().update(session, widget.setWidgetKey(PROJECT_ISSUE_FILTER_WIDGET_KEY) + .setUpdatedAt(system.newDate()) .setConfigured(true)); widgetIdsWithPropertiesToDelete.add(widget.getId()); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/startup/RenameIssueWidgetsTest.java b/server/sonar-server/src/test/java/org/sonar/server/startup/RenameIssueWidgetsTest.java index 95047b5c59b..92d8e2c5ca8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/startup/RenameIssueWidgetsTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/startup/RenameIssueWidgetsTest.java @@ -32,6 +32,8 @@ import org.sonar.server.dashboard.db.WidgetPropertyDao; import org.sonar.server.db.DbClient; import org.sonar.test.DbTests; +import java.util.Date; + import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -66,17 +68,19 @@ public class RenameIssueWidgetsTest { private void doStart() { System2 system2 = mock(System2.class); - when(system2.now()).thenReturn(DateUtils.parseDateTime("2003-03-23T01:23:45+0100").getTime()); + Date now = DateUtils.parseDateTime("2003-03-23T01:23:45+0100"); + when(system2.newDate()).thenReturn(now); RenameIssueWidgets task = new RenameIssueWidgets( new DbClient( dbTester.database(), dbTester.myBatis(), - new WidgetDao(system2), - new WidgetPropertyDao(system2), + new WidgetDao(dbTester.myBatis()), + new WidgetPropertyDao(dbTester.myBatis()), new IssueFilterDao(dbTester.myBatis()), new LoadedTemplateDao(dbTester.myBatis()) - )); + ), + system2); task.start(); task.stop(); diff --git a/sonar-core/src/main/java/org/sonar/core/dashboard/WidgetDto.java b/sonar-core/src/main/java/org/sonar/core/dashboard/WidgetDto.java index 989ff9e0eb8..dcd945da250 100644 --- a/sonar-core/src/main/java/org/sonar/core/dashboard/WidgetDto.java +++ b/sonar-core/src/main/java/org/sonar/core/dashboard/WidgetDto.java @@ -20,12 +20,12 @@ package org.sonar.core.dashboard; import com.google.common.collect.Lists; -import org.sonar.core.persistence.Dto; import java.util.Collection; +import java.util.Date; import java.util.List; -public class WidgetDto extends Dto { +public class WidgetDto { private Long id; private Long dashboardId; private String widgetKey; @@ -35,6 +35,8 @@ public class WidgetDto extends Dto { private Integer rowIndex; private boolean configured; private Integer resourceId; + private Date createdAt; + private Date updatedAt; private List widgetPropertyDtos = Lists.newArrayList(); /** @@ -183,8 +185,26 @@ public class WidgetDto extends Dto { return this; } - @Override public Long getKey() { return id; } + + public WidgetDto setCreatedAt(Date datetime) { + this.createdAt = datetime; + return this; + } + + public WidgetDto setUpdatedAt(Date datetime) { + this.updatedAt = datetime; + return this; + } + + public final Date getCreatedAt() { + return this.createdAt; + } + + public final Date getUpdatedAt() { + return this.updatedAt; + } + } diff --git a/sonar-core/src/main/java/org/sonar/core/dashboard/WidgetPropertyDto.java b/sonar-core/src/main/java/org/sonar/core/dashboard/WidgetPropertyDto.java index 352b531bb43..501e179b620 100644 --- a/sonar-core/src/main/java/org/sonar/core/dashboard/WidgetPropertyDto.java +++ b/sonar-core/src/main/java/org/sonar/core/dashboard/WidgetPropertyDto.java @@ -21,11 +21,10 @@ package org.sonar.core.dashboard; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ListMultimap; -import org.sonar.core.persistence.Dto; import java.util.Collection; -public class WidgetPropertyDto extends Dto { +public class WidgetPropertyDto { private Long id; private Long widgetId; private String propertyKey; @@ -67,11 +66,6 @@ public class WidgetPropertyDto extends Dto { return this; } - @Override - public Long getKey() { - return id; - } - public static ListMultimap groupByWidgetId(Collection properties) { ListMultimap group = ArrayListMultimap.create(); for (WidgetPropertyDto property : properties) {