@@ -35,7 +35,7 @@ import org.sonar.ce.task.projectanalysis.component.TreeRootHolder; | |||
import org.sonar.ce.task.projectanalysis.component.TypeAwareVisitorAdapter; | |||
import org.sonar.ce.task.projectanalysis.scm.Changeset; | |||
import org.sonar.ce.task.step.ComputationStep; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.core.util.UuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.protobuf.DbFileSources; | |||
@@ -50,16 +50,18 @@ public class PersistFileSourcesStep implements ComputationStep { | |||
private final SourceLinesHashRepository sourceLinesHash; | |||
private final FileSourceDataComputer fileSourceDataComputer; | |||
private final FileSourceDataWarnings fileSourceDataWarnings; | |||
private final UuidFactory uuidFactory; | |||
public PersistFileSourcesStep(DbClient dbClient, System2 system2, TreeRootHolder treeRootHolder, | |||
SourceLinesHashRepository sourceLinesHash, FileSourceDataComputer fileSourceDataComputer, | |||
FileSourceDataWarnings fileSourceDataWarnings) { | |||
FileSourceDataWarnings fileSourceDataWarnings, UuidFactory uuidFactory) { | |||
this.dbClient = dbClient; | |||
this.system2 = system2; | |||
this.treeRootHolder = treeRootHolder; | |||
this.sourceLinesHash = sourceLinesHash; | |||
this.fileSourceDataComputer = fileSourceDataComputer; | |||
this.fileSourceDataWarnings = fileSourceDataWarnings; | |||
this.uuidFactory = uuidFactory; | |||
} | |||
@Override | |||
@@ -116,7 +118,7 @@ public class PersistFileSourcesStep implements ComputationStep { | |||
FileSourceDto previousDto = previousFileSourcesByUuid.get(file.getUuid()); | |||
if (previousDto == null) { | |||
FileSourceDto dto = new FileSourceDto() | |||
.setUuid(Uuids.create()) | |||
.setUuid(uuidFactory.create()) | |||
.setProjectUuid(projectUuid) | |||
.setFileUuid(file.getUuid()) | |||
.setBinaryData(binaryData) |
@@ -30,6 +30,7 @@ import org.sonar.ce.task.projectanalysis.issue.UpdateConflictResolver; | |||
import org.sonar.ce.task.step.ComputationStep; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.core.util.CloseableIterator; | |||
import org.sonar.core.util.UuidFactory; | |||
import org.sonar.db.BatchSession; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
@@ -52,15 +53,17 @@ public class PersistIssuesStep implements ComputationStep { | |||
private final RuleRepository ruleRepository; | |||
private final ProtoIssueCache protoIssueCache; | |||
private final IssueStorage issueStorage; | |||
private final UuidFactory uuidFactory; | |||
public PersistIssuesStep(DbClient dbClient, System2 system2, UpdateConflictResolver conflictResolver, | |||
RuleRepository ruleRepository, ProtoIssueCache protoIssueCache, IssueStorage issueStorage) { | |||
RuleRepository ruleRepository, ProtoIssueCache protoIssueCache, IssueStorage issueStorage, UuidFactory uuidFactory) { | |||
this.dbClient = dbClient; | |||
this.system2 = system2; | |||
this.conflictResolver = conflictResolver; | |||
this.ruleRepository = ruleRepository; | |||
this.protoIssueCache = protoIssueCache; | |||
this.issueStorage = issueStorage; | |||
this.uuidFactory = uuidFactory; | |||
} | |||
@Override | |||
@@ -112,7 +115,7 @@ public class PersistIssuesStep implements ComputationStep { | |||
statistics.inserts++; | |||
}); | |||
addedIssues.forEach(i -> issueStorage.insertChanges(changeMapper, i)); | |||
addedIssues.forEach(i -> issueStorage.insertChanges(changeMapper, i, uuidFactory)); | |||
} | |||
private void persistUpdatedIssues(IssueStatistics statistics, List<DefaultIssue> updatedIssues, IssueMapper mapper, IssueChangeMapper changeMapper) { | |||
@@ -140,7 +143,7 @@ public class PersistIssuesStep implements ComputationStep { | |||
}); | |||
} | |||
updatedIssues.forEach(i -> issueStorage.insertChanges(changeMapper, i)); | |||
updatedIssues.forEach(i -> issueStorage.insertChanges(changeMapper, i, uuidFactory)); | |||
} | |||
private static void flushSession(DbSession dbSession) { |
@@ -38,6 +38,7 @@ import org.sonar.ce.task.projectanalysis.scm.Changeset; | |||
import org.sonar.ce.task.projectanalysis.step.BaseStepTest; | |||
import org.sonar.ce.task.step.ComputationStep; | |||
import org.sonar.ce.task.step.TestComputationStepContext; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
@@ -83,7 +84,7 @@ public class PersistFileSourcesStepTest extends BaseStepTest { | |||
public void setup() { | |||
when(system2.now()).thenReturn(NOW); | |||
when(sourceLinesHashRepository.getLineHashesComputerToPersist(Mockito.any(Component.class))).thenReturn(lineHashesComputer); | |||
underTest = new PersistFileSourcesStep(dbClient, system2, treeRootHolder, sourceLinesHashRepository, fileSourceDataComputer, fileSourceDataWarnings); | |||
underTest = new PersistFileSourcesStep(dbClient, system2, treeRootHolder, sourceLinesHashRepository, fileSourceDataComputer, fileSourceDataWarnings, new SequenceUuidFactory()); | |||
initBasicReport(1); | |||
} | |||
@@ -43,6 +43,7 @@ import org.sonar.ce.task.step.TestComputationStepContext; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.core.issue.DefaultIssueComment; | |||
import org.sonar.core.issue.FieldDiffs; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
@@ -104,7 +105,7 @@ public class PersistIssuesStepTest extends BaseStepTest { | |||
reportReader.setMetadata(ScannerReport.Metadata.getDefaultInstance()); | |||
underTest = new PersistIssuesStep(dbClient, system2, conflictResolver, new RuleRepositoryImpl(adHocRuleCreator, dbClient, analysisMetadataHolder), protoIssueCache, | |||
new IssueStorage()); | |||
new IssueStorage(), new SequenceUuidFactory()); | |||
} | |||
@After |
@@ -28,7 +28,6 @@ import org.apache.commons.lang.builder.ToStringStyle; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.issue.DefaultIssueComment; | |||
import org.sonar.core.issue.FieldDiffs; | |||
import org.sonar.core.util.Uuids; | |||
import static com.google.common.base.Preconditions.checkNotNull; | |||
import static java.util.Objects.requireNonNull; | |||
@@ -62,7 +61,6 @@ public final class IssueChangeDto implements Serializable { | |||
public static IssueChangeDto of(DefaultIssueComment comment) { | |||
IssueChangeDto dto = newDto(comment.issueKey()); | |||
dto.setKey(comment.key()); | |||
dto.setUuid(Uuids.create()); | |||
dto.setChangeType(IssueChangeDto.TYPE_COMMENT); | |||
dto.setChangeData(comment.markdownText()); | |||
dto.setUserUuid(comment.userUuid()); | |||
@@ -73,7 +71,6 @@ public final class IssueChangeDto implements Serializable { | |||
public static IssueChangeDto of(String issueKey, FieldDiffs diffs) { | |||
IssueChangeDto dto = newDto(issueKey); | |||
dto.setUuid(Uuids.create()); | |||
dto.setChangeType(IssueChangeDto.TYPE_FIELD_CHANGE); | |||
dto.setChangeData(diffs.toEncodedString()); | |||
dto.setUserUuid(diffs.userUuid()); |
@@ -27,7 +27,6 @@ import javax.annotation.Nullable; | |||
import org.apache.ibatis.session.ResultHandler; | |||
import org.apache.ibatis.session.RowBounds; | |||
import org.sonar.api.security.DefaultGroups; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.db.Dao; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.component.ComponentMapper; | |||
@@ -115,7 +114,6 @@ public class GroupPermissionDao implements Dao { | |||
} | |||
public void insert(DbSession dbSession, GroupPermissionDto dto) { | |||
dto.setUuid(Uuids.create()); | |||
ensureComponentPermissionConsistency(dbSession, dto); | |||
ensureGroupPermissionConsistency(dbSession, dto); | |||
mapper(dbSession).insert(dto); |
@@ -42,6 +42,7 @@ import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.issue.FieldDiffs; | |||
import org.sonar.core.util.UuidFactoryFast; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
@@ -478,6 +479,7 @@ public class IssueMapperTest { | |||
IntStream.range(0, random.nextInt(3)).forEach(i -> diffs.setDiff("key_a" + i, "old_" + i, "new_" + i)); | |||
IssueChangeDto changeDto = IssueChangeDto.of(issue.getKey(), diffs); | |||
changeDto.setUuid(Uuids.createFast()); | |||
dbTester.getDbClient().issueChangeDao().insert(dbSession, changeDto); | |||
return changeDto; | |||
} |
@@ -27,6 +27,7 @@ import org.sonar.api.issue.Issue; | |||
import org.sonar.api.rules.RuleType; | |||
import org.sonar.core.issue.DefaultIssueComment; | |||
import org.sonar.core.issue.FieldDiffs; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.organization.OrganizationDto; | |||
@@ -224,11 +225,13 @@ public class IssueDbTester { | |||
public IssueChangeDto insertComment(IssueDto issueDto, @Nullable UserDto user, String text) { | |||
IssueChangeDto issueChangeDto = IssueChangeDto.of(DefaultIssueComment.create(issueDto.getKey(), user == null ? null : user.getUuid(), text)); | |||
issueChangeDto.setUuid(Uuids.create()); | |||
return insertChange(issueChangeDto); | |||
} | |||
public void insertFieldDiffs(IssueDto issueDto, FieldDiffs... diffs) { | |||
Arrays.stream(diffs).forEach(diff -> db.getDbClient().issueChangeDao().insert(db.getSession(), IssueChangeDto.of(issueDto.getKey(), diff))); | |||
Arrays.stream(diffs).forEach(diff -> db.getDbClient().issueChangeDao().insert(db.getSession(), IssueChangeDto.of(issueDto.getKey(), diff) | |||
.setUuid(Uuids.createFast()))); | |||
db.commit(); | |||
} | |||
@@ -223,6 +223,7 @@ public class UserDbTester { | |||
public GroupPermissionDto insertPermissionOnAnyone(OrganizationDto org, String permission) { | |||
GroupPermissionDto dto = new GroupPermissionDto() | |||
.setUuid(Uuids.createFast()) | |||
.setOrganizationUuid(org.getUuid()) | |||
.setGroupId(null) | |||
.setRole(permission); | |||
@@ -237,6 +238,7 @@ public class UserDbTester { | |||
public GroupPermissionDto insertPermissionOnGroup(GroupDto group, String permission) { | |||
GroupPermissionDto dto = new GroupPermissionDto() | |||
.setUuid(Uuids.createFast()) | |||
.setOrganizationUuid(group.getOrganizationUuid()) | |||
.setGroupId(group.getId()) | |||
.setRole(permission); | |||
@@ -260,6 +262,7 @@ public class UserDbTester { | |||
"permission %s can't be granted on a public project", permission); | |||
checkArgument(project.getMainBranchProjectUuid() == null, "Permissions can't be granted on branches"); | |||
GroupPermissionDto dto = new GroupPermissionDto() | |||
.setUuid(Uuids.createFast()) | |||
.setOrganizationUuid(project.getOrganizationUuid()) | |||
.setGroupId(null) | |||
.setRole(permission) | |||
@@ -280,6 +283,7 @@ public class UserDbTester { | |||
"%s can't be granted on a public project", permission); | |||
checkArgument(project.getMainBranchProjectUuid() == null, "Permissions can't be granted on branches"); | |||
GroupPermissionDto dto = new GroupPermissionDto() | |||
.setUuid(Uuids.createFast()) | |||
.setOrganizationUuid(group.getOrganizationUuid()) | |||
.setGroupId(group.getId()) | |||
.setRole(permission) |
@@ -22,14 +22,16 @@ package org.sonar.server.issue; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.core.issue.DefaultIssueComment; | |||
import org.sonar.core.issue.FieldDiffs; | |||
import org.sonar.core.util.UuidFactory; | |||
import org.sonar.db.issue.IssueChangeDto; | |||
import org.sonar.db.issue.IssueChangeMapper; | |||
public class IssueStorage { | |||
public void insertChanges(IssueChangeMapper mapper, DefaultIssue issue) { | |||
public void insertChanges(IssueChangeMapper mapper, DefaultIssue issue, UuidFactory uuidFactory) { | |||
for (DefaultIssueComment comment : issue.defaultIssueComments()) { | |||
if (comment.isNew()) { | |||
IssueChangeDto changeDto = IssueChangeDto.of(comment); | |||
changeDto.setUuid(uuidFactory.create()); | |||
mapper.insert(changeDto); | |||
} | |||
} | |||
@@ -37,10 +39,12 @@ public class IssueStorage { | |||
if (issue.isCopied()) { | |||
for (FieldDiffs d : issue.changes()) { | |||
IssueChangeDto changeDto = IssueChangeDto.of(issue.key(), d); | |||
changeDto.setUuid(uuidFactory.create()); | |||
mapper.insert(changeDto); | |||
} | |||
} else if (!issue.isNew() && diffs != null) { | |||
IssueChangeDto changeDto = IssueChangeDto.of(issue.key(), diffs); | |||
changeDto.setUuid(uuidFactory.create()); | |||
mapper.insert(changeDto); | |||
} | |||
} |
@@ -22,6 +22,7 @@ package org.sonar.server.organization; | |||
import java.util.List; | |||
import org.sonar.api.rule.RuleStatus; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.core.util.UuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
@@ -43,16 +44,18 @@ public class OrganisationSupport { | |||
private final DefaultGroupCreator defaultGroupCreator; | |||
private final DefaultGroupFinder defaultGroupFinder; | |||
private final RuleIndexer ruleIndexer; | |||
private final UuidFactory uuidFactory; | |||
public OrganisationSupport(DbClient dbClient, DefaultOrganizationProvider defaultOrganizationProvider, | |||
OrganizationFlags organizationFlags, DefaultGroupCreator defaultGroupCreator, DefaultGroupFinder defaultGroupFinder, | |||
RuleIndexer ruleIndexer) { | |||
RuleIndexer ruleIndexer, UuidFactory uuidFactory) { | |||
this.dbClient = dbClient; | |||
this.defaultOrganizationProvider = defaultOrganizationProvider; | |||
this.organizationFlags = organizationFlags; | |||
this.defaultGroupCreator = defaultGroupCreator; | |||
this.defaultGroupFinder = defaultGroupFinder; | |||
this.ruleIndexer = ruleIndexer; | |||
this.uuidFactory = uuidFactory; | |||
} | |||
public void enable(String login) { | |||
@@ -90,7 +93,10 @@ public class OrganisationSupport { | |||
context -> { | |||
GroupPermissionDto groupPermissionDto = (GroupPermissionDto) context.getResultObject(); | |||
dbClient.groupPermissionDao().insert(dbSession, | |||
new GroupPermissionDto().setOrganizationUuid(defaultOrganizationUuid).setGroupId(membersGroup.getId()) | |||
new GroupPermissionDto() | |||
.setUuid(uuidFactory.create()) | |||
.setOrganizationUuid(defaultOrganizationUuid) | |||
.setGroupId(membersGroup.getId()) | |||
.setRole(groupPermissionDto.getRole()) | |||
.setComponentUuid(groupPermissionDto.getComponentUuid())); | |||
}); |
@@ -231,6 +231,7 @@ public class OrganizationUpdaterImpl implements OrganizationUpdater { | |||
dbClient.groupPermissionDao().insert( | |||
dbSession, | |||
new GroupPermissionDto() | |||
.setUuid(uuidFactory.create()) | |||
.setOrganizationUuid(group.getOrganizationUuid()) | |||
.setGroupId(group.getId()) | |||
.setRole(permission.getKey())); |
@@ -27,6 +27,7 @@ import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.mockito.ArgumentCaptor; | |||
import org.sonar.api.rule.RuleStatus; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.organization.OrganizationDto; | |||
@@ -60,7 +61,7 @@ public class OrganisationSupportTest { | |||
private OrganizationFlags organizationFlags = new OrganizationFlagsImpl(dbTester.getDbClient()); | |||
private RuleIndexer ruleIndexer = spy(new RuleIndexer(es.client(), dbTester.getDbClient())); | |||
private OrganisationSupport underTest = new OrganisationSupport(dbTester.getDbClient(), defaultOrganizationProvider, organizationFlags, | |||
new DefaultGroupCreatorImpl(dbTester.getDbClient()), new DefaultGroupFinder(dbTester.getDbClient()), ruleIndexer); | |||
new DefaultGroupCreatorImpl(dbTester.getDbClient()), new DefaultGroupFinder(dbTester.getDbClient()), ruleIndexer, new SequenceUuidFactory()); | |||
@Test | |||
public void enabling_support_saves_internal_property_and_flags_caller_as_root() { |
@@ -29,6 +29,7 @@ import org.junit.Before; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.core.util.stream.MoreCollectors; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
@@ -172,6 +173,7 @@ public class PermissionIndexerDaoTest { | |||
dbClient.componentDao().insert(dbSession, project); | |||
projectUuids.add(project.uuid()); | |||
GroupPermissionDto dto = new GroupPermissionDto() | |||
.setUuid(Uuids.createFast()) | |||
.setOrganizationUuid(group.getOrganizationUuid()) | |||
.setGroupId(group.getId()) | |||
.setRole(USER) |
@@ -33,6 +33,7 @@ import org.sonar.api.rules.RuleFinder; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.core.util.UuidFactory; | |||
import org.sonar.db.BatchSession; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
@@ -61,12 +62,14 @@ public class WebIssueStorage extends IssueStorage { | |||
private final RuleFinder ruleFinder; | |||
private final DbClient dbClient; | |||
private final IssueIndexer indexer; | |||
private final UuidFactory uuidFactory; | |||
public WebIssueStorage(System2 system2, DbClient dbClient, RuleFinder ruleFinder, IssueIndexer indexer) { | |||
public WebIssueStorage(System2 system2, DbClient dbClient, RuleFinder ruleFinder, IssueIndexer indexer, UuidFactory uuidFactory) { | |||
this.system2 = system2; | |||
this.dbClient = dbClient; | |||
this.ruleFinder = ruleFinder; | |||
this.indexer = indexer; | |||
this.uuidFactory = uuidFactory; | |||
} | |||
protected DbClient getDbClient() { | |||
@@ -106,7 +109,7 @@ public class WebIssueStorage extends IssueStorage { | |||
for (DefaultIssue issue : issuesToInsert) { | |||
IssueDto issueDto = doInsert(session, now, issue); | |||
inserted.add(issueDto); | |||
insertChanges(issueChangeMapper, issue); | |||
insertChanges(issueChangeMapper, issue, uuidFactory); | |||
if (count > BatchSession.MAX_BATCH_SIZE) { | |||
session.commit(); | |||
count = 0; | |||
@@ -146,7 +149,7 @@ public class WebIssueStorage extends IssueStorage { | |||
for (DefaultIssue issue : issuesToUpdate) { | |||
IssueDto issueDto = doUpdate(dbSession, now, issue); | |||
updated.add(issueDto); | |||
insertChanges(issueChangeMapper, issue); | |||
insertChanges(issueChangeMapper, issue, uuidFactory); | |||
} | |||
dbSession.commit(); | |||
} |
@@ -21,6 +21,7 @@ package org.sonar.server.permission; | |||
import java.util.List; | |||
import org.sonar.core.permission.GlobalPermissions; | |||
import org.sonar.core.util.UuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.permission.GroupPermissionDto; | |||
@@ -35,9 +36,11 @@ import static org.sonar.server.permission.PermissionChange.Operation.REMOVE; | |||
public class GroupPermissionChanger { | |||
private final DbClient dbClient; | |||
private final UuidFactory uuidFactory; | |||
public GroupPermissionChanger(DbClient dbClient) { | |||
public GroupPermissionChanger(DbClient dbClient, UuidFactory uuidFactory) { | |||
this.dbClient = dbClient; | |||
this.uuidFactory = uuidFactory; | |||
} | |||
public boolean apply(DbSession dbSession, GroupPermissionChange change) { | |||
@@ -109,6 +112,7 @@ public class GroupPermissionChanger { | |||
validateNotAnyoneAndAdminPermission(change.getPermission(), change.getGroupIdOrAnyone()); | |||
GroupPermissionDto addedDto = new GroupPermissionDto() | |||
.setUuid(uuidFactory.create()) | |||
.setRole(change.getPermission()) | |||
.setOrganizationUuid(change.getOrganizationUuid()) | |||
.setGroupId(change.getGroupIdOrAnyone().getId()) |
@@ -30,7 +30,7 @@ import javax.annotation.Nullable; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.api.resources.Qualifiers; | |||
import org.sonar.api.server.ServerSide; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.core.util.UuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.component.ComponentDto; | |||
@@ -59,13 +59,15 @@ public class PermissionTemplateService { | |||
private final ProjectIndexers projectIndexers; | |||
private final UserSession userSession; | |||
private final DefaultTemplatesResolver defaultTemplatesResolver; | |||
private final UuidFactory uuidFactory; | |||
public PermissionTemplateService(DbClient dbClient, ProjectIndexers projectIndexers, UserSession userSession, | |||
DefaultTemplatesResolver defaultTemplatesResolver) { | |||
DefaultTemplatesResolver defaultTemplatesResolver, UuidFactory uuidFactory) { | |||
this.dbClient = dbClient; | |||
this.projectIndexers = projectIndexers; | |||
this.userSession = userSession; | |||
this.defaultTemplatesResolver = defaultTemplatesResolver; | |||
this.uuidFactory = uuidFactory; | |||
} | |||
public boolean wouldUserHaveScanPermissionWithDefaultTemplate(DbSession dbSession, String organizationUuid, @Nullable Integer userId, String projectKey) { | |||
@@ -130,7 +132,7 @@ public class PermissionTemplateService { | |||
.stream() | |||
.filter(up -> permissionValidForProject(project, up.getPermission())) | |||
.forEach(up -> { | |||
UserPermissionDto dto = new UserPermissionDto(Uuids.create(), organizationUuid, up.getPermission(), up.getUserId(), project.uuid()); | |||
UserPermissionDto dto = new UserPermissionDto(uuidFactory.create(), organizationUuid, up.getPermission(), up.getUserId(), project.uuid()); | |||
dbClient.userPermissionDao().insert(dbSession, dto); | |||
}); | |||
@@ -141,6 +143,7 @@ public class PermissionTemplateService { | |||
.filter(gp -> permissionValidForProject(project, gp.getPermission())) | |||
.forEach(gp -> { | |||
GroupPermissionDto dto = new GroupPermissionDto() | |||
.setUuid(uuidFactory.create()) | |||
.setOrganizationUuid(organizationUuid) | |||
.setGroupId(isAnyone(gp.getGroupName()) ? null : gp.getGroupId()) | |||
.setRole(gp.getPermission()) | |||
@@ -159,7 +162,7 @@ public class PermissionTemplateService { | |||
.filter(up -> permissionValidForProject(project, up.getPermission())) | |||
.filter(characteristic -> !permissionsForCurrentUserAlreadyInDb.contains(characteristic.getPermission())) | |||
.forEach(c -> { | |||
UserPermissionDto dto = new UserPermissionDto(Uuids.create(), organizationUuid, c.getPermission(), projectCreatorUserId, project.uuid()); | |||
UserPermissionDto dto = new UserPermissionDto(uuidFactory.create(), organizationUuid, c.getPermission(), projectCreatorUserId, project.uuid()); | |||
dbClient.userPermissionDao().insert(dbSession, dto); | |||
}); | |||
} |
@@ -20,7 +20,7 @@ | |||
package org.sonar.server.permission; | |||
import java.util.List; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.core.util.UuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.permission.UserPermissionDto; | |||
@@ -37,9 +37,11 @@ import static org.sonar.server.permission.PermissionChange.Operation.REMOVE; | |||
public class UserPermissionChanger { | |||
private final DbClient dbClient; | |||
private final UuidFactory uuidFactory; | |||
public UserPermissionChanger(DbClient dbClient) { | |||
public UserPermissionChanger(DbClient dbClient, UuidFactory uuidFactory) { | |||
this.dbClient = dbClient; | |||
this.uuidFactory = uuidFactory; | |||
} | |||
public boolean apply(DbSession dbSession, UserPermissionChange change) { | |||
@@ -91,7 +93,7 @@ public class UserPermissionChanger { | |||
if (loadExistingPermissions(dbSession, change).contains(change.getPermission())) { | |||
return false; | |||
} | |||
UserPermissionDto dto = new UserPermissionDto(Uuids.create(), change.getOrganizationUuid(), change.getPermission(), change.getUserId().getId(), change.getProjectUuid()); | |||
UserPermissionDto dto = new UserPermissionDto(uuidFactory.create(), change.getOrganizationUuid(), change.getPermission(), change.getUserId().getId(), change.getProjectUuid()); | |||
dbClient.userPermissionDao().insert(dbSession, dto); | |||
return true; | |||
} |
@@ -26,6 +26,7 @@ import org.sonar.api.server.ws.Request; | |||
import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.api.web.UserRole; | |||
import org.sonar.core.util.UuidFactory; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
@@ -58,14 +59,16 @@ public class UpdateVisibilityAction implements ProjectsWsAction { | |||
private final UserSession userSession; | |||
private final ProjectIndexers projectIndexers; | |||
private final ProjectsWsSupport projectsWsSupport; | |||
private final UuidFactory uuidFactory; | |||
public UpdateVisibilityAction(DbClient dbClient, ComponentFinder componentFinder, UserSession userSession, | |||
ProjectIndexers projectIndexers, ProjectsWsSupport projectsWsSupport) { | |||
ProjectIndexers projectIndexers, ProjectsWsSupport projectsWsSupport, UuidFactory uuidFactory) { | |||
this.dbClient = dbClient; | |||
this.componentFinder = componentFinder; | |||
this.userSession = userSession; | |||
this.projectIndexers = projectIndexers; | |||
this.projectsWsSupport = projectsWsSupport; | |||
this.uuidFactory = uuidFactory; | |||
} | |||
public void define(WebService.NewController context) { | |||
@@ -154,6 +157,7 @@ public class UpdateVisibilityAction implements ProjectsWsAction { | |||
private void insertProjectPermissionOnGroup(DbSession dbSession, ComponentDto component, String permission, Integer groupId) { | |||
dbClient.groupPermissionDao().insert(dbSession, new GroupPermissionDto() | |||
.setUuid(uuidFactory.create()) | |||
.setOrganizationUuid(component.getOrganizationUuid()) | |||
.setComponentUuid(component.uuid()) | |||
.setGroupId(groupId) |
@@ -88,8 +88,7 @@ public class CreateConditionAction implements QualityGatesWsAction { | |||
wsSupport.checkCanEdit(qualityGate); | |||
QualityGateConditionDto condition = qualityGateConditionsUpdater.createCondition(dbSession, qualityGate, metric, operator, error); | |||
CreateConditionResponse.Builder createConditionResponse = CreateConditionResponse.newBuilder() | |||
// TODO | |||
//.setId(condition.getUuid()) | |||
.setId(condition.getUuid()) | |||
.setMetric(condition.getMetricKey()) | |||
.setError(condition.getErrorThreshold()) | |||
.setOp(condition.getOperator()); |
@@ -53,7 +53,7 @@ public class DeleteConditionAction implements QualityGatesWsAction { | |||
createCondition | |||
.createParam(PARAM_ID) | |||
.setRequired(true) | |||
.setDescription("Condition ID") | |||
.setDescription("Condition UUID") | |||
.setExampleValue("2"); | |||
wsSupport.createOrganizationParam(createCondition); | |||
@@ -61,7 +61,6 @@ public class DeleteConditionAction implements QualityGatesWsAction { | |||
@Override | |||
public void handle(Request request, Response response) { | |||
// TODO | |||
String conditionUuid = request.mandatoryParam(PARAM_ID); | |||
try (DbSession dbSession = dbClient.openSession(false)) { | |||
OrganizationDto organization = wsSupport.getOrganization(dbSession, request); |
@@ -140,8 +140,7 @@ public class ShowAction implements QualityGatesWsAction { | |||
MetricDto metric = metricsById.get(metricId); | |||
checkState(metric != null, "Could not find metric with id %s", metricId); | |||
ShowWsResponse.Condition.Builder builder = ShowWsResponse.Condition.newBuilder() | |||
// TODO | |||
//.setId(condition.getUuid()) | |||
.setId(condition.getUuid()) | |||
.setMetric(metric.getKey()) | |||
.setOp(condition.getOperator()); | |||
ofNullable(condition.getErrorThreshold()).ifPresent(builder::setError); |
@@ -90,8 +90,7 @@ public class UpdateConditionAction implements QualityGatesWsAction { | |||
wsSupport.checkCanEdit(qualityGateDto); | |||
QualityGateConditionDto updatedCondition = qualityGateConditionsUpdater.updateCondition(dbSession, condition, metric, operator, error); | |||
UpdateConditionResponse.Builder updateConditionResponse = UpdateConditionResponse.newBuilder() | |||
// TODO | |||
// .setId(updatedCondition.getUuid()) | |||
.setId(updatedCondition.getUuid()) | |||
.setMetric(updatedCondition.getMetricKey()) | |||
.setError(updatedCondition.getErrorThreshold()) | |||
.setOp(updatedCondition.getOperator()); |
@@ -32,6 +32,7 @@ import org.sonar.api.impl.utils.TestSystem2; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.core.issue.DefaultIssueComment; | |||
import org.sonar.core.issue.IssueChangeContext; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
@@ -62,7 +63,8 @@ public class WebIssueStorageTest { | |||
private TestDefaultOrganizationProvider defaultOrganizationProvider = TestDefaultOrganizationProvider.from(db); | |||
private IssueIndexer issueIndexer = mock(IssueIndexer.class); | |||
private WebIssueStorage underTest = new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(db.getDbClient(), defaultOrganizationProvider), issueIndexer); | |||
private WebIssueStorage underTest = new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(db.getDbClient(), defaultOrganizationProvider), issueIndexer, | |||
new SequenceUuidFactory()); | |||
@Test | |||
public void load_component_id_from_db() { | |||
@@ -212,7 +214,7 @@ public class WebIssueStorageTest { | |||
.containsEntry("STATUS", updated.status()) | |||
.containsEntry("SEVERITY", updated.severity()); | |||
List<Map<String, Object>> rows = db.select("select * from issue_changes order by id"); | |||
List<Map<String, Object>> rows = db.select("select * from issue_changes order by uuid"); | |||
assertThat(rows).hasSize(2); | |||
assertThat(rows.get(0)) | |||
.extracting("CHANGE_DATA", "CHANGE_TYPE", "USER_LOGIN") |
@@ -29,6 +29,7 @@ import org.sonar.api.server.ws.Request; | |||
import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
@@ -94,9 +95,11 @@ public class AddCommentActionTest { | |||
private IssueDbTester issueDbTester = new IssueDbTester(dbTester); | |||
private IssueIndexer issueIndexer = new IssueIndexer(es.client(), dbClient, new IssueIteratorFactory(dbClient)); | |||
private WebIssueStorage serverIssueStorage = new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer); | |||
private WebIssueStorage serverIssueStorage = new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, | |||
new SequenceUuidFactory()); | |||
private TestIssueChangePostProcessor issueChangePostProcessor = new TestIssueChangePostProcessor(); | |||
private IssueUpdater issueUpdater = new IssueUpdater(dbClient, serverIssueStorage, mock(NotificationManager.class), issueChangePostProcessor, new IssuesChangesNotificationSerializer()); | |||
private IssueUpdater issueUpdater = new IssueUpdater(dbClient, serverIssueStorage, mock(NotificationManager.class), issueChangePostProcessor, | |||
new IssuesChangesNotificationSerializer()); | |||
private OperationResponseWriter responseWriter = mock(OperationResponseWriter.class); | |||
private ArgumentCaptor<SearchResponseData> preloadedSearchResponseDataCaptor = ArgumentCaptor.forClass(SearchResponseData.class); | |||
@@ -225,8 +228,8 @@ public class AddCommentActionTest { | |||
UserDto user = dbTester.users().insertUser("john"); | |||
userSession.logIn(user) | |||
.addProjectPermission(permission, | |||
dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getProjectUuid()).get(), | |||
dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getComponentUuid()).get()); | |||
dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getProjectUuid()).get(), | |||
dbClient.componentDao().selectByUuid(dbTester.getSession(), issueDto.getComponentUuid()).get()); | |||
} | |||
} |
@@ -26,6 +26,7 @@ import org.junit.Test; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.api.impl.utils.TestSystem2; | |||
import org.sonar.api.rules.RuleType; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
@@ -58,7 +59,6 @@ import static org.mockito.ArgumentMatchers.any; | |||
import static org.mockito.Mockito.mock; | |||
import static org.mockito.Mockito.verify; | |||
import static org.sonar.api.rules.RuleType.CODE_SMELL; | |||
import static org.sonar.api.rules.RuleType.SECURITY_HOTSPOT; | |||
import static org.sonar.api.web.UserRole.CODEVIEWER; | |||
import static org.sonar.api.web.UserRole.USER; | |||
import static org.sonar.server.tester.UserSessionRule.standalone; | |||
@@ -93,7 +93,7 @@ public class AssignActionTest { | |||
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer(); | |||
private AssignAction underTest = new AssignAction(system2, userSession, dbClient, new IssueFinder(dbClient, userSession), new IssueFieldsSetter(), | |||
new IssueUpdater(dbClient, | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer), | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()), | |||
notificationManager, issueChangePostProcessor, issuesChangesSerializer), | |||
responseWriter); | |||
private WsActionTester ws = new WsActionTester(underTest); |
@@ -34,6 +34,7 @@ import org.sonar.api.impl.utils.TestSystem2; | |||
import org.sonar.api.rules.RuleType; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.BranchType; | |||
@@ -119,7 +120,7 @@ public class BulkChangeActionTest { | |||
private IssueWorkflow issueWorkflow = new IssueWorkflow(new FunctionExecutor(issueFieldsSetter), issueFieldsSetter); | |||
private WebIssueStorage issueStorage = new WebIssueStorage(system2, dbClient, | |||
new DefaultRuleFinder(dbClient, TestDefaultOrganizationProvider.from(db)), | |||
new IssueIndexer(es.client(), dbClient, new IssueIteratorFactory(dbClient))); | |||
new IssueIndexer(es.client(), dbClient, new IssueIteratorFactory(dbClient)), new SequenceUuidFactory()); | |||
private NotificationManager notificationManager = mock(NotificationManager.class); | |||
private TestIssueChangePostProcessor issueChangePostProcessor = new TestIssueChangePostProcessor(); | |||
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer(); |
@@ -30,6 +30,7 @@ import org.sonar.api.rules.RuleType; | |||
import org.sonar.api.server.ws.Request; | |||
import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
@@ -101,8 +102,8 @@ public class DoTransitionActionTest { | |||
private TestIssueChangePostProcessor issueChangePostProcessor = new TestIssueChangePostProcessor(); | |||
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer(); | |||
private IssueUpdater issueUpdater = new IssueUpdater(dbClient, | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer), mock(NotificationManager.class), | |||
issueChangePostProcessor, issuesChangesSerializer); | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()), | |||
mock(NotificationManager.class), issueChangePostProcessor, issuesChangesSerializer); | |||
private ArgumentCaptor<SearchResponseData> preloadedSearchResponseDataCaptor = ArgumentCaptor.forClass(SearchResponseData.class); | |||
private WsAction underTest = new DoTransitionAction(dbClient, userSession, new IssueFinder(dbClient, userSession), issueUpdater, transitionService, responseWriter, system2); |
@@ -28,6 +28,7 @@ import org.sonar.api.rule.RuleStatus; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.issue.DefaultIssue; | |||
import org.sonar.core.issue.IssueChangeContext; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.BranchType; | |||
@@ -89,8 +90,8 @@ public class IssueUpdaterTest { | |||
private TestIssueChangePostProcessor issueChangePostProcessor = new TestIssueChangePostProcessor(); | |||
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer(); | |||
private IssueUpdater underTest = new IssueUpdater(dbClient, | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer), notificationManager, issueChangePostProcessor, | |||
issuesChangesSerializer); | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()), notificationManager, | |||
issueChangePostProcessor, issuesChangesSerializer); | |||
@Test | |||
public void update_issue() { |
@@ -41,6 +41,7 @@ import org.sonar.api.rules.RuleType; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.api.utils.Durations; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
@@ -283,14 +284,18 @@ public class SearchActionTest { | |||
RuleDefinitionDto rule = newIssueRule().getDefinition(); | |||
IssueDto issue = db.issues().insertIssue(rule, project, file, i -> i.setKee("82fd47d4-b650-4037-80bc-7b112bd4eac2")); | |||
dbClient.issueChangeDao().insert(session, | |||
new IssueChangeDto().setIssueKey(issue.getKey()) | |||
new IssueChangeDto() | |||
.setUuid(Uuids.createFast()) | |||
.setIssueKey(issue.getKey()) | |||
.setKey("COMMENT-ABCD") | |||
.setChangeData("*My comment*") | |||
.setChangeType(IssueChangeDto.TYPE_COMMENT) | |||
.setUserUuid(john.getUuid()) | |||
.setIssueChangeCreationDate(parseDateTime("2014-09-09T12:00:00+0000").getTime())); | |||
dbClient.issueChangeDao().insert(session, | |||
new IssueChangeDto().setIssueKey(issue.getKey()) | |||
new IssueChangeDto() | |||
.setUuid(Uuids.createFast()) | |||
.setIssueKey(issue.getKey()) | |||
.setKey("COMMENT-ABCE") | |||
.setChangeData("Another comment") | |||
.setChangeType(IssueChangeDto.TYPE_COMMENT) | |||
@@ -316,14 +321,18 @@ public class SearchActionTest { | |||
RuleDefinitionDto rule = newIssueRule().getDefinition(); | |||
IssueDto issue = db.issues().insertIssue(rule, project, file, i -> i.setKee("82fd47d4-b650-4037-80bc-7b112bd4eac2")); | |||
dbClient.issueChangeDao().insert(session, | |||
new IssueChangeDto().setIssueKey(issue.getKey()) | |||
new IssueChangeDto() | |||
.setUuid(Uuids.createFast()) | |||
.setIssueKey(issue.getKey()) | |||
.setKey("COMMENT-ABCD") | |||
.setChangeData("*My comment*") | |||
.setChangeType(IssueChangeDto.TYPE_COMMENT) | |||
.setUserUuid(john.getUuid()) | |||
.setCreatedAt(parseDateTime("2014-09-09T12:00:00+0000").getTime())); | |||
dbClient.issueChangeDao().insert(session, | |||
new IssueChangeDto().setIssueKey(issue.getKey()) | |||
new IssueChangeDto() | |||
.setUuid(Uuids.createFast()) | |||
.setIssueKey(issue.getKey()) | |||
.setKey("COMMENT-ABCE") | |||
.setChangeData("Another comment") | |||
.setChangeType(IssueChangeDto.TYPE_COMMENT) | |||
@@ -1146,6 +1155,7 @@ public class SearchActionTest { | |||
private void grantPermissionToAnyone(ComponentDto project, String permission) { | |||
dbClient.groupPermissionDao().insert(session, | |||
new GroupPermissionDto() | |||
.setUuid(Uuids.createFast()) | |||
.setOrganizationUuid(project.getOrganizationUuid()) | |||
.setGroupId(null) | |||
.setComponentUuid(project.uuid()) |
@@ -30,6 +30,7 @@ import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.issue.FieldDiffs; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
@@ -93,8 +94,8 @@ public class SetSeverityActionTest { | |||
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer(); | |||
private WsActionTester tester = new WsActionTester(new SetSeverityAction(userSession, dbClient, new IssueFinder(dbClient, userSession), new IssueFieldsSetter(), | |||
new IssueUpdater(dbClient, | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer), mock(NotificationManager.class), issueChangePostProcessor, | |||
issuesChangesSerializer), | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()), | |||
mock(NotificationManager.class), issueChangePostProcessor, issuesChangesSerializer), | |||
responseWriter)); | |||
@Test |
@@ -34,6 +34,7 @@ import org.sonar.api.server.ws.WebService.Action; | |||
import org.sonar.api.server.ws.WebService.Param; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.issue.FieldDiffs; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
@@ -94,9 +95,8 @@ public class SetTagsActionTest { | |||
private WsActionTester ws = new WsActionTester(new SetTagsAction(userSession, dbClient, new IssueFinder(dbClient, userSession), new IssueFieldsSetter(), | |||
new IssueUpdater(dbClient, | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer), mock(NotificationManager.class), | |||
issueChangePostProcessor, issuesChangesSerializer), | |||
responseWriter)); | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()), | |||
mock(NotificationManager.class), issueChangePostProcessor, issuesChangesSerializer), responseWriter)); | |||
@Test | |||
public void set_tags() { |
@@ -39,6 +39,7 @@ import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.issue.FieldDiffs; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
@@ -106,9 +107,8 @@ public class SetTypeActionTest { | |||
private IssuesChangesNotificationSerializer issuesChangesSerializer = new IssuesChangesNotificationSerializer(); | |||
private WsActionTester tester = new WsActionTester(new SetTypeAction(userSession, dbClient, new IssueFinder(dbClient, userSession), new IssueFieldsSetter(), | |||
new IssueUpdater(dbClient, | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer), mock(NotificationManager.class), | |||
issueChangePostProcessor, issuesChangesSerializer), | |||
responseWriter, system2)); | |||
new WebIssueStorage(system2, dbClient, new DefaultRuleFinder(dbClient, defaultOrganizationProvider), issueIndexer, new SequenceUuidFactory()), | |||
mock(NotificationManager.class), issueChangePostProcessor, issuesChangesSerializer), responseWriter, system2)); | |||
@Test | |||
@UseDataProvider("allTypesFromToExceptHotspots") |
@@ -29,6 +29,8 @@ import org.sonar.api.resources.ResourceTypes; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.api.web.UserRole; | |||
import org.sonar.core.permission.GlobalPermissions; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ResourceTypesRule; | |||
@@ -54,7 +56,7 @@ public class GroupPermissionChangerTest { | |||
private ResourceTypes resourceTypes = new ResourceTypesRule().setRootQualifiers(Qualifiers.PROJECT); | |||
private PermissionService permissionService = new PermissionServiceImpl(resourceTypes); | |||
private GroupPermissionChanger underTest = new GroupPermissionChanger(db.getDbClient()); | |||
private GroupPermissionChanger underTest = new GroupPermissionChanger(db.getDbClient(), new SequenceUuidFactory()); | |||
private OrganizationDto org; | |||
private GroupDto group; | |||
private ComponentDto privateProject; | |||
@@ -430,6 +432,7 @@ public class GroupPermissionChangerTest { | |||
private void unsafeInsertProjectPermissionOnAnyone(String perm) { | |||
GroupPermissionDto dto = new GroupPermissionDto() | |||
.setUuid(Uuids.createFast()) | |||
.setOrganizationUuid(privateProject.getOrganizationUuid()) | |||
.setGroupId(null) | |||
.setRole(perm) |
@@ -28,6 +28,7 @@ import org.sonar.api.impl.utils.AlwaysIncreasingSystem2; | |||
import org.sonar.api.resources.Qualifiers; | |||
import org.sonar.api.resources.ResourceTypes; | |||
import org.sonar.api.web.UserRole; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbSession; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
@@ -64,7 +65,8 @@ public class PermissionTemplateServiceTest { | |||
private DbSession session = dbTester.getSession(); | |||
private ProjectIndexers projectIndexers = new TestProjectIndexers(); | |||
private PermissionTemplateService underTest = new PermissionTemplateService(dbTester.getDbClient(), projectIndexers, userSession, defaultTemplatesResolver); | |||
private PermissionTemplateService underTest = new PermissionTemplateService(dbTester.getDbClient(), projectIndexers, userSession, defaultTemplatesResolver, | |||
new SequenceUuidFactory()); | |||
@Test | |||
public void apply_does_not_insert_permission_to_group_AnyOne_when_applying_template_on_private_project() { |
@@ -27,6 +27,7 @@ import org.junit.rules.ExpectedException; | |||
import org.sonar.api.resources.Qualifiers; | |||
import org.sonar.api.resources.ResourceTypes; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ResourceTypesRule; | |||
@@ -59,7 +60,7 @@ public class UserPermissionChangerTest { | |||
private ResourceTypes resourceTypes = new ResourceTypesRule().setRootQualifiers(Qualifiers.PROJECT); | |||
private PermissionService permissionService = new PermissionServiceImpl(resourceTypes); | |||
private UserPermissionChanger underTest = new UserPermissionChanger(db.getDbClient()); | |||
private UserPermissionChanger underTest = new UserPermissionChanger(db.getDbClient(), new SequenceUuidFactory()); | |||
private OrganizationDto org1; | |||
private OrganizationDto org2; | |||
private UserDto user1; |
@@ -24,6 +24,7 @@ import org.junit.Rule; | |||
import org.junit.rules.ExpectedException; | |||
import org.sonar.api.impl.utils.AlwaysIncreasingSystem2; | |||
import org.sonar.api.resources.Qualifiers; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.DbClient; | |||
import org.sonar.db.DbTester; | |||
import org.sonar.db.component.ResourceTypesRule; | |||
@@ -85,8 +86,8 @@ public abstract class BasePermissionWsTest<A extends PermissionsWsAction> { | |||
protected PermissionUpdater newPermissionUpdater() { | |||
return new PermissionUpdater( | |||
new ProjectIndexersImpl(new PermissionIndexer(db.getDbClient(), es.client())), | |||
new UserPermissionChanger(db.getDbClient()), | |||
new GroupPermissionChanger(db.getDbClient())); | |||
new UserPermissionChanger(db.getDbClient(), new SequenceUuidFactory()), | |||
new GroupPermissionChanger(db.getDbClient(), new SequenceUuidFactory())); | |||
} | |||
protected TestRequest newRequest() { |
@@ -24,6 +24,7 @@ import org.junit.Test; | |||
import org.sonar.api.resources.Qualifiers; | |||
import org.sonar.api.resources.ResourceTypes; | |||
import org.sonar.api.web.UserRole; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.component.ResourceTypesRule; | |||
@@ -473,6 +474,7 @@ public class RemoveGroupActionTest extends BasePermissionWsTest<RemoveGroupActio | |||
private void unsafeInsertProjectPermissionOnAnyone(String perm, ComponentDto project) { | |||
GroupPermissionDto dto = new GroupPermissionDto() | |||
.setUuid(Uuids.createFast()) | |||
.setOrganizationUuid(project.getOrganizationUuid()) | |||
.setGroupId(null) | |||
.setRole(perm) |
@@ -25,6 +25,7 @@ import org.junit.Before; | |||
import org.junit.Rule; | |||
import org.junit.Test; | |||
import org.sonar.api.web.UserRole; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.permission.PermissionQuery; | |||
import org.sonar.db.permission.template.PermissionTemplateDto; | |||
@@ -59,7 +60,7 @@ public class ApplyTemplateActionTest extends BasePermissionWsTest<ApplyTemplateA | |||
private PermissionTemplateDto template2; | |||
private PermissionTemplateService permissionTemplateService = new PermissionTemplateService(db.getDbClient(), | |||
new TestProjectIndexers(), userSession, defaultTemplatesResolver); | |||
new TestProjectIndexers(), userSession, defaultTemplatesResolver, new SequenceUuidFactory()); | |||
@Override | |||
protected ApplyTemplateAction buildWsAction() { |
@@ -27,6 +27,7 @@ import org.junit.Test; | |||
import org.sonar.api.resources.Qualifiers; | |||
import org.sonar.api.server.ws.WebService.Param; | |||
import org.sonar.api.web.UserRole; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.db.component.ComponentDto; | |||
import org.sonar.db.component.ComponentTesting; | |||
import org.sonar.db.organization.OrganizationDto; | |||
@@ -74,7 +75,7 @@ public class BulkApplyTemplateActionTest extends BasePermissionWsTest<BulkApplyT | |||
@Override | |||
protected BulkApplyTemplateAction buildWsAction() { | |||
PermissionTemplateService permissionTemplateService = new PermissionTemplateService(db.getDbClient(), | |||
projectIndexers, userSession, defaultTemplatesResolver); | |||
projectIndexers, userSession, defaultTemplatesResolver, new SequenceUuidFactory()); | |||
return new BulkApplyTemplateAction(db.getDbClient(), userSession, permissionTemplateService, newPermissionWsSupport(), new I18nRule(), newRootResourceTypes()); | |||
} | |||
@@ -32,6 +32,7 @@ import org.sonar.api.resources.ResourceTypes; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.api.web.UserRole; | |||
import org.sonar.core.util.SequenceUuidFactory; | |||
import org.sonar.core.util.Uuids; | |||
import org.sonar.core.util.stream.MoreCollectors; | |||
import org.sonar.db.DbClient; | |||
@@ -107,7 +108,8 @@ public class UpdateVisibilityActionTest { | |||
private BillingValidationsProxy billingValidations = mock(BillingValidationsProxy.class); | |||
private ProjectsWsSupport wsSupport = new ProjectsWsSupport(dbClient, TestDefaultOrganizationProvider.from(dbTester), billingValidations); | |||
private UpdateVisibilityAction underTest = new UpdateVisibilityAction(dbClient, TestComponentFinder.from(dbTester), userSessionRule, projectIndexers, wsSupport); | |||
private UpdateVisibilityAction underTest = new UpdateVisibilityAction(dbClient, TestComponentFinder.from(dbTester), | |||
userSessionRule, projectIndexers, wsSupport, new SequenceUuidFactory()); | |||
private WsActionTester ws = new WsActionTester(underTest); | |||
private final Random random = new Random(); | |||
@@ -593,7 +595,6 @@ public class UpdateVisibilityActionTest { | |||
.containsOnly(UserRole.ADMIN); | |||
} | |||
@Test | |||
public void fail_to_update_visibility_to_private_when_organization_is_not_allowed_to_use_private_projects() { | |||
OrganizationDto organization = dbTester.organizations().insert(); | |||
@@ -656,6 +657,7 @@ public class UpdateVisibilityActionTest { | |||
private void unsafeInsertProjectPermissionOnAnyone(ComponentDto component, String permission) { | |||
GroupPermissionDto dto = new GroupPermissionDto() | |||
.setUuid(Uuids.createFast()) | |||
.setOrganizationUuid(component.getOrganizationUuid()) | |||
.setGroupId(null) | |||
.setRole(permission) | |||
@@ -666,6 +668,7 @@ public class UpdateVisibilityActionTest { | |||
private void unsafeInsertProjectPermissionOnGroup(ComponentDto component, GroupDto group, String permission) { | |||
GroupPermissionDto dto = new GroupPermissionDto() | |||
.setUuid(Uuids.createFast()) | |||
.setOrganizationUuid(group.getOrganizationUuid()) | |||
.setGroupId(group.getId()) | |||
.setRole(permission) |
@@ -102,7 +102,7 @@ message CreateResponse { | |||
// POST api/qualitygates/create_condition | |||
message CreateConditionResponse { | |||
optional int64 id = 1; | |||
optional string id = 1; | |||
optional string metric = 2; | |||
optional string op = 3; | |||
optional string error = 5; | |||
@@ -110,7 +110,7 @@ message CreateConditionResponse { | |||
// POST api/qualitygates/update_condition | |||
message UpdateConditionResponse { | |||
optional int64 id = 1; | |||
optional string id = 1; | |||
optional string metric = 2; | |||
optional string op = 3; | |||
optional string error = 5; | |||
@@ -125,7 +125,7 @@ message ShowWsResponse { | |||
optional Actions actions = 5; | |||
message Condition { | |||
optional int64 id = 1; | |||
optional string id = 1; | |||
optional string metric = 2; | |||
optional string op = 4; | |||
optional string error = 6; |