From 7b3ad7add7024fe93d6edba23aa0a89be88cdcf7 Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Mon, 17 Oct 2016 15:01:38 +0200 Subject: [PATCH] SONAR-8227 Move org.sonar.server.issue.index.IssueAuthorizationIndexer to org.sonar.server.permission.index.AuthorizationIndexer This indexer will also be used to feed the authorization type of projectmeasures index --- .../container/ComputeEngineContainerImpl.java | 4 +-- .../component/ComponentCleanerService.java | 6 ++-- .../step/ApplyPermissionsStep.java | 8 ++--- .../sonar/server/es/IndexerStartupTask.java | 12 ++++---- .../server/permission/PermissionService.java | 8 ++--- .../server/permission/PermissionUpdater.java | 6 ++-- .../index/AuthorizationDao.java} | 6 ++-- .../index/AuthorizationIndexer.java} | 30 +++++++++---------- .../platformlevel/PlatformLevel4.java | 4 +-- .../sonar/server/batch/IssuesActionTest.java | 10 +++---- .../ComponentCleanerServiceTest.java | 4 +-- .../step/ApplyPermissionsStepTest.java | 6 ++-- .../issue/index/IssueIndexDebtTest.java | 8 +++-- .../server/issue/index/IssueIndexTest.java | 8 +++-- .../index/AuthorizationDaoTest.java} | 24 +++++++-------- .../index/AuthorizationIndexerTest.java} | 21 ++++++------- .../permission/ws/BasePermissionWsTest.java | 4 +-- .../ws/template/ApplyTemplateActionTest.java | 4 +-- .../template/BulkApplyTemplateActionTest.java | 4 +-- .../project/ws/BulkDeleteActionTest.java | 4 +-- .../server/project/ws/DeleteActionTest.java | 4 +-- .../server/view/index/ViewIndexerTest.java | 4 +-- .../no_authorization.xml | 0 .../index/AuthorizationDaoTest}/shared.xml | 0 .../index/AuthorizationIndexerTest}/index.xml | 0 25 files changed, 97 insertions(+), 92 deletions(-) rename server/sonar-server/src/main/java/org/sonar/server/{issue/index/IssueAuthorizationDao.java => permission/index/AuthorizationDao.java} (97%) rename server/sonar-server/src/main/java/org/sonar/server/{issue/index/IssueAuthorizationIndexer.java => permission/index/AuthorizationIndexer.java} (81%) rename server/sonar-server/src/test/java/org/sonar/server/{issue/index/IssueAuthorizationDaoTest.java => permission/index/AuthorizationDaoTest.java} (71%) rename server/sonar-server/src/test/java/org/sonar/server/{issue/index/IssueAuthorizationIndexerTest.java => permission/index/AuthorizationIndexerTest.java} (81%) rename server/sonar-server/src/test/resources/org/sonar/server/{issue/index/IssueAuthorizationDaoTest => permission/index/AuthorizationDaoTest}/no_authorization.xml (100%) rename server/sonar-server/src/test/resources/org/sonar/server/{issue/index/IssueAuthorizationDaoTest => permission/index/AuthorizationDaoTest}/shared.xml (100%) rename server/sonar-server/src/test/resources/org/sonar/server/{issue/index/IssueAuthorizationIndexerTest => permission/index/AuthorizationIndexerTest}/index.xml (100%) diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java index 6dbda3f2f73..32dc0e95471 100644 --- a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java +++ b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java @@ -75,7 +75,6 @@ import org.sonar.server.debt.DebtModelPluginRepository; import org.sonar.server.debt.DebtRulesXMLImporter; import org.sonar.server.event.NewAlerts; import org.sonar.server.issue.IssueUpdater; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; import org.sonar.server.issue.index.IssueIndex; import org.sonar.server.issue.index.IssueIndexer; import org.sonar.server.issue.notification.ChangesOnMyIssueNotificationDispatcher; @@ -100,6 +99,7 @@ import org.sonar.server.permission.GroupPermissionChanger; import org.sonar.server.permission.PermissionService; import org.sonar.server.permission.PermissionUpdater; import org.sonar.server.permission.UserPermissionChanger; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.platform.DatabaseServerCompatibility; import org.sonar.server.platform.DefaultServerUpgradeStatus; import org.sonar.server.platform.ServerFileSystemImpl; @@ -340,7 +340,7 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer { // issues IssueIndexer.class, - IssueAuthorizationIndexer.class, + AuthorizationIndexer.class, IssueUpdater.class, // used in Web Services and CE's DebtCalculator FunctionExecutor.class, // used by IssueWorkflow IssueWorkflow.class, // used in Web Services and CE's DebtCalculator 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 2ad193b9ccf..1aae37b7b74 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 @@ -29,8 +29,8 @@ import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.MyBatis; import org.sonar.db.component.ComponentDto; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; import org.sonar.server.issue.index.IssueIndexer; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.component.es.ProjectMeasuresIndexer; import org.sonar.server.test.index.TestIndexer; @@ -39,14 +39,14 @@ import org.sonar.server.test.index.TestIndexer; public class ComponentCleanerService { private final DbClient dbClient; - private final IssueAuthorizationIndexer issueAuthorizationIndexer; + private final AuthorizationIndexer issueAuthorizationIndexer; private final IssueIndexer issueIndexer; private final TestIndexer testIndexer; private final ProjectMeasuresIndexer projectMeasuresIndexer; private final ResourceTypes resourceTypes; private final ComponentFinder componentFinder; - public ComponentCleanerService(DbClient dbClient, IssueAuthorizationIndexer issueAuthorizationIndexer, IssueIndexer issueIndexer, + public ComponentCleanerService(DbClient dbClient, AuthorizationIndexer issueAuthorizationIndexer, IssueIndexer issueIndexer, TestIndexer testIndexer, ProjectMeasuresIndexer projectMeasuresIndexer, ResourceTypes resourceTypes, ComponentFinder componentFinder) { this.dbClient = dbClient; this.issueAuthorizationIndexer = issueAuthorizationIndexer; diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStep.java index f3229145c81..ab411e4a5ac 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStep.java @@ -29,7 +29,7 @@ import org.sonar.server.computation.task.projectanalysis.component.DepthTraversa import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolder; import org.sonar.server.computation.task.projectanalysis.component.TypeAwareVisitorAdapter; import org.sonar.server.computation.task.step.ComputationStep; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; +import org.sonar.server.permission.index.AuthorizationIndexer; import static org.sonar.server.computation.task.projectanalysis.component.Component.Type.PROJECT; import static org.sonar.server.computation.task.projectanalysis.component.Component.Type.VIEW; @@ -42,12 +42,12 @@ public class ApplyPermissionsStep implements ComputationStep { private final DbClient dbClient; private final DbIdsRepository dbIdsRepository; - private final IssueAuthorizationIndexer indexer; + private final AuthorizationIndexer indexer; private final PermissionRepository permissionRepository; private final TreeRootHolder treeRootHolder; - public ApplyPermissionsStep(DbClient dbClient, DbIdsRepository dbIdsRepository, IssueAuthorizationIndexer indexer, PermissionRepository permissionRepository, - TreeRootHolder treeRootHolder) { + public ApplyPermissionsStep(DbClient dbClient, DbIdsRepository dbIdsRepository, AuthorizationIndexer indexer, PermissionRepository permissionRepository, + TreeRootHolder treeRootHolder) { this.dbClient = dbClient; this.dbIdsRepository = dbIdsRepository; this.indexer = indexer; diff --git a/server/sonar-server/src/main/java/org/sonar/server/es/IndexerStartupTask.java b/server/sonar-server/src/main/java/org/sonar/server/es/IndexerStartupTask.java index 4285b9b6128..a6e473bbea4 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/es/IndexerStartupTask.java +++ b/server/sonar-server/src/main/java/org/sonar/server/es/IndexerStartupTask.java @@ -22,8 +22,8 @@ package org.sonar.server.es; import org.sonar.api.config.Settings; import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Loggers; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; import org.sonar.server.issue.index.IssueIndexer; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.component.es.ProjectMeasuresIndexer; import org.sonar.server.test.index.TestIndexer; import org.sonar.server.user.index.UserIndexer; @@ -34,7 +34,7 @@ public class IndexerStartupTask { private static final Logger LOG = Loggers.get(IndexerStartupTask.class); private final TestIndexer testIndexer; - private final IssueAuthorizationIndexer issueAuthorizationIndexer; + private final AuthorizationIndexer issueAuthorizationIndexer; private final IssueIndexer issueIndexer; private final UserIndexer userIndexer; private final ViewIndexer viewIndexer; @@ -43,12 +43,12 @@ public class IndexerStartupTask { /** * Limitation - {@link org.sonar.server.es.BaseIndexer} are not injected through an array or a collection - * because we need {@link org.sonar.server.issue.index.IssueAuthorizationIndexer} to be executed before + * because we need {@link AuthorizationIndexer} to be executed before * {@link org.sonar.server.issue.index.IssueIndexer} */ - public IndexerStartupTask(TestIndexer testIndexer, IssueAuthorizationIndexer issueAuthorizationIndexer, IssueIndexer issueIndexer, - UserIndexer userIndexer, ViewIndexer viewIndexer, ProjectMeasuresIndexer projectMeasuresIndexer, - Settings settings) { + public IndexerStartupTask(TestIndexer testIndexer, AuthorizationIndexer issueAuthorizationIndexer, IssueIndexer issueIndexer, + UserIndexer userIndexer, ViewIndexer viewIndexer, ProjectMeasuresIndexer projectMeasuresIndexer, + Settings settings) { this.testIndexer = testIndexer; this.issueAuthorizationIndexer = issueAuthorizationIndexer; this.issueIndexer = issueIndexer; diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/PermissionService.java b/server/sonar-server/src/main/java/org/sonar/server/permission/PermissionService.java index 3ad1b779073..df1d9d3037c 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/PermissionService.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/PermissionService.java @@ -33,7 +33,7 @@ import org.sonar.db.component.ResourceDto; import org.sonar.db.permission.PermissionRepository; import org.sonar.db.permission.template.PermissionTemplateDto; import org.sonar.server.component.ComponentFinder; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.user.UserSession; import static org.sonar.server.permission.PermissionPrivilegeChecker.checkProjectAdminUserByComponentKey; @@ -43,12 +43,12 @@ public class PermissionService { private final DbClient dbClient; private final PermissionRepository permissionRepository; - private final IssueAuthorizationIndexer issueAuthorizationIndexer; + private final AuthorizationIndexer issueAuthorizationIndexer; private final UserSession userSession; private final ComponentFinder componentFinder; - public PermissionService(DbClient dbClient, PermissionRepository permissionRepository, IssueAuthorizationIndexer issueAuthorizationIndexer, UserSession userSession, - ComponentFinder componentFinder) { + public PermissionService(DbClient dbClient, PermissionRepository permissionRepository, AuthorizationIndexer issueAuthorizationIndexer, UserSession userSession, + ComponentFinder componentFinder) { this.dbClient = dbClient; this.permissionRepository = permissionRepository; this.issueAuthorizationIndexer = issueAuthorizationIndexer; diff --git a/server/sonar-server/src/main/java/org/sonar/server/permission/PermissionUpdater.java b/server/sonar-server/src/main/java/org/sonar/server/permission/PermissionUpdater.java index 78d9cdbf733..07403ad42e0 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/permission/PermissionUpdater.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/PermissionUpdater.java @@ -25,7 +25,7 @@ import java.util.Optional; import java.util.Set; import org.sonar.db.DbClient; import org.sonar.db.DbSession; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; +import org.sonar.server.permission.index.AuthorizationIndexer; /** * Add or remove global/project permissions to a group. This class @@ -35,11 +35,11 @@ import org.sonar.server.issue.index.IssueAuthorizationIndexer; public class PermissionUpdater { private final DbClient dbClient; - private final IssueAuthorizationIndexer issueAuthorizationIndexer; + private final AuthorizationIndexer issueAuthorizationIndexer; private final UserPermissionChanger userPermissionChanger; private final GroupPermissionChanger groupPermissionChanger; - public PermissionUpdater(DbClient dbClient, IssueAuthorizationIndexer issueAuthorizationIndexer, + public PermissionUpdater(DbClient dbClient, AuthorizationIndexer issueAuthorizationIndexer, UserPermissionChanger userPermissionChanger, GroupPermissionChanger groupPermissionChanger) { this.dbClient = dbClient; this.issueAuthorizationIndexer = issueAuthorizationIndexer; diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueAuthorizationDao.java b/server/sonar-server/src/main/java/org/sonar/server/permission/index/AuthorizationDao.java similarity index 97% rename from server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueAuthorizationDao.java rename to server/sonar-server/src/main/java/org/sonar/server/permission/index/AuthorizationDao.java index fb82b3d86f5..066a9f2f542 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueAuthorizationDao.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/index/AuthorizationDao.java @@ -17,7 +17,7 @@ * 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.index; +package org.sonar.server.permission.index; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -35,7 +35,7 @@ import org.sonar.db.DbSession; /** * No streaming because of union of joins -> no need to use ResultSetIterator */ -public class IssueAuthorizationDao { +public class AuthorizationDao { public static final class Dto { private final String projectUuid; @@ -162,7 +162,7 @@ public class IssueAuthorizationDao { DbUtils.closeQuietly(stmt); } } catch (SQLException e) { - throw new IllegalStateException("Fail to select issue authorizations after date: " + afterDate, e); + throw new IllegalStateException("Fail to select authorizations after date: " + afterDate, e); } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueAuthorizationIndexer.java b/server/sonar-server/src/main/java/org/sonar/server/permission/index/AuthorizationIndexer.java similarity index 81% rename from server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueAuthorizationIndexer.java rename to server/sonar-server/src/main/java/org/sonar/server/permission/index/AuthorizationIndexer.java index 71568f2e578..83a0870d609 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueAuthorizationIndexer.java +++ b/server/sonar-server/src/main/java/org/sonar/server/permission/index/AuthorizationIndexer.java @@ -17,21 +17,21 @@ * 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.index; +package org.sonar.server.permission.index; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableMap; +import java.util.Collection; +import java.util.Date; +import java.util.Map; import org.elasticsearch.action.ActionRequest; import org.elasticsearch.action.update.UpdateRequest; -import org.sonar.db.DbSession; import org.sonar.db.DbClient; +import org.sonar.db.DbSession; import org.sonar.server.es.BaseIndexer; import org.sonar.server.es.BulkIndexer; import org.sonar.server.es.EsClient; - -import java.util.Collection; -import java.util.Date; -import java.util.Map; +import org.sonar.server.issue.index.IssueIndexDefinition; /** * Manages the synchronization of index issues/authorization with authorization settings defined in database : @@ -40,11 +40,11 @@ import java.util.Map; *
  • delete project orphans from index
  • * */ -public class IssueAuthorizationIndexer extends BaseIndexer { +public class AuthorizationIndexer extends BaseIndexer { private final DbClient dbClient; - public IssueAuthorizationIndexer(DbClient dbClient, EsClient esClient) { + public AuthorizationIndexer(DbClient dbClient, EsClient esClient) { super(esClient, 0L, IssueIndexDefinition.INDEX, IssueIndexDefinition.TYPE_AUTHORIZATION, IssueIndexDefinition.FIELD_ISSUE_TECHNICAL_UPDATED_AT); this.dbClient = dbClient; } @@ -56,23 +56,23 @@ public class IssueAuthorizationIndexer extends BaseIndexer { // will impact the type "issue" which is much bigger than issueAuthorization BulkIndexer bulk = new BulkIndexer(esClient, IssueIndexDefinition.INDEX); - IssueAuthorizationDao dao = new IssueAuthorizationDao(); - Collection authorizations = dao.selectAfterDate(dbClient, dbSession, lastUpdatedAt); + AuthorizationDao dao = new AuthorizationDao(); + Collection authorizations = dao.selectAfterDate(dbClient, dbSession, lastUpdatedAt); return doIndex(bulk, authorizations); } } @VisibleForTesting - public void index(Collection authorizations) { + public void index(Collection authorizations) { final BulkIndexer bulk = new BulkIndexer(esClient, IssueIndexDefinition.INDEX); doIndex(bulk, authorizations); } - private long doIndex(BulkIndexer bulk, Collection authorizations) { + private long doIndex(BulkIndexer bulk, Collection authorizations) { long maxDate = 0L; bulk.start(); - for (IssueAuthorizationDao.Dto authorization : authorizations) { - bulk.add(newUpdateRequest(authorization)); + for (AuthorizationDao.Dto authorization : authorizations) { + bulk.add(newIssueUpdateRequest(authorization)); maxDate = Math.max(maxDate, authorization.getUpdatedAt()); } bulk.stop(); @@ -87,7 +87,7 @@ public class IssueAuthorizationIndexer extends BaseIndexer { .get(); } - private static ActionRequest newUpdateRequest(IssueAuthorizationDao.Dto dto) { + private static ActionRequest newIssueUpdateRequest(AuthorizationDao.Dto dto) { Map doc = ImmutableMap.of( IssueIndexDefinition.FIELD_AUTHORIZATION_PROJECT_UUID, dto.getProjectUuid(), IssueIndexDefinition.FIELD_AUTHORIZATION_GROUPS, dto.getGroups(), diff --git a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java index 134897cf411..1e25081156a 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java +++ b/server/sonar-server/src/main/java/org/sonar/server/platform/platformlevel/PlatformLevel4.java @@ -102,7 +102,6 @@ import org.sonar.server.issue.SetSeverityAction; import org.sonar.server.issue.SetTypeAction; import org.sonar.server.issue.TransitionAction; import org.sonar.server.issue.filter.IssueFilterWsModule; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; import org.sonar.server.issue.index.IssueIndexDefinition; import org.sonar.server.issue.index.IssueIndexer; import org.sonar.server.issue.notification.ChangesOnMyIssueNotificationDispatcher; @@ -140,6 +139,7 @@ import org.sonar.server.permission.GroupPermissionChanger; import org.sonar.server.permission.PermissionService; import org.sonar.server.permission.PermissionUpdater; import org.sonar.server.permission.UserPermissionChanger; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.permission.ws.PermissionsWsModule; import org.sonar.server.platform.BackendCleanup; import org.sonar.server.platform.PersistentSettings; @@ -457,7 +457,7 @@ public class PlatformLevel4 extends PlatformLevel { // issues IssueIndexDefinition.class, IssueIndexer.class, - IssueAuthorizationIndexer.class, + AuthorizationIndexer.class, ServerIssueStorage.class, IssueUpdater.class, FunctionExecutor.class, 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 69194e8f216..62190745f3a 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 @@ -39,12 +39,12 @@ import org.sonar.server.component.ComponentFinder; import org.sonar.server.es.EsTester; import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.issue.IssueTesting; -import org.sonar.server.issue.index.IssueAuthorizationDao; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; import org.sonar.server.issue.index.IssueDoc; import org.sonar.server.issue.index.IssueIndex; import org.sonar.server.issue.index.IssueIndexDefinition; import org.sonar.server.issue.index.IssueIndexer; +import org.sonar.server.permission.index.AuthorizationDao; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.platform.ServerFileSystem; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.ws.WsTester; @@ -78,7 +78,7 @@ public class IssuesActionTest { private IssueIndex issueIndex; private IssueIndexer issueIndexer; - private IssueAuthorizationIndexer issueAuthorizationIndexer; + private AuthorizationIndexer issueAuthorizationIndexer; private ServerFileSystem fs = mock(ServerFileSystem.class); WsTester tester; @@ -89,7 +89,7 @@ public class IssuesActionTest { public void before() { issueIndex = new IssueIndex(es.client(), System2.INSTANCE, userSessionRule); issueIndexer = new IssueIndexer(null, es.client()); - issueAuthorizationIndexer = new IssueAuthorizationIndexer(null, es.client()); + issueAuthorizationIndexer = new AuthorizationIndexer(null, es.client()); issuesAction = new IssuesAction(db.getDbClient(), issueIndex, userSessionRule, new ComponentFinder(db.getDbClient())); tester = new WsTester(new BatchWs(new BatchIndex(fs), issuesAction)); @@ -329,7 +329,7 @@ public class IssuesActionTest { } private void addIssueAuthorization(String projectUuid, @Nullable String group, @Nullable String user) { - issueAuthorizationIndexer.index(newArrayList(new IssueAuthorizationDao.Dto(projectUuid, 1).addGroup(group).addUser(user))); + issueAuthorizationIndexer.index(newArrayList(new AuthorizationDao.Dto(projectUuid, 1).addGroup(group).addUser(user))); } private void addBrowsePermissionOnComponent(String componentKey) { diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/ComponentCleanerServiceTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/ComponentCleanerServiceTest.java index b534beadc48..11238b7e0ea 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/ComponentCleanerServiceTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/ComponentCleanerServiceTest.java @@ -42,9 +42,9 @@ import org.sonar.server.es.EsTester; import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.issue.IssueTesting; import org.sonar.server.issue.index.IssueAuthorizationDoc; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; import org.sonar.server.issue.index.IssueIndexDefinition; import org.sonar.server.issue.index.IssueIndexer; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.component.es.ProjectMeasuresIndexDefinition; import org.sonar.server.component.es.ProjectMeasuresIndexer; import org.sonar.server.test.index.TestDoc; @@ -78,7 +78,7 @@ public class ComponentCleanerServiceTest { DbClient dbClient = db.getDbClient(); DbSession dbSession = db.getSession(); - IssueAuthorizationIndexer issueAuthorizationIndexer = new IssueAuthorizationIndexer(dbClient, es.client()); + AuthorizationIndexer issueAuthorizationIndexer = new AuthorizationIndexer(dbClient, es.client()); IssueIndexer issueIndexer = new IssueIndexer(dbClient, es.client()); TestIndexer testIndexer = new TestIndexer(dbClient, es.client()); ProjectMeasuresIndexer projectMeasuresIndexer = new ProjectMeasuresIndexer(dbClient, es.client()); diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStepTest.java index 91f7679d3e0..0ae9354a80c 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/step/ApplyPermissionsStepTest.java @@ -45,8 +45,8 @@ import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolde import org.sonar.server.computation.task.projectanalysis.component.ViewsComponent; import org.sonar.server.computation.task.step.ComputationStep; import org.sonar.server.es.EsTester; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; import org.sonar.server.issue.index.IssueIndexDefinition; +import org.sonar.server.permission.index.AuthorizationIndexer; import static org.assertj.core.api.Assertions.assertThat; import static org.sonar.db.component.ComponentTesting.newView; @@ -76,14 +76,14 @@ public class ApplyPermissionsStepTest extends BaseStepTest { private DbSession dbSession; private DbClient dbClient = dbTester.getDbClient(); private Settings settings = new MapSettings(); - private IssueAuthorizationIndexer issueAuthorizationIndexer; + private AuthorizationIndexer issueAuthorizationIndexer; private ApplyPermissionsStep step; @Before public void setUp() { dbSession = dbClient.openSession(false); - issueAuthorizationIndexer = new IssueAuthorizationIndexer(dbClient, esTester.client()); + issueAuthorizationIndexer = new AuthorizationIndexer(dbClient, esTester.client()); step = new ApplyPermissionsStep(dbClient, dbIdsRepository, issueAuthorizationIndexer, new PermissionRepository(dbClient, settings), treeRootHolder); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexDebtTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexDebtTest.java index 1e1bc821cd7..65117b830de 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexDebtTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexDebtTest.java @@ -41,6 +41,8 @@ import org.sonar.server.es.SearchResult; import org.sonar.server.issue.IssueQuery; import org.sonar.server.issue.IssueQuery.Builder; import org.sonar.server.issue.IssueTesting; +import org.sonar.server.permission.index.AuthorizationDao; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.view.index.ViewIndexDefinition; import org.sonar.server.view.index.ViewIndexer; @@ -64,13 +66,13 @@ public class IssueIndexDebtTest { IssueIndex index; IssueIndexer issueIndexer; - IssueAuthorizationIndexer issueAuthorizationIndexer; + AuthorizationIndexer issueAuthorizationIndexer; ViewIndexer viewIndexer; @Before public void setUp() { issueIndexer = new IssueIndexer(null, tester.client()); - issueAuthorizationIndexer = new IssueAuthorizationIndexer(null, tester.client()); + issueAuthorizationIndexer = new AuthorizationIndexer(null, tester.client()); viewIndexer = new ViewIndexer(null, tester.client()); System2 system = mock(System2.class); when(system.getDefaultTimeZone()).thenReturn(TimeZone.getTimeZone("+01:00")); @@ -285,7 +287,7 @@ public class IssueIndexDebtTest { } private void addIssueAuthorization(String projectUuid, @Nullable String group, @Nullable String user) { - issueAuthorizationIndexer.index(newArrayList(new IssueAuthorizationDao.Dto(projectUuid, 1).addGroup(group).addUser(user))); + issueAuthorizationIndexer.index(newArrayList(new AuthorizationDao.Dto(projectUuid, 1).addGroup(group).addUser(user))); } private Builder newQueryBuilder() { diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java index db9145d7a85..e60c23c85d8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java @@ -50,6 +50,8 @@ import org.sonar.server.es.SearchResult; import org.sonar.server.exceptions.NotFoundException; import org.sonar.server.issue.IssueQuery; import org.sonar.server.issue.IssueTesting; +import org.sonar.server.permission.index.AuthorizationDao; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.view.index.ViewDoc; import org.sonar.server.view.index.ViewIndexDefinition; @@ -77,13 +79,13 @@ public class IssueIndexTest { IssueIndex underTest; IssueIndexer issueIndexer; - IssueAuthorizationIndexer issueAuthorizationIndexer; + AuthorizationIndexer issueAuthorizationIndexer; ViewIndexer viewIndexer; @Before public void setUp() { issueIndexer = new IssueIndexer(null, tester.client()); - issueAuthorizationIndexer = new IssueAuthorizationIndexer(null, tester.client()); + issueAuthorizationIndexer = new AuthorizationIndexer(null, tester.client()); viewIndexer = new ViewIndexer(null, tester.client()); System2 system = mock(System2.class); when(system.getDefaultTimeZone()).thenReturn(TimeZone.getTimeZone("GMT-1:00")); @@ -1288,7 +1290,7 @@ public class IssueIndexTest { } private void addIssueAuthorization(String projectUuid, @Nullable String group, @Nullable String user) { - issueAuthorizationIndexer.index(newArrayList(new IssueAuthorizationDao.Dto(projectUuid, 1).addGroup(group).addUser(user))); + issueAuthorizationIndexer.index(newArrayList(new AuthorizationDao.Dto(projectUuid, 1).addGroup(group).addUser(user))); } private void indexView(String viewUuid, List projects) { diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueAuthorizationDaoTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/index/AuthorizationDaoTest.java similarity index 71% rename from server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueAuthorizationDaoTest.java rename to server/sonar-server/src/test/java/org/sonar/server/permission/index/AuthorizationDaoTest.java index cf78f4ff891..a6c594f6a09 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueAuthorizationDaoTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/permission/index/AuthorizationDaoTest.java @@ -17,7 +17,7 @@ * 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.index; +package org.sonar.server.permission.index; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; @@ -29,26 +29,26 @@ import org.sonar.db.DbTester; import static org.assertj.core.api.Assertions.assertThat; -public class IssueAuthorizationDaoTest { +public class AuthorizationDaoTest { @Rule public DbTester dbTester = DbTester.create(System2.INSTANCE); - private IssueAuthorizationDao dao = new IssueAuthorizationDao(); + private AuthorizationDao dao = new AuthorizationDao(); @Test public void select_all() { dbTester.prepareDbUnit(getClass(), "shared.xml"); - Collection dtos = dao.selectAfterDate(dbTester.getDbClient(), dbTester.getSession(), 0L); + Collection dtos = dao.selectAfterDate(dbTester.getDbClient(), dbTester.getSession(), 0L); assertThat(dtos).hasSize(2); - IssueAuthorizationDao.Dto abc = Iterables.find(dtos, new ProjectPredicate("ABC")); + AuthorizationDao.Dto abc = Iterables.find(dtos, new ProjectPredicate("ABC")); assertThat(abc.getGroups()).containsOnly("Anyone", "devs"); assertThat(abc.getUsers()).containsOnly("user1"); assertThat(abc.getUpdatedAt()).isNotNull(); - IssueAuthorizationDao.Dto def = Iterables.find(dtos, new ProjectPredicate("DEF")); + AuthorizationDao.Dto def = Iterables.find(dtos, new ProjectPredicate("DEF")); assertThat(def.getGroups()).containsOnly("Anyone"); assertThat(def.getUsers()).containsOnly("user1", "user2"); assertThat(def.getUpdatedAt()).isNotNull(); @@ -58,11 +58,11 @@ public class IssueAuthorizationDaoTest { public void select_after_date() { dbTester.prepareDbUnit(getClass(), "shared.xml"); - Collection dtos = dao.selectAfterDate(dbTester.getDbClient(), dbTester.getSession(), 1500000000L); + Collection dtos = dao.selectAfterDate(dbTester.getDbClient(), dbTester.getSession(), 1500000000L); // only project DEF was updated in this period assertThat(dtos).hasSize(1); - IssueAuthorizationDao.Dto def = Iterables.find(dtos, new ProjectPredicate("DEF")); + AuthorizationDao.Dto def = Iterables.find(dtos, new ProjectPredicate("DEF")); assertThat(def).isNotNull(); assertThat(def.getGroups()).containsOnly("Anyone"); assertThat(def.getUsers()).containsOnly("user1", "user2"); @@ -72,16 +72,16 @@ public class IssueAuthorizationDaoTest { public void no_authorization() { dbTester.prepareDbUnit(getClass(), "no_authorization.xml"); - Collection dtos = dao.selectAfterDate(dbTester.getDbClient(), dbTester.getSession(), 0L); + Collection dtos = dao.selectAfterDate(dbTester.getDbClient(), dbTester.getSession(), 0L); assertThat(dtos).hasSize(1); - IssueAuthorizationDao.Dto abc = Iterables.find(dtos, new ProjectPredicate("ABC")); + AuthorizationDao.Dto abc = Iterables.find(dtos, new ProjectPredicate("ABC")); assertThat(abc.getGroups()).isEmpty(); assertThat(abc.getUsers()).isEmpty(); assertThat(abc.getUpdatedAt()).isNotNull(); } - private static class ProjectPredicate implements Predicate { + private static class ProjectPredicate implements Predicate { private final String projectUuid; @@ -90,7 +90,7 @@ public class IssueAuthorizationDaoTest { } @Override - public boolean apply(IssueAuthorizationDao.Dto input) { + public boolean apply(AuthorizationDao.Dto input) { return input.getProjectUuid().equals(projectUuid); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueAuthorizationIndexerTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/index/AuthorizationIndexerTest.java similarity index 81% rename from server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueAuthorizationIndexerTest.java rename to server/sonar-server/src/test/java/org/sonar/server/permission/index/AuthorizationIndexerTest.java index a17eda281fd..bf25f0f981e 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueAuthorizationIndexerTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/permission/index/AuthorizationIndexerTest.java @@ -17,7 +17,7 @@ * 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.index; +package org.sonar.server.permission.index; import java.util.Arrays; import java.util.Collection; @@ -30,11 +30,12 @@ import org.sonar.api.utils.System2; import org.sonar.db.DbClient; import org.sonar.db.DbTester; import org.sonar.server.es.EsTester; +import org.sonar.server.issue.index.IssueIndexDefinition; import static org.assertj.core.api.Assertions.assertThat; -public class IssueAuthorizationIndexerTest { +public class AuthorizationIndexerTest { @Rule public DbTester dbTester = DbTester.create(System2.INSTANCE); @@ -44,7 +45,7 @@ public class IssueAuthorizationIndexerTest { @Test public void index_nothing() { - IssueAuthorizationIndexer indexer = createIndexer(); + AuthorizationIndexer indexer = createIndexer(); indexer.index(); assertThat(esTester.countDocuments("issues", "authorization")).isZero(); @@ -54,7 +55,7 @@ public class IssueAuthorizationIndexerTest { public void index() { dbTester.prepareDbUnit(getClass(), "index.xml"); - IssueAuthorizationIndexer indexer = createIndexer(); + AuthorizationIndexer indexer = createIndexer(); indexer.doIndex(0L); List docs = esTester.getDocuments("issues", "authorization"); @@ -72,15 +73,15 @@ public class IssueAuthorizationIndexerTest { @Test public void do_not_fail_when_deleting_unindexed_project() { - IssueAuthorizationIndexer indexer = createIndexer(); + AuthorizationIndexer indexer = createIndexer(); indexer.deleteProject("UNKNOWN", true); assertThat(esTester.countDocuments("issues", "authorization")).isZero(); } @Test public void delete_permissions() { - IssueAuthorizationIndexer indexer = createIndexer(); - IssueAuthorizationDao.Dto authorization = new IssueAuthorizationDao.Dto("ABC", System.currentTimeMillis()); + AuthorizationIndexer indexer = createIndexer(); + AuthorizationDao.Dto authorization = new AuthorizationDao.Dto("ABC", System.currentTimeMillis()); authorization.addUser("guy"); authorization.addGroup("dev"); indexer.index(Arrays.asList(authorization)); @@ -89,7 +90,7 @@ public class IssueAuthorizationIndexerTest { assertThat(esTester.countDocuments("issues", "authorization")).isEqualTo(1); // remove permissions -> dto has no users nor groups - authorization = new IssueAuthorizationDao.Dto("ABC", System.currentTimeMillis()); + authorization = new AuthorizationDao.Dto("ABC", System.currentTimeMillis()); indexer.index(Arrays.asList(authorization)); List docs = esTester.getDocuments("issues", "authorization"); @@ -98,7 +99,7 @@ public class IssueAuthorizationIndexerTest { assertThat((Collection)docs.get(0).sourceAsMap().get(IssueIndexDefinition.FIELD_AUTHORIZATION_GROUPS)).hasSize(0); } - private IssueAuthorizationIndexer createIndexer() { - return new IssueAuthorizationIndexer(new DbClient(dbTester.database(), dbTester.myBatis()), esTester.client()); + private AuthorizationIndexer createIndexer() { + return new AuthorizationIndexer(new DbClient(dbTester.database(), dbTester.myBatis()), esTester.client()); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/BasePermissionWsTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/BasePermissionWsTest.java index 9e66249f11f..2a95ad0a6e8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/BasePermissionWsTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/BasePermissionWsTest.java @@ -31,11 +31,11 @@ import org.sonar.db.organization.OrganizationDto; import org.sonar.db.permission.template.PermissionTemplateDto; import org.sonar.db.permission.template.PermissionTemplateTesting; import org.sonar.server.component.ComponentFinder; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; import org.sonar.server.organization.TestDefaultOrganizationProvider; import org.sonar.server.permission.GroupPermissionChanger; import org.sonar.server.permission.PermissionUpdater; import org.sonar.server.permission.UserPermissionChanger; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.tester.UserSessionRule; import org.sonar.server.usergroups.ws.GroupWsSupport; import org.sonar.server.ws.WsTester; @@ -77,7 +77,7 @@ public abstract class BasePermissionWsTest { protected PermissionUpdater newPermissionUpdater() { return new PermissionUpdater(db.getDbClient(), - mock(IssueAuthorizationIndexer.class), + mock(AuthorizationIndexer.class), new UserPermissionChanger(db.getDbClient(), defaultOrganizationProvider), new GroupPermissionChanger(db.getDbClient(), defaultOrganizationProvider)); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java index b202ab3354c..d9beaf0654d 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/permission/ws/template/ApplyTemplateActionTest.java @@ -37,8 +37,8 @@ import org.sonar.server.component.ComponentFinder; import org.sonar.server.exceptions.BadRequestException; import org.sonar.server.exceptions.ForbiddenException; import org.sonar.server.exceptions.NotFoundException; -import org.sonar.server.issue.index.IssueAuthorizationIndexer; import org.sonar.server.permission.PermissionService; +import org.sonar.server.permission.index.AuthorizationIndexer; import org.sonar.server.permission.ws.BasePermissionWsTest; import org.sonar.server.ws.WsTester; @@ -64,7 +64,7 @@ public class ApplyTemplateActionTest extends BasePermissionWsTest