diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2014-07-18 09:51:04 +0200 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2014-07-18 15:43:39 +0200 |
commit | 274e9cefeb16fab1d5e35088289338f12993b208 (patch) | |
tree | 33e9e5a364815bd748973a568caf60a9a66019b9 /sonar-core | |
parent | 9d7b13c044e50067989658700ca307b7ce4804cd (diff) | |
download | sonarqube-274e9cefeb16fab1d5e35088289338f12993b208.tar.gz sonarqube-274e9cefeb16fab1d5e35088289338f12993b208.zip |
SONAR-5417 Load metrics using project referential
Diffstat (limited to 'sonar-core')
-rw-r--r-- | sonar-core/src/main/java/org/sonar/core/metric/CacheMetricFinder.java | 74 | ||||
-rw-r--r-- | sonar-core/src/test/java/org/sonar/core/metric/CacheMetricFinderTest.java | 66 |
2 files changed, 0 insertions, 140 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/metric/CacheMetricFinder.java b/sonar-core/src/main/java/org/sonar/core/metric/CacheMetricFinder.java deleted file mode 100644 index cd8a1d2a8f9..00000000000 --- a/sonar-core/src/main/java/org/sonar/core/metric/CacheMetricFinder.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * SonarQube, open source software quality management tool. - * Copyright (C) 2008-2014 SonarSource - * mailto:contact AT sonarsource DOT com - * - * SonarQube 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. - * - * SonarQube 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 this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.core.metric; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import org.sonar.api.measures.Metric; -import org.sonar.jpa.session.DatabaseSessionFactory; - -import java.util.Collection; -import java.util.List; -import java.util.Map; - -public final class CacheMetricFinder extends DefaultMetricFinder { - - private Map<String, Metric> metricsByKey = Maps.newLinkedHashMap(); - private Map<Integer, Metric> metricsById = Maps.newLinkedHashMap(); - - public CacheMetricFinder(DatabaseSessionFactory sessionFactory) { - super(sessionFactory); - } - - public void start() { - Collection<Metric> metrics = doFindAll(); - for (Metric metric : metrics) { - metricsByKey.put(metric.getKey(), metric); - metricsById.put(metric.getId(), metric); - } - } - - @Override - public Metric findById(int metricId) { - return metricsById.get(metricId); - } - - @Override - public Metric findByKey(String key) { - return metricsByKey.get(key); - } - - @Override - public Collection<Metric> findAll(List<String> metricKeys) { - List<Metric> result = Lists.newLinkedList(); - for (String metricKey : metricKeys) { - Metric metric = findByKey(metricKey); - if (metric != null) { - result.add(metric); - } - } - return result; - } - - @Override - public Collection<Metric> findAll() { - return metricsByKey.values(); - } -} diff --git a/sonar-core/src/test/java/org/sonar/core/metric/CacheMetricFinderTest.java b/sonar-core/src/test/java/org/sonar/core/metric/CacheMetricFinderTest.java deleted file mode 100644 index 515c8e71835..00000000000 --- a/sonar-core/src/test/java/org/sonar/core/metric/CacheMetricFinderTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * SonarQube, open source software quality management tool. - * Copyright (C) 2008-2014 SonarSource - * mailto:contact AT sonarsource DOT com - * - * SonarQube 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. - * - * SonarQube 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 this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -package org.sonar.core.metric; - -import org.junit.Before; -import org.junit.Test; -import org.sonar.core.metric.CacheMetricFinder; -import org.sonar.jpa.test.AbstractDbUnitTestCase; - -import java.util.Arrays; - -import static org.hamcrest.core.Is.is; -import static org.hamcrest.core.IsNull.nullValue; -import static org.junit.Assert.assertThat; - - -public class CacheMetricFinderTest extends AbstractDbUnitTestCase { - - private CacheMetricFinder finder; - - @Before - public void initFinder() { - setupData("shared"); - finder = new CacheMetricFinder(getSessionFactory()); - finder.start(); - } - - @Test - public void shouldFindAll() { - assertThat(finder.findAll().size(), is(2)); - } - - @Test - public void shouldFindByKeys() { - assertThat(finder.findAll(Arrays.<String>asList("ncloc", "foo", "coverage")).size(), is(2)); - } - - @Test - public void shouldFindById() { - assertThat(finder.findById(1).getKey(), is("ncloc")); - assertThat(finder.findById(3), nullValue()); - } - - @Test - public void shouldFindByKey() { - assertThat(finder.findByKey("ncloc").getKey(), is("ncloc")); - assertThat(finder.findByKey("disabled"), nullValue()); - } -} |