]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6557 Remove library filter in SQL queries 364/head
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Thu, 11 Jun 2015 07:24:32 +0000 (09:24 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 12 Jun 2015 09:34:29 +0000 (11:34 +0200)
sonar-batch/src/main/java/org/sonar/batch/components/PastMeasuresLoader.java
sonar-batch/src/main/java/org/sonar/batch/deprecated/components/DefaultTimeMachine.java
sonar-batch/src/main/java/org/sonar/batch/deprecated/components/PastSnapshotFinderByDate.java
sonar-batch/src/main/java/org/sonar/batch/deprecated/components/PastSnapshotFinderByDays.java
sonar-batch/src/main/java/org/sonar/batch/deprecated/components/PastSnapshotFinderByPreviousAnalysis.java
sonar-batch/src/main/java/org/sonar/batch/deprecated/components/PastSnapshotFinderByVersion.java
sonar-batch/src/main/java/org/sonar/batch/deprecated/components/PeriodsDefinition.java
sonar-batch/src/test/java/org/sonar/batch/deprecated/components/PeriodsDefinitionTest.java
sonar-batch/src/test/resources/org/sonar/batch/deprecated/components/PeriodsDefinitionTest/shared.xml

index 837c7faed122230c85e59d5b3166639ff5f48abf..b2d2c185f1cc3c848f978209775820329e7e9e21 100644 (file)
 package org.sonar.batch.components;
 
 import com.google.common.collect.Maps;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Nullable;
+import javax.persistence.Query;
 import org.apache.commons.lang.ObjectUtils;
 import org.apache.commons.lang.StringUtils;
 import org.sonar.api.batch.BatchSide;
@@ -27,17 +33,8 @@ import org.sonar.api.database.DatabaseSession;
 import org.sonar.api.database.model.Snapshot;
 import org.sonar.api.measures.Metric;
 import org.sonar.api.measures.MetricFinder;
-import org.sonar.api.resources.Qualifiers;
 import org.sonar.api.resources.Resource;
 
-import javax.annotation.Nullable;
-import javax.persistence.Query;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
 /**
  * Can't be moved. Used by devcockpit.
  */
@@ -80,14 +77,13 @@ public class PastMeasuresLoader {
     String sql = "select m.metric_id, m.characteristic_id, m.person_id, m.rule_id, m.value from project_measures m, snapshots s" +
       " where m.snapshot_id=s.id and m.metric_id in (:metricIds) " +
       "       and (s.root_snapshot_id=:rootSnapshotId or s.id=:rootSnapshotId) " +
-      "       and s.status=:status and s.project_id=(select p.id from projects p where p.kee=:resourceKey and p.qualifier<>:lib"
+      "       and s.status=:status and s.project_id=(select p.id from projects p where p.kee=:resourceKey"
       + (StringUtils.isNotBlank(path) ? " and p.path=:path" : "")
       + ")";
     Query q = session.createNativeQuery(sql)
       .setParameter("metricIds", metricByIds.keySet())
       .setParameter("rootSnapshotId", ObjectUtils.defaultIfNull(projectPastSnapshot.getRootId(), projectPastSnapshot.getId()))
       .setParameter("resourceKey", resourceKey)
-      .setParameter("lib", Qualifiers.LIBRARY)
       .setParameter("status", Snapshot.STATUS_PROCESSED);
     if (StringUtils.isNotBlank(path)) {
       q.setParameter("path", path);
index 35a47982461661c25994a2d04f32bc08f476591e..2cd1898e75fbace5c30321c1c195594fa8106ab6 100644 (file)
@@ -21,6 +21,14 @@ package org.sonar.batch.deprecated.components;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import javax.annotation.Nullable;
+import javax.persistence.Query;
 import org.sonar.api.batch.TimeMachine;
 import org.sonar.api.batch.TimeMachineQuery;
 import org.sonar.api.database.DatabaseSession;
@@ -29,16 +37,11 @@ import org.sonar.api.database.model.Snapshot;
 import org.sonar.api.measures.Measure;
 import org.sonar.api.measures.Metric;
 import org.sonar.api.measures.MetricFinder;
-import org.sonar.api.resources.Qualifiers;
 import org.sonar.api.resources.Resource;
 import org.sonar.api.technicaldebt.batch.Characteristic;
 import org.sonar.api.technicaldebt.batch.TechnicalDebtModel;
 import org.sonar.batch.index.DefaultIndex;
 
-import javax.annotation.Nullable;
-import javax.persistence.Query;
-import java.util.*;
-
 import static org.sonar.api.utils.DateUtils.dateToLong;
 
 public class DefaultTimeMachine implements TimeMachine {
@@ -95,10 +98,9 @@ public class DefaultTimeMachine implements TimeMachine {
       .append(MeasureModel.class.getSimpleName())
       .append(" m, ")
       .append(Snapshot.class.getSimpleName())
-      .append(" s WHERE m.snapshotId=s.id AND s.resourceId=:resourceId AND s.status=:status AND s.qualifier<>:lib");
+      .append(" s WHERE m.snapshotId=s.id AND s.resourceId=:resourceId AND s.status=:status");
     params.put("resourceId", resource.getId());
     params.put("status", Snapshot.STATUS_PROCESSED);
-    params.put("lib", Qualifiers.LIBRARY);
 
     sb.append(" AND m.characteristicId IS NULL");
     sb.append(" AND m.personId IS NULL");
index 72f70afb6799e2cd4112325eff4519a7796a6f6a..da44d6b4314c9651288174853b898a27184d2ed7 100644 (file)
  */
 package org.sonar.batch.deprecated.components;
 
-import org.sonar.api.batch.BatchSide;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import javax.annotation.CheckForNull;
 import org.sonar.api.CoreProperties;
+import org.sonar.api.batch.BatchSide;
 import org.sonar.api.database.DatabaseSession;
 import org.sonar.api.database.model.Snapshot;
-import org.sonar.api.resources.Qualifiers;
 import org.sonar.api.utils.DateUtils;
 import org.sonar.batch.components.PastSnapshot;
 
-import javax.annotation.CheckForNull;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-
 import static org.sonar.api.utils.DateUtils.dateToLong;
 
 @BatchSide
@@ -60,12 +57,11 @@ public class PastSnapshotFinderByDate {
 
   @CheckForNull
   private Snapshot findSnapshot(Integer projectId, Date date) {
-    String hql = "from " + Snapshot.class.getSimpleName() + " where createdAt>=:date AND resourceId=:resourceId AND status=:status AND qualifier<>:lib order by createdAt asc";
+    String hql = "from " + Snapshot.class.getSimpleName() + " where createdAt>=:date AND resourceId=:resourceId AND status=:status order by createdAt asc";
     List<Snapshot> snapshots = session.createQuery(hql)
       .setParameter("date", dateToLong(date))
       .setParameter("resourceId", projectId)
       .setParameter("status", Snapshot.STATUS_PROCESSED)
-      .setParameter("lib", Qualifiers.LIBRARY)
       .setMaxResults(1)
       .getResultList();
 
index 45024e77a85758d674dd312777b9383d09f782d2..ed68dedceacab2ba735ede0c048db03e9a8b15df 100644 (file)
  */
 package org.sonar.batch.deprecated.components;
 
+import java.util.Date;
+import java.util.List;
+import javax.annotation.CheckForNull;
 import org.apache.commons.lang.time.DateUtils;
-import org.sonar.api.batch.BatchSide;
 import org.sonar.api.CoreProperties;
+import org.sonar.api.batch.BatchSide;
 import org.sonar.api.database.DatabaseSession;
 import org.sonar.api.database.model.Snapshot;
-import org.sonar.api.resources.Qualifiers;
 import org.sonar.batch.components.PastSnapshot;
 
-import javax.annotation.CheckForNull;
-
-import java.util.Date;
-import java.util.List;
-
 @BatchSide
 public class PastSnapshotFinderByDays {
 
@@ -43,12 +40,11 @@ public class PastSnapshotFinderByDays {
 
   public PastSnapshot findFromDays(Snapshot projectSnapshot, int days) {
     Date targetDate = DateUtils.addDays(projectSnapshot.getCreatedAt(), -days);
-    String hql = "from " + Snapshot.class.getSimpleName() + " where resourceId=:resourceId AND status=:status AND createdAt<:date AND qualifier<>:lib order by createdAt asc";
+    String hql = "from " + Snapshot.class.getSimpleName() + " where resourceId=:resourceId AND status=:status AND createdAt<:date order by createdAt asc";
     List<Snapshot> snapshots = session.createQuery(hql)
       .setParameter("date", projectSnapshot.getCreatedAtMs())
       .setParameter("resourceId", projectSnapshot.getResourceId())
       .setParameter("status", Snapshot.STATUS_PROCESSED)
-      .setParameter("lib", Qualifiers.LIBRARY)
       .getResultList();
 
     Snapshot snapshot = getNearestToTarget(snapshots, targetDate);
index d454d80b42a414b42254c2138c3c4eb3531eba13..54661f5e85fb284e7eb47eec33b2cd63961bf886 100644 (file)
  */
 package org.sonar.batch.deprecated.components;
 
-import org.sonar.api.batch.BatchSide;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
 import org.sonar.api.CoreProperties;
+import org.sonar.api.batch.BatchSide;
 import org.sonar.api.database.DatabaseSession;
 import org.sonar.api.database.model.Snapshot;
-import org.sonar.api.resources.Qualifiers;
 import org.sonar.api.utils.DateUtils;
 import org.sonar.batch.components.PastSnapshot;
 
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-
 import static org.sonar.api.utils.DateUtils.longToDate;
 
 @BatchSide
@@ -44,13 +42,12 @@ public class PastSnapshotFinderByPreviousAnalysis {
 
   public PastSnapshot findByPreviousAnalysis(Snapshot projectSnapshot) {
     String hql = "from " + Snapshot.class.getSimpleName()
-      + " where createdAt<:date AND resourceId=:resourceId AND status=:status and last=:last and qualifier<>:lib order by createdAt desc";
+      + " where createdAt<:date AND resourceId=:resourceId AND status=:status and last=:last order by createdAt desc";
     List<Snapshot> snapshots = session.createQuery(hql)
       .setParameter("date", projectSnapshot.getCreatedAtMs())
       .setParameter("resourceId", projectSnapshot.getResourceId())
       .setParameter("status", Snapshot.STATUS_PROCESSED)
       .setParameter("last", true)
-      .setParameter("lib", Qualifiers.LIBRARY)
       .setMaxResults(1)
       .getResultList();
 
index 8aa66f49abcb0bde0d5b62fde295950614edf26a..516e4ae97bc1997d06accb7efd31213d3122c481 100644 (file)
  */
 package org.sonar.batch.deprecated.components;
 
-import org.sonar.api.batch.BatchSide;
+import java.util.Date;
+import java.util.List;
 import org.sonar.api.CoreProperties;
+import org.sonar.api.batch.BatchSide;
 import org.sonar.api.database.DatabaseSession;
 import org.sonar.api.database.model.Snapshot;
-import org.sonar.api.resources.Qualifiers;
 import org.sonar.batch.components.PastSnapshot;
 
-import java.util.Date;
-import java.util.List;
-
 import static org.sonar.api.utils.DateUtils.longToDate;
 
 @BatchSide
@@ -41,12 +39,11 @@ public class PastSnapshotFinderByVersion {
   }
 
   public PastSnapshot findByVersion(Snapshot projectSnapshot, String version) {
-    String hql = "from " + Snapshot.class.getSimpleName() + " where version=:version AND resourceId=:resourceId AND status=:status AND qualifier<>:lib order by createdAt desc";
+    String hql = "from " + Snapshot.class.getSimpleName() + " where version=:version AND resourceId=:resourceId AND status=:status order by createdAt desc";
     List<Snapshot> snapshots = session.createQuery(hql)
       .setParameter("version", version)
       .setParameter("resourceId", projectSnapshot.getResourceId())
       .setParameter("status", Snapshot.STATUS_PROCESSED)
-      .setParameter("lib", Qualifiers.LIBRARY)
       .setMaxResults(1)
       .getResultList();
 
index cf1c5380b1af44cb284d0978f2f8b5ab2bd774d5..e72f1eb11eb83d5e1c283db1d493f4ba1324b057 100644 (file)
 
 package org.sonar.batch.deprecated.components;
 
+import java.util.List;
+import javax.persistence.Query;
 import org.sonar.api.batch.BatchSide;
 import org.sonar.api.config.Settings;
 import org.sonar.api.database.DatabaseSession;
 import org.sonar.api.database.model.Snapshot;
-import org.sonar.api.resources.Qualifiers;
 import org.sonar.batch.DefaultProjectTree;
 import org.sonar.batch.components.PastSnapshot;
 import org.sonar.batch.components.PastSnapshotFinder;
 
-import javax.persistence.Query;
-
-import java.util.List;
-
 import static com.google.common.collect.Lists.newLinkedList;
 import static org.sonar.api.utils.DateUtils.dateToLong;
 
@@ -72,9 +69,8 @@ public class PeriodsDefinition {
 
   private Snapshot buildProjectSnapshot() {
     Query query = session
-      .createNativeQuery("select p.id from projects p where p.kee=:resourceKey and p.qualifier<>:lib and p.enabled=:enabled");
+      .createNativeQuery("select p.id from projects p where p.kee=:resourceKey and p.enabled=:enabled");
     query.setParameter("resourceKey", projectTree.getRootProject().getKey());
-    query.setParameter("lib", Qualifiers.LIBRARY);
     query.setParameter("enabled", Boolean.TRUE);
 
     Snapshot snapshot = null;
index dbd7b178e88df93c3831930a55ec1dc0504921e3..373398f8edc4ed209acd2b21faf21a931a69548a 100644 (file)
@@ -59,7 +59,7 @@ public class PeriodsDefinitionTest extends AbstractDbUnitTestCase {
     verify(pastSnapshotFinder).find(argThat(new ArgumentMatcher<Snapshot>() {
       @Override
       public boolean matches(Object o) {
-        return ((Snapshot) o).getResourceId() == 2 /* see database in shared.xml */;
+        return ((Snapshot) o).getResourceId() == 1 /* see database in shared.xml */;
       }
     }), anyString(), eq(settings), eq(1));
   }
index c8796e2bb80156e461188928fb8811adf001a44e..53c21d7f0f70711651925d322f533657f7d8c091 100644 (file)
@@ -1,12 +1,9 @@
 <dataset>
 
-  <projects long_name="[null]" id="1" scope="PRJ" kee="my:project" qualifier="LIB" name="my project as lib"
+  <projects long_name="[null]" id="1" scope="PRJ" kee="my:project" qualifier="TRK" name="my project"
             root_id="[null]" description="[null]" enabled="true"  language="java" copy_resource_id="[null]" person_id="[null]"/>
 
-  <projects long_name="[null]" id="2" scope="PRJ" kee="my:project" qualifier="TRK" name="my project"
-            root_id="[null]" description="[null]" enabled="true"  language="java" copy_resource_id="[null]" person_id="[null]"/>
-
-  <projects long_name="[null]" id="3" scope="DIR" kee="my:project:path/to/dir" qualifier="TRK" name="my dir"
+  <projects long_name="[null]" id="2" scope="DIR" kee="my:project:path/to/dir" qualifier="TRK" name="my dir"
             root_id="2" description="[null]" enabled="true"  language="java" copy_resource_id="[null]" person_id="[null]"/>
 
 </dataset>