Selaa lähdekoodia

Move MetricDao to sonar-db

tags/5.2-RC1
Teryk Bellahsene 9 vuotta sitten
vanhempi
commit
a41640c8e6
25 muutettua tiedostoa jossa 33 lisäystä ja 69 poistoa
  1. 0
    7
      server/sonar-server/src/main/java/org/sonar/server/db/DbClient.java
  2. 0
    24
      server/sonar-server/src/main/java/org/sonar/server/metric/persistence/package-info.java
  3. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/metric/ws/SearchAction.java
  4. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel1.java
  5. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/batch/GlobalActionTest.java
  6. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java
  7. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/computation/metric/MetricRepositoryImplTest.java
  8. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistDuplicationsStepTest.java
  9. 2
    2
      server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/CreateActionTest.java
  10. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/MetricsActionTest.java
  11. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/SearchActionTest.java
  12. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/UpdateActionTest.java
  13. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/metric/DefaultMetricFinderTest.java
  14. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/metric/ws/CreateActionTest.java
  15. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/metric/ws/DeleteActionTest.java
  16. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/metric/ws/DomainsActionTest.java
  17. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/metric/ws/SearchActionTest.java
  18. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/metric/ws/UpdateActionTest.java
  19. 1
    1
      server/sonar-server/src/test/java/org/sonar/server/startup/RegisterMetricsTest.java
  20. 8
    1
      sonar-db/src/main/java/org/sonar/db/DbClient.java
  21. 5
    13
      sonar-db/src/main/java/org/sonar/db/metric/MetricDao.java
  22. 0
    2
      sonar-db/src/main/java/org/sonar/db/metric/MetricMapper.java
  23. 2
    4
      sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java
  24. 0
    0
      sonar-db/src/test/resources/org/sonar/db/metric/MetricDaoTest/manual_metric.xml
  25. 0
    0
      sonar-db/src/test/resources/org/sonar/db/metric/MetricDaoTest/shared.xml

+ 0
- 7
server/sonar-server/src/main/java/org/sonar/server/db/DbClient.java Näytä tiedosto

@@ -23,7 +23,6 @@ import java.util.Map;
import org.sonar.db.Dao;
import org.sonar.db.Database;
import org.sonar.db.MyBatis;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.server.qualityprofile.db.ActiveRuleDao;
import org.sonar.server.rule.db.RuleDao;
import org.sonar.server.user.db.GroupDao;
@@ -37,7 +36,6 @@ public class DbClient extends org.sonar.db.DbClient {

private ActiveRuleDao activeRuleDao;
private GroupDao groupDao;
private MetricDao metricDao;
private RuleDao ruleDao;
private UserDao userDao;

@@ -49,7 +47,6 @@ public class DbClient extends org.sonar.db.DbClient {
protected void doOnLoad(Map<Class, Dao> daoByClass) {
this.activeRuleDao = (ActiveRuleDao) daoByClass.get(ActiveRuleDao.class);
this.groupDao = (GroupDao) daoByClass.get(GroupDao.class);
this.metricDao = (MetricDao) daoByClass.get(MetricDao.class);
this.ruleDao = (RuleDao) daoByClass.get(RuleDao.class);
this.userDao = (UserDao) daoByClass.get(UserDao.class);
}
@@ -62,10 +59,6 @@ public class DbClient extends org.sonar.db.DbClient {
return groupDao;
}

public MetricDao metricDao() {
return metricDao;
}

public RuleDao ruleDao() {
return ruleDao;
}

+ 0
- 24
server/sonar-server/src/main/java/org/sonar/server/metric/persistence/package-info.java Näytä tiedosto

@@ -1,24 +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.
*/

@ParametersAreNonnullByDefault
package org.sonar.server.metric.persistence;

import javax.annotation.ParametersAreNonnullByDefault;

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/metric/ws/SearchAction.java Näytä tiedosto

@@ -92,7 +92,7 @@ public class SearchAction implements MetricsWsAction {
Boolean isCustom = request.paramAsBoolean(PARAM_IS_CUSTOM);
DbSession dbSession = dbClient.openSession(false);
try {
List<MetricDto> metrics = dbClient.metricDao().selectEnabled(dbSession, isCustom, searchOptions);
List<MetricDto> metrics = dbClient.metricDao().selectEnabled(dbSession, isCustom, searchOptions.getOffset(), searchOptions.getLimit());
int nbMetrics = dbClient.metricDao().countEnabled(dbSession, isCustom);
JsonWriter json = response.newJsonWriter();
json.beginObject();

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel1.java Näytä tiedosto

@@ -37,7 +37,7 @@ import org.sonar.db.version.MigrationStepModule;
import org.sonar.server.db.DbClient;
import org.sonar.server.db.EmbeddedDatabaseFactory;
import org.sonar.server.issue.index.IssueIndex;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.platform.DatabaseServerCompatibility;
import org.sonar.server.platform.DefaultServerFileSystem;
import org.sonar.server.platform.Platform;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/batch/GlobalActionTest.java Näytä tiedosto

@@ -34,7 +34,7 @@ import org.sonar.db.property.PropertiesDao;
import org.sonar.db.property.PropertyDto;
import org.sonar.server.db.DbClient;
import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsTester;


+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/computation/measure/MeasureRepositoryImplTest.java Näytä tiedosto

@@ -55,7 +55,7 @@ import org.sonar.server.computation.metric.MetricImpl;
import org.sonar.server.computation.metric.MetricRepository;
import org.sonar.server.computation.metric.ReportMetricValidator;
import org.sonar.server.db.DbClient;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;

import static com.google.common.collect.FluentIterable.from;
import static java.lang.String.format;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/computation/metric/MetricRepositoryImplTest.java Näytä tiedosto

@@ -27,7 +27,7 @@ import org.junit.rules.ExpectedException;
import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
import org.sonar.server.db.DbClient;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.test.DbTests;

import static org.assertj.core.api.Assertions.assertThat;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistDuplicationsStepTest.java Näytä tiedosto

@@ -40,7 +40,7 @@ import org.sonar.server.computation.component.Component;
import org.sonar.server.computation.component.DbIdsRepository;
import org.sonar.server.computation.component.DumbComponent;
import org.sonar.server.db.DbClient;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.test.DbTests;

import static com.google.common.collect.Lists.newArrayList;

+ 2
- 2
server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/CreateActionTest.java Näytä tiedosto

@@ -51,7 +51,7 @@ import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.server.exceptions.ServerException;
import org.sonar.db.measure.custom.CustomMeasureDao;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.metric.ws.MetricTesting;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.user.index.UserDoc;
@@ -361,7 +361,7 @@ public class CreateActionTest {
dbClient.componentDao().insert(dbSession, ComponentTesting.newProjectDto(DEFAULT_PROJECT_UUID));
dbSession.commit();

expectedException.expect(ServerException.class);
expectedException.expect(IllegalStateException.class);
expectedException.expectMessage("Metric id '42' not found");

newRequest()

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/MetricsActionTest.java Näytä tiedosto

@@ -45,7 +45,7 @@ import org.sonar.server.db.DbClient;
import org.sonar.server.es.EsTester;
import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.db.measure.custom.CustomMeasureDao;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.user.index.UserDoc;
import org.sonar.server.user.index.UserIndexDefinition;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/SearchActionTest.java Näytä tiedosto

@@ -51,7 +51,7 @@ import org.sonar.server.es.EsTester;
import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.db.measure.custom.CustomMeasureDao;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.user.index.UserDoc;
import org.sonar.server.user.index.UserIndex;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/measure/custom/ws/UpdateActionTest.java Näytä tiedosto

@@ -45,7 +45,7 @@ import org.sonar.server.es.EsTester;
import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.ServerException;
import org.sonar.server.exceptions.UnauthorizedException;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.metric.ws.MetricTesting;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.user.index.UserDoc;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/metric/DefaultMetricFinderTest.java Näytä tiedosto

@@ -27,7 +27,7 @@ import org.junit.experimental.categories.Category;
import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
import org.sonar.server.db.DbClient;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.test.DbTests;

import static org.hamcrest.core.Is.is;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/metric/ws/CreateActionTest.java Näytä tiedosto

@@ -37,7 +37,7 @@ import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.ServerException;
import org.sonar.db.measure.custom.CustomMeasureDao;
import org.sonar.db.measure.custom.CustomMeasureTesting;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.ruby.RubyBridge;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsTester;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/metric/ws/DeleteActionTest.java Näytä tiedosto

@@ -38,7 +38,7 @@ import org.sonar.server.db.DbClient;
import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.db.measure.custom.CustomMeasureDao;
import org.sonar.db.measure.custom.CustomMeasureTesting;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.ruby.RubyBridge;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsTester;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/metric/ws/DomainsActionTest.java Näytä tiedosto

@@ -30,7 +30,7 @@ import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.metric.MetricDto;
import org.sonar.server.db.DbClient;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.ws.WsTester;
import org.sonar.test.DbTests;
import org.sonar.test.JsonAssert;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/metric/ws/SearchActionTest.java Näytä tiedosto

@@ -32,7 +32,7 @@ import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.metric.MetricDto;
import org.sonar.server.db.DbClient;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.ws.WsTester;
import org.sonar.test.DbTests;


+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/metric/ws/UpdateActionTest.java Näytä tiedosto

@@ -36,7 +36,7 @@ import org.sonar.server.db.DbClient;
import org.sonar.server.exceptions.ForbiddenException;
import org.sonar.server.exceptions.ServerException;
import org.sonar.db.measure.custom.CustomMeasureDao;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.server.ruby.RubyBridge;
import org.sonar.server.tester.UserSessionRule;
import org.sonar.server.ws.WsTester;

+ 1
- 1
server/sonar-server/src/test/java/org/sonar/server/startup/RegisterMetricsTest.java Näytä tiedosto

@@ -31,7 +31,7 @@ import org.sonar.api.utils.System2;
import org.sonar.db.DbTester;
import org.sonar.db.qualitygate.QualityGateConditionDao;
import org.sonar.server.db.DbClient;
import org.sonar.server.metric.persistence.MetricDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.test.DbTests;

import static java.util.Arrays.asList;

+ 8
- 1
sonar-db/src/main/java/org/sonar/db/DbClient.java Näytä tiedosto

@@ -47,6 +47,7 @@ import org.sonar.db.loadedtemplate.LoadedTemplateDao;
import org.sonar.db.measure.MeasureDao;
import org.sonar.db.measure.MeasureFilterDao;
import org.sonar.db.measure.custom.CustomMeasureDao;
import org.sonar.db.metric.MetricDao;
import org.sonar.db.notification.NotificationQueueDao;
import org.sonar.db.permission.PermissionDao;
import org.sonar.db.permission.PermissionTemplateDao;
@@ -109,8 +110,9 @@ public class DbClient {
private final DuplicationDao duplicationDao;
private final NotificationQueueDao notificationQueueDao;
private final CustomMeasureDao customMeasureDao;
private final MetricDao metricDao;

public DbClient(Database database, MyBatis myBatis, Dao ... daos) {
public DbClient(Database database, MyBatis myBatis, Dao... daos) {
this.database = database;
this.myBatis = myBatis;

@@ -159,6 +161,7 @@ public class DbClient {
duplicationDao = getDao(map, DuplicationDao.class);
notificationQueueDao = getDao(map, NotificationQueueDao.class);
customMeasureDao = getDao(map, CustomMeasureDao.class);
metricDao = getDao(map, MetricDao.class);
doOnLoad(map);
}

@@ -343,6 +346,10 @@ public class DbClient {
return customMeasureDao;
}

public MetricDao metricDao() {
return metricDao;
}

protected <K extends Dao> K getDao(Map<Class, Dao> map, Class<K> clazz) {
return (K) map.get(clazz);
}

server/sonar-server/src/main/java/org/sonar/server/metric/persistence/MetricDao.java → sonar-db/src/main/java/org/sonar/db/metric/MetricDao.java Näytä tiedosto

@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

package org.sonar.server.metric.persistence;
package org.sonar.db.metric;

import com.google.common.base.Function;
import com.google.common.base.Predicate;
@@ -37,10 +37,6 @@ import org.apache.ibatis.session.RowBounds;
import org.sonar.db.Dao;
import org.sonar.db.DatabaseUtils;
import org.sonar.db.DbSession;
import org.sonar.db.metric.MetricDto;
import org.sonar.db.metric.MetricMapper;
import org.sonar.server.es.SearchOptions;
import org.sonar.server.exceptions.NotFoundException;

import static com.google.common.collect.Lists.newArrayList;

@@ -63,7 +59,7 @@ public class MetricDao implements Dao {
public MetricDto selectByKey(DbSession session, String key) {
MetricDto metric = selectNullableByKey(session, key);
if (metric == null) {
throw new NotFoundException(String.format("Metric key '%s' not found", key));
throw new IllegalStateException(String.format("Metric key '%s' not found", key));
}
return metric;
}
@@ -72,13 +68,13 @@ public class MetricDao implements Dao {
return mapper(session).selectAllEnabled();
}

public List<MetricDto> selectEnabled(DbSession session, @Nullable Boolean isCustom, SearchOptions searchOptions) {
public List<MetricDto> selectEnabled(DbSession session, @Nullable Boolean isCustom, int offset, int limit) {
Map<String, Object> properties = Maps.newHashMapWithExpectedSize(1);
if (isCustom != null) {
properties.put("isCustom", isCustom);
}

return mapper(session).selectAllEnabled(properties, new RowBounds(searchOptions.getOffset(), searchOptions.getLimit()));
return mapper(session).selectAllEnabled(properties, new RowBounds(offset, limit));
}

public int countEnabled(DbSession session, @Nullable Boolean isCustom) {
@@ -107,10 +103,6 @@ public class MetricDao implements Dao {
return mapper(session).selectAvailableCustomMetricsByComponentUuid(projectUuid);
}

public List<MetricDto> selectAvailableCustomMetricsByComponentKey(DbSession session, String projectKey) {
return mapper(session).selectAvailableCustomMetricsByComponentUuid(projectKey);
}

public List<MetricDto> selectByIds(final DbSession session, Set<Integer> idsSet) {
List<Integer> ids = new ArrayList<>(idsSet);
return DatabaseUtils.executeLargeInputs(ids, new Function<List<Integer>, List<MetricDto>>() {
@@ -158,7 +150,7 @@ public class MetricDao implements Dao {
public MetricDto selectById(DbSession session, int id) {
MetricDto metric = mapper(session).selectById(id);
if (metric == null) {
throw new NotFoundException(String.format("Metric id '%d' not found", id));
throw new IllegalStateException(String.format("Metric id '%d' not found", id));
}
return metric;
}

+ 0
- 2
sonar-db/src/main/java/org/sonar/db/metric/MetricMapper.java Näytä tiedosto

@@ -53,6 +53,4 @@ public interface MetricMapper {
void update(MetricDto metric);

List<MetricDto> selectAvailableCustomMetricsByComponentUuid(String projectUuid);

List<MetricDto> selectAvailableCustomMetricsByComponentKey(String projectKey);
}

server/sonar-server/src/test/java/org/sonar/server/metric/persistence/MetricDaoTest.java → sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java Näytä tiedosto

@@ -18,7 +18,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

package org.sonar.server.metric.persistence;
package org.sonar.db.metric;

import org.junit.After;
import org.junit.Before;
@@ -28,8 +28,6 @@ import org.junit.experimental.categories.Category;
import org.sonar.api.utils.System2;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.metric.MetricDto;
import org.sonar.server.exceptions.NotFoundException;
import org.sonar.test.DbTests;

import static org.assertj.core.api.Assertions.assertThat;
@@ -83,7 +81,7 @@ public class MetricDaoTest {
assertThat(result.isEnabled()).isFalse();
}

@Test(expected = NotFoundException.class)
@Test(expected = IllegalStateException.class)
public void get_nullable_by_key() {
dao.selectByKey(session, "unknown");
}

server/sonar-server/src/test/resources/org/sonar/server/metric/persistence/MetricDaoTest/manual_metric.xml → sonar-db/src/test/resources/org/sonar/db/metric/MetricDaoTest/manual_metric.xml Näytä tiedosto


server/sonar-server/src/test/resources/org/sonar/server/metric/persistence/MetricDaoTest/shared.xml → sonar-db/src/test/resources/org/sonar/db/metric/MetricDaoTest/shared.xml Näytä tiedosto


Loading…
Peruuta
Tallenna