@@ -43,7 +43,7 @@ import org.sonar.server.computation.component.Component; | |||
import org.sonar.server.computation.component.DumbComponent; | |||
import org.sonar.server.computation.step.PersistFileSourcesStep; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.source.db.FileSourceDao; | |||
import org.sonar.db.source.FileSourceDao; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -19,6 +19,11 @@ | |||
*/ | |||
package org.sonar.server.benchmark; | |||
import java.io.IOException; | |||
import java.sql.Connection; | |||
import java.util.Arrays; | |||
import java.util.Timer; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import org.apache.commons.dbutils.DbUtils; | |||
import org.apache.commons.io.IOUtils; | |||
import org.junit.Rule; | |||
@@ -27,20 +32,13 @@ import org.slf4j.Logger; | |||
import org.slf4j.LoggerFactory; | |||
import org.sonar.api.utils.internal.Uuids; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.source.FileSourceDao; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.source.db.FileSourceDao; | |||
import org.sonar.server.source.db.FileSourceDb; | |||
import org.sonar.server.source.index.FileSourcesUpdaterHelper; | |||
import org.sonar.server.source.index.SourceLineResultSetIterator; | |||
import java.io.IOException; | |||
import java.sql.Connection; | |||
import java.sql.SQLException; | |||
import java.util.Arrays; | |||
import java.util.Timer; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
public class SourceDbBenchmarkTest { | |||
@@ -63,7 +61,7 @@ public class SourceDbBenchmarkTest { | |||
scrollRows(); | |||
} | |||
private void scrollRows() throws SQLException { | |||
private void scrollRows() throws Exception { | |||
LOGGER.info("Scroll table FILE_SOURCES"); | |||
DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis()); | |||
Connection connection = dbTester.openConnection(); |
@@ -28,13 +28,13 @@ import org.sonar.api.server.ServerSide; | |||
import org.sonar.api.utils.TimeUtils; | |||
import org.sonar.api.utils.log.Logger; | |||
import org.sonar.api.utils.log.Loggers; | |||
import org.sonar.db.purge.period.DefaultPeriodCleaner; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.purge.IdUuidPair; | |||
import org.sonar.db.purge.PurgeConfiguration; | |||
import org.sonar.db.purge.PurgeDao; | |||
import org.sonar.db.purge.PurgeListener; | |||
import org.sonar.db.purge.PurgeProfiler; | |||
import org.sonar.db.purge.period.DefaultPeriodCleaner; | |||
import org.sonar.server.issue.index.IssueIndex; | |||
import static org.sonar.db.purge.PurgeConfiguration.newDefaultPurgeConfiguration; | |||
@@ -100,7 +100,7 @@ public class ProjectCleaner { | |||
private void doPurge(DbSession session, PurgeConfiguration configuration) { | |||
try { | |||
purgeDao.purge(session, configuration, purgeListener); | |||
purgeDao.purge(session, configuration, purgeListener, profiler); | |||
} catch (Exception e) { | |||
// purge errors must no fail the report analysis | |||
LOG.error("Fail to purge data [id=" + configuration.rootProjectIdUuid().getId() + "]", e); |
@@ -1,23 +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.activity.db; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -24,7 +24,7 @@ import org.elasticsearch.action.update.UpdateRequest; | |||
import org.sonar.api.utils.KeyValueFormat; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.ResultSetIterator; | |||
import org.sonar.db.ResultSetIterator; | |||
import org.sonar.server.es.EsUtils; | |||
import org.sonar.server.util.DateCollector; | |||
@@ -20,22 +20,22 @@ | |||
package org.sonar.server.component; | |||
import org.sonar.api.server.ServerSide; | |||
import java.util.List; | |||
import org.sonar.api.resources.ResourceType; | |||
import org.sonar.api.resources.ResourceTypes; | |||
import org.sonar.api.resources.Scopes; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.MyBatis; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.purge.IdUuidPair; | |||
import org.sonar.db.purge.PurgeProfiler; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.issue.index.IssueAuthorizationIndexer; | |||
import org.sonar.server.issue.index.IssueIndexer; | |||
import org.sonar.server.source.index.SourceLineIndexer; | |||
import org.sonar.server.test.index.TestIndexer; | |||
import java.util.List; | |||
@ServerSide | |||
public class ComponentCleanerService { | |||
@@ -76,7 +76,7 @@ public class ComponentCleanerService { | |||
if (hasNotProjectScope(project) || isNotDeletable(project)) { | |||
throw new IllegalArgumentException("Only projects can be deleted"); | |||
} | |||
dbClient.purgeDao().deleteResourceTree(dbSession, new IdUuidPair(project.getId(), project.uuid())); | |||
dbClient.purgeDao().deleteResourceTree(dbSession, new IdUuidPair(project.getId(), project.uuid()), new PurgeProfiler()); | |||
dbSession.commit(); | |||
deleteFromIndices(project.uuid()); |
@@ -32,13 +32,14 @@ import org.apache.ibatis.session.RowBounds; | |||
import org.sonar.api.resources.Qualifiers; | |||
import org.sonar.api.resources.Scopes; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.FilePathWithHashDto; | |||
import org.sonar.db.component.UuidWithProjectUuidDto; | |||
import org.sonar.db.component.ComponentMapper; | |||
import org.sonar.db.Dao; | |||
import org.sonar.db.DaoUtils; | |||
import org.sonar.db.DatabaseUtils; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentMapper; | |||
import org.sonar.db.component.FilePathWithHashDto; | |||
import org.sonar.db.component.UuidWithProjectUuidDto; | |||
import org.sonar.server.es.SearchOptions; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
@@ -50,16 +51,16 @@ import static com.google.common.collect.Maps.newHashMapWithExpectedSize; | |||
@ServerSide | |||
public class ComponentDao implements Dao { | |||
public ComponentDto selectById(Long id, DbSession session) { | |||
public ComponentDto selectById(long id, DbSession session) { | |||
ComponentDto componentDto = selectNullableById(id, session); | |||
if (componentDto == null) { | |||
throw new NotFoundException(String.format("Project with id '%s' not found", id)); | |||
throw new IllegalArgumentException(String.format("Component id does not exist: %d", id)); | |||
} | |||
return componentDto; | |||
} | |||
@CheckForNull | |||
public ComponentDto selectNullableById(Long id, DbSession session) { | |||
public ComponentDto selectNullableById(long id, DbSession session) { | |||
return mapper(session).selectById(id); | |||
} | |||
@@ -104,7 +105,7 @@ public class ComponentDao implements Dao { | |||
} | |||
public List<ComponentDto> selectByIds(final DbSession session, Collection<Long> ids) { | |||
return DaoUtils.executeLargeInputs(ids, new Function<List<Long>, List<ComponentDto>>() { | |||
return DatabaseUtils.executeLargeInputs(ids, new Function<List<Long>, List<ComponentDto>>() { | |||
@Override | |||
public List<ComponentDto> apply(List<Long> partition) { | |||
return mapper(session).selectByIds(partition); | |||
@@ -113,7 +114,7 @@ public class ComponentDao implements Dao { | |||
} | |||
public List<ComponentDto> selectByUuids(final DbSession session, Collection<String> uuids) { | |||
return DaoUtils.executeLargeInputs(uuids, new Function<List<String>, List<ComponentDto>>() { | |||
return DatabaseUtils.executeLargeInputs(uuids, new Function<List<String>, List<ComponentDto>>() { | |||
@Override | |||
public List<ComponentDto> apply(List<String> partition) { | |||
return mapper(session).selectByUuids(partition); | |||
@@ -122,7 +123,7 @@ public class ComponentDao implements Dao { | |||
} | |||
public List<String> selectExistingUuids(final DbSession session, Collection<String> uuids) { | |||
return DaoUtils.executeLargeInputs(uuids, new Function<List<String>, List<String>>() { | |||
return DatabaseUtils.executeLargeInputs(uuids, new Function<List<String>, List<String>>() { | |||
@Override | |||
public List<String> apply(List<String> partition) { | |||
return mapper(session).selectExistingUuids(partition); |
@@ -1,37 +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.server.component.db; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.db.component.ComponentIndexMapper; | |||
import org.sonar.db.Dao; | |||
import org.sonar.db.DbSession; | |||
import java.util.List; | |||
@ServerSide | |||
public class ComponentIndexDao implements Dao { | |||
public List<Long> selectProjectIdsFromQueryAndViewOrSubViewUuid(DbSession session, String query, String viewOrSubViewUuid) { | |||
return session.getMapper(ComponentIndexMapper.class).selectProjectIdsFromQueryAndViewOrSubViewUuid(query + "%", "%." + viewOrSubViewUuid + ".%"); | |||
} | |||
} |
@@ -34,7 +34,7 @@ import org.sonar.db.compute.AnalysisReportDto; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.MyBatis; | |||
import org.sonar.process.ProcessProperties; | |||
import org.sonar.server.computation.db.AnalysisReportDao; | |||
import org.sonar.db.compute.AnalysisReportDao; | |||
import org.sonar.server.db.DbClient; | |||
import static org.sonar.db.compute.AnalysisReportDto.Status.PENDING; |
@@ -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.computation.db; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -24,13 +24,13 @@ import java.util.List; | |||
import org.sonar.db.component.SnapshotDto; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.MyBatis; | |||
import org.sonar.server.component.db.SnapshotDao; | |||
import org.sonar.db.component.SnapshotDao; | |||
import org.sonar.server.computation.component.Component; | |||
import org.sonar.server.computation.component.DbIdsRepository; | |||
import org.sonar.server.computation.component.TreeRootHolder; | |||
import org.sonar.server.db.DbClient; | |||
import static org.sonar.server.component.db.SnapshotDao.isLast; | |||
import static org.sonar.db.component.SnapshotDao.isLast; | |||
public class SwitchSnapshotStep implements ComputationStep { | |||
@@ -1,49 +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.server.dashboard.db; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import org.sonar.db.dashboard.DashboardDto; | |||
import org.sonar.db.dashboard.DashboardMapper; | |||
import org.sonar.db.Dao; | |||
import org.sonar.db.DbSession; | |||
public class DashboardDao implements Dao { | |||
@CheckForNull | |||
public DashboardDto getNullableByKey(DbSession session, Long key) { | |||
return mapper(session).selectById(key); | |||
} | |||
/** | |||
* Get dashboard if allowed : shared or owned by logged-in user | |||
* @param userId id of logged-in user, null if anonymous | |||
*/ | |||
@CheckForNull | |||
public DashboardDto getAllowedByKey(DbSession session, Long key, @Nullable Long userId) { | |||
return mapper(session).selectAllowedById(key, userId != null ? userId : -1L); | |||
} | |||
private DashboardMapper mapper(DbSession session) { | |||
return session.getMapper(DashboardMapper.class); | |||
} | |||
} |
@@ -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.dashboard.db; | |||
import javax.annotation.ParametersAreNonnullByDefault; | |||
@@ -19,16 +19,13 @@ | |||
*/ | |||
package org.sonar.server.db; | |||
import com.google.common.annotations.VisibleForTesting; | |||
import com.google.common.base.Preconditions; | |||
import com.google.common.collect.ImmutableList; | |||
import com.google.common.collect.Lists; | |||
import java.io.Serializable; | |||
import java.sql.Timestamp; | |||
import java.util.Collection; | |||
import java.util.Collections; | |||
import java.util.Date; | |||
import java.util.List; | |||
import java.util.Map; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
@@ -49,7 +46,6 @@ import org.sonar.server.search.action.RefreshIndex; | |||
import org.sonar.server.search.action.UpsertDto; | |||
import org.sonar.server.search.action.UpsertNestedItem; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import static com.google.common.collect.Maps.newHashMap; | |||
/** | |||
@@ -120,7 +116,7 @@ import static com.google.common.collect.Maps.newHashMap; | |||
* @param <DTO> Produced DTO class from this dao | |||
* @param <KEY> DTO Key class | |||
*/ | |||
public abstract class BaseDao<MAPPER, DTO extends Dto<KEY>, KEY extends Serializable> implements DeprecatedDao<DTO,KEY>, Dao { | |||
public abstract class BaseDao<MAPPER, DTO extends Dto<KEY>, KEY extends Serializable> implements DeprecatedDao<DTO, KEY>, Dao { | |||
private static final Logger LOGGER = Loggers.get(BaseDao.class); | |||
@@ -138,10 +134,6 @@ public abstract class BaseDao<MAPPER, DTO extends Dto<KEY>, KEY extends Serializ | |||
this.system2 = system2; | |||
} | |||
protected BaseDao(Class<MAPPER> mapperClass, System2 system2) { | |||
this(null, mapperClass, system2); | |||
} | |||
public String getIndexType() { | |||
return indexDefinition != null ? this.indexDefinition.getIndexType() : null; | |||
} | |||
@@ -165,27 +157,6 @@ public abstract class BaseDao<MAPPER, DTO extends Dto<KEY>, KEY extends Serializ | |||
return value; | |||
} | |||
public List<DTO> getByKeys(DbSession session, KEY... keys) { | |||
return getByKeys(session, ImmutableList.<KEY>copyOf(keys)); | |||
} | |||
public List<DTO> getByKeys(DbSession session, Collection<KEY> keys) { | |||
if (keys.isEmpty()) { | |||
return Collections.emptyList(); | |||
} | |||
List<DTO> components = newArrayList(); | |||
List<List<KEY>> partitionList = Lists.partition(newArrayList(keys), 1000); | |||
for (List<KEY> partition : partitionList) { | |||
List<DTO> dtos = doGetByKeys(session, partition); | |||
components.addAll(dtos); | |||
} | |||
return components; | |||
} | |||
protected List<DTO> doGetByKeys(DbSession session, Collection<KEY> keys) { | |||
throw notImplemented(this); | |||
} | |||
@Override | |||
public DTO update(DbSession session, DTO item) { | |||
Date now = new Date(system2.now()); | |||
@@ -195,7 +166,7 @@ public abstract class BaseDao<MAPPER, DTO extends Dto<KEY>, KEY extends Serializ | |||
@Override | |||
public DTO update(DbSession session, DTO item, DTO... others) { | |||
update(session, Lists.<DTO>asList(item, others)); | |||
update(session, Lists.asList(item, others)); | |||
return item; | |||
} | |||
@@ -307,16 +278,6 @@ public abstract class BaseDao<MAPPER, DTO extends Dto<KEY>, KEY extends Serializ | |||
} | |||
} | |||
@VisibleForTesting | |||
public List<DTO> findAfterDate(final DbSession session, Date date, Map<String, String> params) { | |||
return session.selectList(getSynchronizeStatementFQN(), getSynchronizationParams(date, params)); | |||
} | |||
@VisibleForTesting | |||
public List<DTO> findAfterDate(final DbSession session, Date date) { | |||
return findAfterDate(session, date, Collections.<String, String>emptyMap()); | |||
} | |||
// Synchronization methods | |||
protected DbSynchronizationHandler getSynchronizationResultHandler(final DbSession session, Map<String, String> params) { |
@@ -25,51 +25,47 @@ import java.sql.ResultSet; | |||
import java.sql.SQLException; | |||
import java.util.IdentityHashMap; | |||
import java.util.Map; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.db.issue.ActionPlanDao; | |||
import org.sonar.db.issue.IssueChangeDao; | |||
import org.sonar.db.issue.IssueFilterDao; | |||
import org.sonar.db.permission.PermissionTemplateDao; | |||
import javax.annotation.Nullable; | |||
import org.sonar.db.Dao; | |||
import org.sonar.db.Database; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.MyBatis; | |||
import org.sonar.db.activity.ActivityDao; | |||
import org.sonar.db.component.ComponentLinkDao; | |||
import org.sonar.db.component.ResourceDao; | |||
import org.sonar.db.component.ResourceIndexerDao; | |||
import org.sonar.db.component.SnapshotDao; | |||
import org.sonar.db.compute.AnalysisReportDao; | |||
import org.sonar.db.dashboard.DashboardDao; | |||
import org.sonar.db.dashboard.WidgetDao; | |||
import org.sonar.db.dashboard.WidgetPropertyDao; | |||
import org.sonar.db.debt.CharacteristicDao; | |||
import org.sonar.db.event.EventDao; | |||
import org.sonar.db.issue.ActionPlanDao; | |||
import org.sonar.db.issue.IssueChangeDao; | |||
import org.sonar.db.issue.IssueDao; | |||
import org.sonar.db.issue.IssueFilterDao; | |||
import org.sonar.db.loadedtemplate.LoadedTemplateDao; | |||
import org.sonar.db.measure.MeasureDao; | |||
import org.sonar.db.permission.PermissionTemplateDao; | |||
import org.sonar.db.property.PropertiesDao; | |||
import org.sonar.db.purge.PurgeDao; | |||
import org.sonar.db.qualitygate.QualityGateConditionDao; | |||
import org.sonar.db.qualityprofile.QualityProfileDao; | |||
import org.sonar.db.component.ResourceDao; | |||
import org.sonar.db.debt.CharacteristicDao; | |||
import org.sonar.db.loadedtemplate.LoadedTemplateDao; | |||
import org.sonar.db.source.FileSourceDao; | |||
import org.sonar.db.user.AuthorDao; | |||
import org.sonar.db.user.AuthorizationDao; | |||
import org.sonar.db.user.GroupMembershipDao; | |||
import org.sonar.db.user.RoleDao; | |||
import org.sonar.server.activity.db.ActivityDao; | |||
import org.sonar.db.user.UserGroupDao; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.component.db.ComponentIndexDao; | |||
import org.sonar.server.component.db.ComponentLinkDao; | |||
import org.sonar.server.component.db.SnapshotDao; | |||
import org.sonar.server.computation.db.AnalysisReportDao; | |||
import org.sonar.server.measure.custom.persistence.CustomMeasureDao; | |||
import org.sonar.server.dashboard.db.DashboardDao; | |||
import org.sonar.server.dashboard.db.WidgetDao; | |||
import org.sonar.server.dashboard.db.WidgetPropertyDao; | |||
import org.sonar.server.event.db.EventDao; | |||
import org.sonar.server.issue.db.IssueDao; | |||
import org.sonar.server.measure.persistence.MeasureDao; | |||
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.source.db.FileSourceDao; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.user.db.UserGroupDao; | |||
/** | |||
* Facade for all db components, mainly DAOs | |||
*/ | |||
@ServerSide | |||
public class DbClient { | |||
private final Database db; | |||
@@ -103,7 +99,7 @@ public class DbClient { | |||
private final WidgetPropertyDao widgetPropertyDao; | |||
private final FileSourceDao fileSourceDao; | |||
private final AuthorDao authorDao; | |||
private final ComponentIndexDao componentIndexDao; | |||
private final ResourceIndexerDao componentIndexDao; | |||
private final ComponentLinkDao componentLinkDao; | |||
private final EventDao eventDao; | |||
private final PurgeDao purgeDao; | |||
@@ -148,7 +144,7 @@ public class DbClient { | |||
widgetPropertyDao = getDao(map, WidgetPropertyDao.class); | |||
fileSourceDao = getDao(map, FileSourceDao.class); | |||
authorDao = getDao(map, AuthorDao.class); | |||
componentIndexDao = getDao(map, ComponentIndexDao.class); | |||
componentIndexDao = getDao(map, ResourceIndexerDao.class); | |||
componentLinkDao = getDao(map, ComponentLinkDao.class); | |||
eventDao = getDao(map, EventDao.class); | |||
purgeDao = getDao(map, PurgeDao.class); | |||
@@ -163,6 +159,10 @@ public class DbClient { | |||
return myBatis.openSession(batch); | |||
} | |||
public void closeSession(@Nullable DbSession session) { | |||
MyBatis.closeQuietly(session); | |||
} | |||
public RuleDao ruleDao() { | |||
return ruleDao; | |||
} | |||
@@ -283,7 +283,7 @@ public class DbClient { | |||
return authorDao; | |||
} | |||
public ComponentIndexDao componentIndexDao() { | |||
public ResourceIndexerDao componentIndexDao() { | |||
return componentIndexDao; | |||
} | |||
@@ -23,7 +23,7 @@ import java.sql.Connection; | |||
import java.sql.SQLException; | |||
import java.util.concurrent.atomic.AtomicLong; | |||
import org.sonar.db.Database; | |||
import org.sonar.server.util.ProgressLogger; | |||
import org.sonar.core.util.ProgressLogger; | |||
public class MassUpdate { | |||
@@ -34,7 +34,7 @@ import org.sonar.db.version.v44.Migration44Mapper; | |||
import org.sonar.db.qualityprofile.ActiveRuleKey; | |||
import org.sonar.core.rule.SeverityUtil; | |||
import org.sonar.server.activity.Activity; | |||
import org.sonar.server.activity.db.ActivityDao; | |||
import org.sonar.db.activity.ActivityDao; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import org.sonar.server.qualityprofile.ActiveRuleChange; |
@@ -28,7 +28,7 @@ import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.MassUpdate; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.SqlStatement; | |||
import org.sonar.server.util.Slug; | |||
import org.sonar.core.util.Slug; | |||
/** | |||
* Feed the new columns RULES_PROFILES.KEE and PARENT_KEE. |
@@ -36,7 +36,7 @@ import org.sonar.db.version.v45.Rule; | |||
import org.sonar.db.version.v45.RuleParameter; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import org.sonar.server.util.ProgressLogger; | |||
import org.sonar.core.util.ProgressLogger; | |||
/** | |||
* See http://jira.sonarsource.com/browse/SONAR-5575 |
@@ -33,7 +33,7 @@ import org.sonar.db.version.v50.Component; | |||
import org.sonar.db.version.v50.Migration50Mapper; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
import org.sonar.server.util.ProgressLogger; | |||
import org.sonar.core.util.ProgressLogger; | |||
import java.util.List; | |||
import java.util.Map; |
@@ -34,7 +34,7 @@ import org.sonar.server.db.migrations.BaseDataChange; | |||
import org.sonar.server.db.migrations.Select; | |||
import org.sonar.server.db.migrations.Upsert; | |||
import org.sonar.server.db.migrations.UpsertImpl; | |||
import org.sonar.server.util.ProgressLogger; | |||
import org.sonar.core.util.ProgressLogger; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
@@ -36,7 +36,7 @@ import org.sonar.db.MyBatis; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.measure.persistence.MeasureDao; | |||
import org.sonar.db.measure.MeasureDao; | |||
import org.sonar.server.user.UserSession; | |||
import javax.annotation.CheckForNull; |
@@ -39,7 +39,7 @@ import org.elasticsearch.search.SearchHit; | |||
import org.picocontainer.Startable; | |||
import org.sonar.api.utils.log.Logger; | |||
import org.sonar.api.utils.log.Loggers; | |||
import org.sonar.server.util.ProgressLogger; | |||
import org.sonar.core.util.ProgressLogger; | |||
import java.util.Map; | |||
import java.util.concurrent.Semaphore; |
@@ -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.event.db; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -29,33 +29,28 @@ import java.util.List; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nonnull; | |||
import org.sonar.api.issue.ActionPlan; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.core.issue.IssueChangeContext; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.api.web.UserRole; | |||
import org.sonar.core.issue.ActionPlanStats; | |||
import org.sonar.core.issue.DefaultActionPlan; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.core.issue.IssueChangeContext; | |||
import org.sonar.core.issue.IssueUpdater; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.component.ResourceDao; | |||
import org.sonar.db.component.ResourceDto; | |||
import org.sonar.db.component.ResourceQuery; | |||
import org.sonar.db.issue.ActionPlanDao; | |||
import org.sonar.db.issue.ActionPlanDto; | |||
import org.sonar.db.issue.ActionPlanStatsDao; | |||
import org.sonar.db.issue.ActionPlanStatsDto; | |||
import org.sonar.db.issue.IssueDto; | |||
import org.sonar.server.issue.IssueStorage; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.component.ResourceDao; | |||
import org.sonar.db.component.ResourceDto; | |||
import org.sonar.db.component.ResourceQuery; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.issue.IssueStorage; | |||
import org.sonar.server.user.UserSession; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
/** | |||
* @since 3.6 | |||
*/ | |||
@ServerSide | |||
public class ActionPlanService { | |||
private final DbClient dbClient; |
@@ -1,78 +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.server.issue.db; | |||
import java.util.List; | |||
import java.util.Set; | |||
import javax.annotation.CheckForNull; | |||
import org.sonar.db.issue.IssueDto; | |||
import org.sonar.db.issue.IssueMapper; | |||
import org.sonar.db.Dao; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.MyBatis; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
public class IssueDao extends org.sonar.db.issue.IssueDao implements Dao { | |||
public IssueDao(MyBatis mybatis) { | |||
super(mybatis); | |||
} | |||
@CheckForNull | |||
public IssueDto selectNullableByKey(DbSession session, String key) { | |||
return mapper(session).selectByKey(key); | |||
} | |||
public IssueDto selectByKey(DbSession session, String key) { | |||
IssueDto issue = selectNullableByKey(session, key); | |||
if (issue == null) { | |||
throw new NotFoundException(String.format("Key '%s' not found", key)); | |||
} | |||
return issue; | |||
} | |||
public List<IssueDto> findByActionPlan(DbSession session, String actionPlan) { | |||
return mapper(session).selectByActionPlan(actionPlan); | |||
} | |||
public List<IssueDto> selectByKeys(DbSession session, List<String> keys) { | |||
return mapper(session).selectByKeys(keys); | |||
} | |||
public Set<String> selectComponentUuidsOfOpenIssuesForProjectUuid(DbSession session, String projectUuid) { | |||
return mapper(session).selectComponentUuidsOfOpenIssuesForProjectUuid(projectUuid); | |||
} | |||
public void insert(DbSession session, IssueDto dto) { | |||
mapper(session).insert(dto); | |||
} | |||
public void insert(DbSession session, IssueDto dto, IssueDto... others) { | |||
IssueMapper mapper = mapper(session); | |||
mapper.insert(dto); | |||
for (IssueDto other : others) { | |||
mapper.insert(other); | |||
} | |||
} | |||
public void update(DbSession session, IssueDto dto) { | |||
mapper(session).update(dto); | |||
} | |||
} |
@@ -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.issue.db; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -28,7 +28,7 @@ import org.apache.commons.lang.StringUtils; | |||
import org.sonar.api.resources.Scopes; | |||
import org.sonar.api.rule.RuleKey; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.ResultSetIterator; | |||
import org.sonar.db.ResultSetIterator; | |||
import org.sonar.server.db.migrations.SqlUtil; | |||
import javax.annotation.CheckForNull; |
@@ -26,6 +26,7 @@ import javax.annotation.CheckForNull; | |||
import javax.annotation.Nonnull; | |||
import org.apache.ibatis.session.RowBounds; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.db.DatabaseUtils; | |||
import org.sonar.db.measure.CustomMeasureDto; | |||
import org.sonar.db.measure.CustomMeasureMapper; | |||
import org.sonar.db.Dao; | |||
@@ -49,7 +50,7 @@ public class CustomMeasureDao implements Dao { | |||
} | |||
public void deleteByMetricIds(final DbSession session, final List<Integer> metricIds) { | |||
DaoUtils.executeLargeInputsWithoutOutput(metricIds, new Function<List<Integer>, Void>() { | |||
DatabaseUtils.executeLargeInputsWithoutOutput(metricIds, new Function<List<Integer>, Void>() { | |||
@Override | |||
public Void apply(@Nonnull List<Integer> input) { | |||
mapper(session).deleteByMetricIds(metricIds); |
@@ -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.measure.persistence; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -34,18 +34,17 @@ import javax.annotation.CheckForNull; | |||
import javax.annotation.Nonnull; | |||
import javax.annotation.Nullable; | |||
import org.apache.ibatis.session.RowBounds; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.db.metric.MetricDto; | |||
import org.sonar.db.metric.MetricMapper; | |||
import org.sonar.db.Dao; | |||
import org.sonar.db.DaoUtils; | |||
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; | |||
@ServerSide | |||
public class MetricDao implements Dao { | |||
@CheckForNull | |||
@@ -54,7 +53,7 @@ public class MetricDao implements Dao { | |||
} | |||
public List<MetricDto> selectNullableByKeys(final DbSession session, List<String> keys) { | |||
return DaoUtils.executeLargeInputs(keys, new Function<List<String>, List<MetricDto>>() { | |||
return DatabaseUtils.executeLargeInputs(keys, new Function<List<String>, List<MetricDto>>() { | |||
@Override | |||
public List<MetricDto> apply(@Nonnull List<String> input) { | |||
return mapper(session).selectByKeys(input); | |||
@@ -115,7 +114,7 @@ public class MetricDao implements Dao { | |||
public List<MetricDto> selectByIds(final DbSession session, Set<Integer> idsSet) { | |||
List<Integer> ids = new ArrayList<>(idsSet); | |||
return DaoUtils.executeLargeInputs(ids, new Function<List<Integer>, List<MetricDto>>() { | |||
return DatabaseUtils.executeLargeInputs(ids, new Function<List<Integer>, List<MetricDto>>() { | |||
@Override | |||
public List<MetricDto> apply(@Nonnull List<Integer> ids) { | |||
return mapper(session).selectByIds(ids); | |||
@@ -136,7 +135,7 @@ public class MetricDao implements Dao { | |||
} | |||
public void disableByIds(final DbSession session, List<Integer> ids) { | |||
DaoUtils.executeLargeInputsWithoutOutput(ids, new Function<List<Integer>, Void>() { | |||
DatabaseUtils.executeLargeInputsWithoutOutput(ids, new Function<List<Integer>, Void>() { | |||
@Override | |||
public Void apply(@Nonnull List<Integer> input) { | |||
mapper(session).disableByIds(input); |
@@ -25,32 +25,20 @@ import org.sonar.api.utils.System2; | |||
import org.sonar.api.utils.internal.TempFolderCleaner; | |||
import org.sonar.core.config.CorePropertyDefinitions; | |||
import org.sonar.core.config.Logback; | |||
import org.sonar.db.measure.MeasureFilterDao; | |||
import org.sonar.db.DaoUtils; | |||
import org.sonar.db.version.DatabaseVersion; | |||
import org.sonar.db.DatabaseChecker; | |||
import org.sonar.db.DefaultDatabase; | |||
import org.sonar.db.MyBatis; | |||
import org.sonar.db.purge.PurgeProfiler; | |||
import org.sonar.db.semaphore.SemaphoreUpdater; | |||
import org.sonar.db.semaphore.SemaphoresImpl; | |||
import org.sonar.db.purge.PurgeProfiler; | |||
import org.sonar.server.activity.db.ActivityDao; | |||
import org.sonar.db.version.DatabaseVersion; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.component.db.ComponentIndexDao; | |||
import org.sonar.server.component.db.ComponentLinkDao; | |||
import org.sonar.server.component.db.SnapshotDao; | |||
import org.sonar.server.computation.db.AnalysisReportDao; | |||
import org.sonar.server.measure.custom.persistence.CustomMeasureDao; | |||
import org.sonar.server.dashboard.db.DashboardDao; | |||
import org.sonar.server.dashboard.db.WidgetDao; | |||
import org.sonar.server.dashboard.db.WidgetPropertyDao; | |||
import org.sonar.server.db.DatabaseChecker; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.EmbeddedDatabaseFactory; | |||
import org.sonar.server.db.migrations.MigrationStepModule; | |||
import org.sonar.server.event.db.EventDao; | |||
import org.sonar.server.issue.db.IssueDao; | |||
import org.sonar.server.issue.index.IssueIndex; | |||
import org.sonar.server.measure.persistence.MeasureDao; | |||
import org.sonar.server.measure.custom.persistence.CustomMeasureDao; | |||
import org.sonar.server.metric.persistence.MetricDao; | |||
import org.sonar.server.platform.DatabaseServerCompatibility; | |||
import org.sonar.server.platform.DefaultServerFileSystem; | |||
@@ -67,11 +55,9 @@ import org.sonar.server.rule.index.RuleIndex; | |||
import org.sonar.server.rule.index.RuleNormalizer; | |||
import org.sonar.server.search.EsSearchModule; | |||
import org.sonar.server.search.IndexQueue; | |||
import org.sonar.server.source.db.FileSourceDao; | |||
import org.sonar.server.user.ThreadLocalUserSession; | |||
import org.sonar.server.user.db.GroupDao; | |||
import org.sonar.server.user.db.UserDao; | |||
import org.sonar.server.user.db.UserGroupDao; | |||
public class PlatformLevel1 extends PlatformLevel { | |||
private final Platform platform; | |||
@@ -124,12 +110,6 @@ public class PlatformLevel1 extends PlatformLevel { | |||
// users | |||
GroupDao.class, | |||
UserDao.class, | |||
UserGroupDao.class, | |||
// dashboards | |||
DashboardDao.class, | |||
WidgetDao.class, | |||
WidgetPropertyDao.class, | |||
// rules/qprofiles | |||
RuleNormalizer.class, | |||
@@ -141,24 +121,13 @@ public class PlatformLevel1 extends PlatformLevel { | |||
// issues | |||
IssueIndex.class, | |||
IssueDao.class, | |||
// measures | |||
MeasureDao.class, | |||
MetricDao.class, | |||
MeasureFilterDao.class, | |||
CustomMeasureDao.class, | |||
// components | |||
ComponentDao.class, | |||
ComponentIndexDao.class, | |||
ComponentLinkDao.class, | |||
SnapshotDao.class, | |||
EventDao.class, | |||
ActivityDao.class, | |||
AnalysisReportDao.class, | |||
FileSourceDao.class); | |||
ComponentDao.class); | |||
addAll(CorePropertyDefinitions.all()); | |||
add(MigrationStepModule.class); | |||
addAll(DaoUtils.getDaoClasses()); |
@@ -28,7 +28,7 @@ import org.sonar.db.qualityprofile.QualityProfileDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.BadRequestException; | |||
import org.sonar.server.exceptions.Verifications; | |||
import org.sonar.server.util.Slug; | |||
import org.sonar.core.util.Slug; | |||
import javax.annotation.CheckForNull; | |||
@@ -21,6 +21,12 @@ package org.sonar.server.qualityprofile; | |||
import com.google.common.base.Splitter; | |||
import com.google.common.collect.Lists; | |||
import java.util.Arrays; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import java.util.Map; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.api.server.rule.RuleParamType; | |||
import org.sonar.db.DbSession; | |||
@@ -44,14 +50,6 @@ import org.sonar.server.search.Result; | |||
import org.sonar.server.user.UserSession; | |||
import org.sonar.server.util.TypeValidations; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import java.util.Arrays; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import java.util.Map; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
/** |
@@ -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.source.db; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -23,7 +23,7 @@ import org.elasticsearch.action.update.UpdateRequest; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.ResultSetIterator; | |||
import org.sonar.db.ResultSetIterator; | |||
import org.sonar.server.es.EsUtils; | |||
import org.sonar.server.source.db.FileSourceDb; | |||
@@ -30,7 +30,7 @@ import org.sonar.api.web.UserRole; | |||
import org.sonar.db.measure.MeasureDto; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.MyBatis; | |||
import org.sonar.server.measure.persistence.MeasureDao; | |||
import org.sonar.db.measure.MeasureDao; | |||
import org.sonar.server.user.UserSession; | |||
@ServerSide |
@@ -24,7 +24,7 @@ import org.elasticsearch.action.update.UpdateRequest; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.db.source.FileSourceDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.ResultSetIterator; | |||
import org.sonar.db.ResultSetIterator; | |||
import org.sonar.server.source.db.FileSourceDb; | |||
import org.sonar.server.source.index.FileSourcesUpdaterHelper; | |||
import org.sonar.server.source.index.FileSourcesUpdaterHelper.Row; |
@@ -33,9 +33,6 @@ import org.sonar.db.user.GroupDto; | |||
import org.sonar.db.user.GroupMapper; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
/** | |||
* @since 3.2 | |||
*/ | |||
public class GroupDao implements Dao { | |||
private static final String SQL_WILDCARD = "%"; |
@@ -23,7 +23,7 @@ import com.google.common.collect.Maps; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.db.user.UserDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.ResultSetIterator; | |||
import org.sonar.db.ResultSetIterator; | |||
import java.sql.Connection; | |||
import java.sql.PreparedStatement; |
@@ -1,25 +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.usergroups; | |||
import javax.annotation.ParametersAreNonnullByDefault; | |||
@@ -20,24 +20,29 @@ | |||
package org.sonar.core.computation.dbcleaner; | |||
import java.util.Date; | |||
import org.junit.Before; | |||
import org.junit.Test; | |||
import org.sonar.api.CoreProperties; | |||
import org.sonar.api.config.Settings; | |||
import org.sonar.api.utils.log.Logger; | |||
import org.sonar.db.purge.period.DefaultPeriodCleaner; | |||
import org.sonar.core.config.PurgeConstants; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.purge.IdUuidPair; | |||
import org.sonar.db.purge.PurgeConfiguration; | |||
import org.sonar.core.config.PurgeConstants; | |||
import org.sonar.db.purge.PurgeDao; | |||
import org.sonar.db.purge.PurgeListener; | |||
import org.sonar.db.purge.PurgeProfiler; | |||
import org.sonar.db.purge.period.DefaultPeriodCleaner; | |||
import org.sonar.server.issue.index.IssueIndex; | |||
import java.util.Date; | |||
import static org.mockito.Mockito.*; | |||
import static org.mockito.Mockito.any; | |||
import static org.mockito.Mockito.anyLong; | |||
import static org.mockito.Mockito.doThrow; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.never; | |||
import static org.mockito.Mockito.verify; | |||
import static org.mockito.Mockito.verifyZeroInteractions; | |||
public class ProjectCleanerTest { | |||
@@ -86,17 +91,17 @@ public class ProjectCleanerTest { | |||
sut.purge(mock(DbSession.class), mock(IdUuidPair.class), settings); | |||
verify(periodCleaner).clean(any(DbSession.class), any(Long.class), any(Settings.class)); | |||
verify(dao).purge(any(DbSession.class), any(PurgeConfiguration.class), any(PurgeListener.class)); | |||
verify(dao).purge(any(DbSession.class), any(PurgeConfiguration.class), any(PurgeListener.class), any(PurgeProfiler.class)); | |||
verify(issueIndex).deleteClosedIssuesOfProjectBefore(any(String.class), any(Date.class)); | |||
} | |||
@Test | |||
public void if_dao_purge_fails_it_should_not_interrupt_program_execution() { | |||
doThrow(RuntimeException.class).when(dao).purge(any(DbSession.class), any(PurgeConfiguration.class), any(PurgeListener.class)); | |||
doThrow(RuntimeException.class).when(dao).purge(any(DbSession.class), any(PurgeConfiguration.class), any(PurgeListener.class), any(PurgeProfiler.class)); | |||
sut.purge(mock(DbSession.class), mock(IdUuidPair.class), settings); | |||
verify(dao).purge(any(DbSession.class), any(PurgeConfiguration.class), any(PurgeListener.class)); | |||
verify(dao).purge(any(DbSession.class), any(PurgeConfiguration.class), any(PurgeListener.class), any(PurgeProfiler.class)); | |||
} | |||
@Test |
@@ -29,13 +29,13 @@ import org.junit.Test; | |||
import org.sonar.api.config.Settings; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.activity.db.ActivityDao; | |||
import org.sonar.db.activity.ActivityDao; | |||
import org.sonar.db.issue.IssueDao; | |||
import org.sonar.server.activity.index.ActivityDoc; | |||
import org.sonar.server.activity.index.ActivityIndexDefinition; | |||
import org.sonar.server.activity.index.ActivityIndexer; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.es.EsTester; | |||
import org.sonar.server.issue.db.IssueDao; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import static org.assertj.core.api.Assertions.assertThat; |
@@ -36,13 +36,13 @@ import org.sonar.db.component.ComponentDto; | |||
import org.sonar.core.permission.GlobalPermissions; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.issue.IssueDao; | |||
import org.sonar.server.component.ComponentTesting; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.es.EsTester; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.issue.IssueTesting; | |||
import org.sonar.server.issue.db.IssueDao; | |||
import org.sonar.server.issue.index.IssueAuthorizationDao; | |||
import org.sonar.server.issue.index.IssueAuthorizationIndexer; | |||
import org.sonar.server.issue.index.IssueDoc; |
@@ -54,8 +54,8 @@ import org.sonar.server.qualityprofile.QProfileName; | |||
import org.sonar.server.qualityprofile.QProfileTesting; | |||
import org.sonar.server.qualityprofile.RuleActivation; | |||
import org.sonar.server.qualityprofile.RuleActivator; | |||
import org.sonar.server.rule.RuleTesting; | |||
import org.sonar.server.source.db.FileSourceDao; | |||
import org.sonar.db.rule.RuleTesting; | |||
import org.sonar.db.source.FileSourceDao; | |||
import org.sonar.server.tester.ServerTester; | |||
import org.sonar.server.tester.UserSessionRule; | |||
@@ -75,7 +75,7 @@ public class ComponentServiceTest { | |||
when(i18n.message(Locale.getDefault(), "qualifier.TRK", "Project")).thenReturn("Project"); | |||
service = new ComponentService(dbClient, new ResourceKeyUpdaterDao(dbTester.myBatis()), i18n, new ResourceIndexerDao(dbTester.myBatis()), | |||
service = new ComponentService(dbClient, new ResourceKeyUpdaterDao(dbTester.myBatis()), i18n, new ResourceIndexerDao(dbTester.myBatis(), mock(System2.class)), | |||
userSessionRule, System2.INSTANCE); | |||
} | |||
@@ -30,10 +30,10 @@ import org.junit.Test; | |||
import org.junit.experimental.categories.Category; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.api.utils.DateUtils; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.FilePathWithHashDto; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.FilePathWithHashDto; | |||
import org.sonar.server.es.SearchOptions; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.test.DbTests; | |||
@@ -290,7 +290,7 @@ public class ComponentDaoTest { | |||
assertThat(result.isEnabled()).isFalse(); | |||
} | |||
@Test(expected = NotFoundException.class) | |||
@Test(expected = IllegalArgumentException.class) | |||
public void fail_to_get_by_id_when_project_not_found() { | |||
loadBasicDataInDatabase(); | |||
@@ -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.server.component.db; | |||
import org.junit.After; | |||
import org.junit.Before; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.junit.experimental.categories.Category; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.test.DbTests; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@Category(DbTests.class) | |||
public class ComponentIndexDaoTest { | |||
@ClassRule | |||
public static DbTester dbTester = new DbTester(); | |||
DbSession session; | |||
ComponentIndexDao dao; | |||
@Before | |||
public void createDao() { | |||
dbTester.truncateTables(); | |||
session = dbTester.myBatis().openSession(false); | |||
dao = new ComponentIndexDao(); | |||
} | |||
@After | |||
public void tearDown() { | |||
session.close(); | |||
} | |||
@Test | |||
public void select_project_ids_from_query_and_view_or_sub_view_uuid() { | |||
dbTester.prepareDbUnit(getClass(), "select_project_ids_from_query_and_view_or_sub_view_uuid.xml"); | |||
String viewUuid = "EFGH"; | |||
assertThat(dao.selectProjectIdsFromQueryAndViewOrSubViewUuid(session, "project", viewUuid)).containsOnly(1L, 2L); | |||
assertThat(dao.selectProjectIdsFromQueryAndViewOrSubViewUuid(session, "one", viewUuid)).containsOnly(1L); | |||
assertThat(dao.selectProjectIdsFromQueryAndViewOrSubViewUuid(session, "two", viewUuid)).containsOnly(2L); | |||
assertThat(dao.selectProjectIdsFromQueryAndViewOrSubViewUuid(session, "unknown", viewUuid)).isEmpty(); | |||
} | |||
} |
@@ -45,7 +45,7 @@ import org.sonar.server.component.ComponentTesting; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.measure.persistence.MeasureDao; | |||
import org.sonar.db.measure.MeasureDao; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.ws.WsTester; | |||
@@ -26,11 +26,12 @@ import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.junit.experimental.categories.Category; | |||
import org.sonar.api.server.ws.WebService.Param; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.api.web.UserRole; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ResourceIndexerDao; | |||
import org.sonar.db.user.AuthorizationDao; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.component.db.ComponentIndexDao; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.tester.UserSessionRule; | |||
import org.sonar.server.ws.WsTester; | |||
@@ -54,7 +55,7 @@ public class SearchActionTest { | |||
public void setUp() { | |||
dbTester.truncateTables(); | |||
DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), | |||
new ComponentDao(), new AuthorizationDao(dbTester.myBatis()), new ComponentIndexDao() | |||
new ComponentDao(), new AuthorizationDao(dbTester.myBatis()), new ResourceIndexerDao(dbTester.myBatis(), mock(System2.class)) | |||
); | |||
tester = new WsTester(new ComponentsWs(mock(AppAction.class), new SearchAction(dbClient, userSessionRule))); | |||
} |
@@ -35,7 +35,7 @@ import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.process.ProcessProperties; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.computation.db.AnalysisReportDao; | |||
import org.sonar.db.compute.AnalysisReportDao; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.test.DbTests; | |||
@@ -25,7 +25,6 @@ import org.junit.Test; | |||
import org.sonar.api.measures.CoreMetrics; | |||
import org.sonar.api.utils.Duration; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.core.issue.tracking.Tracking; | |||
import org.sonar.server.computation.component.Component; | |||
import org.sonar.server.computation.component.DumbComponent; | |||
import org.sonar.server.computation.debt.Characteristic; | |||
@@ -34,7 +33,7 @@ import org.sonar.server.computation.debt.MutableDebtModelHolder; | |||
import org.sonar.server.computation.measure.Measure; | |||
import org.sonar.server.computation.measure.MeasureRepositoryRule; | |||
import org.sonar.server.computation.metric.MetricRepositoryRule; | |||
import org.sonar.server.rule.RuleTesting; | |||
import org.sonar.db.rule.RuleTesting; | |||
import static java.util.Arrays.asList; | |||
import static org.assertj.core.api.Assertions.assertThat; |
@@ -26,7 +26,7 @@ import org.sonar.api.server.debt.DebtRemediationFunction; | |||
import org.sonar.api.server.debt.internal.DefaultDebtRemediationFunction; | |||
import org.sonar.api.utils.Durations; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.server.rule.RuleTesting; | |||
import org.sonar.db.rule.RuleTesting; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; |
@@ -37,7 +37,7 @@ import org.sonar.server.computation.metric.MetricImpl; | |||
import org.sonar.server.computation.metric.MetricRepository; | |||
import org.sonar.server.computation.period.Period; | |||
import org.sonar.server.computation.period.PeriodsHolderRule; | |||
import org.sonar.server.rule.RuleTesting; | |||
import org.sonar.db.rule.RuleTesting; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; |
@@ -26,7 +26,7 @@ import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.verify; | |||
import static org.mockito.Mockito.when; | |||
import static org.mockito.internal.verification.VerificationModeFactory.times; | |||
import static org.sonar.server.rule.RuleTesting.XOO_X1; | |||
import static org.sonar.db.rule.RuleTesting.XOO_X1; | |||
public class RuleRepositoryImplTest { | |||
@@ -28,7 +28,7 @@ import org.sonar.server.computation.component.Component; | |||
import static java.util.Arrays.asList; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
import static org.mockito.Mockito.mock; | |||
import static org.sonar.server.rule.RuleTesting.XOO_X1; | |||
import static org.sonar.db.rule.RuleTesting.XOO_X1; | |||
public class RuleTagsCopierTest { | |||
@@ -43,7 +43,7 @@ import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.rule.RuleDto; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.component.db.SnapshotDao; | |||
import org.sonar.db.component.SnapshotDao; | |||
import org.sonar.server.computation.batch.BatchReportReader; | |||
import org.sonar.server.computation.batch.BatchReportReaderRule; | |||
import org.sonar.server.computation.component.Component; | |||
@@ -53,7 +53,7 @@ import org.sonar.server.computation.metric.Metric; | |||
import org.sonar.server.computation.metric.MetricImpl; | |||
import org.sonar.server.computation.metric.MetricRepository; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.measure.persistence.MeasureDao; | |||
import org.sonar.db.measure.MeasureDao; | |||
import org.sonar.server.metric.persistence.MetricDao; | |||
import static com.google.common.collect.FluentIterable.from; |
@@ -37,7 +37,7 @@ import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.component.db.SnapshotDao; | |||
import org.sonar.db.component.SnapshotDao; | |||
import org.sonar.server.computation.batch.BatchReportReaderRule; | |||
import org.sonar.server.computation.batch.TreeRootHolderRule; | |||
import org.sonar.server.computation.component.Component; |
@@ -38,7 +38,7 @@ import org.sonar.db.DbTester; | |||
import org.sonar.db.debt.CharacteristicDao; | |||
import org.sonar.server.component.ComponentTesting; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.component.db.SnapshotDao; | |||
import org.sonar.db.component.SnapshotDao; | |||
import org.sonar.server.computation.batch.BatchReportReaderRule; | |||
import org.sonar.server.computation.batch.TreeRootHolderRule; | |||
import org.sonar.server.computation.component.Component; | |||
@@ -53,7 +53,7 @@ import org.sonar.server.computation.metric.MetricRepositoryImpl; | |||
import org.sonar.server.computation.period.Period; | |||
import org.sonar.server.computation.period.PeriodsHolderRule; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.measure.persistence.MeasureDao; | |||
import org.sonar.db.measure.MeasureDao; | |||
import org.sonar.server.metric.persistence.MetricDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.test.DbTests; |
@@ -33,7 +33,7 @@ import org.sonar.server.computation.component.Component; | |||
import org.sonar.server.computation.component.DumbComponent; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.es.EsTester; | |||
import org.sonar.server.source.db.FileSourceDao; | |||
import org.sonar.db.source.FileSourceDao; | |||
import org.sonar.server.source.db.FileSourceTesting; | |||
import org.sonar.server.source.index.SourceLineDoc; | |||
import org.sonar.server.source.index.SourceLineIndexDefinition; |
@@ -34,7 +34,7 @@ import org.sonar.server.computation.component.Component; | |||
import org.sonar.server.computation.component.DumbComponent; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.es.EsTester; | |||
import org.sonar.server.source.db.FileSourceDao; | |||
import org.sonar.db.source.FileSourceDao; | |||
import org.sonar.server.test.db.TestTesting; | |||
import org.sonar.server.test.index.TestDoc; | |||
import org.sonar.server.test.index.TestIndexDefinition; |
@@ -37,7 +37,7 @@ import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.component.ComponentTesting; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.component.db.SnapshotDao; | |||
import org.sonar.db.component.SnapshotDao; | |||
import org.sonar.server.computation.batch.BatchReportReaderRule; | |||
import org.sonar.server.computation.batch.TreeRootHolderRule; | |||
import org.sonar.server.computation.component.Component; |
@@ -39,7 +39,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.measure.persistence.MeasureDao; | |||
import org.sonar.db.measure.MeasureDao; | |||
import org.sonar.server.metric.persistence.MetricDao; | |||
import org.sonar.test.DbTests; | |||
@@ -40,7 +40,7 @@ import org.sonar.server.computation.component.DumbComponent; | |||
import org.sonar.server.computation.event.Event; | |||
import org.sonar.server.computation.event.EventRepository; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.event.db.EventDao; | |||
import org.sonar.db.event.EventDao; | |||
import org.sonar.test.DbTests; | |||
import static org.mockito.Matchers.any; |
@@ -44,7 +44,7 @@ import org.sonar.server.computation.component.Component; | |||
import org.sonar.server.computation.component.DumbComponent; | |||
import org.sonar.server.computation.language.LanguageRepository; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.source.db.FileSourceDao; | |||
import org.sonar.db.source.FileSourceDao; | |||
import org.sonar.server.source.db.FileSourceDb; | |||
import org.sonar.test.DbTests; | |||
@@ -34,15 +34,15 @@ import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.core.issue.DefaultIssueComment; | |||
import org.sonar.core.issue.FieldDiffs; | |||
import org.sonar.server.computation.issue.UpdateConflictResolver; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.issue.IssueDao; | |||
import org.sonar.server.computation.batch.BatchReportReaderRule; | |||
import org.sonar.server.computation.issue.IssueCache; | |||
import org.sonar.server.computation.issue.RuleCacheLoader; | |||
import org.sonar.server.computation.issue.RuleRepositoryImpl; | |||
import org.sonar.server.computation.issue.UpdateConflictResolver; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.issue.db.IssueDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import static org.mockito.Mockito.mock; |
@@ -47,7 +47,7 @@ import org.sonar.server.computation.measure.MeasureRepository; | |||
import org.sonar.server.computation.measure.MeasureRepositoryImpl; | |||
import org.sonar.server.computation.metric.MetricRepositoryRule; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.measure.persistence.MeasureDao; | |||
import org.sonar.db.measure.MeasureDao; | |||
import org.sonar.server.metric.persistence.MetricDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.test.DbTests; |
@@ -40,7 +40,7 @@ import org.sonar.server.computation.metric.Metric; | |||
import org.sonar.server.computation.metric.MetricImpl; | |||
import org.sonar.server.computation.metric.MetricRepository; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.measure.persistence.MeasureDao; | |||
import org.sonar.db.measure.MeasureDao; | |||
import org.sonar.server.source.index.SourceLineIndex; | |||
import static org.mockito.Matchers.anyString; |
@@ -32,7 +32,7 @@ import org.sonar.batch.protocol.Constants; | |||
import org.sonar.batch.protocol.output.BatchReport; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.component.db.ComponentLinkDao; | |||
import org.sonar.db.component.ComponentLinkDao; | |||
import org.sonar.server.computation.batch.BatchReportReaderRule; | |||
import org.sonar.server.computation.batch.TreeRootHolderRule; | |||
import org.sonar.server.computation.component.Component; |
@@ -39,7 +39,7 @@ import org.sonar.db.DbTester; | |||
import org.sonar.server.component.ComponentTesting; | |||
import org.sonar.server.component.SnapshotTesting; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.component.db.SnapshotDao; | |||
import org.sonar.db.component.SnapshotDao; | |||
import org.sonar.server.computation.batch.BatchReportReaderRule; | |||
import org.sonar.server.computation.batch.TreeRootHolderRule; | |||
import org.sonar.server.computation.component.Component; |
@@ -43,7 +43,7 @@ import org.sonar.server.computation.component.Component; | |||
import org.sonar.server.computation.component.DumbComponent; | |||
import org.sonar.server.computation.component.FileAttributes; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.source.db.FileSourceDao; | |||
import org.sonar.db.source.FileSourceDao; | |||
import org.sonar.server.source.db.FileSourceDb; | |||
import static org.assertj.core.api.Assertions.assertThat; |
@@ -28,7 +28,7 @@ import org.junit.experimental.categories.Category; | |||
import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.component.db.SnapshotDao; | |||
import org.sonar.db.component.SnapshotDao; | |||
import org.sonar.server.computation.batch.TreeRootHolderRule; | |||
import org.sonar.server.computation.component.Component; | |||
import org.sonar.server.computation.component.DbIdsRepository; |
@@ -38,7 +38,7 @@ import org.sonar.db.DbTester; | |||
import org.sonar.server.component.ComponentTesting; | |||
import org.sonar.server.component.SnapshotTesting; | |||
import org.sonar.server.component.db.ComponentDao; | |||
import org.sonar.server.component.db.SnapshotDao; | |||
import org.sonar.db.component.SnapshotDao; | |||
import org.sonar.server.computation.batch.BatchReportReaderRule; | |||
import org.sonar.server.computation.batch.TreeRootHolderRule; | |||
import org.sonar.server.computation.component.Component; |
@@ -43,8 +43,7 @@ import static org.assertj.core.api.Assertions.assertThat; | |||
public class BaseDaoTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester() | |||
.schema(BaseDaoTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, BaseDaoTest.class, "schema.sql"); | |||
private static final String DTO_ALIAS = "fake"; | |||
@@ -25,6 +25,7 @@ import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.junit.experimental.categories.Category; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.AbstractDaoTestCase; | |||
import org.sonar.db.BatchSession; | |||
import org.sonar.db.DbTester; | |||
@@ -44,7 +45,7 @@ import static org.junit.Assert.fail; | |||
public class BaseDataChangeTest extends AbstractDaoTestCase { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(BaseDataChangeTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, BaseDataChangeTest.class, "schema.sql"); | |||
@Rule | |||
public ExpectedException thrown = ExpectedException.none(); |
@@ -22,6 +22,7 @@ package org.sonar.server.db.migrations.v36; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.config.Settings; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -29,7 +30,7 @@ import static org.assertj.core.api.Assertions.assertThat; | |||
public class ViolationMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(ViolationMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, ViolationMigrationTest.class, "schema.sql"); | |||
@Test | |||
public void migrate_violations() { |
@@ -21,13 +21,14 @@ package org.sonar.server.db.migrations.v42; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
public class CompleteIssueMessageMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(CompleteIssueMessageMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, CompleteIssueMessageMigrationTest.class, "schema.sql"); | |||
MigrationStep migration = new CompleteIssueMessageMigrationStep(db.database()); | |||
@@ -21,13 +21,14 @@ package org.sonar.server.db.migrations.v42; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
public class PackageKeysMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(PackageKeysMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, PackageKeysMigrationTest.class, "schema.sql"); | |||
MigrationStep migration = new PackageKeysMigrationStep(db.database()); | |||
@@ -42,7 +42,7 @@ import static org.mockito.Mockito.when; | |||
public class ConvertIssueDebtToMinutesMigrationStepTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(ConvertIssueDebtToMinutesMigrationStepTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, ConvertIssueDebtToMinutesMigrationStepTest.class, "schema.sql"); | |||
@Mock | |||
System2 system2; |
@@ -26,6 +26,7 @@ import org.junit.Test; | |||
import org.junit.runner.RunWith; | |||
import org.mockito.Mock; | |||
import org.mockito.runners.MockitoJUnitRunner; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.property.PropertiesDao; | |||
import org.sonar.db.property.PropertyDto; | |||
@@ -36,7 +37,7 @@ import static org.mockito.Mockito.when; | |||
public class DevelopmentCostMeasuresMigrationStepTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(DevelopmentCostMeasuresMigrationStepTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, DevelopmentCostMeasuresMigrationStepTest.class, "schema.sql"); | |||
@Mock | |||
PropertiesDao propertiesDao; |
@@ -39,7 +39,7 @@ import static org.mockito.Mockito.when; | |||
public class IssueChangelogMigrationStepTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(IssueChangelogMigrationStepTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, IssueChangelogMigrationStepTest.class, "schema.sql"); | |||
@Mock | |||
System2 system2; | |||
@@ -65,7 +65,7 @@ public class IssueChangelogMigrationStepTest { | |||
migration.execute(); | |||
db.assertDbUnit(getClass(), "migrate_issue_changelog_debt_result.xml", new String[]{"updated_at"}, "issue_changes"); | |||
db.assertDbUnit(getClass(), "migrate_issue_changelog_debt_result.xml", new String[] {"updated_at"}, "issue_changes"); | |||
} | |||
@Test |
@@ -36,7 +36,7 @@ import static org.mockito.Mockito.when; | |||
public class NotResolvedIssuesOnRemovedComponentsMigrationStepTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(NotResolvedIssuesOnRemovedComponentsMigrationStepTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, NotResolvedIssuesOnRemovedComponentsMigrationStepTest.class, "schema.sql"); | |||
@Mock | |||
System2 system2; |
@@ -23,12 +23,13 @@ package org.sonar.server.db.migrations.v43; | |||
import org.junit.Before; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
public class RequirementMeasuresMigrationStepTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(RequirementMeasuresMigrationStepTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, RequirementMeasuresMigrationStepTest.class, "schema.sql"); | |||
RequirementMeasuresMigrationStep migration; | |||
@@ -26,6 +26,7 @@ import org.junit.Test; | |||
import org.junit.runner.RunWith; | |||
import org.mockito.Mock; | |||
import org.mockito.runners.MockitoJUnitRunner; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.property.PropertiesDao; | |||
import org.sonar.db.property.PropertyDto; | |||
@@ -36,7 +37,7 @@ import static org.mockito.Mockito.when; | |||
public class TechnicalDebtMeasuresMigrationStepTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(TechnicalDebtMeasuresMigrationStepTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, TechnicalDebtMeasuresMigrationStepTest.class, "schema.sql"); | |||
@Mock | |||
PropertiesDao propertiesDao; |
@@ -27,7 +27,7 @@ import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.activity.db.ActivityDao; | |||
import org.sonar.db.activity.ActivityDao; | |||
import org.sonar.server.db.DbClient; | |||
import static org.assertj.core.api.Assertions.assertThat; | |||
@@ -37,7 +37,7 @@ import static org.mockito.Mockito.when; | |||
public class ChangeLogMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(ChangeLogMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, ChangeLogMigrationTest.class, "schema.sql"); | |||
System2 system2 = mock(System2.class); | |||
DbClient dbClient; |
@@ -23,6 +23,7 @@ package org.sonar.server.db.migrations.v44; | |||
import org.junit.Before; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.db.DbClient; | |||
@@ -35,7 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; | |||
public class ConvertProfileMeasuresMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(ConvertProfileMeasuresMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, ConvertProfileMeasuresMigrationTest.class, "schema.sql"); | |||
ConvertProfileMeasuresMigrationStep migration; | |||
@@ -37,7 +37,7 @@ import static org.mockito.Mockito.when; | |||
public class FeedQProfileDatesMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(FeedQProfileDatesMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, FeedQProfileDatesMigrationTest.class, "schema.sql"); | |||
FeedQProfileDatesMigrationStep migration; | |||
@@ -22,6 +22,7 @@ package org.sonar.server.db.migrations.v44; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import java.util.List; | |||
@@ -32,7 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat; | |||
public class FeedQProfileKeysMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(FeedQProfileKeysMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, FeedQProfileKeysMigrationTest.class, "schema.sql"); | |||
@Test | |||
public void feed_keys() throws Exception { |
@@ -36,7 +36,7 @@ import static org.mockito.Mockito.when; | |||
public class IssueActionPlanKeyMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(IssueActionPlanKeyMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, IssueActionPlanKeyMigrationTest.class, "schema.sql"); | |||
@Mock | |||
System2 system2; |
@@ -25,13 +25,14 @@ import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.junit.runner.RunWith; | |||
import org.mockito.runners.MockitoJUnitRunner; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
@RunWith(MockitoJUnitRunner.class) | |||
public class MeasureDataMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(MeasureDataMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, MeasureDataMigrationTest.class, "schema.sql"); | |||
MeasureDataMigrationStep migration; | |||
@@ -33,7 +33,7 @@ import static org.mockito.Mockito.when; | |||
public class AddMissingRuleParameterDefaultValuesMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(AddMissingRuleParameterDefaultValuesMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, AddMissingRuleParameterDefaultValuesMigrationTest.class, "schema.sql"); | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); |
@@ -23,6 +23,7 @@ package org.sonar.server.db.migrations.v45; | |||
import org.junit.Before; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
@@ -36,7 +37,7 @@ import static org.assertj.core.api.Assertions.assertThat; | |||
public class DeleteMeasuresOnDeletedProfilesMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(DeleteMeasuresOnDeletedProfilesMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, DeleteMeasuresOnDeletedProfilesMigrationTest.class, "schema.sql"); | |||
MigrationStep migration; | |||
@@ -34,7 +34,7 @@ import static org.mockito.Mockito.when; | |||
public class AddMissingCustomRuleParametersMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(AddMissingCustomRuleParametersMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, AddMissingCustomRuleParametersMigrationTest.class, "schema.sql"); | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); |
@@ -21,6 +21,7 @@ package org.sonar.server.db.migrations.v451; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.server.db.migrations.MigrationStep; | |||
@@ -29,7 +30,7 @@ import static org.assertj.core.api.Assertions.assertThat; | |||
public class DeleteUnescapedActivitiesTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(DeleteUnescapedActivitiesTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, DeleteUnescapedActivitiesTest.class, "schema.sql"); | |||
MigrationStep migration; | |||
@@ -41,7 +41,7 @@ import static org.mockito.Mockito.when; | |||
public class FeedFileSourcesTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(FeedFileSourcesTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, FeedFileSourcesTest.class, "schema.sql"); | |||
private static final long NOW = 1414770242000L; | |||
@@ -33,7 +33,7 @@ import static org.mockito.Mockito.when; | |||
public class FeedIssueLongDatesTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(FeedIssueLongDatesTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, FeedIssueLongDatesTest.class, "schema.sql"); | |||
@Test | |||
public void execute() throws Exception { |
@@ -33,7 +33,7 @@ import static org.mockito.Mockito.when; | |||
public class InsertProjectsAuthorizationUpdatedAtMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(InsertProjectsAuthorizationUpdatedAtMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, InsertProjectsAuthorizationUpdatedAtMigrationTest.class, "schema.sql"); | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); |
@@ -25,6 +25,7 @@ import org.junit.After; | |||
import org.junit.Before; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.version.v50.Component; | |||
@@ -37,7 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat; | |||
public class PopulateProjectsUuidColumnsMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(PopulateProjectsUuidColumnsMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, PopulateProjectsUuidColumnsMigrationTest.class, "schema.sql"); | |||
DbSession session; | |||
@@ -33,7 +33,7 @@ import static org.mockito.Mockito.when; | |||
public class RemoveSortFieldFromIssueFiltersMigrationTest { | |||
@ClassRule | |||
public static DbTester db = new DbTester().schema(RemoveSortFieldFromIssueFiltersMigrationTest.class, "schema.sql"); | |||
public static DbTester db = DbTester.createForSchema(System2.INSTANCE, RemoveSortFieldFromIssueFiltersMigrationTest.class, "schema.sql"); | |||
MigrationStep migration; | |||
System2 system = mock(System2.class); |