Browse Source

rename Collectors to MoreCollectors

tags/6.4-RC1
Sébastien Lesaint 7 years ago
parent
commit
68af82a779
100 changed files with 275 additions and 275 deletions
  1. 2
    2
      server/sonar-db-core/src/test/java/org/sonar/db/AbstractDbTester.java
  2. 2
    2
      server/sonar-db-core/src/test/java/org/sonar/db/DatabaseUtilsTest.java
  3. 1
    1
      server/sonar-db-dao/src/main/java/org/sonar/db/KeyLongValue.java
  4. 2
    2
      server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueChangeDao.java
  5. 1
    1
      server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationQuery.java
  6. 2
    2
      server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionDao.java
  7. 2
    2
      server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java
  8. 4
    4
      server/sonar-db-dao/src/main/java/org/sonar/db/purge/period/DefaultPeriodCleaner.java
  9. 2
    2
      server/sonar-db-dao/src/test/java/org/sonar/db/ce/CeActivityDaoTest.java
  10. 2
    2
      server/sonar-db-dao/src/test/java/org/sonar/db/notification/NotificationDbTester.java
  11. 2
    2
      server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDbTester.java
  12. 1
    1
      server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/history/MigrationHistoryImpl.java
  13. 2
    2
      server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/sql/CreateTableBuilder.java
  14. 2
    2
      server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/sql/DropColumnsBuilder.java
  15. 2
    2
      server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/step/MigrationStepRegistryImpl.java
  16. 1
    1
      server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v62/DropIssueFiltersTables.java
  17. 1
    1
      server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v62/DropMeasureFiltersTables.java
  18. 1
    1
      server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v62/DropRelatedDashboardTables.java
  19. 1
    1
      server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v62/UpdateQualityGateConditionsOnCoverage.java
  20. 4
    4
      server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v56/PopulateInitialSchemaTest.java
  21. 2
    2
      server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v64/PopulateOrganizationMembersTableTest.java
  22. 3
    3
      server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v64/SetCopyComponentUuidOnLocalViewsTest.java
  23. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/authentication/UserIdentityAuthenticator.java
  24. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/authentication/event/AuthenticationEventImpl.java
  25. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/ce/ws/TaskAction.java
  26. 9
    9
      server/sonar-server/src/main/java/org/sonar/server/ce/ws/TaskFormatter.java
  27. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/component/ComponentFinder.java
  28. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/component/index/ComponentIndex.java
  29. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/component/ws/FilterParser.java
  30. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/component/ws/ProjectMeasuresQueryValidator.java
  31. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/component/ws/SearchAction.java
  32. 6
    6
      server/sonar-server/src/main/java/org/sonar/server/component/ws/SearchProjectsAction.java
  33. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/component/ws/SuggestionsAction.java
  34. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/component/ws/TreeAction.java
  35. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/computation/queue/PurgeCeActivities.java
  36. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/component/ComponentRootBuilder.java
  37. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitygate/QualityGateServiceImpl.java
  38. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/scm/DbScmInfo.java
  39. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/ComputeMeasureVariationsStep.java
  40. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java
  41. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/PersistComponentsStep.java
  42. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/QualityGateMeasuresStep.java
  43. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/webhook/WebhookPostTask.java
  44. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/es/EsUtils.java
  45. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/es/IndexType.java
  46. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/favorite/FavoriteFinder.java
  47. 6
    6
      server/sonar-server/src/main/java/org/sonar/server/favorite/ws/SearchAction.java
  48. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/issue/IssueFieldsSetter.java
  49. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/issue/IssueQueryFactory.java
  50. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/issue/TransitionAction.java
  51. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/issue/TransitionService.java
  52. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java
  53. 13
    13
      server/sonar-server/src/main/java/org/sonar/server/issue/ws/BulkChangeAction.java
  54. 7
    7
      server/sonar-server/src/main/java/org/sonar/server/issue/ws/ChangelogAction.java
  55. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/issue/ws/DeleteCommentAction.java
  56. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/issue/ws/EditCommentAction.java
  57. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java
  58. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchResponseLoader.java
  59. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/license/ws/ListAction.java
  60. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/measure/index/ProjectMeasuresDoc.java
  61. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/measure/index/ProjectMeasuresIndex.java
  62. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentAction.java
  63. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeDataLoader.java
  64. 6
    6
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchAction.java
  65. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchHistoryAction.java
  66. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchHistoryResponseFactory.java
  67. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchHistoryResult.java
  68. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/notification/NotificationUpdater.java
  69. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/notification/ws/AddAction.java
  70. 9
    9
      server/sonar-server/src/main/java/org/sonar/server/notification/ws/ListAction.java
  71. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/organization/ws/DeleteAction.java
  72. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/organization/ws/SearchMembersAction.java
  73. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/permission/PermissionTemplateService.java
  74. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/permission/index/PermissionIndexer.java
  75. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java
  76. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/platform/monitoring/SonarQubeMonitor.java
  77. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/platform/web/RedirectFilter.java
  78. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/platform/ws/LogsAction.java
  79. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/project/ws/IndexAction.java
  80. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/projectanalysis/ws/SearchAction.java
  81. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/projectanalysis/ws/SearchResponseBuilder.java
  82. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/projectanalysis/ws/SearchResults.java
  83. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/projecttag/ws/SetAction.java
  84. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/QgateProjectFinder.java
  85. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualitygate/ValidRatingMetrics.java
  86. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/CachingRuleActivatorContextFactory.java
  87. 5
    5
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/DefinedQProfileRepositoryImpl.java
  88. 1
    1
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QPMeasureData.java
  89. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/index/ActiveRuleIndexer.java
  90. 4
    4
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogLoader.java
  91. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/DeleteAction.java
  92. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ExportAction.java
  93. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileReference.java
  94. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/rule/RegisterRules.java
  95. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/rule/ws/ActiveRuleCompleter.java
  96. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/rule/ws/RepositoriesAction.java
  97. 3
    3
      server/sonar-server/src/main/java/org/sonar/server/rule/ws/SearchAction.java
  98. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/serverid/ws/ShowAction.java
  99. 2
    2
      server/sonar-server/src/main/java/org/sonar/server/setting/ws/ResetAction.java
  100. 0
    0
      server/sonar-server/src/main/java/org/sonar/server/source/SourceService.java

+ 2
- 2
server/sonar-db-core/src/test/java/org/sonar/db/AbstractDbTester.java View File

@@ -63,7 +63,7 @@ import org.dbunit.ext.mssql.InsertIdentityOperation;
import org.dbunit.operation.DatabaseOperation;
import org.junit.rules.ExternalResource;
import org.sonar.api.utils.log.Loggers;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.collect.Lists.asList;
@@ -478,7 +478,7 @@ public class AbstractDbTester<T extends CoreTestDb> extends ExternalResource {
columnNames.stream()
.sorted(PkColumn.ORDERING_BY_INDEX)
.map(PkColumn::getName)
.collect(Collectors.toList()));
.collect(MoreCollectors.toList()));
}
}


+ 2
- 2
server/sonar-db-core/src/test/java/org/sonar/db/DatabaseUtilsTest.java View File

@@ -36,7 +36,7 @@ import org.junit.rules.ExpectedException;
import org.sonar.api.utils.log.LogTester;
import org.sonar.api.utils.log.LoggerLevel;
import org.sonar.api.utils.log.Loggers;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.dialect.Oracle;

import static com.google.common.collect.Lists.newArrayList;
@@ -261,7 +261,7 @@ public class DatabaseUtilsTest {
List<String> outputs = DatabaseUtils.executeLargeInputs(inputs, input -> {
// Check that each partition is only done on 1000 elements max
assertThat(input.size()).isLessThanOrEqualTo(1000);
return input.stream().map(String::valueOf).collect(Collectors.toList());
return input.stream().map(String::valueOf).collect(MoreCollectors.toList());
});

assertThat(outputs).isEqualTo(expectedOutputs);

+ 1
- 1
server/sonar-db-dao/src/main/java/org/sonar/db/KeyLongValue.java View File

@@ -22,7 +22,7 @@ package org.sonar.db;
import java.util.List;
import java.util.Map;

import static org.sonar.core.util.stream.Collectors.uniqueIndex;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;

public class KeyLongValue {


+ 2
- 2
server/sonar-db-dao/src/main/java/org/sonar/db/issue/IssueChangeDao.java View File

@@ -23,7 +23,7 @@ import java.util.Collection;
import java.util.List;
import java.util.Optional;
import org.sonar.core.issue.FieldDiffs;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.Dao;
import org.sonar.db.DbSession;

@@ -36,7 +36,7 @@ public class IssueChangeDao implements Dao {
return selectByTypeAndIssueKeys(session, singletonList(issueKey), IssueChangeDto.TYPE_FIELD_CHANGE)
.stream()
.map(IssueChangeDto::toFieldDiffs)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

public List<IssueChangeDto> selectChangelogOfNonClosedIssuesByComponent(DbSession session, String componentUuid) {

+ 1
- 1
server/sonar-db-dao/src/main/java/org/sonar/db/organization/OrganizationQuery.java View File

@@ -25,7 +25,7 @@ import java.util.Set;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;

import static org.sonar.core.util.stream.Collectors.toSet;
import static org.sonar.core.util.stream.MoreCollectors.toSet;

public class OrganizationQuery {
private static final OrganizationQuery NO_QUERY = newOrganizationQueryBuilder().build();

+ 2
- 2
server/sonar-db-dao/src/main/java/org/sonar/db/permission/UserPermissionDao.java View File

@@ -23,7 +23,7 @@ import java.util.Collection;
import java.util.List;
import javax.annotation.Nullable;
import org.apache.ibatis.session.RowBounds;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.Dao;
import org.sonar.db.DatabaseUtils;
import org.sonar.db.DbSession;
@@ -62,7 +62,7 @@ public class UserPermissionDao implements Dao {
return dtos.stream()
.map(UserPermissionDto::getUserId)
.distinct()
.collect(Collectors.toList(dtos.size()));
.collect(MoreCollectors.toList(dtos.size()));
}

/**

+ 2
- 2
server/sonar-db-dao/src/main/java/org/sonar/db/purge/PurgeDao.java View File

@@ -27,7 +27,7 @@ import java.util.List;
import org.sonar.api.utils.System2;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.Dao;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDao;
@@ -117,7 +117,7 @@ public class PurgeDao implements Dao {
.setStrategy(Strategy.LEAVES)
.build())
.stream().map(ComponentDto::uuid)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());

purgeCommands.deleteComponentMeasures(analysisUuids, componentWithoutHistoricalDataUuids);
}

+ 4
- 4
server/sonar-db-dao/src/main/java/org/sonar/db/purge/period/DefaultPeriodCleaner.java View File

@@ -27,14 +27,14 @@ import org.sonar.api.config.Settings;
import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbSession;
import org.sonar.db.purge.IdUuidPair;
import org.sonar.db.purge.PurgeDao;
import org.sonar.db.purge.PurgeProfiler;
import org.sonar.db.purge.PurgeableAnalysisDto;

import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.toList;

public class DefaultPeriodCleaner {

@@ -67,11 +67,11 @@ public class DefaultPeriodCleaner {
Joiner.on(", ").join(
snapshots.stream()
.map(snapshot -> snapshot.getAnalysisUuid() + "@" + DateUtils.formatDateTime(snapshot.getDate()))
.collect(Collectors.toArrayList(snapshots.size()))));
.collect(MoreCollectors.toArrayList(snapshots.size()))));
}
purgeDao.deleteAnalyses(
session, profiler,
snapshots.stream().map(DefaultPeriodCleaner::toIdUuidPair).collect(Collectors.toList(snapshots.size())));
snapshots.stream().map(DefaultPeriodCleaner::toIdUuidPair).collect(MoreCollectors.toList(snapshots.size())));
return snapshots;
}


+ 2
- 2
server/sonar-db-dao/src/test/java/org/sonar/db/ce/CeActivityDaoTest.java View File

@@ -30,7 +30,7 @@ import org.junit.Rule;
import org.junit.Test;
import org.sonar.api.utils.internal.TestSystem2;
import org.sonar.core.util.CloseableIterator;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
import org.sonar.db.Pagination;
@@ -381,7 +381,7 @@ public class CeActivityDaoTest {
private List<String> selectPageOfUuids(Pagination pagination) {
return underTest.selectByQuery(db.getSession(), new CeTaskQuery(), pagination).stream()
.map(CeActivityToUuid.INSTANCE::apply)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

private enum CeActivityToUuid implements Function<CeActivityDto, String> {

+ 2
- 2
server/sonar-db-dao/src/test/java/org/sonar/db/notification/NotificationDbTester.java View File

@@ -21,7 +21,7 @@ package org.sonar.db.notification;

import java.util.List;
import javax.annotation.Nullable;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.DbTester;
@@ -51,7 +51,7 @@ public class NotificationDbTester {
.setUserId((int) userId)
.build(), dbSession).stream()
.filter(prop -> component == null ? prop.getResourceId() == null : prop.getResourceId() != null)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
assertThat(result).hasSize(1);
assertThat(result.get(0).getValue()).isEqualTo("true");
}

+ 2
- 2
server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDbTester.java View File

@@ -25,7 +25,7 @@ import java.util.Optional;
import java.util.function.Consumer;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDto;
@@ -296,6 +296,6 @@ public class UserDbTester {
return keys
.stream()
.map(OrganizationPermission::fromKey)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}
}

+ 1
- 1
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/history/MigrationHistoryImpl.java View File

@@ -34,7 +34,7 @@ import org.sonar.db.DatabaseUtils;
import org.sonar.server.platform.db.migration.step.RegisteredMigrationStep;

import static com.google.common.base.Preconditions.checkState;
import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.toList;

public class MigrationHistoryImpl implements MigrationHistory {
private static final String SCHEMA_MIGRATIONS_TABLE = "schema_migrations";

+ 2
- 2
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/sql/CreateTableBuilder.java View File

@@ -29,7 +29,7 @@ import java.util.List;
import java.util.Locale;
import java.util.stream.Stream;
import javax.annotation.CheckForNull;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.dialect.Dialect;
import org.sonar.db.dialect.H2;
import org.sonar.db.dialect.MsSql;
@@ -67,7 +67,7 @@ public class CreateTableBuilder {
checkState(!columnDefs.isEmpty() || !pkColumnDefs.isEmpty(), "at least one column must be specified");

return Stream.concat(of(createTableStatement()), createOracleAutoIncrementStatements())
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

public CreateTableBuilder addColumn(ColumnDef columnDef) {

+ 2
- 2
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/sql/DropColumnsBuilder.java View File

@@ -23,7 +23,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.dialect.Dialect;
import org.sonar.db.dialect.H2;
import org.sonar.db.dialect.MsSql;
@@ -58,7 +58,7 @@ public class DropColumnsBuilder {
case Oracle.ID:
return Collections.singletonList(getOracleStatement());
case H2.ID:
return Arrays.stream(columns).map(this::getMsSQLStatement).collect(Collectors.toList(columns.length));
return Arrays.stream(columns).map(this::getMsSQLStatement).collect(MoreCollectors.toList(columns.length));
default:
throw new IllegalStateException(String.format("Unsupported database '%s'", dialect.getId()));
}

+ 2
- 2
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/step/MigrationStepRegistryImpl.java View File

@@ -23,7 +23,7 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
@@ -54,7 +54,7 @@ public class MigrationStepRegistryImpl implements InternalMigrationStepRegistry
return migrations.entrySet().stream()
.sorted(Comparator.comparingLong(Map.Entry::getKey))
.map(Map.Entry::getValue)
.collect(Collectors.toList(migrations.size()));
.collect(MoreCollectors.toList(migrations.size()));
}

}

+ 1
- 1
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v62/DropIssueFiltersTables.java View File

@@ -30,7 +30,7 @@ import org.sonar.db.DatabaseUtils;
import org.sonar.server.platform.db.migration.sql.DropTableBuilder;
import org.sonar.server.platform.db.migration.step.DdlChange;

import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.toList;

public class DropIssueFiltersTables extends DdlChange {


+ 1
- 1
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v62/DropMeasureFiltersTables.java View File

@@ -30,7 +30,7 @@ import org.sonar.db.DatabaseUtils;
import org.sonar.server.platform.db.migration.sql.DropTableBuilder;
import org.sonar.server.platform.db.migration.step.DdlChange;

import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.toList;

public class DropMeasureFiltersTables extends DdlChange {


+ 1
- 1
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v62/DropRelatedDashboardTables.java View File

@@ -30,7 +30,7 @@ import org.sonar.db.DatabaseUtils;
import org.sonar.server.platform.db.migration.sql.DropTableBuilder;
import org.sonar.server.platform.db.migration.step.DdlChange;

import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.toList;

public class DropRelatedDashboardTables extends DdlChange {


+ 1
- 1
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v62/UpdateQualityGateConditionsOnCoverage.java View File

@@ -35,7 +35,7 @@ import org.sonar.server.platform.db.migration.step.DataChange;
import org.sonar.server.platform.db.migration.step.Select;

import static java.util.Objects.requireNonNull;
import static org.sonar.core.util.stream.Collectors.uniqueIndex;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
import static org.sonar.db.DatabaseUtils.repeatCondition;

/**

+ 4
- 4
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v56/PopulateInitialSchemaTest.java View File

@@ -26,7 +26,7 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.sonar.api.utils.System2;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.CoreDbTester;

import static org.assertj.core.api.Assertions.assertThat;
@@ -76,7 +76,7 @@ public class PopulateInitialSchemaTest {
"from group_roles gr where gr.group_id is null");
List<String> roles = rows.stream()
.map(row -> (String) row.get("role"))
.collect(Collectors.toArrayList());
.collect(MoreCollectors.toArrayList());
assertThat(roles).containsOnly("provisioning", "scan");
}

@@ -87,7 +87,7 @@ public class PopulateInitialSchemaTest {
"where g.name='" + groupName + "'");
return rows.stream()
.map(row -> (String) row.get("role"))
.collect(Collectors.toArrayList());
.collect(MoreCollectors.toArrayList());
}

private void verifyGroup(String expectedName, String expectedDescription) {
@@ -106,7 +106,7 @@ public class PopulateInitialSchemaTest {
"where u.login='admin'");
List<String> groupNames = rows.stream()
.map(row -> (String) row.get("groupName"))
.collect(Collectors.toArrayList());
.collect(MoreCollectors.toArrayList());
assertThat(groupNames).containsOnly("sonar-administrators", "sonar-users");
}


+ 2
- 2
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v64/PopulateOrganizationMembersTableTest.java View File

@@ -30,7 +30,7 @@ import org.apache.commons.lang.RandomStringUtils;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.CoreDbTester;
import org.sonar.server.platform.db.migration.version.v63.DefaultOrganizationUuidImpl;

@@ -305,7 +305,7 @@ public class PopulateOrganizationMembersTableTest {
List<Map<String, Object>> rows = db.select(format("SELECT ORGANIZATION_UUID FROM " + TABLE + " WHERE USER_ID = %s", userId));
List<String> userOrganizationUuids = rows.stream()
.map(values -> (String) values.get("ORGANIZATION_UUID"))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
assertThat(userOrganizationUuids).containsOnly(organizationUuids);
}


+ 3
- 3
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v64/SetCopyComponentUuidOnLocalViewsTest.java View File

@@ -30,7 +30,7 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.junit.Rule;
import org.junit.Test;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.CoreDbTester;

import static org.assertj.core.api.Assertions.assertThat;
@@ -167,12 +167,12 @@ public class SetCopyComponentUuidOnLocalViewsTest {
}

private void verifyComponentsHavingCopyComponentUuid(Component... expectedComponents) {
Map<String, Component> expectedComponentsByUuid = Arrays.stream(expectedComponents).collect(Collectors.uniqueIndex(Component::getUuid));
Map<String, Component> expectedComponentsByUuid = Arrays.stream(expectedComponents).collect(MoreCollectors.uniqueIndex(Component::getUuid));

List<Map<String, Object>> rows = db.select("SELECT uuid, copy_component_uuid FROM " + TABLE_PROJECTS + " WHERE copy_component_uuid IS NOT NULL");
Map<String, Component> components = rows.stream()
.map(map -> new Component((String) map.get("UUID"), (String) map.get("COPY_COMPONENT_UUID")))
.collect(Collectors.uniqueIndex(Component::getUuid));
.collect(MoreCollectors.uniqueIndex(Component::getUuid));
assertThat(components.keySet()).containsExactlyElementsOf(expectedComponentsByUuid.keySet());
components.entrySet().forEach(entry -> {
Component expectedComponent = expectedComponentsByUuid.get(entry.getKey());

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/authentication/UserIdentityAuthenticator.java View File

@@ -46,7 +46,7 @@ import org.sonar.server.user.UserUpdater;

import static java.lang.String.format;
import static java.util.Collections.singletonList;
import static org.sonar.core.util.stream.Collectors.uniqueIndex;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;

public class UserIdentityAuthenticator {


+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/authentication/event/AuthenticationEventImpl.java View File

@@ -25,7 +25,7 @@ import javax.annotation.Nullable;
import javax.servlet.http.HttpServletRequest;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;

import static java.util.Objects.requireNonNull;

@@ -47,7 +47,7 @@ public class AuthenticationEventImpl implements AuthenticationEvent {
}

private static String getAllIps(HttpServletRequest request) {
return Collections.list(request.getHeaders("X-Forwarded-For")).stream().collect(Collectors.join(Joiner.on(",")));
return Collections.list(request.getHeaders("X-Forwarded-For")).stream().collect(MoreCollectors.join(Joiner.on(",")));
}

@Override

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/ce/ws/TaskAction.java View File

@@ -32,7 +32,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.core.util.Uuids;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.ce.CeActivityDto;
@@ -173,13 +173,13 @@ public class TaskAction implements CeWsAction {
return null;
})
.filter(Objects::nonNull)
.collect(Collectors.toSet());
.collect(MoreCollectors.toSet());
}

public static Collection<String> possibleValues() {
return Arrays.stream(values())
.map(AdditionalField::getLabel)
.collect(Collectors.toList(values().length));
.collect(MoreCollectors.toList(values().length));
}
}
}

+ 9
- 9
server/sonar-server/src/main/java/org/sonar/server/ce/ws/TaskFormatter.java View File

@@ -31,7 +31,7 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.System2;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.ce.CeActivityDto;
@@ -62,7 +62,7 @@ public class TaskFormatter {

public List<WsCe.Task> formatQueue(DbSession dbSession, List<CeQueueDto> dtos) {
ComponentDtoCache cache = ComponentDtoCache.forQueueDtos(dbClient, dbSession, dtos);
return dtos.stream().map(input -> formatQueue(input, cache)).collect(Collectors.toList(dtos.size()));
return dtos.stream().map(input -> formatQueue(input, cache)).collect(MoreCollectors.toList(dtos.size()));
}

public WsCe.Task formatQueue(DbSession dbSession, CeQueueDto dto) {
@@ -107,7 +107,7 @@ public class TaskFormatter {
ComponentDtoCache cache = ComponentDtoCache.forActivityDtos(dbClient, dbSession, dtos);
return dtos.stream()
.map(input -> formatActivity(input, cache, null))
.collect(Collectors.toList(dtos.size()));
.collect(MoreCollectors.toList(dtos.size()));
}

private static WsCe.Task formatActivity(CeActivityDto dto, ComponentDtoCache componentDtoCache, @Nullable String scannerContext) {
@@ -156,7 +156,7 @@ public class TaskFormatter {
static ComponentDtoCache forQueueDtos(DbClient dbClient, DbSession dbSession, Collection<CeQueueDto> ceQueueDtos) {
Map<String, ComponentDto> componentsByUuid = dbClient.componentDao().selectByUuids(dbSession, uuidOfCeQueueDtos(ceQueueDtos))
.stream()
.collect(Collectors.uniqueIndex(ComponentDto::uuid));
.collect(MoreCollectors.uniqueIndex(ComponentDto::uuid));
return new ComponentDtoCache(componentsByUuid, buildOrganizationsByUuid(dbClient, dbSession, componentsByUuid));
}

@@ -165,7 +165,7 @@ public class TaskFormatter {
.filter(Objects::nonNull)
.map(CeQueueDto::getComponentUuid)
.filter(Objects::nonNull)
.collect(Collectors.toSet(ceQueueDtos.size()));
.collect(MoreCollectors.toSet(ceQueueDtos.size()));
}

static ComponentDtoCache forActivityDtos(DbClient dbClient, DbSession dbSession, Collection<CeActivityDto> ceActivityDtos) {
@@ -173,7 +173,7 @@ public class TaskFormatter {
dbSession,
uuidOfCeActivityDtos(ceActivityDtos))
.stream()
.collect(Collectors.uniqueIndex(ComponentDto::uuid));
.collect(MoreCollectors.uniqueIndex(ComponentDto::uuid));
return new ComponentDtoCache(componentsByUuid, buildOrganizationsByUuid(dbClient, dbSession, componentsByUuid));
}

@@ -182,7 +182,7 @@ public class TaskFormatter {
.filter(Objects::nonNull)
.map(CeActivityDto::getComponentUuid)
.filter(Objects::nonNull)
.collect(Collectors.toSet(ceActivityDtos.size()));
.collect(MoreCollectors.toSet(ceActivityDtos.size()));
}

static ComponentDtoCache forUuid(DbClient dbClient, DbSession dbSession, String uuid) {
@@ -200,9 +200,9 @@ public class TaskFormatter {
dbSession,
componentsByUuid.values().stream()
.map(ComponentDto::getOrganizationUuid)
.collect(Collectors.toSet(componentsByUuid.size())))
.collect(MoreCollectors.toSet(componentsByUuid.size())))
.stream()
.collect(Collectors.uniqueIndex(OrganizationDto::getUuid));
.collect(MoreCollectors.uniqueIndex(OrganizationDto::getUuid));
}

@CheckForNull

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/component/ComponentFinder.java View File

@@ -25,7 +25,7 @@ import javax.annotation.Nullable;
import org.sonar.api.resources.Qualifiers;
import org.sonar.api.resources.ResourceType;
import org.sonar.api.resources.ResourceTypes;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -92,7 +92,7 @@ public class ComponentFinder {
Set<String> rootQualifiers = rootTypes
.stream()
.map(ResourceType::getQualifier)
.collect(Collectors.toSet(rootTypes.size()));
.collect(MoreCollectors.toSet(rootTypes.size()));
String qualifier = component.qualifier();

checkRequest(rootQualifiers.contains(qualifier) || Qualifiers.MODULE.equals(qualifier),

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/component/index/ComponentIndex.java View File

@@ -36,7 +36,7 @@ import org.elasticsearch.search.aggregations.bucket.filters.InternalFilters;
import org.elasticsearch.search.aggregations.bucket.filters.InternalFilters.Bucket;
import org.elasticsearch.search.aggregations.metrics.tophits.InternalTopHits;
import org.elasticsearch.search.aggregations.metrics.tophits.TopHitsBuilder;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.server.es.EsClient;
import org.sonar.server.es.textsearch.ComponentTextSearchFeature;
import org.sonar.server.es.textsearch.ComponentTextSearchQueryFactory;
@@ -116,7 +116,7 @@ public class ComponentIndex {
List<Bucket> buckets = filtersAgg.getBuckets();
return buckets.stream()
.map(ComponentIndex::bucketToQualifier)
.collect(Collectors.toList(buckets.size()));
.collect(MoreCollectors.toList(buckets.size()));
}

private static ComponentsPerQualifier bucketToQualifier(Bucket bucket) {
@@ -126,7 +126,7 @@ public class ComponentIndex {
SearchHit[] hits = hitList.getHits();

List<String> componentUuids = Arrays.stream(hits).map(SearchHit::getId)
.collect(Collectors.toList(hits.length));
.collect(MoreCollectors.toList(hits.length));

return new ComponentsPerQualifier(bucket.getKey(), componentUuids, hitList.totalHits());
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/component/ws/FilterParser.java View File

@@ -27,7 +27,7 @@ import java.util.regex.Pattern;
import java.util.stream.StreamSupport;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;

import static com.google.common.base.Strings.isNullOrEmpty;
import static java.lang.String.format;
@@ -51,7 +51,7 @@ public class FilterParser {
public static List<Criterion> parse(String filter) {
return StreamSupport.stream(CRITERIA_SPLITTER.split(filter).spliterator(), false)
.map(FilterParser::parseCriterion)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

private static Criterion parseCriterion(String rawCriterion) {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/component/ws/ProjectMeasuresQueryValidator.java View File

@@ -29,8 +29,8 @@ import org.sonar.db.metric.MetricDto;
import org.sonar.server.measure.index.ProjectMeasuresQuery;

import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.core.util.stream.Collectors.toHashSet;
import static org.sonar.core.util.stream.Collectors.toSet;
import static org.sonar.core.util.stream.MoreCollectors.toHashSet;
import static org.sonar.core.util.stream.MoreCollectors.toSet;
import static org.sonar.server.measure.index.ProjectMeasuresQuery.MetricCriterion;
import static org.sonar.server.measure.index.ProjectMeasuresQuery.SORT_BY_NAME;


+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/component/ws/SearchAction.java View File

@@ -32,7 +32,7 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.Paging;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -48,7 +48,7 @@ import org.sonarqube.ws.client.component.SearchWsRequest;
import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.api.web.UserRole.USER;
import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.core.util.stream.Collectors.uniqueIndex;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
import static org.sonar.server.util.LanguageParamUtils.getExampleValue;
import static org.sonar.server.util.LanguageParamUtils.getLanguageKeys;
import static org.sonar.server.ws.WsParameterBuilder.createQualifiersParameter;
@@ -166,13 +166,13 @@ public class SearchAction implements ComponentsWsAction {
// Meanwhile root is explicitly handled.
return componentDtos;
}
Set<String> projectUuids = componentDtos.stream().map(ComponentDto::projectUuid).collect(Collectors.toSet());
Set<String> projectUuids = componentDtos.stream().map(ComponentDto::projectUuid).collect(MoreCollectors.toSet());
List<ComponentDto> projects = dbClient.componentDao().selectByUuids(dbSession, projectUuids);
Map<String, Long> projectIdsByUuids = projects.stream().collect(uniqueIndex(ComponentDto::uuid, ComponentDto::getId));
Collection<Long> authorizedProjectIds = dbClient.authorizationDao().keepAuthorizedProjectIds(dbSession, projectIdsByUuids.values(), userSession.getUserId(), USER);
return componentDtos.stream()
.filter(component -> authorizedProjectIds.contains(projectIdsByUuids.get(component.projectUuid())))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

private static SearchWsResponse buildResponse(List<ComponentDto> components, OrganizationDto organization, Paging paging) {

+ 6
- 6
server/sonar-server/src/main/java/org/sonar/server/component/ws/SearchProjectsAction.java View File

@@ -39,7 +39,7 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.DateUtils;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -67,7 +67,7 @@ import static java.util.Collections.emptyMap;
import static org.sonar.api.measures.CoreMetrics.ALERT_STATUS_KEY;
import static org.sonar.api.measures.CoreMetrics.NCLOC_KEY;
import static org.sonar.api.server.ws.WebService.Param.FIELDS;
import static org.sonar.core.util.stream.Collectors.toSet;
import static org.sonar.core.util.stream.MoreCollectors.toSet;
import static org.sonar.server.component.ws.ProjectMeasuresQueryFactory.IS_FAVORITE_CRITERION;
import static org.sonar.server.component.ws.ProjectMeasuresQueryFactory.newProjectMeasuresQuery;
import static org.sonar.server.measure.index.ProjectMeasuresIndex.SUPPORTED_FACETS;
@@ -201,7 +201,7 @@ public class SearchProjectsAction implements ComponentsWsAction {
Set<String> organizationUuids = searchResults.projects.stream().map(ComponentDto::getOrganizationUuid).collect(toSet());
Map<String, OrganizationDto> organizationsByUuid = dbClient.organizationDao().selectByUuids(dbSession, organizationUuids)
.stream()
.collect(Collectors.uniqueIndex(OrganizationDto::getUuid));
.collect(MoreCollectors.uniqueIndex(OrganizationDto::getUuid));
return buildResponse(request, searchResults, organizationsByUuid);
}

@@ -253,20 +253,20 @@ public class SearchProjectsAction implements ComponentsWsAction {

List<Long> favoriteDbIds = props.stream()
.map(PropertyDto::getResourceId)
.collect(Collectors.toList(props.size()));
.collect(MoreCollectors.toList(props.size()));

return dbClient.componentDao().selectByIds(dbSession, favoriteDbIds).stream()
.filter(ComponentDto::isEnabled)
.filter(f -> f.qualifier().equals(Qualifiers.PROJECT))
.map(ComponentDto::uuid)
.collect(Collectors.toSet());
.collect(MoreCollectors.toSet());
}

private Map<String, SnapshotDto> getSnapshots(DbSession dbSession, SearchProjectsRequest request, List<String> projectUuids) {
if (request.getAdditionalFields().contains(ANALYSIS_DATE)) {
return dbClient.snapshotDao().selectLastAnalysesByRootComponentUuids(dbSession, projectUuids)
.stream()
.collect(Collectors.uniqueIndex(SnapshotDto::getComponentUuid));
.collect(MoreCollectors.uniqueIndex(SnapshotDto::getComponentUuid));
}
return emptyMap();
}

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/component/ws/SuggestionsAction.java View File

@@ -30,7 +30,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.server.ws.WebService.NewAction;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -124,13 +124,13 @@ public class SuggestionsAction implements ComponentsWsAction {
List<Component> results = sortedComponentDtos
.stream()
.map(dto -> dtoToComponent(dto, organizationKeyByUuids))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());

return Qualifier.newBuilder()
.setQ(qualifier.getQualifier())
.addAllItems(results)
.build();
}).collect(Collectors.toList());
}).collect(MoreCollectors.toList());
}

}
@@ -138,9 +138,9 @@ public class SuggestionsAction implements ComponentsWsAction {
private Map<String, String> getOrganizationKeys(DbSession dbSession, List<ComponentDto> componentDtos) {
return dbClient.organizationDao().selectByUuids(
dbSession,
componentDtos.stream().map(ComponentDto::getOrganizationUuid).collect(Collectors.toSet()))
componentDtos.stream().map(ComponentDto::getOrganizationUuid).collect(MoreCollectors.toSet()))
.stream()
.collect(Collectors.uniqueIndex(OrganizationDto::getUuid, OrganizationDto::getKey));
.collect(MoreCollectors.uniqueIndex(OrganizationDto::getUuid, OrganizationDto::getKey));
}

private List<ComponentsPerQualifier> searchInIndex(ComponentIndexQuery componentIndexQuery) {

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/component/ws/TreeAction.java View File

@@ -40,7 +40,7 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.Paging;
import org.sonar.api.web.UserRole;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -186,13 +186,13 @@ public class TreeAction implements ComponentsWsAction {
List<String> referenceComponentIds = components.stream()
.map(ComponentDto::getCopyResourceUuid)
.filter(Objects::nonNull)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
if (referenceComponentIds.isEmpty()) {
return emptyMap();
}

return dbClient.componentDao().selectByUuids(dbSession, referenceComponentIds).stream()
.collect(Collectors.uniqueIndex(ComponentDto::uuid));
.collect(MoreCollectors.uniqueIndex(ComponentDto::uuid));
}

private void checkPermissions(ComponentDto baseComponent) {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/computation/queue/PurgeCeActivities.java View File

@@ -27,7 +27,7 @@ import org.sonar.api.platform.ServerStartHandler;
import org.sonar.api.utils.System2;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.ce.CeActivityDto;
@@ -56,7 +56,7 @@ public class PurgeCeActivities implements ServerStartHandler {
Set<String> ceActivityUuids = dbClient.ceActivityDao().selectOlderThan(dbSession, sixMonthsAgo.getTimeInMillis())
.stream()
.map(CeActivityDto::getUuid)
.collect(Collectors.toSet());
.collect(MoreCollectors.toSet());
dbClient.ceActivityDao().deleteByUuids(dbSession, ceActivityUuids);
dbClient.ceScannerContextDao().deleteByUuids(dbSession, ceActivityUuids);
dbSession.commit();

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/component/ComponentRootBuilder.java View File

@@ -36,7 +36,7 @@ import static java.lang.String.format;
import static org.apache.commons.lang.StringUtils.trimToNull;
import static org.sonar.core.component.ComponentKeys.createEffectiveKey;
import static org.sonar.core.component.ComponentKeys.createKey;
import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.toList;

public class ComponentRootBuilder {
private static final String DEFAULT_PROJECT_VERSION = "not provided";

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/qualitygate/QualityGateServiceImpl.java View File

@@ -21,7 +21,7 @@ package org.sonar.server.computation.task.projectanalysis.qualitygate;

import com.google.common.base.Optional;
import java.util.Collection;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.qualitygate.QualityGateConditionDto;
@@ -58,7 +58,7 @@ public class QualityGateServiceImpl implements QualityGateService {
Metric metric = metricRepository.getById(input.getMetricId());
return new Condition(metric, input.getOperator(), input.getErrorThreshold(), input.getWarningThreshold(), input.getPeriod() != null);
})
.collect(Collectors.toList(dtos.size()));
.collect(MoreCollectors.toList(dtos.size()));

return new QualityGate(qualityGateDto.getId(), qualityGateDto.getName(), conditions);
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/scm/DbScmInfo.java View File

@@ -29,7 +29,7 @@ import java.util.stream.StreamSupport;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.concurrent.Immutable;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.protobuf.DbFileSources;
import org.sonar.server.computation.task.projectanalysis.component.Component;

@@ -52,7 +52,7 @@ class DbScmInfo implements ScmInfo {
List<Changeset> lineChangesets = StreamSupport.stream(lines.spliterator(), false)
.map(lineToChangeset)
.filter(Objects::nonNull)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
if (lineChangesets.isEmpty()) {
return Optional.absent();
}

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/ComputeMeasureVariationsStep.java View File

@@ -29,7 +29,7 @@ import java.util.function.Predicate;
import java.util.stream.StreamSupport;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.measure.PastMeasureDto;
@@ -50,7 +50,7 @@ import org.sonar.server.computation.task.step.ComputationStep;
import static com.google.common.base.Preconditions.checkArgument;
import static java.lang.String.format;
import static java.util.function.Function.identity;
import static org.sonar.core.util.stream.Collectors.uniqueIndex;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
import static org.sonar.server.computation.task.projectanalysis.component.Component.Type.DIRECTORY;
import static org.sonar.server.computation.task.projectanalysis.component.Component.Type.SUBVIEW;
import static org.sonar.server.computation.task.projectanalysis.component.ComponentVisitor.Order.PRE_ORDER;
@@ -81,7 +81,7 @@ public class ComputeMeasureVariationsStep implements ComputationStep {
@Override
public void execute() {
try (DbSession dbSession = dbClient.openSession(false)) {
List<Metric> metrics = StreamSupport.stream(metricRepository.getAll().spliterator(), false).filter(isNumeric()).collect(Collectors.toList());
List<Metric> metrics = StreamSupport.stream(metricRepository.getAll().spliterator(), false).filter(isNumeric()).collect(MoreCollectors.toList());
new DepthTraversalTypeAwareCrawler(new VariationMeasuresVisitor(dbSession, metrics))
.visit(treeRootHolder.getRoot());
}
@@ -97,7 +97,7 @@ public class ComputeMeasureVariationsStep implements ComputationStep {
// measures on files are currently purged, so past measures are not available on files
super(CrawlerDepthLimit.reportMaxDepth(DIRECTORY).withViewsMaxDepth(SUBVIEW), PRE_ORDER);
this.session = session;
this.metricIds = metrics.stream().map(Metric::getId).collect(Collectors.toSet());
this.metricIds = metrics.stream().map(Metric::getId).collect(MoreCollectors.toSet());
this.metrics = metrics;
}


+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/LoadReportAnalysisMetadataHolderStep.java View File

@@ -27,7 +27,7 @@ import java.util.Optional;
import javax.annotation.Nullable;
import org.sonar.api.utils.MessageException;
import org.sonar.ce.queue.CeTask;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
@@ -45,7 +45,7 @@ import static com.google.common.base.Preconditions.checkState;
import static com.google.common.collect.Maps.transformValues;
import static java.lang.String.format;
import static org.apache.commons.lang.StringUtils.isNotEmpty;
import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.toList;

/**
* Feed analysis metadata holder with metadata from the analysis report.
@@ -105,7 +105,7 @@ public class LoadReportAnalysisMetadataHolderStep implements ComputationStep {
String badKeys = profiles.stream()
.filter(p -> !p.getOrganizationUuid().equals(organization.getUuid()))
.map(QualityProfileDto::getKey)
.collect(Collectors.join(Joiner.on(", ")));
.collect(MoreCollectors.join(Joiner.on(", ")));
if (!badKeys.isEmpty()) {
throw MessageException.of(format("Quality profiles with following keys don't exist in organization [%s]: %s", organization.getKey(), badKeys));
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/PersistComponentsStep.java View File

@@ -32,7 +32,7 @@ import org.apache.commons.lang.StringUtils;
import org.sonar.api.resources.Qualifiers;
import org.sonar.api.resources.Scopes;
import org.sonar.api.utils.System2;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -107,7 +107,7 @@ public class PersistComponentsStep implements ComputationStep {
Set<String> uuids = dtos.stream()
.filter(ComponentDto::isEnabled)
.map(ComponentDto::uuid)
.collect(Collectors.toSet(dtos.size()));
.collect(MoreCollectors.toSet(dtos.size()));
dbClient.componentDao().updateBEnabledToFalse(dbSession, uuids);
disabledComponentsHolder.setUuids(uuids);
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/step/QualityGateMeasuresStep.java View File

@@ -33,7 +33,7 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.apache.commons.lang.StringUtils;
import org.sonar.api.measures.CoreMetrics;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.server.computation.task.projectanalysis.component.Component;
import org.sonar.server.computation.task.projectanalysis.component.CrawlerDepthLimit;
import org.sonar.server.computation.task.projectanalysis.component.DepthTraversalTypeAwareCrawler;
@@ -171,7 +171,7 @@ public class QualityGateMeasuresStep implements ComputationStep {
}

private void updateMeasures(Component project, Set<Condition> conditions, QualityGateDetailsDataBuilder builder) {
Multimap<Metric, Condition> conditionsPerMetric = conditions.stream().collect(Collectors.index(Condition::getMetric, java.util.function.Function.identity()));
Multimap<Metric, Condition> conditionsPerMetric = conditions.stream().collect(MoreCollectors.index(Condition::getMetric, java.util.function.Function.identity()));
for (Map.Entry<Metric, Collection<Condition>> entry : conditionsPerMetric.asMap().entrySet()) {
Metric metric = entry.getKey();
Optional<Measure> measure = measureRepository.getRawMeasure(project, metric);

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/computation/task/projectanalysis/webhook/WebhookPostTask.java View File

@@ -28,7 +28,7 @@ import org.sonar.api.config.Settings;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.core.config.WebhookProperties;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.server.computation.task.projectanalysis.component.SettingsRepository;
import org.sonar.server.computation.task.projectanalysis.component.TreeRootHolder;

@@ -72,7 +72,7 @@ public class WebhookPostTask implements PostProjectAnalysisTask {
return Arrays.stream(webhookIds)
.map(webhookId -> format("%s.%s", propertyKey, webhookId))
.limit(MAX_WEBHOOKS_PER_TYPE)
.collect(Collectors.toList(webhookIds.length));
.collect(MoreCollectors.toList(webhookIds.length));
}

private void process(Settings settings, ProjectAnalysis analysis, Iterable<String> webhookProperties) {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/es/EsUtils.java View File

@@ -41,7 +41,7 @@ import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.joda.time.format.ISODateTimeFormat;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;

import static java.lang.String.format;

@@ -78,7 +78,7 @@ public class EsUtils {
public static List<String> termsKeys(Terms terms) {
return terms.getBuckets().stream()
.map(Terms.Bucket::getKeyAsString)
.collect(Collectors.toList(terms.getBuckets().size()));
.collect(MoreCollectors.toList(terms.getBuckets().size()));
}



+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/es/IndexType.java View File

@@ -21,7 +21,7 @@ package org.sonar.server.es;

import java.util.Arrays;
import java.util.function.Function;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;

import static java.util.Objects.requireNonNull;

@@ -52,7 +52,7 @@ public class IndexType {
}

private static String[] getDetails(Function<? super IndexType, ? extends String> function, IndexType... indexTypes) {
return Arrays.stream(indexTypes).map(function).collect(Collectors.toSet(indexTypes.length)).toArray(new String[0]);
return Arrays.stream(indexTypes).map(function).collect(MoreCollectors.toSet(indexTypes.length)).toArray(new String[0]);
}

@Override

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/favorite/FavoriteFinder.java View File

@@ -31,7 +31,7 @@ import org.sonar.db.property.PropertyQuery;
import org.sonar.server.user.UserSession;

import static java.util.Collections.emptyList;
import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.toList;
import static org.sonar.server.favorite.FavoriteUpdater.PROP_FAVORITE_KEY;

public class FavoriteFinder {

+ 6
- 6
server/sonar-server/src/main/java/org/sonar/server/favorite/ws/SearchAction.java View File

@@ -30,7 +30,7 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.Paging;
import org.sonar.api.web.UserRole;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -90,12 +90,12 @@ public class SearchAction implements FavoritesWsAction {
try (DbSession dbSession = dbClient.openSession(false)) {
List<ComponentDto> authorizedFavorites = favoriteFinder.list().stream()
.filter(isAuthorized(dbSession))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
Paging paging = Paging.forPageIndex(request.getPage()).withPageSize(request.getPageSize()).andTotal(authorizedFavorites.size());
List<ComponentDto> displayedFavorites = authorizedFavorites.stream()
.skip(paging.offset())
.limit(paging.pageSize())
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
Map<String, OrganizationDto> organizationsByUuid = getOrganizationsOfComponents(dbSession, displayedFavorites);
return new SearchResults(paging, displayedFavorites, organizationsByUuid);
}
@@ -105,17 +105,17 @@ public class SearchAction implements FavoritesWsAction {
Collection<String> rootProjectsUuids = dbClient.authorizationDao().selectAuthorizedRootProjectsUuids(dbSession, userSession.getUserId(), UserRole.USER);
Set<String> authorizedProjectUuids = rootProjectsUuids
.stream()
.collect(Collectors.toSet(rootProjectsUuids.size()));
.collect(MoreCollectors.toSet(rootProjectsUuids.size()));
return dto -> authorizedProjectUuids.contains(dto.projectUuid());
}

private Map<String, OrganizationDto> getOrganizationsOfComponents(DbSession dbSession, List<ComponentDto> displayedFavorites) {
Set<String> organizationUuids = displayedFavorites.stream()
.map(ComponentDto::getOrganizationUuid)
.collect(Collectors.toSet());
.collect(MoreCollectors.toSet());
return dbClient.organizationDao().selectByUuids(dbSession, organizationUuids)
.stream()
.collect(Collectors.uniqueIndex(OrganizationDto::getUuid));
.collect(MoreCollectors.uniqueIndex(OrganizationDto::getUuid));
}

private static class SearchResults {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/issue/IssueFieldsSetter.java View File

@@ -37,7 +37,7 @@ import org.sonar.api.utils.Duration;
import org.sonar.core.issue.DefaultIssue;
import org.sonar.core.issue.DefaultIssueComment;
import org.sonar.core.issue.IssueChangeContext;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.user.UserDto;

import static com.google.common.base.Preconditions.checkState;
@@ -316,7 +316,7 @@ public class IssueFieldsSetter {
.filter(Objects::nonNull)
.filter(tag -> !tag.isEmpty())
.map(tag -> RuleTagFormat.validate(tag.toLowerCase(Locale.ENGLISH)))
.collect(Collectors.toSet());
.collect(MoreCollectors.toSet());

Set<String> oldTags = Sets.newHashSet(issue.tags());
if (!oldTags.equals(newTags)) {

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/issue/IssueQueryFactory.java View File

@@ -45,7 +45,7 @@ import org.sonar.api.rule.RuleKey;
import org.sonar.api.server.ServerSide;
import org.sonar.api.utils.System2;
import org.sonar.api.web.UserRole;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -283,7 +283,7 @@ public class IssueQueryFactory {
return;
}

Set<String> qualifiers = components.stream().map(ComponentDto::qualifier).collect(Collectors.toHashSet());
Set<String> qualifiers = components.stream().map(ComponentDto::qualifier).collect(MoreCollectors.toHashSet());
if (qualifiers.size() > 1) {
throw new IllegalArgumentException("All components must have the same qualifier, found " + Joiner.on(',').join(qualifiers));
}
@@ -337,7 +337,7 @@ public class IssueQueryFactory {
}

private Collection<String> convertComponentKeysToUuids(DbSession dbSession, Collection<String> componentKeys) {
List<String> componentUuids = dbClient.componentDao().selectByKeys(dbSession, componentKeys).stream().map(ComponentDto::uuid).collect(Collectors.toList());
List<String> componentUuids = dbClient.componentDao().selectByKeys(dbSession, componentKeys).stream().map(ComponentDto::uuid).collect(MoreCollectors.toList());
// If unknown components are given, but no components are found, then all issues will be returned,
// so we add this hack in order to return no issue in this case.
if (!componentKeys.isEmpty() && componentUuids.isEmpty()) {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/issue/TransitionAction.java View File

@@ -23,7 +23,7 @@ import java.util.Collection;
import java.util.Map;
import org.sonar.api.server.ServerSide;
import org.sonar.core.issue.DefaultIssue;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.server.issue.workflow.Transition;
import org.sonar.server.user.UserSession;

@@ -60,7 +60,7 @@ public class TransitionAction extends Action {
return transitionService.listTransitions(issue)
.stream()
.map(Transition::key)
.collect(Collectors.toSet())
.collect(MoreCollectors.toSet())
.contains(transitionKey);
}


+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/issue/TransitionService.java View File

@@ -22,7 +22,7 @@ package org.sonar.server.issue;
import java.util.List;
import org.sonar.core.issue.DefaultIssue;
import org.sonar.core.issue.IssueChangeContext;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.server.issue.workflow.IssueWorkflow;
import org.sonar.server.issue.workflow.Transition;
import org.sonar.server.user.UserSession;
@@ -50,7 +50,7 @@ public class TransitionService {
.stream()
.filter(transition -> (userSession.isLoggedIn() && isBlank(transition.requiredProjectPermission()))
|| userSession.hasComponentUuidPermission(transition.requiredProjectPermission(), projectUuid))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

public boolean doTransition(DefaultIssue defaultIssue, IssueChangeContext issueChangeContext, String transitionKey) {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java View File

@@ -65,7 +65,7 @@ import org.sonar.api.resources.Scopes;
import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.System2;
import org.sonar.core.util.NonNullInputFunction;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.component.ComponentDto;
import org.sonar.server.es.EsClient;
import org.sonar.server.es.EsUtils;
@@ -529,7 +529,7 @@ public class IssueIndex {
if (values == null) {
return Collections.emptyList();
}
return values.stream().map(Pattern::quote).collect(Collectors.toArrayList(values.size()));
return values.stream().map(Pattern::quote).collect(MoreCollectors.toArrayList(values.size()));
}

private void addAssignedToMeFacetIfNeeded(SearchRequestBuilder builder, SearchOptions options, IssueQuery query, Map<String, QueryBuilder> filters, QueryBuilder queryBuilder) {

+ 13
- 13
server/sonar-server/src/main/java/org/sonar/server/issue/ws/BulkChangeAction.java View File

@@ -45,7 +45,7 @@ import org.sonar.api.utils.log.Loggers;
import org.sonar.api.web.UserRole;
import org.sonar.core.issue.DefaultIssue;
import org.sonar.core.issue.IssueChangeContext;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -70,8 +70,8 @@ import static org.sonar.api.rule.Severity.BLOCKER;
import static org.sonar.api.rules.RuleType.BUG;
import static org.sonar.core.util.Uuids.UUID_EXAMPLE_01;
import static org.sonar.core.util.Uuids.UUID_EXAMPLE_02;
import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.Collectors.uniqueIndex;
import static org.sonar.core.util.stream.MoreCollectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
import static org.sonar.server.es.SearchOptions.MAX_LIMIT;
import static org.sonar.server.issue.AbstractChangeTagsAction.TAGS_PARAMETER;
import static org.sonar.server.issue.AssignAction.ASSIGNEE_PARAMETER;
@@ -184,7 +184,7 @@ public class BulkChangeAction implements IssuesWsAction {
.map(loadData(dbSession))
.map(executeBulkChange())
.map(toWsResponse())
.collect(Collectors.toOneElement());
.collect(MoreCollectors.toOneElement());
writeProtobuf(wsResponse, request, response);
}
}
@@ -200,7 +200,7 @@ public class BulkChangeAction implements IssuesWsAction {

List<DefaultIssue> items = bulkChangeData.issues.stream()
.filter(bulkChange(issueChangeContext, bulkChangeData, result))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
issueStorage.save(items);
items.forEach(sendNotification(issueChangeContext, bulkChangeData));
return result;
@@ -301,20 +301,20 @@ public class BulkChangeAction implements IssuesWsAction {
checkArgument(issueKeys.size() <= MAX_LIMIT, "Number of issues is limited to %s", MAX_LIMIT);
List<IssueDto> allIssues = dbClient.issueDao().selectByKeys(dbSession, issueKeys);

List<ComponentDto> allProjects = getComponents(dbSession, allIssues.stream().map(IssueDto::getProjectUuid).collect(Collectors.toSet()));
List<ComponentDto> allProjects = getComponents(dbSession, allIssues.stream().map(IssueDto::getProjectUuid).collect(MoreCollectors.toSet()));
this.projectsByUuid = getAuthorizedProjects(dbSession, allProjects).stream().collect(uniqueIndex(ComponentDto::uuid, identity()));
this.issues = getAuthorizedIssues(allIssues);
this.componentsByUuid = getComponents(dbSession,
issues.stream().map(DefaultIssue::componentUuid).collect(Collectors.toSet())).stream()
issues.stream().map(DefaultIssue::componentUuid).collect(MoreCollectors.toSet())).stream()
.collect(uniqueIndex(ComponentDto::uuid, identity()));
this.rulesByKey = dbClient.ruleDao().selectDefinitionByKeys(dbSession,
issues.stream().map(DefaultIssue::ruleKey).collect(Collectors.toSet())).stream()
issues.stream().map(DefaultIssue::ruleKey).collect(MoreCollectors.toSet())).stream()
.collect(uniqueIndex(RuleDefinitionDto::getKey, identity()));

this.availableActions = actions.stream()
.filter(action -> propertiesByActions.containsKey(action.key()))
.filter(action -> action.verify(getProperties(action.key()), issues, userSession))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

private List<ComponentDto> getComponents(DbSession dbSession, Collection<String> componentUuids) {
@@ -328,15 +328,15 @@ public class BulkChangeAction implements IssuesWsAction {
userSession.getUserId(), UserRole.USER);
return projectDtos.stream()
.filter(project -> authorizedProjectIds.contains(projectIdsByUuids.get(project.projectUuid())))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

private List<DefaultIssue> getAuthorizedIssues(List<IssueDto> allIssues) {
Set<String> projectUuids = projectsByUuid.values().stream().map(ComponentDto::uuid).collect(Collectors.toSet());
Set<String> projectUuids = projectsByUuid.values().stream().map(ComponentDto::uuid).collect(MoreCollectors.toSet());
return allIssues.stream()
.filter(issue -> projectUuids.contains(issue.getProjectUuid()))
.map(IssueDto::toDefaultIssue)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

Map<String, Object> getProperties(String actionKey) {
@@ -344,7 +344,7 @@ public class BulkChangeAction implements IssuesWsAction {
}

List<Action> getActionsWithoutComment() {
return availableActions.stream().filter(action -> !action.key().equals(COMMENT_KEY)).collect(Collectors.toList());
return availableActions.stream().filter(action -> !action.key().equals(COMMENT_KEY)).collect(MoreCollectors.toList());
}

Optional<Action> getCommentAction() {

+ 7
- 7
server/sonar-server/src/main/java/org/sonar/server/issue/ws/ChangelogAction.java View File

@@ -32,7 +32,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.core.issue.FieldDiffs;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -87,7 +87,7 @@ public class ChangelogAction implements IssuesWsAction {
ChangelogWsResponse wsResponse = Stream.of(request)
.map(searchChangelog(dbSession))
.map(buildResponse())
.collect(Collectors.toOneElement());
.collect(MoreCollectors.toOneElement());
writeProtobuf(wsResponse, request, response);
}
}
@@ -100,7 +100,7 @@ public class ChangelogAction implements IssuesWsAction {
return result -> Stream.of(ChangelogWsResponse.newBuilder())
.peek(addChanges(result))
.map(ChangelogWsResponse.Builder::build)
.collect(Collectors.toOneElement());
.collect(MoreCollectors.toOneElement());
}

private Consumer<ChangelogWsResponse.Builder> addChanges(ChangeLogResults results) {
@@ -153,16 +153,16 @@ public class ChangelogAction implements IssuesWsAction {
ChangeLogResults(DbSession dbSession, String issueKey) {
IssueDto dbIssue = issueFinder.getByKey(dbSession, issueKey);
this.changes = dbClient.issueChangeDao().selectChangelogByIssue(dbSession, dbIssue.getKey());
List<String> logins = changes.stream().filter(change -> change.userLogin() != null).map(FieldDiffs::userLogin).collect(Collectors.toList());
this.users = dbClient.userDao().selectByLogins(dbSession, logins).stream().collect(Collectors.uniqueIndex(UserDto::getLogin));
this.files = dbClient.componentDao().selectByUuids(dbSession, getFileUuids(changes)).stream().collect(Collectors.uniqueIndex(ComponentDto::uuid, Function.identity()));
List<String> logins = changes.stream().filter(change -> change.userLogin() != null).map(FieldDiffs::userLogin).collect(MoreCollectors.toList());
this.users = dbClient.userDao().selectByLogins(dbSession, logins).stream().collect(MoreCollectors.uniqueIndex(UserDto::getLogin));
this.files = dbClient.componentDao().selectByUuids(dbSession, getFileUuids(changes)).stream().collect(MoreCollectors.uniqueIndex(ComponentDto::uuid, Function.identity()));
}

private Set<String> getFileUuids(List<FieldDiffs> changes) {
return changes.stream()
.filter(diffs -> diffs.diffs().containsKey(FILE))
.flatMap(diffs -> Stream.of(diffs.get(FILE).newValue().toString(), diffs.get(FILE).oldValue().toString()))
.collect(Collectors.toSet());
.collect(MoreCollectors.toSet());
}

@CheckForNull

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/issue/ws/DeleteCommentAction.java View File

@@ -27,7 +27,7 @@ import java.util.stream.Stream;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.issue.IssueChangeDto;
@@ -83,7 +83,7 @@ public class DeleteCommentAction implements IssuesWsAction {
IssueDto issueDto = Stream.of(request)
.map(loadCommentData(dbSession))
.peek(deleteComment(dbSession))
.collect(Collectors.toOneElement())
.collect(MoreCollectors.toOneElement())
.getIssueDto();
responseWriter.write(issueDto.getKey(), request, response);
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/issue/ws/EditCommentAction.java View File

@@ -28,7 +28,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.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.issue.IssueChangeDto;
@@ -94,7 +94,7 @@ public class EditCommentAction implements IssuesWsAction {
.map(toWsRequest())
.map(loadCommentData(dbSession))
.peek(updateComment(dbSession))
.collect(Collectors.toOneElement())
.collect(MoreCollectors.toOneElement())
.getIssueDto();
responseWriter.write(issueDto.getKey(), request, response);
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java View File

@@ -37,7 +37,7 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.Paging;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.server.es.Facets;
import org.sonar.server.es.SearchOptions;
import org.sonar.server.es.SearchResult;
@@ -308,7 +308,7 @@ public class SearchAction implements IssuesWsAction {

// execute request
SearchResult<IssueDoc> result = issueIndex.search(query, options);
List<String> issueKeys = result.getDocs().stream().map(IssueDoc::key).collect(Collectors.toList(result.getDocs().size()));
List<String> issueKeys = result.getDocs().stream().map(IssueDoc::key).collect(MoreCollectors.toList(result.getDocs().size()));

// load the additional information to be returned in response
SearchResponseLoader.Collector collector = new SearchResponseLoader.Collector(additionalFields, issueKeys);

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchResponseLoader.java View File

@@ -29,7 +29,7 @@ import java.util.Map;
import java.util.Set;
import javax.annotation.Nullable;
import org.sonar.core.issue.DefaultIssue;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -135,7 +135,7 @@ public class SearchResponseLoader {
}
dbClient.organizationDao().selectByUuids(
dbSession,
components.stream().map(ComponentDto::getOrganizationUuid).collect(Collectors.toSet()))
components.stream().map(ComponentDto::getOrganizationUuid).collect(MoreCollectors.toSet()))
.forEach(result::addOrganization);
}


+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/license/ws/ListAction.java View File

@@ -34,7 +34,7 @@ import org.sonar.api.config.PropertyDefinitions;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.server.setting.ws.Setting;
@@ -47,7 +47,7 @@ import org.sonarqube.ws.Licenses.ListWsResponse;
import static com.google.common.base.Strings.isNullOrEmpty;
import static org.sonar.api.CoreProperties.PERMANENT_SERVER_ID;
import static org.sonar.api.PropertyType.LICENSE;
import static org.sonar.core.util.stream.Collectors.uniqueIndex;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.client.license.LicensesWsParameters.ACTION_LIST;

@@ -90,7 +90,7 @@ public class ListAction implements WsAction {
private ListWsResponse doHandle(DbSession dbSession) {
Map<String, PropertyDefinition> licenseDefinitionsByKeys = definitions.getAll().stream()
.filter(definition -> LICENSE.equals(definition.type()))
.collect(Collectors.uniqueIndex(PropertyDefinition::key, Function.identity()));
.collect(MoreCollectors.uniqueIndex(PropertyDefinition::key, Function.identity()));
Set<String> settingsKeys = new HashSet<>(licenseDefinitionsByKeys.keySet());
settingsKeys.add(PERMANENT_SERVER_ID);
List<Setting> settings = settingsFinder.loadGlobalSettings(dbSession, settingsKeys);

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/measure/index/ProjectMeasuresDoc.java View File

@@ -27,7 +27,7 @@ import java.util.List;
import java.util.Map;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.server.es.BaseDoc;

import static org.sonar.api.measures.Metric.Level.ERROR;
@@ -124,7 +124,7 @@ public class ProjectMeasuresDoc extends BaseDoc {
.map(entry -> ImmutableMap.<String, Object>of(
FIELD_MEASURES_KEY, entry.getKey(),
FIELD_MEASURES_VALUE, entry.getValue()))
.collect(Collectors.toList()));
.collect(MoreCollectors.toList()));
return this;
}


+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/measure/index/ProjectMeasuresIndex.java View File

@@ -41,7 +41,7 @@ import org.elasticsearch.search.aggregations.bucket.range.RangeBuilder;
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder;
import org.elasticsearch.search.sort.FieldSortBuilder;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.server.es.DefaultIndexSettingsElement;
import org.sonar.server.es.EsClient;
import org.sonar.server.es.SearchIdResult;
@@ -332,7 +332,7 @@ public class ProjectMeasuresIndex {

return aggregation.getBuckets().stream()
.map(Bucket::getKeyAsString)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

@FunctionalInterface

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentAction.java View File

@@ -37,7 +37,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.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -230,7 +230,7 @@ public class ComponentAction implements MeasuresWsAction {
List<MetricDtoWithBestValue> metricWithBestValueList = metrics.stream()
.filter(MetricDtoFunctions.isOptimizedForBestValue())
.map(new MetricDtoToMetricDtoWithBestValueFunction())
.collect(Collectors.toList(metrics.size()));
.collect(MoreCollectors.toList(metrics.size()));
Map<Integer, MeasureDto> measuresByMetricId = Maps.uniqueIndex(measures, MeasureDto::getMetricId);

for (MetricDtoWithBestValue metricWithBestValue : metricWithBestValueList) {

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/measure/ws/ComponentTreeDataLoader.java View File

@@ -45,7 +45,7 @@ import javax.annotation.Nullable;
import org.sonar.api.resources.Qualifiers;
import org.sonar.api.resources.ResourceTypes;
import org.sonar.api.web.UserRole;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -137,7 +137,7 @@ public class ComponentTreeDataLoader {
List<String> referenceComponentUUids = components.stream()
.map(ComponentDto::getCopyResourceUuid)
.filter(Objects::nonNull)
.collect(Collectors.toList(components.size()));
.collect(MoreCollectors.toList(components.size()));
if (referenceComponentUUids.isEmpty()) {
return emptyMap();
}
@@ -207,7 +207,7 @@ public class ComponentTreeDataLoader {
List<MetricDtoWithBestValue> metricDtosWithBestValueMeasure = metrics.stream()
.filter(MetricDtoFunctions.isOptimizedForBestValue())
.map(new MetricDtoToMetricDtoWithBestValue())
.collect(Collectors.toList(metrics.size()));
.collect(MoreCollectors.toList(metrics.size()));
if (metricDtosWithBestValueMeasure.isEmpty()) {
return;
}
@@ -235,7 +235,7 @@ public class ComponentTreeDataLoader {
return components
.stream()
.filter(new HasMeasure(measuresByComponentUuidAndMetric, metricToSort.get(), wsRequest))
.collect(Collectors.toList(components.size()));
.collect(MoreCollectors.toList(components.size()));
}

private static boolean componentWithMeasuresOnly(ComponentTreeWsRequest wsRequest) {
@@ -251,7 +251,7 @@ public class ComponentTreeDataLoader {
return components.stream()
.skip(offset(wsRequest.getPage(), wsRequest.getPageSize()))
.limit(wsRequest.getPageSize())
.collect(Collectors.toList(wsRequest.getPageSize()));
.collect(MoreCollectors.toList(wsRequest.getPageSize()));
}

@CheckForNull

+ 6
- 6
server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchAction.java View File

@@ -30,7 +30,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.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -48,8 +48,8 @@ import static java.util.stream.Collectors.toMap;
import static org.sonar.api.resources.Qualifiers.PROJECT;
import static org.sonar.api.resources.Qualifiers.SUBVIEW;
import static org.sonar.api.resources.Qualifiers.VIEW;
import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.Collectors.uniqueIndex;
import static org.sonar.core.util.stream.MoreCollectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
import static org.sonar.server.measure.ws.MeasureDtoToWsMeasure.dbToWsMeasure;
import static org.sonar.server.measure.ws.MeasuresWsParametersBuilder.createMetricKeysParameter;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
@@ -131,7 +131,7 @@ public class SearchAction implements MeasuresWsAction {

private List<ComponentDto> searchProjects() {
List<ComponentDto> componentDtos = searchByProjectKeys(dbSession, request.getProjectKeys());
checkArgument(ALLOWED_QUALIFIERS.containsAll(componentDtos.stream().map(ComponentDto::qualifier).collect(Collectors.toSet())),
checkArgument(ALLOWED_QUALIFIERS.containsAll(componentDtos.stream().map(ComponentDto::qualifier).collect(MoreCollectors.toSet())),
"Only component of qualifiers %s are allowed", ALLOWED_QUALIFIERS);
return getAuthorizedProjects(componentDtos);
}
@@ -147,7 +147,7 @@ public class SearchAction implements MeasuresWsAction {
// Meanwhile root is explicitly handled.
return componentDtos;
}
Set<String> projectUuids = componentDtos.stream().map(ComponentDto::projectUuid).collect(Collectors.toSet());
Set<String> projectUuids = componentDtos.stream().map(ComponentDto::projectUuid).collect(MoreCollectors.toSet());
List<ComponentDto> projectDtos = dbClient.componentDao().selectByUuids(dbSession, projectUuids);
Map<String, Long> projectIdsByUuids = projectDtos.stream().collect(uniqueIndex(ComponentDto::uuid, ComponentDto::getId));
Set<Long> authorizedProjectIds = dbClient.authorizationDao().keepAuthorizedProjectIds(dbSession,
@@ -155,7 +155,7 @@ public class SearchAction implements MeasuresWsAction {
userSession.getUserId(), UserRole.USER);
return componentDtos.stream()
.filter(component -> authorizedProjectIds.contains(projectIdsByUuids.get(component.projectUuid())))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

private List<MetricDto> searchMetrics() {

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchHistoryAction.java View File

@@ -30,7 +30,7 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.web.UserRole;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -121,7 +121,7 @@ public class SearchHistoryAction implements MeasuresWsAction {
.map(SearchHistoryAction::toWsRequest)
.map(search())
.map(result -> new SearchHistoryResponseFactory(result).apply())
.collect(Collectors.toOneElement());
.collect(MoreCollectors.toOneElement());

writeProtobuf(searchHistoryResponse, request, response);
}
@@ -151,7 +151,7 @@ public class SearchHistoryAction implements MeasuresWsAction {
Date to = parseEndingDateOrDateTime(request.getTo());
PastMeasureQuery dbQuery = new PastMeasureQuery(
result.getComponent().uuid(),
result.getMetrics().stream().map(MetricDto::getId).collect(Collectors.toList()),
result.getMetrics().stream().map(MetricDto::getId).collect(MoreCollectors.toList()),
from == null ? null : from.getTime(),
to == null ? null : (to.getTime() + 1_000L));
return dbClient.measureDao().selectPastMeasures(dbSession, dbQuery);
@@ -171,8 +171,8 @@ public class SearchHistoryAction implements MeasuresWsAction {
private List<MetricDto> searchMetrics(DbSession dbSession, SearchHistoryRequest request) {
List<MetricDto> metrics = dbClient.metricDao().selectByKeys(dbSession, request.getMetrics());
if (request.getMetrics().size() > metrics.size()) {
Set<String> requestedMetrics = request.getMetrics().stream().collect(Collectors.toSet());
Set<String> foundMetrics = metrics.stream().map(MetricDto::getKey).collect(Collectors.toSet());
Set<String> requestedMetrics = request.getMetrics().stream().collect(MoreCollectors.toSet());
Set<String> foundMetrics = metrics.stream().map(MetricDto::getKey).collect(MoreCollectors.toSet());

Set<String> unfoundMetrics = Sets.difference(requestedMetrics, foundMetrics).immutableCopy();
throw new IllegalArgumentException(format("Metrics %s are not found", String.join(", ", unfoundMetrics)));

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchHistoryResponseFactory.java View File

@@ -25,7 +25,7 @@ import java.util.Map;
import java.util.function.Predicate;
import java.util.function.UnaryOperator;
import java.util.stream.Stream;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.component.SnapshotDto;
import org.sonar.db.measure.MeasureDto;
import org.sonar.db.metric.MetricDto;
@@ -53,7 +53,7 @@ class SearchHistoryResponseFactory {
.map(addPaging())
.map(addMeasures())
.map(SearchHistoryResponse.Builder::build)
.collect(Collectors.toOneElement());
.collect(MoreCollectors.toOneElement());
}

private UnaryOperator<SearchHistoryResponse.Builder> addPaging() {
@@ -61,8 +61,8 @@ class SearchHistoryResponseFactory {
}

private UnaryOperator<SearchHistoryResponse.Builder> addMeasures() {
Map<Integer, MetricDto> metricsById = result.getMetrics().stream().collect(Collectors.uniqueIndex(MetricDto::getId));
Map<String, SnapshotDto> analysesByUuid = result.getAnalyses().stream().collect(Collectors.uniqueIndex(SnapshotDto::getUuid));
Map<Integer, MetricDto> metricsById = result.getMetrics().stream().collect(MoreCollectors.uniqueIndex(MetricDto::getId));
Map<String, SnapshotDto> analysesByUuid = result.getAnalyses().stream().collect(MoreCollectors.uniqueIndex(SnapshotDto::getUuid));
Table<MetricDto, SnapshotDto, MeasureDto> measuresByMetricByAnalysis = HashBasedTable.create(result.getMetrics().size(), result.getAnalyses().size());
result.getMeasures().forEach(m -> measuresByMetricByAnalysis.put(metricsById.get(m.getMetricId()), analysesByUuid.get(m.getAnalysisUuid()), m));


+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/measure/ws/SearchHistoryResult.java View File

@@ -25,7 +25,7 @@ import com.google.common.collect.Table;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.SnapshotDto;
import org.sonar.db.measure.MeasureDto;
@@ -67,7 +67,7 @@ class SearchHistoryResult {

SearchHistoryResult setAnalyses(List<SnapshotDto> analyses) {
this.paging = Common.Paging.newBuilder().setPageIndex(request.getPage()).setPageSize(request.getPageSize()).setTotal(analyses.size()).build();
this.analyses = analyses.stream().skip(offset(request.getPage(), request.getPageSize())).limit(request.getPageSize()).collect(Collectors.toList());
this.analyses = analyses.stream().skip(offset(request.getPage(), request.getPageSize())).limit(request.getPageSize()).collect(MoreCollectors.toList());

return this;
}
@@ -86,11 +86,11 @@ class SearchHistoryResult {
}

SearchHistoryResult setMeasures(List<MeasureDto> measures) {
Set<String> analysisUuids = analyses.stream().map(SnapshotDto::getUuid).collect(Collectors.toHashSet());
Set<String> analysisUuids = analyses.stream().map(SnapshotDto::getUuid).collect(MoreCollectors.toHashSet());
ImmutableList.Builder<MeasureDto> measuresBuilder = ImmutableList.builder();
List<MeasureDto> filteredMeasures = measures.stream()
.filter(measure -> analysisUuids.contains(measure.getAnalysisUuid()))
.collect(Collectors.toArrayList());
.collect(MoreCollectors.toArrayList());
measuresBuilder.addAll(filteredMeasures);
measuresBuilder.addAll(computeBestValues(filteredMeasures));


+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/notification/NotificationUpdater.java View File

@@ -22,7 +22,7 @@ package org.sonar.server.notification;
import java.util.List;
import java.util.function.Predicate;
import javax.annotation.Nullable;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -64,7 +64,7 @@ public class NotificationUpdater {
.build(),
dbSession).stream()
.filter(notificationScope(project))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
checkArgument(existingNotification.isEmpty()
|| !PROP_NOTIFICATION_VALUE.equals(existingNotification.get(0).getValue()), "Notification already added");

@@ -95,7 +95,7 @@ public class NotificationUpdater {
.build(),
dbSession).stream()
.filter(notificationScope(project))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
checkArgument(!existingNotification.isEmpty() && PROP_NOTIFICATION_VALUE.equals(existingNotification.get(0).getValue()), "Notification doesn't exist");

dbClient.propertiesDao().delete(dbSession, new PropertyDto()

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/notification/ws/AddAction.java View File

@@ -44,7 +44,7 @@ import org.sonarqube.ws.client.notification.AddRequest;

import static java.util.Optional.empty;
import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.core.util.stream.Collectors.toList;
import static org.sonar.core.util.stream.MoreCollectors.toList;
import static org.sonar.server.notification.NotificationDispatcherMetadata.GLOBAL_NOTIFICATION;
import static org.sonar.server.notification.NotificationDispatcherMetadata.PER_PROJECT_NOTIFICATION;
import static org.sonar.server.ws.WsUtils.checkRequest;

+ 9
- 9
server/sonar-server/src/main/java/org/sonar/server/notification/ws/ListAction.java View File

@@ -36,7 +36,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.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -53,7 +53,7 @@ import static java.util.Comparator.comparing;
import static java.util.Comparator.naturalOrder;
import static java.util.Comparator.nullsFirst;
import static org.sonar.core.util.Protobuf.setNullable;
import static org.sonar.core.util.stream.Collectors.toOneElement;
import static org.sonar.core.util.stream.MoreCollectors.toOneElement;
import static org.sonar.server.notification.NotificationDispatcherMetadata.GLOBAL_NOTIFICATION;
import static org.sonar.server.notification.NotificationDispatcherMetadata.PER_PROJECT_NOTIFICATION;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
@@ -71,9 +71,9 @@ public class ListAction implements NotificationsWsAction {
public ListAction(NotificationCenter notificationCenter, DbClient dbClient, UserSession userSession) {
this.dbClient = dbClient;
this.userSession = userSession;
this.globalDispatchers = notificationCenter.getDispatcherKeysForProperty(GLOBAL_NOTIFICATION, "true").stream().sorted().collect(Collectors.toList());
this.perProjectDispatchers = notificationCenter.getDispatcherKeysForProperty(PER_PROJECT_NOTIFICATION, "true").stream().sorted().collect(Collectors.toList());
this.channels = notificationCenter.getChannels().stream().map(NotificationChannel::getKey).sorted().collect(Collectors.toList());
this.globalDispatchers = notificationCenter.getDispatcherKeysForProperty(GLOBAL_NOTIFICATION, "true").stream().sorted().collect(MoreCollectors.toList());
this.perProjectDispatchers = notificationCenter.getDispatcherKeysForProperty(PER_PROJECT_NOTIFICATION, "true").stream().sorted().collect(MoreCollectors.toList());
this.channels = notificationCenter.getChannels().stream().map(NotificationChannel::getKey).sorted().collect(MoreCollectors.toList());
}

@Override
@@ -154,20 +154,20 @@ public class ListAction implements NotificationsWsAction {
Set<Long> componentIds = properties.stream()
.map(PropertyDto::getResourceId)
.filter(Objects::nonNull)
.collect(Collectors.toSet(properties.size()));
.collect(MoreCollectors.toSet(properties.size()));
return dbClient.componentDao().selectByIds(dbSession, componentIds)
.stream()
.filter(c -> authorizedComponentUuids.contains(c.uuid()))
.collect(Collectors.uniqueIndex(ComponentDto::getId));
.collect(MoreCollectors.uniqueIndex(ComponentDto::getId));
}

private Map<String, OrganizationDto> getOrganizations(DbSession dbSession, Collection<ComponentDto> values) {
Set<String> organizationUuids = values.stream()
.map(ComponentDto::getOrganizationUuid)
.collect(Collectors.toSet());
.collect(MoreCollectors.toSet());
return dbClient.organizationDao().selectByUuids(dbSession, organizationUuids)
.stream()
.collect(Collectors.uniqueIndex(OrganizationDto::getUuid));
.collect(MoreCollectors.uniqueIndex(OrganizationDto::getUuid));
}

private static Function<PropertyDto, Notification> toWsNotification(Notification.Builder notification,

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/organization/ws/DeleteAction.java View File

@@ -23,7 +23,7 @@ import java.util.List;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -137,7 +137,7 @@ public class DeleteAction implements OrganizationsWsAction {
List<QualityProfileDto> profiles = dbClient.qualityProfileDao().selectAll(dbSession, organization);
List<String> profileKeys = profiles.stream()
.map(QualityProfileDto::getKey)
.collect(Collectors.toArrayList(profiles.size()));
.collect(MoreCollectors.toArrayList(profiles.size()));
qProfileFactory.deleteByKeys(dbSession, profileKeys);
dbSession.commit();
}

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/organization/ws/SearchMembersAction.java View File

@@ -33,7 +33,7 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.server.ws.WebService.SelectionMode;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
@@ -103,11 +103,11 @@ public class SearchMembersAction implements OrganizationsWsAction {
SearchOptions searchOptions = buildSearchOptions(request);

SearchResult<UserDoc> searchResults = userIndex.search(userQuery.build(), searchOptions);
List<String> orderedLogins = searchResults.getDocs().stream().map(UserDoc::login).collect(Collectors.toList());
List<String> orderedLogins = searchResults.getDocs().stream().map(UserDoc::login).collect(MoreCollectors.toList());

List<UserDto> users = dbClient.userDao().selectByLogins(dbSession, orderedLogins).stream()
.sorted(Ordering.explicit(orderedLogins).onResultOf(UserDto::getLogin))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());

Multiset<String> groupCountByLogin = null;
if (userSession.hasPermission(OrganizationPermission.ADMINISTER, organization)) {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/permission/PermissionTemplateService.java View File

@@ -31,7 +31,7 @@ import org.apache.commons.lang.StringUtils;
import org.sonar.api.resources.Qualifiers;
import org.sonar.api.server.ServerSide;
import org.sonar.core.component.ComponentKeys;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -103,7 +103,7 @@ public class PermissionTemplateService {
copyPermissions(dbSession, template, project, null);
}
dbSession.commit();
indexProjectPermissions(dbSession, projects.stream().map(ComponentDto::uuid).collect(Collectors.toList()));
indexProjectPermissions(dbSession, projects.stream().map(ComponentDto::uuid).collect(MoreCollectors.toList()));
}

/**

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/permission/index/PermissionIndexer.java View File

@@ -29,7 +29,7 @@ import java.util.Set;
import java.util.stream.Stream;
import org.elasticsearch.action.index.IndexRequest;
import org.sonar.api.utils.DateUtils;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.server.es.BulkIndexer;
@@ -41,7 +41,7 @@ import org.sonar.server.es.StartupIndexer;
import org.sonar.server.permission.index.PermissionIndexerDao.Dto;

import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.core.util.stream.Collectors.toSet;
import static org.sonar.core.util.stream.MoreCollectors.toSet;

/**
* Manages the synchronization of indexes with authorization settings defined in database:
@@ -62,7 +62,7 @@ public class PermissionIndexer implements ProjectIndexer, StartupIndexer {
public PermissionIndexer(DbClient dbClient, EsClient esClient, NeedAuthorizationIndexer... needAuthorizationIndexers) {
this(dbClient, esClient, Arrays.stream(needAuthorizationIndexers)
.map(NeedAuthorizationIndexer::getAuthorizationScope)
.collect(Collectors.toList(needAuthorizationIndexers.length)));
.collect(MoreCollectors.toList(needAuthorizationIndexers.length)));
}

@VisibleForTesting

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/permission/ws/GroupsAction.java View File

@@ -31,7 +31,7 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.Paging;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
@@ -162,7 +162,7 @@ public class GroupsAction implements PermissionsWsAction {
if (groups.isEmpty()) {
return emptyList();
}
List<Integer> ids = groups.stream().map(GroupDto::getId).collect(Collectors.toList(groups.size()));
List<Integer> ids = groups.stream().map(GroupDto::getId).collect(MoreCollectors.toList(groups.size()));
return dbClient.groupPermissionDao().selectByGroupIds(dbSession, org.getUuid(), ids, project.isPresent() ? project.get().getId() : null);
}
}

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/platform/monitoring/SonarQubeMonitor.java View File

@@ -32,7 +32,7 @@ import org.sonar.api.config.Settings;
import org.sonar.api.platform.Server;
import org.sonar.api.security.SecurityRealm;
import org.sonar.api.server.authentication.IdentityProvider;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.process.ProcessProperties;
import org.sonar.server.authentication.IdentityProviderRepository;
import org.sonar.server.platform.ServerId;
@@ -90,7 +90,7 @@ public class SonarQubeMonitor extends BaseMonitorMBean implements SonarQubeMonit
.stream()
.filter(IdentityProvider::isEnabled)
.map(IdentityProvider::getName)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

private List<String> getAllowsToSignUpEnabledIdentityProviders() {
@@ -99,7 +99,7 @@ public class SonarQubeMonitor extends BaseMonitorMBean implements SonarQubeMonit
.filter(IdentityProvider::isEnabled)
.filter(IdentityProvider::allowsUsersToSignUp)
.map(IdentityProvider::getName)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

private boolean getForceAuthentication() {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/platform/web/RedirectFilter.java View File

@@ -32,7 +32,7 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;

import static java.lang.String.format;

@@ -54,7 +54,7 @@ public class RedirectFilter implements Filter {
Predicate<Redirect> match = redirect -> redirect.test(path);
List<Redirect> redirects = REDIRECTS.stream()
.filter(match)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());

switch (redirects.size()) {
case 0:

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/platform/ws/LogsAction.java View File

@@ -25,7 +25,7 @@ import org.apache.commons.io.FileUtils;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.process.ProcessId;
import org.sonar.server.platform.ServerLogging;
import org.sonar.server.user.UserSession;
@@ -58,7 +58,7 @@ public class LogsAction implements SystemWsAction {
.setPossibleValues(stream(ProcessId.values())
.map(ProcessId::getKey)
.sorted()
.collect(Collectors.toList(ProcessId.values().length)))
.collect(MoreCollectors.toList(ProcessId.values().length)))
.setDefaultValue(ProcessId.APP.getKey())
.setSince("6.2")
.setDescription("Process to get logs from");

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/project/ws/IndexAction.java View File

@@ -31,7 +31,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.text.JsonWriter;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -39,7 +39,7 @@ import org.sonar.server.user.UserSession;

import static java.util.Optional.ofNullable;
import static org.sonar.api.web.UserRole.USER;
import static org.sonar.core.util.stream.Collectors.uniqueIndex;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;
import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001;
import static org.sonarqube.ws.client.project.ProjectsWsParameters.ACTION_INDEX;

@@ -139,13 +139,13 @@ public class IndexAction implements ProjectsWsAction {
// Meanwhile root is explicitly handled.
return components;
}
Set<String> projectUuids = components.stream().map(ComponentDto::projectUuid).collect(Collectors.toSet());
Set<String> projectUuids = components.stream().map(ComponentDto::projectUuid).collect(MoreCollectors.toSet());
List<ComponentDto> projects = dbClient.componentDao().selectByUuids(dbSession, projectUuids);
Map<String, Long> projectIdsByUuids = projects.stream().collect(uniqueIndex(ComponentDto::uuid, ComponentDto::getId));
Collection<Long> authorizedProjectIds = dbClient.authorizationDao().keepAuthorizedProjectIds(dbSession, projectIdsByUuids.values(), userSession.getUserId(), USER);
return components.stream()
.filter(component -> authorizedProjectIds.contains(projectIdsByUuids.get(component.projectUuid())))
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

private static void addProject(JsonWriter json, ComponentDto project) {

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/projectanalysis/ws/SearchAction.java View File

@@ -31,7 +31,7 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.web.UserRole;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -45,7 +45,7 @@ import org.sonarqube.ws.client.projectanalysis.EventCategory;
import org.sonarqube.ws.client.projectanalysis.SearchRequest;

import static com.google.common.base.Preconditions.checkArgument;
import static org.sonar.core.util.stream.Collectors.toOneElement;
import static org.sonar.core.util.stream.MoreCollectors.toOneElement;
import static org.sonar.db.component.SnapshotQuery.SORT_FIELD.BY_DATE;
import static org.sonar.db.component.SnapshotQuery.SORT_ORDER.DESC;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
@@ -133,7 +133,7 @@ public class SearchAction implements ProjectAnalysesWsAction {

private Consumer<SearchResults.Builder> addEvents() {
return data -> {
List<String> analyses = data.getAnalyses().stream().map(SnapshotDto::getUuid).collect(Collectors.toList());
List<String> analyses = data.getAnalyses().stream().map(SnapshotDto::getUuid).collect(MoreCollectors.toList());
data.setEvents(dbClient.eventDao().selectByAnalysisUuids(data.getDbSession(), analyses));
};
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/projectanalysis/ws/SearchResponseBuilder.java View File

@@ -22,7 +22,7 @@ package org.sonar.server.projectanalysis.ws;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Stream;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.component.SnapshotDto;
import org.sonar.db.event.EventDto;
import org.sonarqube.ws.ProjectAnalyses.Analysis;
@@ -47,7 +47,7 @@ class SearchResponseBuilder {
.peek(addAnalyses(searchResults))
.peek(addPagination(searchResults))
.map(SearchResponse.Builder::build)
.collect(Collectors.toOneElement());
.collect(MoreCollectors.toOneElement());
}

private Consumer<SearchResponse.Builder> addAnalyses(SearchResults searchResults) {

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/projectanalysis/ws/SearchResults.java View File

@@ -24,7 +24,7 @@ import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Stream;
import org.sonar.api.utils.Paging;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
import org.sonar.db.component.SnapshotDto;
@@ -48,7 +48,7 @@ class SearchResults {
}

private ListMultimap<String, EventDto> buildEvents(List<EventDto> events) {
return events.stream().collect(Collectors.index(EventDto::getAnalysisUuid));
return events.stream().collect(MoreCollectors.index(EventDto::getAnalysisUuid));
}

static Builder builder(DbSession dbSession, SearchRequest request) {
@@ -82,7 +82,7 @@ class SearchResults {
.limit(request.getPageSize());
}

this.analyses = stream.collect(Collectors.toList());
this.analyses = stream.collect(MoreCollectors.toList());
this.countAnalyses = analyses.size();
return this;
}
@@ -110,14 +110,14 @@ class SearchResults {

private void filterByCategory() {
ListMultimap<String, String> eventCategoriesByAnalysisUuid = events.stream()
.collect(Collectors.index(EventDto::getAnalysisUuid, EventDto::getCategory));
.collect(MoreCollectors.index(EventDto::getAnalysisUuid, EventDto::getCategory));
Predicate<SnapshotDto> byCategory = a -> eventCategoriesByAnalysisUuid.get(a.getUuid()).contains(request.getCategory().getLabel());
this.countAnalyses = (int) analyses.stream().filter(byCategory).count();
this.analyses = analyses.stream()
.filter(byCategory)
.skip(Paging.offset(request.getPage(), request.getPageSize()))
.limit(request.getPageSize())
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

SearchResults build() {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/projecttag/ws/SetAction.java View File

@@ -27,7 +27,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.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -89,7 +89,7 @@ public class SetAction implements ProjectTagsWsAction {
.map(t -> t.toLowerCase(Locale.ENGLISH))
.map(SetAction::checkTag)
.distinct()
.collect(Collectors.toList());
.collect(MoreCollectors.toList());

try (DbSession dbSession = dbClient.openSession(false)) {
ComponentDto project = componentFinder.getByKey(dbSession, projectKey);

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/qualitygate/QgateProjectFinder.java View File

@@ -24,7 +24,7 @@ import java.util.List;
import org.sonar.api.server.ServerSide;
import org.sonar.api.utils.Paging;
import org.sonar.api.web.UserRole;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.qualitygate.ProjectQgateAssociation;
@@ -70,11 +70,11 @@ public class QgateProjectFinder {
}

private static List<ProjectQgateAssociationDto> getPaginatedProjects(List<ProjectQgateAssociationDto> projects, Paging paging) {
return projects.stream().skip(paging.offset()).limit(paging.pageSize()).collect(Collectors.toList());
return projects.stream().skip(paging.offset()).limit(paging.pageSize()).collect(MoreCollectors.toList());
}

private static List<ProjectQgateAssociation> toProjectAssociations(List<ProjectQgateAssociationDto> dtos) {
return dtos.stream().map(ProjectQgateAssociationDto::toQgateAssociation).collect(Collectors.toList());
return dtos.stream().map(ProjectQgateAssociationDto::toQgateAssociation).collect(MoreCollectors.toList());
}

private List<ProjectQgateAssociationDto> keepAuthorizedProjects(DbSession dbSession, List<ProjectQgateAssociationDto> projects) {
@@ -84,9 +84,9 @@ public class QgateProjectFinder {
// Meanwhile root is explicitly handled.
return projects;
}
List<Long> projectIds = projects.stream().map(ProjectQgateAssociationDto::getId).collect(Collectors.toList());
List<Long> projectIds = projects.stream().map(ProjectQgateAssociationDto::getId).collect(MoreCollectors.toList());
Collection<Long> authorizedProjectIds = dbClient.authorizationDao().keepAuthorizedProjectIds(dbSession, projectIds, userSession.getUserId(), UserRole.USER);
return projects.stream().filter(project -> authorizedProjectIds.contains(project.getId())).collect(Collectors.toList());
return projects.stream().filter(project -> authorizedProjectIds.contains(project.getId())).collect(MoreCollectors.toList());
}

public static class Association {

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualitygate/ValidRatingMetrics.java View File

@@ -23,7 +23,7 @@ import java.util.Set;
import org.sonar.api.measures.CoreMetrics;

import static org.sonar.api.measures.Metric.ValueType.RATING;
import static org.sonar.core.util.stream.Collectors.toSet;
import static org.sonar.core.util.stream.MoreCollectors.toSet;

public class ValidRatingMetrics {


+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/CachingRuleActivatorContextFactory.java View File

@@ -27,7 +27,7 @@ import java.util.Optional;
import java.util.concurrent.ExecutionException;
import org.picocontainer.Startable;
import org.sonar.api.rule.RuleKey;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.qualityprofile.ActiveRuleDto;
@@ -78,6 +78,6 @@ public class CachingRuleActivatorContextFactory extends RuleActivatorContextFact

private Map<RuleKey, ActiveRuleDto> loadActiveRulesOfQualityProfile(DbSession session, String profileKey) {
return dbClient.activeRuleDao().selectByProfileKey(session, profileKey).stream()
.collect(Collectors.uniqueIndex(dto -> dto.getKey().ruleKey()));
.collect(MoreCollectors.uniqueIndex(dto -> dto.getKey().ruleKey()));
}
}

+ 5
- 5
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/DefinedQProfileRepositoryImpl.java View File

@@ -40,7 +40,7 @@ import org.sonar.api.utils.ValidationMessages;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.api.utils.log.Profiler;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
@@ -123,12 +123,12 @@ public class DefinedQProfileRepositoryImpl implements DefinedQProfileRepository
Map<String, List<DefinedQProfile.Builder>> buildersByLanguage = Multimaps.asMap(rulesProfilesByLanguage)
.entrySet()
.stream()
.collect(Collectors.uniqueIndex(Map.Entry::getKey, DefinedQProfileRepositoryImpl::toQualityProfileBuilders));
.collect(MoreCollectors.uniqueIndex(Map.Entry::getKey, DefinedQProfileRepositoryImpl::toQualityProfileBuilders));
return buildersByLanguage
.entrySet()
.stream()
.filter(DefinedQProfileRepositoryImpl::ensureAtMostOneDeclaredDefault)
.collect(Collectors.uniqueIndex(Map.Entry::getKey, entry -> toQualityProfiles(entry.getValue()), buildersByLanguage.size()));
.collect(MoreCollectors.uniqueIndex(Map.Entry::getKey, entry -> toQualityProfiles(entry.getValue()), buildersByLanguage.size()));
}

/**
@@ -162,7 +162,7 @@ public class DefinedQProfileRepositoryImpl implements DefinedQProfileRepository
Set<String> declaredDefaultProfileNames = entry.getValue().stream()
.filter(DefinedQProfile.Builder::isDeclaredDefault)
.map(DefinedQProfile.Builder::getName)
.collect(Collectors.toSet());
.collect(MoreCollectors.toSet());
checkState(declaredDefaultProfileNames.size() <= 1, "Several Quality profiles are flagged as default for the language %s: %s", entry.getKey(), declaredDefaultProfileNames);
return true;
}
@@ -195,6 +195,6 @@ public class DefinedQProfileRepositoryImpl implements DefinedQProfileRepository
MessageDigest md5Digest = DigestUtils.getMd5Digest();
return builders.stream()
.map(builder -> builder.build(md5Digest))
.collect(Collectors.toList(builders.size()));
.collect(MoreCollectors.toList(builders.size()));
}
}

+ 1
- 1
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/QPMeasureData.java View File

@@ -33,7 +33,7 @@ import org.sonar.api.utils.text.JsonWriter;
import org.sonar.core.util.UtcDateUtils;

import static java.util.function.Function.identity;
import static org.sonar.core.util.stream.Collectors.uniqueIndex;
import static org.sonar.core.util.stream.MoreCollectors.uniqueIndex;

/**
* Represents the array of JSON objects stored in the value of the

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/index/ActiveRuleIndexer.java View File

@@ -26,7 +26,7 @@ import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.sonar.api.utils.System2;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.qualityprofile.ActiveRuleKey;
@@ -88,7 +88,7 @@ public class ActiveRuleIndexer extends BaseIndexer {
deleteKeys(changes.stream()
.filter(c -> c.getType().equals(ActiveRuleChange.Type.DEACTIVATED))
.map(ActiveRuleChange::getKey)
.collect(Collectors.toList(changes.size())));
.collect(MoreCollectors.toList(changes.size())));

index();
}

+ 4
- 4
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogLoader.java View File

@@ -29,7 +29,7 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.server.ServerSide;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.qualityprofile.QProfileChangeDto;
@@ -55,7 +55,7 @@ public class ChangelogLoader {
List<QProfileChangeDto> dtos = dbClient.qProfileChangeDao().selectByQuery(dbSession, query);
List<Change> changes = dtos.stream()
.map(Change::from)
.collect(Collectors.toList(dtos.size()));
.collect(MoreCollectors.toList(dtos.size()));
completeUserAndRuleNames(dbSession, changes);

int total = dbClient.qProfileChangeDao().countForProfileKey(dbSession, query.getProfileKey());
@@ -63,13 +63,13 @@ public class ChangelogLoader {
}

private void completeUserAndRuleNames(DbSession dbSession, List<Change> changes) {
Set<String> logins = changes.stream().filter(c -> c.userLogin != null).map(c -> c.userLogin).collect(Collectors.toSet());
Set<String> logins = changes.stream().filter(c -> c.userLogin != null).map(c -> c.userLogin).collect(MoreCollectors.toSet());
Map<String, String> userNamesByLogins = dbClient.userDao()
.selectByLogins(dbSession, logins)
.stream()
.collect(java.util.stream.Collectors.toMap(UserDto::getLogin, UserDto::getName));

Set<RuleKey> ruleKeys = changes.stream().filter(c -> c.ruleKey != null).map(c -> c.ruleKey).collect(Collectors.toSet());
Set<RuleKey> ruleKeys = changes.stream().filter(c -> c.ruleKey != null).map(c -> c.ruleKey).collect(MoreCollectors.toSet());
Map<RuleKey, String> ruleNamesByKeys = dbClient.ruleDao()
.selectDefinitionByKeys(dbSession, Lists.newArrayList(ruleKeys))
.stream()

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/DeleteAction.java View File

@@ -26,7 +26,7 @@ import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.api.server.ws.WebService.NewController;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.qualityprofile.QualityProfileDto;
@@ -100,6 +100,6 @@ public class DeleteAction implements QProfileWsAction {
private static List<String> toKeys(QualityProfileDto profile, List<QualityProfileDto> descendants) {
return Stream.concat(Stream.of(profile), descendants.stream())
.map(QualityProfileDto::getKee)
.collect(Collectors.toList(descendants.size() + 1));
.collect(MoreCollectors.toList(descendants.size() + 1));
}
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/ExportAction.java View File

@@ -34,7 +34,7 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.Response.Stream;
import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
@@ -90,7 +90,7 @@ public class ExportAction implements QProfileWsAction {
.map(language -> exporters.exportersForLanguage(language.getKey()))
.flatMap(Collection::stream)
.map(ProfileExporter::getKey)
.collect(Collectors.toSet());
.collect(MoreCollectors.toSet());
if (!exporterKeys.isEmpty()) {
action.createParam(PARAM_FORMAT)
.setDescription("Output format. If left empty, the same format as api/qualityprofiles/backup is used. " +

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileReference.java View File

@@ -27,7 +27,7 @@ import org.sonar.api.resources.Languages;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.WebService;
import org.sonar.core.util.Uuids;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
@@ -183,6 +183,6 @@ public class QProfileReference {
.setExampleValue("Sonar way");
action.createParam(PARAM_LANGUAGE)
.setDescription("A quality profile language. If this parameter is set, profileKey must not be set and profileName must be set to disambiguate.")
.setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(Collectors.toSet()));
.setPossibleValues(Arrays.stream(languages.all()).map(Language::getKey).collect(MoreCollectors.toSet()));
}
}

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/rule/RegisterRules.java View File

@@ -42,7 +42,7 @@ import org.sonar.api.utils.System2;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.api.utils.log.Profiler;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.organization.OrganizationDto;
@@ -113,7 +113,7 @@ public class RegisterRules implements Startable {
session.commit();

persistRepositories(session, context.repositories());
ruleIndexer.delete(removedRules.stream().map(RuleDefinitionDto::getKey).collect(Collectors.toList(removedRules.size())));
ruleIndexer.delete(removedRules.stream().map(RuleDefinitionDto::getKey).collect(MoreCollectors.toList(removedRules.size())));
ruleIndexer.index(getDefaultOrganization(), keysToIndex);
activeRuleIndexer.index(changes);
profiler.stopDebug();
@@ -132,7 +132,7 @@ public class RegisterRules implements Startable {
List<RuleRepositoryDto> dtos = repositories
.stream()
.map(r -> new RuleRepositoryDto(r.key(), r.language(), r.name()))
.collect(Collectors.toList(repositories.size()));
.collect(MoreCollectors.toList(repositories.size()));
dbClient.ruleRepositoryDao().insert(dbSession, dtos);
dbSession.commit();
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/rule/ws/ActiveRuleCompleter.java View File

@@ -36,7 +36,7 @@ import org.sonar.api.server.ServerSide;
import org.sonar.api.utils.DateUtils;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.qualityprofile.ActiveRuleDto;
@@ -86,7 +86,7 @@ public class ActiveRuleCompleter {
if (profileKey != null) {
// Load details of active rules on the selected profile
List<ActiveRuleDto> activeRuleDtos = dbClient.activeRuleDao().selectByProfileKey(dbSession, profileKey);
Map<RuleKey, ActiveRuleDto> activeRuleByRuleKey = activeRuleDtos.stream().collect(Collectors.uniqueIndex(d -> d.getKey().ruleKey()));
Map<RuleKey, ActiveRuleDto> activeRuleByRuleKey = activeRuleDtos.stream().collect(MoreCollectors.uniqueIndex(d -> d.getKey().ruleKey()));
ListMultimap<ActiveRuleKey, ActiveRuleParamDto> activeRuleParamsByActiveRuleKey = activeRuleDtosToActiveRuleParamDtos(dbSession, activeRuleDtos);

for (RuleDto rule : rules) {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/rule/ws/RepositoriesAction.java View File

@@ -29,7 +29,7 @@ import org.sonar.api.server.ws.WebService;
import org.sonar.api.server.ws.WebService.NewAction;
import org.sonar.api.server.ws.WebService.Param;
import org.sonar.api.utils.text.JsonWriter;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.rule.RuleRepositoryDto;
@@ -88,7 +88,7 @@ public class RepositoriesAction implements RulesWsAction {

return selectFromDb(languageKey).stream()
.filter(r -> pattern.matcher(r.getKey()).matches() || pattern.matcher(r.getName()).matches())
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
}

private Collection<RuleRepositoryDto> selectFromDb(@Nullable String language) {

+ 3
- 3
server/sonar-server/src/main/java/org/sonar/server/rule/ws/SearchAction.java View File

@@ -43,7 +43,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.server.ws.WebService;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.rule.RuleDefinitionDto;
@@ -348,11 +348,11 @@ public class SearchAction implements RulesWsAction {
rules.add(rule);
}
}
List<Integer> ruleIds = rules.stream().map(RuleDto::getId).collect(Collectors.toList());
List<Integer> ruleIds = rules.stream().map(RuleDto::getId).collect(MoreCollectors.toList());
List<Integer> templateRuleIds = rules.stream()
.map(RuleDto::getTemplateId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
.collect(MoreCollectors.toList());
List<RuleDefinitionDto> templateRules = dbClient.ruleDao().selectDefinitionByIds(dbSession, templateRuleIds);
List<RuleParamDto> ruleParamDtos = dbClient.ruleDao().selectRuleParamsByRuleIds(dbSession, ruleIds);
return new SearchResult()

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/serverid/ws/ShowAction.java View File

@@ -30,7 +30,7 @@ import javax.annotation.Nullable;
import org.sonar.api.server.ws.Request;
import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.property.PropertyDto;
@@ -74,7 +74,7 @@ public class ShowAction implements ServerIdWsAction {
userSession.checkIsSystemAdministrator();
try (DbSession dbSession = dbClient.openSession(true)) {
Map<String, PropertyDto> properties = dbClient.propertiesDao().selectGlobalPropertiesByKeys(dbSession, SETTINGS_KEYS).stream()
.collect(Collectors.uniqueIndex(PropertyDto::getKey, Function.identity()));
.collect(MoreCollectors.uniqueIndex(PropertyDto::getKey, Function.identity()));
writeProtobuf(doHandle(properties), request, response);
}
}

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/setting/ws/ResetAction.java View File

@@ -29,7 +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.web.UserRole;
import org.sonar.core.util.stream.Collectors;
import org.sonar.core.util.stream.MoreCollectors;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.component.ComponentDto;
@@ -115,7 +115,7 @@ public class ResetAction implements SettingsWsAction {
PropertyDefinition definition = definitions.get(key);
return definition != null ? definition.key() : key;
})
.collect(Collectors.toSet()));
.collect(MoreCollectors.toSet()));
}

private static ResetRequest toWsRequest(Request request) {

+ 0
- 0
server/sonar-server/src/main/java/org/sonar/server/source/SourceService.java View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save