From: Julien Lancelot Date: Wed, 13 May 2015 14:26:49 +0000 (+0200) Subject: Remove BaseDao usage from ComponentDao X-Git-Tag: 5.2-RC1~1932 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=275dc59084686bdaab6ad480ab9c9cef1c420ba6;p=sonarqube.git Remove BaseDao usage from ComponentDao --- diff --git a/server/sonar-server/src/main/java/org/sonar/server/batch/IssuesAction.java b/server/sonar-server/src/main/java/org/sonar/server/batch/IssuesAction.java index e7177cea1c5..a710e2a2e25 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/batch/IssuesAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/batch/IssuesAction.java @@ -80,7 +80,7 @@ public class IssuesAction implements BatchWsAction { response.stream().setMediaType(MimeTypes.PROTOBUF); DbSession session = dbClient.openSession(false); try { - ComponentDto component = dbClient.componentDao().getByKey(session, moduleKey); + ComponentDto component = dbClient.componentDao().selectByKey(session, moduleKey); Map keysByUUid = keysByUUid(session, component); BatchInput.ServerIssue.Builder issueBuilder = BatchInput.ServerIssue.newBuilder(); diff --git a/server/sonar-server/src/main/java/org/sonar/server/batch/ProjectRepositoryLoader.java b/server/sonar-server/src/main/java/org/sonar/server/batch/ProjectRepositoryLoader.java index c34159404e4..573db15d4cb 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/batch/ProjectRepositoryLoader.java +++ b/server/sonar-server/src/main/java/org/sonar/server/batch/ProjectRepositoryLoader.java @@ -95,7 +95,7 @@ public class ProjectRepositoryLoader { try { ProjectRepositories ref = new ProjectRepositories(); String projectKey = query.getModuleKey(); - ComponentDto module = dbClient.componentDao().getNullableByKey(session, query.getModuleKey()); + ComponentDto module = dbClient.componentDao().selectNullableByKey(session, query.getModuleKey()); // Current project/module can be null when analysing a new project if (module != null) { // Scan permission is enough to analyze all projects but preview permission is limited to projects user can access diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/ComponentCleanerService.java b/server/sonar-server/src/main/java/org/sonar/server/component/ComponentCleanerService.java index cc24b47c128..89154e1231e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/component/ComponentCleanerService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/component/ComponentCleanerService.java @@ -56,7 +56,7 @@ public class ComponentCleanerService { public void delete(String projectKey) { DbSession dbSession = dbClient.openSession(false); try { - ComponentDto project = dbClient.componentDao().getByKey(dbSession, projectKey); + ComponentDto project = dbClient.componentDao().selectByKey(dbSession, projectKey); if (!Scopes.PROJECT.equals(project.scope())) { throw new IllegalArgumentException("Only projects can be deleted"); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/ComponentService.java b/server/sonar-server/src/main/java/org/sonar/server/component/ComponentService.java index 3b30c26faf4..287f72738a2 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/component/ComponentService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/component/ComponentService.java @@ -24,17 +24,10 @@ import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.collect.Collections2; import com.google.common.collect.Sets; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import javax.annotation.CheckForNull; -import javax.annotation.Nullable; import org.sonar.api.ServerSide; import org.sonar.api.i18n.I18n; import org.sonar.api.resources.Scopes; +import org.sonar.api.utils.System2; import org.sonar.api.utils.internal.Uuids; import org.sonar.api.web.UserRole; import org.sonar.core.component.ComponentDto; @@ -49,6 +42,16 @@ import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.permission.InternalPermissionService; import org.sonar.server.user.UserSession; +import javax.annotation.CheckForNull; +import javax.annotation.Nullable; + +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; + import static com.google.common.collect.Lists.newArrayList; @ServerSide @@ -61,15 +64,17 @@ public class ComponentService { private final ResourceIndexerDao resourceIndexerDao; private final InternalPermissionService permissionService; private final UserSession userSession; + private final System2 system2; public ComponentService(DbClient dbClient, ResourceKeyUpdaterDao resourceKeyUpdaterDao, I18n i18n, ResourceIndexerDao resourceIndexerDao, - InternalPermissionService permissionService, UserSession userSession) { + InternalPermissionService permissionService, UserSession userSession, System2 system2) { this.dbClient = dbClient; this.resourceKeyUpdaterDao = resourceKeyUpdaterDao; this.i18n = i18n; this.resourceIndexerDao = resourceIndexerDao; this.permissionService = permissionService; this.userSession = userSession; + this.system2 = system2; } public ComponentDto getByKey(String key) { @@ -163,8 +168,7 @@ public class ComponentService { } String uuid = Uuids.create(); - ComponentDto component = dbClient.componentDao().insert(session, - new ComponentDto() + ComponentDto component = new ComponentDto() .setUuid(uuid) .setModuleUuid(null) .setModuleUuidPath(ComponentDto.MODULE_UUID_PATH_SEP + uuid + ComponentDto.MODULE_UUID_PATH_SEP) @@ -175,7 +179,9 @@ public class ComponentService { .setLongName(newComponent.name()) .setScope(Scopes.PROJECT) .setQualifier(newComponent.qualifier()) - .setCreatedAt(new Date())); + .setCreatedAt(new Date(system2.now())) + ; + dbClient.componentDao().insert(session, component); resourceIndexerDao.indexResource(session, component.getId()); session.commit(); @@ -198,7 +204,7 @@ public class ComponentService { public Collection componentUuids(DbSession session, @Nullable Collection componentKeys, boolean ignoreMissingComponents) { Collection componentUuids = newArrayList(); if (componentKeys != null && !componentKeys.isEmpty()) { - List components = dbClient.componentDao().getByKeys(session, componentKeys); + List components = dbClient.componentDao().selectByKeys(session, componentKeys); if (!ignoreMissingComponents && components.size() < componentKeys.size()) { Collection foundKeys = Collections2.transform(components, new Function() { @@ -264,10 +270,10 @@ public class ComponentService { @CheckForNull private ComponentDto getNullableByKey(DbSession session, String key) { - return dbClient.componentDao().getNullableByKey(session, key); + return dbClient.componentDao().selectNullableByKey(session, key); } private ComponentDto getByKey(DbSession session, String key) { - return dbClient.componentDao().getByKey(session, key); + return dbClient.componentDao().selectByKey(session, key); } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/db/ComponentDao.java b/server/sonar-server/src/main/java/org/sonar/server/component/db/ComponentDao.java index eeb893b1cfb..497961498f6 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/component/db/ComponentDao.java +++ b/server/sonar-server/src/main/java/org/sonar/server/component/db/ComponentDao.java @@ -21,11 +21,11 @@ package org.sonar.server.component.db; import com.google.common.base.Function; +import com.google.common.collect.Lists; import org.apache.ibatis.session.RowBounds; import org.sonar.api.ServerSide; import org.sonar.api.resources.Qualifiers; import org.sonar.api.resources.Scopes; -import org.sonar.api.utils.System2; import org.sonar.core.component.ComponentDto; import org.sonar.core.component.FilePathWithHashDto; import org.sonar.core.component.UuidWithProjectUuidDto; @@ -33,12 +33,12 @@ import org.sonar.core.component.db.ComponentMapper; import org.sonar.core.persistence.DaoComponent; import org.sonar.core.persistence.DaoUtils; import org.sonar.core.persistence.DbSession; -import org.sonar.server.db.BaseDao; import org.sonar.server.es.SearchOptions; import org.sonar.server.exceptions.NotFoundException; import javax.annotation.CheckForNull; import javax.annotation.Nullable; + import java.util.Collection; import java.util.Collections; import java.util.List; @@ -50,11 +50,7 @@ import static com.google.common.collect.Maps.newHashMapWithExpectedSize; * @since 4.3 */ @ServerSide -public class ComponentDao extends BaseDao implements DaoComponent { - - public ComponentDao(System2 system) { - super(ComponentMapper.class, system); - } +public class ComponentDao implements DaoComponent { public ComponentDto getById(Long id, DbSession session) { ComponentDto componentDto = getNullableById(id, session); @@ -140,26 +136,35 @@ public class ComponentDao extends BaseDao }); } - @Override - protected List doGetByKeys(DbSession session, Collection keys) { + public List selectByKeys(DbSession session, Collection keys) { return mapper(session).findByKeys(keys); } - @Override + public ComponentDto selectByKey(DbSession session, String key) { + ComponentDto value = selectNullableByKey(session, key); + if (value == null) { + throw new NotFoundException(String.format("Component key '%s' not found", key)); + } + return mapper(session).selectByKey(key); + } + @CheckForNull - protected ComponentDto doGetNullableByKey(DbSession session, String key) { + public ComponentDto selectNullableByKey(DbSession session, String key) { return mapper(session).selectByKey(key); } - @Override - protected ComponentDto doInsert(DbSession session, ComponentDto item) { + public void insert(DbSession session, ComponentDto item) { mapper(session).insert(item); - return item; } - @Override - protected void doDeleteByKey(DbSession session, String key) { - mapper(session).deleteByKey(key); + public void insert(DbSession session, Collection items) { + for (ComponentDto item : items) { + insert(session, item); + } + } + + public void insert(DbSession session, ComponentDto item, ComponentDto... others) { + insert(session, Lists.asList(item, others)); } public List findProjectUuids(DbSession session) { @@ -215,4 +220,8 @@ public class ComponentDao extends BaseDao private void addProjectQualifier(Map parameters) { parameters.put("qualifier", Qualifiers.PROJECT); } + + private ComponentMapper mapper(DbSession session) { + return session.getMapper(ComponentMapper.class); + } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java b/server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java index 9154599fe20..5e4d2a435b4 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/ComputationService.java @@ -128,7 +128,7 @@ public class ComputationService { private ComponentDto loadProject(ReportQueue.Item item) { DbSession session = dbClient.openSession(false); try { - return dbClient.componentDao().getByKey(session, item.dto.getProjectKey()); + return dbClient.componentDao().selectByKey(session, item.dto.getProjectKey()); } finally { MyBatis.closeQuietly(session); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/ReportQueue.java b/server/sonar-server/src/main/java/org/sonar/server/computation/ReportQueue.java index 2c6a488a56f..a8820810169 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/ReportQueue.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/ReportQueue.java @@ -90,7 +90,7 @@ public class ReportQueue { } private void checkThatProjectExistsInDatabase(String projectKey, DbSession session) { - dbClient.componentDao().getByKey(session, projectKey); + dbClient.componentDao().selectByKey(session, projectKey); } public void remove(Item item) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/DuplicationsJsonWriter.java b/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/DuplicationsJsonWriter.java index 1db9158bbf3..71d062cac16 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/DuplicationsJsonWriter.java +++ b/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/DuplicationsJsonWriter.java @@ -90,7 +90,7 @@ public class DuplicationsJsonWriter { for (Map.Entry entry : refByComponentKey.entrySet()) { String componentKey = entry.getKey(); String ref = entry.getValue(); - ComponentDto file = componentDao.getNullableByKey(session, componentKey); + ComponentDto file = componentDao.selectNullableByKey(session, componentKey); if (file != null) { json.name(ref).beginObject(); diff --git a/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/DuplicationsParser.java b/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/DuplicationsParser.java index ea6e5914aac..9721fc23f49 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/DuplicationsParser.java +++ b/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/DuplicationsParser.java @@ -88,7 +88,7 @@ public class DuplicationsParser { private Duplication createDuplication(Map componentsByKey, String from, String size, String componentKey, DbSession session) { ComponentDto component = componentsByKey.get(componentKey); if (component == null) { - component = componentDao.getNullableByKey(session, componentKey); + component = componentDao.selectNullableByKey(session, componentKey); componentsByKey.put(componentKey, component); } return new Duplication(component, Integer.valueOf(from), Integer.valueOf(size)); diff --git a/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/ShowAction.java b/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/ShowAction.java index 53b6adea1e6..f270db6220f 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/ShowAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/duplication/ws/ShowAction.java @@ -22,8 +22,6 @@ package org.sonar.server.duplication.ws; import com.google.common.base.Preconditions; import com.google.common.io.Resources; -import java.util.List; -import javax.annotation.CheckForNull; import org.sonar.api.measures.CoreMetrics; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.RequestHandler; @@ -41,6 +39,10 @@ import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.measure.persistence.MeasureDao; import org.sonar.server.user.UserSession; +import javax.annotation.CheckForNull; + +import java.util.List; + public class ShowAction implements RequestHandler { private final DbClient dbClient; @@ -113,7 +115,7 @@ public class ShowAction implements RequestHandler { } private ComponentDto findComponent(String key, DbSession session) { - ComponentDto componentDto = componentDao.getNullableByKey(session, key); + ComponentDto componentDto = componentDao.selectNullableByKey(session, key); if (componentDto == null) { throw new NotFoundException(String.format("Component with key '%s' not found", key)); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/ActionService.java b/server/sonar-server/src/main/java/org/sonar/server/issue/ActionService.java index 056d6e75575..0e65b4238a8 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/ActionService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/ActionService.java @@ -111,7 +111,7 @@ public class ActionService { } IssueChangeContext changeContext = IssueChangeContext.createUser(new Date(), userSession.getLogin()); - Component project = dbClient.componentDao().getByKey(session, issue.projectKey()); + Component project = dbClient.componentDao().selectByKey(session, issue.projectKey()); FunctionContext functionContext = new FunctionContext(issue, updater, changeContext, getProjectSettings(project)); for (Function function : action.functions()) { function.execute(functionContext); diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueBulkChangeService.java b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueBulkChangeService.java index e29eb8cde12..674b68ba43e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueBulkChangeService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueBulkChangeService.java @@ -240,11 +240,11 @@ public class IssueBulkChangeService { rules.put(rule.ruleKey(), rule); } - for (ComponentDto file : dbClient.componentDao().getByKeys(session, componentKeys)) { + for (ComponentDto file : dbClient.componentDao().selectByKeys(session, componentKeys)) { components.put(file.getKey(), file); } - for (ComponentDto project : dbClient.componentDao().getByKeys(session, projectKeys)) { + for (ComponentDto project : dbClient.componentDao().selectByKeys(session, projectKeys)) { projects.put(project.getKey(), project); } } finally { diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueService.java b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueService.java index 206c3bc8a89..6fd1351f761 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueService.java @@ -19,16 +19,8 @@ */ package org.sonar.server.issue; -import java.util.ArrayList; -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; - +import com.google.common.base.Objects; +import com.google.common.base.Strings; import org.apache.commons.lang.StringUtils; import org.sonar.api.ServerSide; import org.sonar.api.issue.ActionPlan; @@ -65,8 +57,15 @@ import org.sonar.server.user.UserSession; import org.sonar.server.user.index.UserDoc; import org.sonar.server.user.index.UserIndex; -import com.google.common.base.Objects; -import com.google.common.base.Strings; +import javax.annotation.CheckForNull; +import javax.annotation.Nullable; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.Map; @ServerSide public class IssueService { @@ -247,7 +246,7 @@ public class IssueService { DbSession session = dbClient.openSession(false); try { - ComponentDto component = dbClient.componentDao().getByKey(session, componentKey); + ComponentDto component = dbClient.componentDao().selectByKey(session, componentKey); ComponentDto project = dbClient.componentDao().getByUuid(session, component.projectUuid()); userSession.checkProjectPermission(UserRole.USER, project.getKey()); @@ -302,8 +301,8 @@ public class IssueService { .setIssue(issue) .setChangeAuthorLogin(context.login()) .setRuleName(rule != null ? rule.getName() : null) - .setProject(dbClient.componentDao().getByKey(session, projectKey)) - .setComponent(dbClient.componentDao().getNullableByKey(session, issue.componentKey())) + .setProject(dbClient.componentDao().selectByKey(session, projectKey)) + .setComponent(dbClient.componentDao().selectNullableByKey(session, issue.componentKey())) .setComment(comment)); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueStorage.java b/server/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueStorage.java index 04b899cc912..190e71f59cf 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueStorage.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueStorage.java @@ -68,10 +68,10 @@ public class ServerIssueStorage extends IssueStorage { } protected ComponentDto component(DbSession session, DefaultIssue issue) { - return dbClient.componentDao().getByKey(session, issue.componentKey()); + return dbClient.componentDao().selectByKey(session, issue.componentKey()); } protected ComponentDto project(DbSession session, DefaultIssue issue) { - return dbClient.componentDao().getByKey(session, issue.projectKey()); + return dbClient.componentDao().selectByKey(session, issue.projectKey()); } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/InternalPermissionService.java b/server/sonar-server/src/main/java/org/sonar/server/permission/InternalPermissionService.java index edf1fa7fe79..70d38e82a30 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/InternalPermissionService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/InternalPermissionService.java @@ -20,12 +20,6 @@ package org.sonar.server.permission; -import java.util.List; -import java.util.Map; - -import javax.annotation.CheckForNull; -import javax.annotation.Nullable; - import org.sonar.api.ServerSide; import org.sonar.api.security.DefaultGroups; import org.sonar.api.web.UserRole; @@ -42,6 +36,12 @@ import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.issue.index.IssueAuthorizationIndexer; import org.sonar.server.user.UserSession; +import javax.annotation.CheckForNull; +import javax.annotation.Nullable; + +import java.util.List; +import java.util.Map; + /** * Used by ruby code
Internal.permissions
*/ @@ -124,7 +124,7 @@ public class InternalPermissionService { DbSession session = dbClient.openSession(false); try { - ComponentDto component = dbClient.componentDao().getByKey(session, componentKey); + ComponentDto component = dbClient.componentDao().selectByKey(session, componentKey); ResourceDto provisioned = dbClient.resourceDao().selectProvisionedProject(session, componentKey); if (provisioned == null) { checkProjectAdminPermission(componentKey); @@ -162,7 +162,7 @@ public class InternalPermissionService { } for (String componentKey : query.getSelectedComponents()) { - ComponentDto component = dbClient.componentDao().getByKey(session, componentKey); + ComponentDto component = dbClient.componentDao().selectByKey(session, componentKey); permissionFacade.applyPermissionTemplate(session, query.getTemplateKey(), component.getId()); projectsChanged = true; } @@ -256,7 +256,7 @@ public class InternalPermissionService { if (componentKey == null) { return null; } else { - ComponentDto component = dbClient.componentDao().getByKey(session, componentKey); + ComponentDto component = dbClient.componentDao().selectByKey(session, componentKey); return component.getId(); } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/source/ws/HashAction.java b/server/sonar-server/src/main/java/org/sonar/server/source/ws/HashAction.java index 69cbfada5c4..2ffe4c95ee5 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/source/ws/HashAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/source/ws/HashAction.java @@ -66,7 +66,7 @@ public class HashAction implements SourcesWsAction { public void handle(Request request, Response response) throws Exception { try (DbSession session = dbClient.openSession(false)) { final String componentKey = request.mandatoryParam("key"); - final ComponentDto component = dbClient.componentDao().getByKey(session, componentKey); + final ComponentDto component = dbClient.componentDao().selectByKey(session, componentKey); userSession.checkProjectUuidPermission(UserRole.USER, component.projectUuid()); response.stream().setMediaType("text/plain"); diff --git a/server/sonar-server/src/main/java/org/sonar/server/source/ws/IndexAction.java b/server/sonar-server/src/main/java/org/sonar/server/source/ws/IndexAction.java index 5a58c36fb65..6f02cbe6f84 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/source/ws/IndexAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/source/ws/IndexAction.java @@ -21,7 +21,6 @@ package org.sonar.server.source.ws; import com.google.common.io.Resources; -import java.util.List; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; @@ -33,6 +32,8 @@ import org.sonar.server.db.DbClient; import org.sonar.server.source.SourceService; import org.sonar.server.user.UserSession; +import java.util.List; + public class IndexAction implements SourcesWsAction { private final DbClient dbClient; @@ -77,7 +78,7 @@ public class IndexAction implements SourcesWsAction { Integer from = request.mandatoryParamAsInt("from"); Integer to = request.paramAsInt("to"); try (DbSession session = dbClient.openSession(false)) { - ComponentDto componentDto = dbClient.componentDao().getByKey(session, fileKey); + ComponentDto componentDto = dbClient.componentDao().selectByKey(session, fileKey); List lines = sourceService.getLinesAsTxt(componentDto.uuid(), from, to == null ? null : to - 1); JsonWriter json = response.newJsonWriter().beginArray().beginObject(); Integer lineCounter = from; diff --git a/server/sonar-server/src/main/java/org/sonar/server/source/ws/LinesAction.java b/server/sonar-server/src/main/java/org/sonar/server/source/ws/LinesAction.java index 7efb25586ec..0834e31a3a8 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/source/ws/LinesAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/source/ws/LinesAction.java @@ -20,8 +20,6 @@ package org.sonar.server.source.ws; import com.google.common.io.Resources; -import java.util.Date; -import java.util.List; import org.apache.commons.lang.ObjectUtils; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Response; @@ -39,6 +37,9 @@ import org.sonar.server.source.index.SourceLineDoc; import org.sonar.server.source.index.SourceLineIndex; import org.sonar.server.user.UserSession; +import java.util.Date; +import java.util.List; + public class LinesAction implements SourcesWsAction { private static final String PARAM_UUID = "uuid"; @@ -153,7 +154,7 @@ public class LinesAction implements SourcesWsAction { } String fileKey = request.param(PARAM_KEY); if (fileKey != null) { - return dbClient.componentDao().getByKey(session, fileKey); + return dbClient.componentDao().selectByKey(session, fileKey); } throw new IllegalArgumentException(String.format("Param %s or param %s is missing", PARAM_UUID, PARAM_KEY)); } finally { diff --git a/server/sonar-server/src/main/java/org/sonar/server/source/ws/RawAction.java b/server/sonar-server/src/main/java/org/sonar/server/source/ws/RawAction.java index d94c6175671..7d54fe0f8dc 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/source/ws/RawAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/source/ws/RawAction.java @@ -68,7 +68,7 @@ public class RawAction implements SourcesWsAction { String fileKey = request.mandatoryParam("key"); userSession.checkComponentPermission(UserRole.CODEVIEWER, fileKey); try (DbSession session = dbClient.openSession(false)) { - ComponentDto componentDto = dbClient.componentDao().getByKey(session, fileKey); + ComponentDto componentDto = dbClient.componentDao().selectByKey(session, fileKey); List lines = sourceService.getLinesAsTxt(componentDto.uuid(), null, null); response.stream().setMediaType("text/plain"); IOUtils.writeLines(lines, "\n", response.stream().output(), StandardCharsets.UTF_8); diff --git a/server/sonar-server/src/main/java/org/sonar/server/source/ws/ScmAction.java b/server/sonar-server/src/main/java/org/sonar/server/source/ws/ScmAction.java index c62e0bd881c..617c7f9f71f 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/source/ws/ScmAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/source/ws/ScmAction.java @@ -22,8 +22,6 @@ package org.sonar.server.source.ws; import com.google.common.base.Strings; import com.google.common.io.Resources; -import java.util.Date; -import java.util.List; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.builder.EqualsBuilder; import org.sonar.api.server.ws.Request; @@ -40,6 +38,9 @@ import org.sonar.server.source.index.SourceLineDoc; import org.sonar.server.source.index.SourceLineIndex; import org.sonar.server.user.UserSession; +import java.util.Date; +import java.util.List; + public class ScmAction implements SourcesWsAction { private final DbClient dbClient; @@ -101,7 +102,7 @@ public class ScmAction implements SourcesWsAction { DbSession session = dbClient.openSession(false); try { - ComponentDto fileDto = dbClient.componentDao().getByKey(session, fileKey); + ComponentDto fileDto = dbClient.componentDao().selectByKey(session, fileKey); userSession.checkProjectUuidPermission(UserRole.CODEVIEWER, fileDto.projectUuid()); List sourceLines = sourceLineIndex.getLines(fileDto.uuid(), from, to); if (sourceLines.isEmpty()) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/source/ws/ShowAction.java b/server/sonar-server/src/main/java/org/sonar/server/source/ws/ShowAction.java index 61be5be83fe..f0712c6e075 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/source/ws/ShowAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/source/ws/ShowAction.java @@ -20,7 +20,6 @@ package org.sonar.server.source.ws; import com.google.common.io.Resources; -import java.util.List; import org.apache.commons.lang.ObjectUtils; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Response; @@ -33,6 +32,8 @@ import org.sonar.server.db.DbClient; import org.sonar.server.source.SourceService; import org.sonar.server.user.UserSession; +import java.util.List; + public class ShowAction implements SourcesWsAction { private final SourceService sourceService; @@ -86,7 +87,7 @@ public class ShowAction implements SourcesWsAction { DbSession session = dbClient.openSession(false); try { - ComponentDto componentDto = dbClient.componentDao().getByKey(session, fileKey); + ComponentDto componentDto = dbClient.componentDao().selectByKey(session, fileKey); List linesHtml = sourceService.getLinesAsHtml(componentDto.uuid(), from, to); JsonWriter json = response.newJsonWriter().beginObject(); writeSource(linesHtml, from, json); diff --git a/server/sonar-server/src/main/java/org/sonar/server/test/ws/TestsListAction.java b/server/sonar-server/src/main/java/org/sonar/server/test/ws/TestsListAction.java index 06ee6f79ae0..2625d09fe88 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/test/ws/TestsListAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/test/ws/TestsListAction.java @@ -23,9 +23,6 @@ package org.sonar.server.test.ws; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.io.Resources; -import java.util.List; -import java.util.Map; -import javax.annotation.Nullable; import org.sonar.api.server.ws.Request; import org.sonar.api.server.ws.Response; import org.sonar.api.server.ws.WebService; @@ -43,6 +40,11 @@ import org.sonar.server.test.index.TestDoc; import org.sonar.server.test.index.TestIndex; import org.sonar.server.user.UserSession; +import javax.annotation.Nullable; + +import java.util.List; +import java.util.Map; + public class TestsListAction implements TestsWsAction { public static final String TEST_UUID = "testUuid"; public static final String TEST_FILE_UUID = "testFileUuid"; @@ -205,7 +207,7 @@ public class TestsListAction implements TestsWsAction { private SearchResult searchTestsByTestFileKey(DbSession dbSession, String testFileKey, SearchOptions searchOptions) { userSession.checkComponentPermission(UserRole.CODEVIEWER, testFileKey); - ComponentDto testFile = dbClient.componentDao().getByKey(dbSession, testFileKey); + ComponentDto testFile = dbClient.componentDao().selectByKey(dbSession, testFileKey); return testIndex.searchByTestFileUuid(testFile.uuid(), searchOptions); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/ui/ws/ComponentNavigationAction.java b/server/sonar-server/src/main/java/org/sonar/server/ui/ws/ComponentNavigationAction.java index cc6c4737360..83cdb3b6c59 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/ui/ws/ComponentNavigationAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/ui/ws/ComponentNavigationAction.java @@ -107,7 +107,7 @@ public class ComponentNavigationAction implements NavigationWsAction { DbSession session = dbClient.openSession(false); try { - ComponentDto component = dbClient.componentDao().getByKey(session, componentKey); + ComponentDto component = dbClient.componentDao().selectByKey(session, componentKey); userSession.checkProjectUuidPermission(UserRole.USER, component.projectUuid()); diff --git a/server/sonar-server/src/test/java/org/sonar/server/batch/IssuesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/batch/IssuesActionTest.java index 7c377e4be94..c127fb83405 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/batch/IssuesActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/batch/IssuesActionTest.java @@ -93,7 +93,7 @@ public class IssuesActionTest { es.truncateIndices(); this.session = db.myBatis().openSession(false); - componentDao = new ComponentDao(mock(System2.class)); + componentDao = new ComponentDao(); DbClient dbClient = new DbClient(db.database(), db.myBatis(), new IssueDao(db.myBatis()), componentDao); issueIndex = new IssueIndex(es.client(), System2.INSTANCE, userSessionRule); issueIndexer = new IssueIndexer(null, es.client()); diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ComponentCleanerServiceMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ComponentCleanerServiceMediumTest.java index e1d3b0dbfb8..57b48cedd78 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/ComponentCleanerServiceMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/ComponentCleanerServiceMediumTest.java @@ -85,7 +85,7 @@ public class ComponentCleanerServiceMediumTest { service.delete(project.getKey()); - assertThat(db.componentDao().getNullableByKey(session, project.key())).isNull(); + assertThat(db.componentDao().selectNullableByKey(session, project.key())).isNull(); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/db/ComponentDaoTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/db/ComponentDaoTest.java index 4c784d43ed5..97794b91439 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/db/ComponentDaoTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/db/ComponentDaoTest.java @@ -20,13 +20,13 @@ package org.sonar.server.component.db; -import org.apache.ibatis.exceptions.PersistenceException; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import org.sonar.api.utils.DateUtils; -import org.sonar.api.utils.System2; import org.sonar.core.component.ComponentDto; import org.sonar.core.component.FilePathWithHashDto; import org.sonar.core.persistence.DbSession; @@ -35,29 +35,26 @@ import org.sonar.server.es.SearchOptions; import org.sonar.server.exceptions.NotFoundException; import java.util.Collections; -import java.util.Date; import java.util.List; import static com.google.common.collect.Lists.newArrayList; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; public class ComponentDaoTest { + @Rule + public ExpectedException thrown = ExpectedException.none(); + ComponentDao sut; @ClassRule public static DbTester db = new DbTester(); DbSession session; - System2 system2; - @Before public void createDao() { session = db.myBatis().openSession(false); - system2 = mock(System2.class); - sut = new ComponentDao(system2); + sut = new ComponentDao(); } @After @@ -120,8 +117,10 @@ public class ComponentDaoTest { assertThat(result.isEnabled()).isFalse(); } - @Test(expected = NotFoundException.class) + @Test public void fail_to_get_by_uuid_when_component_not_found() { + thrown.expect(NotFoundException.class); + loadBasicDataInDatabase(); sut.getByUuid(session, "unknown"); @@ -131,7 +130,7 @@ public class ComponentDaoTest { public void get_by_key() { loadBasicDataInDatabase(); - ComponentDto result = sut.getNullableByKey(session, "org.struts:struts-core:src/org/struts/RequestContext.java"); + ComponentDto result = sut.selectNullableByKey(session, "org.struts:struts-core:src/org/struts/RequestContext.java"); assertThat(result).isNotNull(); assertThat(result.key()).isEqualTo("org.struts:struts-core:src/org/struts/RequestContext.java"); assertThat(result.path()).isEqualTo("src/org/struts/RequestContext.java"); @@ -142,14 +141,23 @@ public class ComponentDaoTest { assertThat(result.language()).isEqualTo("java"); assertThat(result.parentProjectId()).isEqualTo(2); - assertThat(sut.getNullableByKey(session, "unknown")).isNull(); + assertThat(sut.selectNullableByKey(session, "unknown")).isNull(); + } + + @Test + public void fail_to_get_by_key_when_component_not_found() { + thrown.expect(NotFoundException.class); + + loadBasicDataInDatabase(); + + sut.getByUuid(session, "unknown"); } @Test public void get_by_key_on_disabled_component() { loadBasicDataInDatabase(); - ComponentDto result = sut.getNullableByKey(session, "org.disabled.project"); + ComponentDto result = sut.selectByKey(session, "org.disabled.project"); assertThat(result).isNotNull(); assertThat(result.isEnabled()).isFalse(); } @@ -158,7 +166,7 @@ public class ComponentDaoTest { public void get_by_key_on_a_root_project() { loadBasicDataInDatabase(); - ComponentDto result = sut.getNullableByKey(session, "org.struts:struts"); + ComponentDto result = sut.selectByKey(session, "org.struts:struts"); assertThat(result).isNotNull(); assertThat(result.key()).isEqualTo("org.struts:struts"); assertThat(result.deprecatedKey()).isEqualTo("org.struts:struts"); @@ -176,7 +184,7 @@ public class ComponentDaoTest { public void get_by_keys() { loadBasicDataInDatabase(); - List results = sut.getByKeys(session, "org.struts:struts-core:src/org/struts/RequestContext.java"); + List results = sut.selectByKeys(session, Collections.singletonList("org.struts:struts-core:src/org/struts/RequestContext.java")); assertThat(results).hasSize(1); ComponentDto result = results.get(0); @@ -190,7 +198,7 @@ public class ComponentDaoTest { assertThat(result.language()).isEqualTo("java"); assertThat(result.parentProjectId()).isEqualTo(2); - assertThat(sut.getByKeys(session, "unknown")).isEmpty(); + assertThat(sut.selectByKeys(session, Collections.singletonList("unknown"))).isEmpty(); } @Test @@ -446,7 +454,6 @@ public class ComponentDaoTest { @Test public void insert() { - when(system2.now()).thenReturn(DateUtils.parseDate("2014-06-18").getTime()); db.prepareDbUnit(getClass(), "empty.xml"); ComponentDto componentDto = new ComponentDto() @@ -466,6 +473,7 @@ public class ComponentDaoTest { .setParentProjectId(3L) .setCopyResourceId(5L) .setEnabled(true) + .setCreatedAt(DateUtils.parseDate("2014-06-18")) .setAuthorizationUpdatedAt(123456789L); sut.insert(session, componentDto); @@ -477,7 +485,6 @@ public class ComponentDaoTest { @Test public void insert_disabled_component() { - when(system2.now()).thenReturn(DateUtils.parseDate("2014-06-18").getTime()); db.prepareDbUnit(getClass(), "empty.xml"); ComponentDto componentDto = new ComponentDto() @@ -495,6 +502,7 @@ public class ComponentDaoTest { .setPath("src/org/struts/RequestContext.java") .setParentProjectId(3L) .setEnabled(false) + .setCreatedAt(DateUtils.parseDate("2014-06-18")) .setAuthorizationUpdatedAt(123456789L); sut.insert(session, componentDto); @@ -504,27 +512,6 @@ public class ComponentDaoTest { db.assertDbUnit(getClass(), "insert_disabled_component-result.xml", "projects"); } - @Test(expected = IllegalStateException.class) - public void update() { - sut.update(session, new ComponentDto() - .setId(1L) - .setKey("org.struts:struts-core:src/org/struts/RequestContext.java") - ); - } - - @Test - public void delete() { - loadBasicDataInDatabase(); - - sut.delete(session, new ComponentDto() - .setId(1L) - .setKey("org.struts:struts-core:src/org/struts/RequestContext.java") - ); - session.commit(); - - db.assertDbUnit(getClass(), "delete-result.xml", "projects"); - } - @Test public void find_project_uuids() { db.prepareDbUnit(getClass(), "find_project_uuids.xml"); @@ -532,11 +519,6 @@ public class ComponentDaoTest { assertThat(sut.findProjectUuids(session)).containsExactly("ABCD"); } - @Test(expected = PersistenceException.class) - public void synchronize_after() { - sut.synchronizeAfter(session, new Date(0L)); - } - @Test public void select_views_and_sub_views() { db.prepareDbUnit(getClass(), "shared_views.xml"); diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectsGhostsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectsGhostsActionTest.java index b6da49d9986..0c964c2a5db 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectsGhostsActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectsGhostsActionTest.java @@ -60,7 +60,7 @@ public class ProjectsGhostsActionTest { @Before public void setUp() { - dbClient = new DbClient(db.database(), db.myBatis(), new ComponentDao(System2.INSTANCE), new SnapshotDao(System2.INSTANCE)); + dbClient = new DbClient(db.database(), db.myBatis(), new ComponentDao(), new SnapshotDao(System2.INSTANCE)); dbSession = dbClient.openSession(false); ws = new WsTester(new ProjectsWs(new ProjectsGhostsAction(dbClient, userSessionRule))); db.truncateTables(); @@ -150,14 +150,14 @@ public class ProjectsGhostsActionTest { .setKey("org.apache.hbas:hbase") .setName("HBase") .setCreatedAt(DateUtils.parseDateTime("2015-03-04T23:03:44+0100")); - hBaseProject = dbClient.componentDao().insert(dbSession, hBaseProject); + dbClient.componentDao().insert(dbSession, hBaseProject); dbClient.snapshotDao().insert(dbSession, SnapshotTesting.createForProject(hBaseProject) .setStatus(SnapshotDto.STATUS_UNPROCESSED)); ComponentDto roslynProject = ComponentTesting.newProjectDto("c526ef20-131b-4486-9357-063fa64b5079") .setKey("com.microsoft.roslyn:roslyn") .setName("Roslyn") .setCreatedAt(DateUtils.parseDateTime("2013-03-04T23:03:44+0100")); - roslynProject = dbClient.componentDao().insert(dbSession, roslynProject); + dbClient.componentDao().insert(dbSession, roslynProject); dbClient.snapshotDao().insert(dbSession, SnapshotTesting.createForProject(roslynProject) .setStatus(SnapshotDto.STATUS_UNPROCESSED)); dbSession.commit(); @@ -179,7 +179,7 @@ public class ProjectsGhostsActionTest { .newProjectDto("ghost-uuid-" + id) .setName("ghost-name-" + id) .setKey("ghost-key-" + id); - project = dbClient.componentDao().insert(dbSession, project); + dbClient.componentDao().insert(dbSession, project); SnapshotDto snapshot = SnapshotTesting.createForProject(project) .setStatus(SnapshotDto.STATUS_UNPROCESSED); dbClient.snapshotDao().insert(dbSession, snapshot); @@ -191,7 +191,7 @@ public class ProjectsGhostsActionTest { .newProjectDto("analyzed-uuid-" + id) .setName("analyzed-name-" + id) .setKey("analyzed-key-" + id); - project = dbClient.componentDao().insert(dbSession, project); + dbClient.componentDao().insert(dbSession, project); SnapshotDto snapshot = SnapshotTesting.createForProject(project); dbClient.snapshotDao().insert(dbSession, snapshot); dbSession.commit(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectsProvisionedActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectsProvisionedActionTest.java index c6575fef314..e0e7be965ff 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectsProvisionedActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/ws/ProjectsProvisionedActionTest.java @@ -67,7 +67,7 @@ public class ProjectsProvisionedActionTest { @Before public void setUp() { - dbClient = new DbClient(db.database(), db.myBatis(), new ComponentDao(system2), new SnapshotDao(System2.INSTANCE)); + dbClient = new DbClient(db.database(), db.myBatis(), new ComponentDao(), new SnapshotDao(System2.INSTANCE)); dbSession = dbClient.openSession(false); componentDao = dbClient.componentDao(); db.truncateTables(); @@ -78,8 +78,7 @@ public class ProjectsProvisionedActionTest { public void all_provisioned_projects_without_analyzed_projects() throws Exception { userSessionRule.setGlobalPermissions(UserRole.ADMIN); ComponentDto analyzedProject = ComponentTesting.newProjectDto("analyzed-uuid-1"); - componentDao.insert(dbSession, newProvisionedProject("1"), newProvisionedProject("2")); - analyzedProject = dbClient.componentDao().insert(dbSession, analyzedProject); + componentDao.insert(dbSession, newProvisionedProject("1"), newProvisionedProject("2"), analyzedProject); SnapshotDto snapshot = SnapshotTesting.createForProject(analyzedProject); dbClient.snapshotDao().insert(dbSession, snapshot); dbSession.commit(); @@ -140,11 +139,11 @@ public class ProjectsProvisionedActionTest { assertThat(componentDao.countProvisionedProjects(dbSession, "visioned-name-")).isEqualTo(2); } - private static ComponentDto newProvisionedProject(String id) { + private static ComponentDto newProvisionedProject(String uuid) { return ComponentTesting - .newProjectDto("provisioned-uuid-" + id) - .setName("provisioned-name-" + id) - .setKey("provisioned-key-" + id); + .newProjectDto("provisioned-uuid-" + uuid) + .setName("provisioned-name-" + uuid) + .setKey("provisioned-key-" + uuid); } @Test diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchActionTest.java index 629b2ff864a..c63ff362391 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchActionTest.java @@ -25,7 +25,6 @@ import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; -import org.sonar.api.utils.System2; import org.sonar.api.web.UserRole; import org.sonar.core.persistence.DbTester; import org.sonar.core.user.AuthorizationDao; @@ -54,7 +53,7 @@ public class SearchActionTest { public void setUp() { dbTester.truncateTables(); DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), - new ComponentDao(mock(System2.class)), new AuthorizationDao(dbTester.myBatis()), new ComponentIndexDao() + new ComponentDao(), new AuthorizationDao(dbTester.myBatis()), new ComponentIndexDao() ); tester = new WsTester(new ComponentsWs(mock(ComponentAppAction.class), new SearchAction(dbClient, userSessionRule))); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/ComputationServiceTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/ComputationServiceTest.java index 38967d78e62..3d275761af4 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/ComputationServiceTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/ComputationServiceTest.java @@ -52,7 +52,12 @@ import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.fail; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.any; +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.when; public class ComputationServiceTest { @@ -74,7 +79,7 @@ public class ComputationServiceTest { @Before public void setUp() { - DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), new ComponentDao(system), new SnapshotDao(system)); + DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), new ComponentDao(), new SnapshotDao(system)); sut = new ComputationService(dbClient, steps, activityService, settingsFactory, tempFolder, system); // db contains project with key "P1" diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/ReportQueueTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/ReportQueueTest.java index 90655f3b337..ba5ec765781 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/ReportQueueTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/ReportQueueTest.java @@ -71,7 +71,7 @@ public class ReportQueueTest { settings.setProperty(ProcessProperties.PATH_DATA, dataDir.getAbsolutePath()); when(system.now()).thenReturn(NOW); - DbClient dbClient = new DbClient(db.database(), db.myBatis(), new ComponentDao(system), new AnalysisReportDao(system)); + DbClient dbClient = new DbClient(db.database(), db.myBatis(), new ComponentDao(), new AnalysisReportDao(system)); sut = new ReportQueue(dbClient, settings); try (DbSession session = dbClient.openSession(false)) { diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/PurgeRemovedViewsStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/PurgeRemovedViewsStepTest.java index d91e2e35fda..4ca0363f27d 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/PurgeRemovedViewsStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/PurgeRemovedViewsStepTest.java @@ -20,10 +20,13 @@ package org.sonar.server.computation.step; -import org.junit.*; +import org.junit.After; +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; import org.sonar.api.config.Settings; import org.sonar.api.resources.Qualifiers; -import org.sonar.api.utils.System2; import org.sonar.core.component.ComponentDto; import org.sonar.core.persistence.DbSession; import org.sonar.core.persistence.DbTester; @@ -60,7 +63,7 @@ public class PurgeRemovedViewsStepTest extends BaseStepTest { public void setUp() { esTester.truncateIndices(); session = db.myBatis().openSession(false); - dbClient = new DbClient(db.database(), db.myBatis(), new IssueDao(db.myBatis()), new ComponentDao(mock(System2.class))); + dbClient = new DbClient(db.database(), db.myBatis(), new IssueDao(db.myBatis()), new ComponentDao()); sut = new PurgeRemovedViewsStep(new ViewIndex(esTester.client()), dbClient); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/design/ws/ShowActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/design/ws/ShowActionTest.java index b5771b3e0eb..ecc362f865e 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/design/ws/ShowActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/design/ws/ShowActionTest.java @@ -46,7 +46,6 @@ import org.sonar.server.ws.WsTester; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown; -import static org.mockito.Mockito.mock; public class ShowActionTest { @@ -75,7 +74,7 @@ public class ShowActionTest { @Before public void setUp() { dbTester.truncateTables(); - dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), new ComponentDao(mock(System2.class)), new SnapshotDao(System2.INSTANCE), new FileDependencyDao()); + dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), new ComponentDao(), new SnapshotDao(System2.INSTANCE), new FileDependencyDao()); session = dbClient.openSession(false); tester = new WsTester(new DependenciesWs(new ShowAction(dbClient, userSessionRule))); controller = tester.controller("api/dependencies"); diff --git a/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/DuplicationsJsonWriterTest.java b/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/DuplicationsJsonWriterTest.java index ca33eb4f1b9..95319b8da4c 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/DuplicationsJsonWriterTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/DuplicationsJsonWriterTest.java @@ -37,7 +37,11 @@ import java.util.Collections; import java.util.List; import static com.google.common.collect.Lists.newArrayList; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.anyString; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class DuplicationsJsonWriterTest { @@ -70,8 +74,8 @@ public class DuplicationsJsonWriterTest { String key2 = "org.codehaus.sonar:sonar-ws-client:src/main/java/org/sonar/wsclient/services/PropertyUpdateQuery.java"; ComponentDto file2 = ComponentTesting.newFileDto(project).setId(11L).setQualifier("FIL").setKey(key2).setLongName("PropertyUpdateQuery").setParentProjectId(5L); - when(componentDao.getNullableByKey(session, key1)).thenReturn(file1); - when(componentDao.getNullableByKey(session, key2)).thenReturn(file2); + when(componentDao.selectNullableByKey(session, key1)).thenReturn(file1); + when(componentDao.selectNullableByKey(session, key2)).thenReturn(file2); when(componentDao.getNullableById(5L, session)).thenReturn( new ComponentDto().setId(5L).setKey("org.codehaus.sonar:sonar-ws-client").setLongName("SonarQube :: Web Service Client")); when(componentDao.getNullableByUuid(session, project.uuid())).thenReturn(project); @@ -116,7 +120,7 @@ public class DuplicationsJsonWriterTest { " }" + "}"); - verify(componentDao, times(2)).getNullableByKey(eq(session), anyString()); + verify(componentDao, times(2)).selectNullableByKey(eq(session), anyString()); // Verify call to dao is cached when searching for project / sub project verify(componentDao, times(1)).getNullableByUuid(eq(session), eq(project.uuid())); verify(componentDao, times(1)).getNullableById(eq(5L), eq(session)); @@ -129,8 +133,8 @@ public class DuplicationsJsonWriterTest { String key2 = "org.codehaus.sonar:sonar-ws-client:src/main/java/org/sonar/wsclient/services/PropertyUpdateQuery.java"; ComponentDto file2 = ComponentTesting.newFileDto(project).setId(11L).setKey(key2).setLongName("PropertyUpdateQuery"); - when(componentDao.getNullableByKey(session, key1)).thenReturn(file1); - when(componentDao.getNullableByKey(session, key2)).thenReturn(file2); + when(componentDao.selectNullableByKey(session, key1)).thenReturn(file1); + when(componentDao.selectNullableByKey(session, key2)).thenReturn(file2); when(componentDao.getNullableByUuid(session, project.uuid())).thenReturn(project); List blocks = newArrayList(); @@ -175,7 +179,7 @@ public class DuplicationsJsonWriterTest { String key1 = "org.codehaus.sonar:sonar-ws-client:src/main/java/org/sonar/wsclient/services/PropertyDeleteQuery.java"; ComponentDto file1 = ComponentTesting.newFileDto(project).setId(10L).setKey(key1).setLongName("PropertyDeleteQuery"); - when(componentDao.getNullableByKey(session, key1)).thenReturn(file1); + when(componentDao.selectNullableByKey(session, key1)).thenReturn(file1); when(componentDao.getNullableByUuid(session, project.uuid())).thenReturn(project); List blocks = newArrayList(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/DuplicationsParserTest.java b/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/DuplicationsParserTest.java index 0bbef9a73dd..d4b43ab4fc5 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/DuplicationsParserTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/DuplicationsParserTest.java @@ -75,17 +75,17 @@ public class DuplicationsParserTest { // Current file String key1 = "org.codehaus.sonar:sonar-plugin-api:src/main/java/org/sonar/api/utils/command/CommandExecutor.java"; currentFile = ComponentTesting.newFileDto(project1).setId(10L).setKey(key1).setLongName("CommandExecutor"); - when(componentDao.getNullableByKey(session, key1)).thenReturn(currentFile); + when(componentDao.selectNullableByKey(session, key1)).thenReturn(currentFile); // File on same project String key2 = "org.codehaus.sonar:sonar-plugin-api:src/main/java/com/sonar/orchestrator/util/CommandExecutor.java"; fileOnSameProject = ComponentTesting.newFileDto(project1).setId(11L).setKey(key2).setLongName("CommandExecutor"); - when(componentDao.getNullableByKey(session, key2)).thenReturn(fileOnSameProject); + when(componentDao.selectNullableByKey(session, key2)).thenReturn(fileOnSameProject); // File on different project String key3 = "com.sonarsource.orchestrator:sonar-orchestrator:src/main/java/com/sonar/orchestrator/util/CommandExecutor.java"; fileOnDifferentProject = ComponentTesting.newFileDto(project2).setId(12L).setKey(key3).setLongName("CommandExecutor"); - when(componentDao.getNullableByKey(session, key3)).thenReturn(fileOnDifferentProject); + when(componentDao.selectNullableByKey(session, key3)).thenReturn(fileOnDifferentProject); parser = new DuplicationsParser(componentDao); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/ShowActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/ShowActionTest.java index 1ef7b6faed6..1f680181fca 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/ShowActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/duplication/ws/ShowActionTest.java @@ -21,7 +21,6 @@ package org.sonar.server.duplication.ws; import com.google.common.collect.Lists; -import java.util.List; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -41,6 +40,8 @@ import org.sonar.server.measure.persistence.MeasureDao; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.WsTester; +import java.util.List; + import static com.google.common.collect.Lists.newArrayList; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; @@ -84,7 +85,7 @@ public class ShowActionTest { userSessionRule.addComponentPermission(UserRole.CODEVIEWER, "org.codehaus.sonar:sonar", componentKey); ComponentDto componentDto = new ComponentDto().setId(10L); - when(componentDao.getNullableByKey(session, componentKey)).thenReturn(componentDto); + when(componentDao.selectNullableByKey(session, componentKey)).thenReturn(componentDto); String data = "{duplications}"; when(measureDao.findByComponentKeyAndMetricKey(session, componentKey, CoreMetrics.DUPLICATIONS_DATA_KEY)).thenReturn( @@ -109,7 +110,7 @@ public class ShowActionTest { when(componentDao.getByUuid(session, uuid)).thenReturn(new ComponentDto().setKey(componentKey)); ComponentDto componentDto = new ComponentDto().setId(10L); - when(componentDao.getNullableByKey(session, componentKey)).thenReturn(componentDto); + when(componentDao.selectNullableByKey(session, componentKey)).thenReturn(componentDto); String data = "{duplications}"; when(measureDao.findByComponentKeyAndMetricKey(session, componentKey, CoreMetrics.DUPLICATIONS_DATA_KEY)).thenReturn( @@ -131,7 +132,7 @@ public class ShowActionTest { userSessionRule.addComponentPermission(UserRole.CODEVIEWER, "org.codehaus.sonar:sonar", componentKey); ComponentDto componentDto = new ComponentDto().setId(10L); - when(componentDao.getNullableByKey(session, componentKey)).thenReturn(componentDto); + when(componentDao.selectNullableByKey(session, componentKey)).thenReturn(componentDto); when(measureDao.findByComponentKeyAndMetricKey(session, componentKey, CoreMetrics.DUPLICATIONS_DATA_KEY)).thenReturn(null); diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ActionServiceTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ActionServiceTest.java index da1d066b796..29f8b0d496d 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/ActionServiceTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ActionServiceTest.java @@ -49,7 +49,14 @@ import java.util.List; import static com.google.common.collect.Lists.newArrayList; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.fail; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.anyString; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.when; public class ActionServiceTest { @@ -93,7 +100,7 @@ public class ActionServiceTest { Function function1 = mock(Function.class); Function function2 = mock(Function.class); - when(componentDao.getByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); + when(componentDao.selectByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); when(issueService.getByKeyForUpdate(session, "ABCD")).thenReturn(issue); actions.add("link-to-jira").setConditions(new AlwaysMatch()).setFunctions(function1, function2); @@ -112,7 +119,7 @@ public class ActionServiceTest { UserSession userSession = mock(ThreadLocalUserSession.class); when(userSession.getLogin()).thenReturn("arthur"); - when(componentDao.getByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); + when(componentDao.selectByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); when(issueService.getByKeyForUpdate(session, "ABCD")).thenReturn(issue); actions.add("link-to-jira").setConditions(new AlwaysMatch()).setFunctions(function); @@ -129,7 +136,7 @@ public class ActionServiceTest { UserSession userSession = mock(ThreadLocalUserSession.class); when(userSession.getLogin()).thenReturn("arthur"); - when(componentDao.getByKey(session, "struts")).thenReturn(new ComponentDto().setKey("struts")); + when(componentDao.selectByKey(session, "struts")).thenReturn(new ComponentDto().setKey("struts")); when(issueService.getByKeyForUpdate(session, "ABCD")).thenReturn(issue.setProjectKey("struts")); actions.add("link-to-jira").setConditions(new AlwaysMatch()).setFunctions(function); @@ -142,7 +149,7 @@ public class ActionServiceTest { public void not_execute_function_if_action_not_found() { Function function = mock(Function.class); - when(componentDao.getByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); + when(componentDao.selectByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); when(issueService.getByKeyForUpdate(session, "ABCD")).thenReturn(issue); actions.add("link-to-jira").setConditions(new AlwaysMatch()).setFunctions(function); @@ -159,7 +166,7 @@ public class ActionServiceTest { public void not_execute_function_if_action_is_not_supported() { Function function = mock(Function.class); - when(componentDao.getByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); + when(componentDao.selectByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); when(issueService.getByKeyForUpdate(session, "ABCD")).thenReturn(issue); actions.add("link-to-jira").setConditions(new NeverMatch()).setFunctions(function); @@ -174,7 +181,7 @@ public class ActionServiceTest { @Test public void list_available_supported_actions() { - when(componentDao.getByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); + when(componentDao.selectByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); when(issueService.getByKeyForUpdate(session, "ABCD")).thenReturn(issue); actions.add("link-to-jira").setConditions(new AlwaysMatch()); @@ -184,7 +191,7 @@ public class ActionServiceTest { @Test public void return_no_action() { - when(componentDao.getByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); + when(componentDao.selectByKey(eq(session), anyString())).thenReturn(mock(ComponentDto.class)); when(issueService.getByKeyForUpdate(session, "ABCD")).thenReturn(issue); assertThat(actionService.listAvailableActions("ABCD")).isEmpty(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueBulkChangeServiceTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueBulkChangeServiceTest.java index c209432a407..ead28b575af 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueBulkChangeServiceTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueBulkChangeServiceTest.java @@ -58,14 +58,14 @@ public class IssueBulkChangeServiceTest { // .setLongName("My Project") // .setQualifier(Qualifiers.PROJECT) // .setScope(Scopes.PROJECT); -// when(componentDao.getByKeys(dbSession, newHashSet(project.key()))).thenReturn(newArrayList(project)); +// when(componentDao.selectByKeys(dbSession, newHashSet(project.key()))).thenReturn(newArrayList(project)); // // file = new ComponentDto() // .setId(2L) // .setParentProjectId(project.getId()) // .setKey("MyComponent") // .setLongName("My Component"); -// when(componentDao.getByKeys(dbSession, newHashSet(file.key()))).thenReturn(newArrayList(file)); +// when(componentDao.selectByKeys(dbSession, newHashSet(file.key()))).thenReturn(newArrayList(file)); // // IssueDoc issueDto = IssueTesting.newDoc("ABCD", file).setRuleKey(rule.ruleKey().toString()); // issue = issueDto.toDefaultIssue(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/ServerIssueStorageTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/ServerIssueStorageTest.java index d5bd46f2867..a6ea52cbaf3 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/ServerIssueStorageTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/ServerIssueStorageTest.java @@ -60,7 +60,7 @@ public class ServerIssueStorageTest extends AbstractDaoTestCase { System2 system = mock(System2.class); when(system.now()).thenReturn(2000000000L); dbClient = new DbClient(getDatabase(), getMyBatis(), - new ComponentDao(system), + new ComponentDao(), new IssueDao(getMyBatis()), new ResourceDao(getMyBatis(), system)); session = dbClient.openSession(false); diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileDeleteActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileDeleteActionTest.java index 64045de0619..c7ac2685824 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileDeleteActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileDeleteActionTest.java @@ -73,7 +73,7 @@ public class QProfileDeleteActionTest { public void setUp() { dbTester.truncateTables(); qualityProfileDao = new QualityProfileDao(dbTester.myBatis(), mock(System2.class)); - componentDao = new ComponentDao(mock(System2.class)); + componentDao = new ComponentDao(); dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), qualityProfileDao, new ActiveRuleDao(qualityProfileDao, new RuleDao(system2), system2)); session = dbClient.openSession(false); diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileProjectsActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileProjectsActionTest.java index 865db5a8539..fd05411c6a0 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileProjectsActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileProjectsActionTest.java @@ -32,7 +32,11 @@ import org.sonar.core.persistence.DbSession; import org.sonar.core.persistence.DbTester; import org.sonar.core.qualityprofile.db.QualityProfileDao; import org.sonar.core.qualityprofile.db.QualityProfileDto; -import org.sonar.core.user.*; +import org.sonar.core.user.AuthorizationDao; +import org.sonar.core.user.GroupRoleDto; +import org.sonar.core.user.RoleDao; +import org.sonar.core.user.UserDto; +import org.sonar.core.user.UserRoleDto; import org.sonar.server.component.ComponentTesting; import org.sonar.server.component.db.ComponentDao; import org.sonar.server.db.DbClient; @@ -75,7 +79,7 @@ public class QProfileProjectsActionTest { dbTester.truncateTables(); dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), new QualityProfileDao(dbTester.myBatis(), system2), - new ComponentDao(system2), + new ComponentDao(), new AuthorizationDao(dbTester.myBatis())); roleDao = new RoleDao(); session = dbClient.openSession(false); diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileSearchActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileSearchActionTest.java index c19b2410481..4c13287ec35 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileSearchActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileSearchActionTest.java @@ -97,7 +97,7 @@ public class QProfileSearchActionTest { QualityProfileDto.createFor("my-sonar-way-xoo2-34567").setLanguage(xoo2.getKey()).setName("My Sonar way").setParentKee("sonar-way-xoo2-23456"), QualityProfileDto.createFor("sonar-way-other-666").setLanguage("other").setName("Sonar way").setDefault(true) ); - new ComponentDao(mock(System2.class)).insert(session, + new ComponentDao().insert(session, ComponentTesting.newProjectDto("project-uuid1"), ComponentTesting.newProjectDto("project-uuid2")); qualityProfileDao.insertProjectProfileAssociation("project-uuid1", "sonar-way-xoo2-23456", session); diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java index 4131fc8ab9f..41b630e3e8c 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java @@ -19,13 +19,10 @@ */ package org.sonar.server.source.ws; -import org.junit.Rule; -import org.sonar.api.utils.System2; -import org.sonar.server.source.db.FileSourceDao; - import org.junit.After; import org.junit.Before; import org.junit.ClassRule; +import org.junit.Rule; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; @@ -37,12 +34,13 @@ import org.sonar.server.component.db.ComponentDao; import org.sonar.server.db.DbClient; import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.NotFoundException; +import org.sonar.server.source.db.FileSourceDao; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.WsTester; import org.sonar.test.DbTests; + import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; @RunWith(MockitoJUnitRunner.class) @Category(DbTests.class) @@ -65,7 +63,7 @@ public class HashActionTest { db.truncateTables(); this.session = db.myBatis().openSession(false); - DbClient dbClient = new DbClient(db.database(), db.myBatis(), new FileSourceDao(db.myBatis()), new ComponentDao(mock(System2.class))); + DbClient dbClient = new DbClient(db.database(), db.myBatis(), new FileSourceDao(db.myBatis()), new ComponentDao()); tester = new WsTester(new SourcesWs(new HashAction(dbClient, userSessionRule))); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/IndexActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/IndexActionTest.java index e73ffc217cc..c1077e50e7f 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/IndexActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/IndexActionTest.java @@ -75,7 +75,7 @@ public class IndexActionTest { public void get_json() throws Exception { String fileKey = "src/Foo.java"; userSessionRule.addComponentPermission(UserRole.CODEVIEWER, "polop", fileKey); - when(componentDao.getByKey(session, fileKey)).thenReturn(file); + when(componentDao.selectByKey(session, fileKey)).thenReturn(file); when(sourceService.getLinesAsTxt(file.uuid(), 1, null)).thenReturn(newArrayList( "public class HelloWorld {", @@ -90,7 +90,7 @@ public class IndexActionTest { public void limit_range() throws Exception { String fileKey = "src/Foo.java"; userSessionRule.addComponentPermission(UserRole.CODEVIEWER, "polop", fileKey); - when(componentDao.getByKey(session, fileKey)).thenReturn(file); + when(componentDao.selectByKey(session, fileKey)).thenReturn(file); when(sourceService.getLinesAsTxt(file.uuid(), 1, 2)).thenReturn(newArrayList( "public class HelloWorld {", @@ -111,7 +111,7 @@ public class IndexActionTest { public void close_db_session() throws Exception { String fileKey = "src/Foo.java"; userSessionRule.addComponentPermission(UserRole.CODEVIEWER, "polop", fileKey); - when(componentDao.getByKey(session, fileKey)).thenThrow(new NotFoundException()); + when(componentDao.selectByKey(session, fileKey)).thenThrow(new NotFoundException()); WsTester.TestRequest request = tester.newGetRequest("api/sources", "index").setParam("resource", fileKey); try { diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/LinesActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/LinesActionTest.java index 462264000ab..c34c04c5812 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/LinesActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/LinesActionTest.java @@ -21,14 +21,12 @@ package org.sonar.server.source.ws; import com.google.common.collect.ImmutableList; -import java.util.Date; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonar.api.config.Settings; -import org.sonar.api.utils.System2; import org.sonar.api.web.UserRole; import org.sonar.core.component.ComponentDto; import org.sonar.core.persistence.DbSession; @@ -46,10 +44,11 @@ import org.sonar.server.source.index.SourceLineIndexDefinition; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.WsTester; +import java.util.Date; + import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown; import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; public class LinesActionTest { @@ -81,7 +80,7 @@ public class LinesActionTest { htmlSourceDecorator = new HtmlSourceDecorator(); sourceLineIndex = new SourceLineIndex(esTester.client()); - componentDao = new ComponentDao(mock(System2.class)); + componentDao = new ComponentDao(); DbClient dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), componentDao); session = dbClient.openSession(false); wsTester = new WsTester(new SourcesWs(new LinesAction(dbClient, sourceLineIndex, htmlSourceDecorator, userSessionRule))); @@ -203,7 +202,7 @@ public class LinesActionTest { .setItCoveredConditions(null) .setDuplications(null) .setUpdateDate(new Date()) - ); + ); WsTester.TestRequest request = wsTester .newGetRequest("api/sources", "lines") @@ -236,7 +235,7 @@ public class LinesActionTest { .setItCoveredConditions(null) .setDuplications(null) .setUpdateDate(new Date()) - ); + ); userSessionRule.login("login").addProjectUuidPermissions(UserRole.CODEVIEWER, PROJECT_UUID); @@ -269,7 +268,7 @@ public class LinesActionTest { .execute(); } - private void newFile(){ + private void newFile() { ComponentDto project = ComponentTesting.newProjectDto(PROJECT_UUID); ComponentDto file = ComponentTesting.newFileDto(project, FILE_UUID).setKey(FILE_KEY); componentDao.insert(session, project, file); diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/RawActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/RawActionTest.java index 6b53c32faa4..a3a3e914303 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/RawActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/RawActionTest.java @@ -74,7 +74,7 @@ public class RawActionTest { public void get_txt() throws Exception { String fileKey = "src/Foo.java"; userSessionRule.addComponentPermission(UserRole.CODEVIEWER, "polop", fileKey); - when(componentDao.getByKey(session, fileKey)).thenReturn(file); + when(componentDao.selectByKey(session, fileKey)).thenReturn(file); when(sourceService.getLinesAsTxt(file.uuid(), null, null)).thenReturn(newArrayList( "public class HelloWorld {", diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/ScmActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/ScmActionTest.java index 74fae06142c..345547dc3b7 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/ScmActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/ScmActionTest.java @@ -20,7 +20,6 @@ package org.sonar.server.source.ws; -import java.util.Date; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; @@ -28,7 +27,6 @@ import org.junit.Rule; import org.junit.Test; import org.sonar.api.config.Settings; import org.sonar.api.utils.DateUtils; -import org.sonar.api.utils.System2; import org.sonar.api.web.UserRole; import org.sonar.core.component.ComponentDto; import org.sonar.core.persistence.DbSession; @@ -44,7 +42,7 @@ import org.sonar.server.source.index.SourceLineIndexDefinition; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.WsTester; -import static org.mockito.Mockito.mock; +import java.util.Date; public class ScmActionTest { @@ -69,7 +67,7 @@ public class ScmActionTest { public void setUp() { dbTester.truncateTables(); esTester.truncateIndices(); - dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), new ComponentDao(mock(System2.class))); + dbClient = new DbClient(dbTester.database(), dbTester.myBatis(), new ComponentDao()); session = dbClient.openSession(false); tester = new WsTester(new SourcesWs(new ScmAction(dbClient, new SourceLineIndex(esTester.client()), userSessionRule))); diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/ShowActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/ShowActionTest.java index f8647337c60..edbaceb1367 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/ShowActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/ShowActionTest.java @@ -75,7 +75,7 @@ public class ShowActionTest { public void show_source() throws Exception { String fileKey = "src/Foo.java"; userSessionRule.addComponentPermission(UserRole.CODEVIEWER, "polop", fileKey); - when(componentDao.getByKey(session, fileKey)).thenReturn(file); + when(componentDao.selectByKey(session, fileKey)).thenReturn(file); when(sourceService.getLinesAsHtml(eq(file.uuid()), anyInt(), anyInt())).thenReturn(newArrayList( "/*", " * Header", @@ -93,7 +93,7 @@ public class ShowActionTest { public void show_source_with_from_and_to_params() throws Exception { String fileKey = "src/Foo.java"; userSessionRule.addComponentPermission(UserRole.CODEVIEWER, "polop", fileKey); - when(componentDao.getByKey(session, fileKey)).thenReturn(file); + when(componentDao.selectByKey(session, fileKey)).thenReturn(file); when(sourceService.getLinesAsHtml(file.uuid(), 3, 5)).thenReturn(newArrayList( " */", "", @@ -111,7 +111,7 @@ public class ShowActionTest { public void show_source_accept_from_less_than_one() throws Exception { String fileKey = "src/Foo.java"; userSessionRule.addComponentPermission(UserRole.CODEVIEWER, "polop", fileKey); - when(componentDao.getByKey(session, fileKey)).thenReturn(file); + when(componentDao.selectByKey(session, fileKey)).thenReturn(file); when(sourceService.getLinesAsHtml(file.uuid(), 1, 5)).thenReturn(newArrayList( " */", "", diff --git a/server/sonar-server/src/test/java/org/sonar/server/test/ws/TestsListActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/test/ws/TestsListActionTest.java index d6901eaccb7..a73dad722af 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/test/ws/TestsListActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/test/ws/TestsListActionTest.java @@ -20,15 +20,12 @@ package org.sonar.server.test.ws; -import java.util.Arrays; -import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import org.sonar.api.config.Settings; -import org.sonar.api.utils.System2; import org.sonar.api.web.UserRole; import org.sonar.core.component.ComponentDto; import org.sonar.core.persistence.DbSession; @@ -44,7 +41,8 @@ import org.sonar.server.test.index.TestIndexDefinition; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.WsTester; -import static org.mockito.Mockito.mock; +import java.util.Arrays; +import java.util.List; public class TestsListActionTest { DbClient dbClient; @@ -62,7 +60,7 @@ public class TestsListActionTest { @Before public void setUp() { - dbClient = new DbClient(db.database(), db.myBatis(), new ComponentDao(mock(System2.class))); + dbClient = new DbClient(db.database(), db.myBatis(), new ComponentDao()); dbSession = dbClient.openSession(false); db.truncateTables(); es.truncateIndices(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentNavigationActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentNavigationActionTest.java index 00d5ab1c7a1..25b1b864cfe 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentNavigationActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentNavigationActionTest.java @@ -19,8 +19,6 @@ */ package org.sonar.server.ui.ws; -import java.util.Date; -import java.util.Locale; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; @@ -64,6 +62,9 @@ import org.sonar.server.ui.Views; import org.sonar.server.user.db.UserDao; import org.sonar.server.ws.WsTester; +import java.util.Date; +import java.util.Locale; + import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -101,7 +102,7 @@ public class ComponentNavigationActionTest { activeDashboardDao = new ActiveDashboardDao(dbTester.myBatis()); dbClient = new DbClient( dbTester.database(), dbTester.myBatis(), userDao, dashboardDao, activeDashboardDao, - new ComponentDao(system), new SnapshotDao(system), new PropertiesDao(dbTester.myBatis()), + new ComponentDao(), new SnapshotDao(system), new PropertiesDao(dbTester.myBatis()), new MeasureDao()); i18n = mock(I18n.class); @@ -163,8 +164,9 @@ public class ComponentNavigationActionTest { @Test public void no_snapshot_connected_user_and_favorite() throws Exception { int userId = 42; - ComponentDto project = dbClient.componentDao().insert(session, ComponentTesting.newProjectDto("abcd") - .setKey("polop").setName("Polop")); + ComponentDto project = ComponentTesting.newProjectDto("abcd") + .setKey("polop").setName("Polop"); + dbClient.componentDao().insert(session, project); dbClient.propertiesDao().setProperty(new PropertyDto().setKey("favourite").setResourceId(project.getId()).setUserId((long) userId), session); session.commit(); @@ -181,8 +183,9 @@ public class ComponentNavigationActionTest { Date snapshotDate = DateUtils.parseDateTime("2015-04-22T11:44:00+0200"); int userId = 42; - ComponentDto project = dbClient.componentDao().insert(session, ComponentTesting.newProjectDto("abcd") - .setKey("polop").setName("Polop")); + ComponentDto project = ComponentTesting.newProjectDto("abcd") + .setKey("polop").setName("Polop"); + dbClient.componentDao().insert(session, project); dbClient.snapshotDao().insert(session, new SnapshotDto().setCreatedAt(snapshotDate.getTime()).setVersion("3.14") .setLast(true).setQualifier(project.qualifier()).setResourceId(project.getId()).setRootProjectId(project.getId()).setScope(project.scope())); session.commit(); @@ -231,8 +234,9 @@ public class ComponentNavigationActionTest { @Test public void with_extensions() throws Exception { - ComponentDto project = dbClient.componentDao().insert(session, ComponentTesting.newProjectDto("abcd") - .setKey("polop").setName("Polop").setLanguage("xoo")); + ComponentDto project = ComponentTesting.newProjectDto("abcd") + .setKey("polop").setName("Polop").setLanguage("xoo"); + dbClient.componentDao().insert(session, project); dbClient.snapshotDao().insert(session, new SnapshotDto() .setLast(true).setQualifier(project.qualifier()).setResourceId(project.getId()).setRootProjectId(project.getId()).setScope(project.scope())); session.commit(); @@ -249,8 +253,9 @@ public class ComponentNavigationActionTest { @Test public void admin_with_extensions() throws Exception { - ComponentDto project = dbClient.componentDao().insert(session, ComponentTesting.newProjectDto("abcd") - .setKey("polop").setName("Polop").setLanguage("xoo")); + ComponentDto project = ComponentTesting.newProjectDto("abcd") + .setKey("polop").setName("Polop").setLanguage("xoo"); + dbClient.componentDao().insert(session, project); dbClient.snapshotDao().insert(session, new SnapshotDto() .setLast(true).setQualifier(project.qualifier()).setResourceId(project.getId()).setRootProjectId(project.getId()).setScope(project.scope())); session.commit(); diff --git a/server/sonar-server/src/test/java/org/sonar/server/view/index/ViewIndexerTest.java b/server/sonar-server/src/test/java/org/sonar/server/view/index/ViewIndexerTest.java index ccd5484e713..21db4db9539 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/view/index/ViewIndexerTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/view/index/ViewIndexerTest.java @@ -27,7 +27,6 @@ import org.junit.ClassRule; import org.junit.Test; import org.junit.experimental.categories.Category; import org.sonar.api.config.Settings; -import org.sonar.api.utils.System2; import org.sonar.core.persistence.DbTester; import org.sonar.server.component.db.ComponentDao; import org.sonar.server.db.DbClient; @@ -39,7 +38,6 @@ import java.util.Map; import static com.google.common.collect.Lists.newArrayList; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; @Category(DbTests.class) public class ViewIndexerTest { @@ -56,7 +54,7 @@ public class ViewIndexerTest { public void setUp() { dbTester.truncateTables(); esTester.truncateIndices(); - indexer = new ViewIndexer(new DbClient(dbTester.database(), dbTester.myBatis(), new ComponentDao(mock(System2.class))), esTester.client()); + indexer = new ViewIndexer(new DbClient(dbTester.database(), dbTester.myBatis(), new ComponentDao()), esTester.client()); indexer.setEnabled(true); } diff --git a/sonar-core/src/main/java/org/sonar/core/component/ComponentDto.java b/sonar-core/src/main/java/org/sonar/core/component/ComponentDto.java index b528ac47aec..5c934b98490 100644 --- a/sonar-core/src/main/java/org/sonar/core/component/ComponentDto.java +++ b/sonar-core/src/main/java/org/sonar/core/component/ComponentDto.java @@ -22,14 +22,13 @@ package org.sonar.core.component; import org.apache.commons.lang.builder.ToStringBuilder; import org.sonar.api.component.Component; import org.sonar.api.resources.Scopes; -import org.sonar.core.persistence.Dto; import javax.annotation.CheckForNull; import javax.annotation.Nullable; import java.util.Date; -public class ComponentDto extends Dto implements Component { +public class ComponentDto implements Component { public static final String MODULE_UUID_PATH_SEP = "."; @@ -51,6 +50,8 @@ public class ComponentDto extends Dto implements Component { private String longName; private String language; private boolean enabled = true; + + private Date createdAt; private Long authorizationUpdatedAt; public Long getId() { @@ -212,6 +213,15 @@ public class ComponentDto extends Dto implements Component { return this; } + public Date getCreatedAt() { + return createdAt; + } + + public ComponentDto setCreatedAt(Date datetime) { + this.createdAt = datetime; + return this; + } + /** * Only available on projects */ @@ -225,7 +235,6 @@ public class ComponentDto extends Dto implements Component { return this; } - @Override public String getKey() { return key(); } @@ -284,15 +293,4 @@ public class ComponentDto extends Dto implements Component { .toString(); } - @Override - public ComponentDto setCreatedAt(Date datetime) { - super.setCreatedAt(datetime); - return this; - } - - @Override - public ComponentDto setUpdatedAt(Date datetime) { - super.setUpdatedAt(datetime); - return this; - } } diff --git a/sonar-core/src/main/java/org/sonar/core/component/db/ComponentMapper.java b/sonar-core/src/main/java/org/sonar/core/component/db/ComponentMapper.java index aa3960c8747..c1ecdb4d362 100644 --- a/sonar-core/src/main/java/org/sonar/core/component/db/ComponentMapper.java +++ b/sonar-core/src/main/java/org/sonar/core/component/db/ComponentMapper.java @@ -102,8 +102,6 @@ public interface ComponentMapper { void insert(ComponentDto rule); - void deleteByKey(String key); - List selectProvisionedProjects(Map parameters, RowBounds rowBounds); int countProvisionedProjects(Map parameters); diff --git a/sonar-core/src/main/resources/org/sonar/core/component/db/ComponentMapper.xml b/sonar-core/src/main/resources/org/sonar/core/component/db/ComponentMapper.xml index 92d5d1180dc..534029637de 100644 --- a/sonar-core/src/main/resources/org/sonar/core/component/db/ComponentMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/component/db/ComponentMapper.xml @@ -223,10 +223,6 @@ #{language}, #{parentProjectId}, #{path}, #{copyResourceId}, #{enabled}, #{createdAt}, #{authorizationUpdatedAt}) - - delete from projects where kee=#{key} - -