From 8c4feab586b986af67f88945707df8b1dc939229 Mon Sep 17 00:00:00 2001 From: Stephane Gamard Date: Fri, 12 Sep 2014 09:13:58 +0200 Subject: [PATCH] SONAR-5560 - updated BaseDao for synchronizer params --- .../main/java/org/sonar/server/db/BaseDao.java | 17 +++++++++++++---- .../src/main/java/org/sonar/server/db/Dao.java | 4 ++++ .../server/issue/db/IssueAuthorizationDao.java | 13 ++++++++----- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/db/BaseDao.java b/server/sonar-server/src/main/java/org/sonar/server/db/BaseDao.java index bceb86eb7b2..415c43c7acf 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/db/BaseDao.java +++ b/server/sonar-server/src/main/java/org/sonar/server/db/BaseDao.java @@ -319,16 +319,25 @@ public abstract class BaseDao, KEY extends Serializ } protected Map getSynchronizationParams(Date date) { - Map params = newHashMap(); - params.put("date", new Timestamp(date.getTime())); - return params; + return getSynchronizationParams(date, Collections.emptyMap()); + } + + protected Map getSynchronizationParams(Date date, Map params) { + Map finalParams = newHashMap(); + finalParams.put("date", new Timestamp(date.getTime())); + return finalParams; } @Override public void synchronizeAfter(final DbSession session, Date date) { + this.synchronizeAfter(session, date, Collections.emptyMap()); + } + + @Override + public void synchronizeAfter(final DbSession session, Date date, Map params) { try { DbSynchronizationHandler handler = getSynchronizationResultHandler(session); - session.select(getSynchronizeStatementFQN(), getSynchronizationParams(date), handler); + session.select(getSynchronizeStatementFQN(), getSynchronizationParams(date, params), handler); handler.enqueueCollected(); } catch (Exception e) { throw new IllegalStateException(e); diff --git a/server/sonar-server/src/main/java/org/sonar/server/db/Dao.java b/server/sonar-server/src/main/java/org/sonar/server/db/Dao.java index 11ac312fa83..5d194a5484e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/db/Dao.java +++ b/server/sonar-server/src/main/java/org/sonar/server/db/Dao.java @@ -24,9 +24,11 @@ import org.sonar.core.persistence.DbSession; import org.sonar.core.persistence.Dto; import javax.annotation.CheckForNull; + import java.io.Serializable; import java.util.Collection; import java.util.Date; +import java.util.Map; public interface Dao, KEY extends Serializable> extends ServerComponent { @@ -80,4 +82,6 @@ public interface Dao, KEY extends Serializable> extends Ser void synchronizeAfter(DbSession session, Date date); + void synchronizeAfter(DbSession session, Date date, Map params); + } diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/db/IssueAuthorizationDao.java b/server/sonar-server/src/main/java/org/sonar/server/issue/db/IssueAuthorizationDao.java index 6ff7ca36400..ba3eb90f954 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/db/IssueAuthorizationDao.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/db/IssueAuthorizationDao.java @@ -44,6 +44,8 @@ import static com.google.common.collect.Maps.newHashMap; public class IssueAuthorizationDao extends BaseDao implements DaoComponent { + public static final String PROJECT_KEY = "project"; + public IssueAuthorizationDao() { this(System2.INSTANCE); } @@ -96,11 +98,12 @@ public class IssueAuthorizationDao extends BaseDao params = super.getSynchronizationParams(date); - params.put("permission", UserRole.USER); - params.put("anyone", DefaultGroups.ANYONE); - return params; + protected Map getSynchronizationParams(Date date, Map params) { + Map finalParams = super.getSynchronizationParams(date, params); + finalParams.put("permission", UserRole.USER); + finalParams.put("anyone", DefaultGroups.ANYONE); + finalParams.put(PROJECT_KEY, params.get(PROJECT_KEY)); + return finalParams; } @Override -- 2.39.5