From: Stephane Gamard Date: Fri, 23 May 2014 15:23:42 +0000 (+0200) Subject: DAOv.2 - Updated Dao interface for upcoming Synchronizer X-Git-Tag: 4.4-RC1~849 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=477d87e75b3fe9a3d36f3cc2626907c8b477a351;p=sonarqube.git DAOv.2 - Updated Dao interface for upcoming Synchronizer --- diff --git a/sonar-core/src/main/resources/org/sonar/core/qualityprofile/db/ActiveRuleMapper.xml b/sonar-core/src/main/resources/org/sonar/core/qualityprofile/db/ActiveRuleMapper.xml index bb120c7b4b0..b6fc979e329 100644 --- a/sonar-core/src/main/resources/org/sonar/core/qualityprofile/db/ActiveRuleMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/qualityprofile/db/ActiveRuleMapper.xml @@ -38,17 +38,14 @@ diff --git a/sonar-core/src/main/resources/org/sonar/core/rule/RuleMapper.xml b/sonar-core/src/main/resources/org/sonar/core/rule/RuleMapper.xml index 643d7b5c712..73450f041d3 100644 --- a/sonar-core/src/main/resources/org/sonar/core/rule/RuleMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/rule/RuleMapper.xml @@ -186,7 +186,7 @@ diff --git a/sonar-server/src/main/java/org/sonar/server/component/persistence/ComponentDao.java b/sonar-server/src/main/java/org/sonar/server/component/persistence/ComponentDao.java index 36ac10bebe7..789db2f58da 100644 --- a/sonar-server/src/main/java/org/sonar/server/component/persistence/ComponentDao.java +++ b/sonar-server/src/main/java/org/sonar/server/component/persistence/ComponentDao.java @@ -75,12 +75,12 @@ public class ComponentDao extends BaseDao throw notImplemented(); } - @Override - public Iterable keysOfRowsUpdatedAfter(long timestamp, DbSession session) { - throw notImplemented(); + private static IllegalStateException notImplemented() { + throw new IllegalStateException("Not implemented yet"); } - private static IllegalStateException notImplemented() { + @Override + public void synchronizeAfter(long timestamp, DbSession session) { throw new IllegalStateException("Not implemented yet"); } } diff --git a/sonar-server/src/main/java/org/sonar/server/measure/persistence/MeasureDao.java b/sonar-server/src/main/java/org/sonar/server/measure/persistence/MeasureDao.java index c77e87014e2..7aa3f4380fd 100644 --- a/sonar-server/src/main/java/org/sonar/server/measure/persistence/MeasureDao.java +++ b/sonar-server/src/main/java/org/sonar/server/measure/persistence/MeasureDao.java @@ -84,7 +84,7 @@ public class MeasureDao extends BaseDao i } @Override - public Iterable keysOfRowsUpdatedAfter(long timestamp, DbSession session) { + public void synchronizeAfter(long timestamp, DbSession session) { throw new IllegalStateException("Not implemented yet"); } } diff --git a/sonar-server/src/main/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDao.java b/sonar-server/src/main/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDao.java index daf2f7744af..cbe56e8f7cc 100644 --- a/sonar-server/src/main/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDao.java +++ b/sonar-server/src/main/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDao.java @@ -39,8 +39,10 @@ import org.sonar.server.db.BaseDao; import org.sonar.server.qualityprofile.QProfile; import org.sonar.server.qualityprofile.index.ActiveRuleIndexDefinition; import org.sonar.server.rule2.persistence.RuleDao; +import org.sonar.server.search.action.IndexAction; +import org.sonar.server.search.action.KeyIndexAction; -import java.util.Date; +import java.sql.Timestamp; import java.util.List; import java.util.Map; @@ -62,13 +64,15 @@ public class ActiveRuleDao extends BaseDao resultObject = (Map) context.getResultObject(); - resultObject.get(|TOTO); - //session.enqueue(); + Map fields = (Map) context.getResultObject(); + ActiveRuleKey key = ActiveRuleKey.of( + QualityProfileKey.of((String) fields.get("PROFILEFIELD"), (String) fields.get("LANGUAGEFIELD")), + RuleKey.of((String) fields.get("REPOSITORYFIELD"), (String) fields.get("RULEFIELD"))); + session.enqueue(new KeyIndexAction(getIndexType(), IndexAction.Method.UPSERT, key)); } }); } diff --git a/sonar-server/src/main/java/org/sonar/server/rule2/persistence/RuleDao.java b/sonar-server/src/main/java/org/sonar/server/rule2/persistence/RuleDao.java index 8cece78d6ec..b4cef739556 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule2/persistence/RuleDao.java +++ b/sonar-server/src/main/java/org/sonar/server/rule2/persistence/RuleDao.java @@ -21,7 +21,6 @@ package org.sonar.server.rule2.persistence; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import org.apache.ibatis.session.ResultContext; import org.apache.ibatis.session.ResultHandler; import org.sonar.api.rule.RuleKey; @@ -32,11 +31,12 @@ import org.sonar.core.rule.RuleMapper; import org.sonar.core.rule.RuleParamDto; import org.sonar.server.db.BaseDao; import org.sonar.server.rule2.index.RuleIndexDefinition; +import org.sonar.server.search.action.IndexAction; +import org.sonar.server.search.action.KeyIndexAction; import javax.annotation.CheckForNull; import java.sql.Timestamp; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.Map; @@ -90,17 +90,17 @@ public class RuleDao extends BaseDao { return mapper(session).selectById(rule.getParentId()); } + @Override - public Collection keysOfRowsUpdatedAfter(long timestamp, DbSession session) { - final List keys = Lists.newArrayList(); + public void synchronizeAfter(long timestamp, final DbSession session) { session.select("selectKeysOfRulesUpdatedSince", new Timestamp(timestamp), new ResultHandler() { @Override public void handleResult(ResultContext context) { Map map = (Map) context.getResultObject(); - keys.add(RuleKey.of(map.get("repo"), map.get("rule"))); + session.enqueue(new KeyIndexAction(getIndexType(), IndexAction.Method.UPSERT, + RuleKey.of(map.get("repoField"), map.get("ruleField")))); } }); - return keys; } /** diff --git a/sonar-server/src/test/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDaoTest.java b/sonar-server/src/test/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDaoTest.java index dc1cf73dfae..12689e3569e 100644 --- a/sonar-server/src/test/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDaoTest.java +++ b/sonar-server/src/test/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDaoTest.java @@ -75,7 +75,5 @@ public class ActiveRuleDaoTest extends AbstractDaoTestCase{ assertThat(result).isNotNull(); assertThat(result.getKey()).isNotNull(); - - } -} +} \ No newline at end of file