From 881900600f6d313e27e3224e7bf9ef181ee58f05 Mon Sep 17 00:00:00 2001 From: Avgustin Marinov Date: Mon, 27 Jan 2025 16:46:28 +0200 Subject: [PATCH] Sonar Fixes (#2243) Signed-off-by: Avgustin Marinov --- .../resource/DdiConfirmationBaseTest.java | 3 +- .../rest/resource/DdiDeploymentBaseTest.java | 9 +- .../deprecated/DeprecatedMgmtResource.java | 17 +-- .../rest/resource/MgmtTargetResource.java | 2 +- .../rest/resource/MgmtActionResourceTest.java | 5 +- .../MgmtDistributionSetResourceTest.java | 133 +++++++++--------- .../MgmtDistributionSetTypeResourceTest.java | 4 +- .../resource/MgmtRolloutResourceTest.java | 3 +- .../rest/resource/MgmtTargetResourceTest.java | 25 ++-- .../hawkbit/repository/jpa/Statistics.java | 56 ++++---- .../SystemManagementCacheKeyGenerator.java | 1 - .../management/JpaControllerManagement.java | 1 - .../jpa/management/JpaRolloutManagement.java | 4 +- .../management/JpaTenantStatsManagement.java | 1 - .../jpa/rsql/AbstractRSQLVisitor.java | 15 +- 15 files changed, 135 insertions(+), 144 deletions(-) diff --git a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfirmationBaseTest.java b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfirmationBaseTest.java index 3fda6b9a2..cb0f53a75 100644 --- a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfirmationBaseTest.java +++ b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiConfirmationBaseTest.java @@ -21,7 +21,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.Stream; import io.qameta.allure.Description; @@ -88,7 +87,7 @@ class DdiConfirmationBaseTest extends AbstractDDiApiIntegrationTest { final List targetsAssignedToDs = assignDistributionSet( ds.getId(), savedTarget.getControllerId(), Action.ActionType.FORCED).getAssignedEntity().stream() .map(Action::getTarget) - .collect(Collectors.toList()); + .toList(); implicitLock(ds); assertThat(deploymentManagement.findActiveActionsByTarget(PAGE, savedTarget.getControllerId())).hasSize(1); diff --git a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java index fdd0383f1..8dc162253 100644 --- a/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java +++ b/hawkbit-ddi/hawkbit-ddi-resource/src/test/java/org/eclipse/hawkbit/ddi/rest/resource/DdiDeploymentBaseTest.java @@ -24,7 +24,6 @@ import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; import com.jayway.jsonpath.JsonPath; import io.qameta.allure.Description; @@ -151,7 +150,7 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { final List targetsAssignedToDs = assignDistributionSet(ds.getId(), savedTarget.getControllerId(), ActionType.FORCED) .getAssignedEntity().stream() .map(Action::getTarget) - .collect(Collectors.toList()); + .toList(); implicitLock(ds); assertThat(deploymentManagement.findActiveActionsByTarget(PAGE, savedTarget.getControllerId())).hasSize(1); @@ -252,7 +251,7 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { final Target savedTarget = createTargetAndAssertNoActiveActions(); final List saved = assignDistributionSet(ds.getId(), savedTarget.getControllerId(), ActionType.SOFT) - .getAssignedEntity().stream().map(Action::getTarget).collect(Collectors.toList()); + .getAssignedEntity().stream().map(Action::getTarget).toList(); implicitLock(ds); assertThat(deploymentManagement.findActiveActionsByTarget(PAGE, savedTarget.getControllerId())).hasSize(1); @@ -307,7 +306,7 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { final Target savedTarget = createTargetAndAssertNoActiveActions(); final List saved = assignDistributionSet(ds.getId(), savedTarget.getControllerId(), - ActionType.TIMEFORCED).getAssignedEntity().stream().map(Action::getTarget).collect(Collectors.toList()); + ActionType.TIMEFORCED).getAssignedEntity().stream().map(Action::getTarget).toList(); implicitLock(ds); assertThat(deploymentManagement.findActiveActionsByTarget(PAGE, savedTarget.getControllerId())).hasSize(1); @@ -371,7 +370,7 @@ class DdiDeploymentBaseTest extends AbstractDDiApiIntegrationTest { final List saved = assignDistributionSet(ds.getId(), savedTarget.getControllerId(), ActionType.DOWNLOAD_ONLY) .getAssignedEntity().stream() .map(Action::getTarget) - .collect(Collectors.toList()); + .toList(); implicitLock(ds); assertThat(deploymentManagement.findActiveActionsByTarget(PAGE, savedTarget.getControllerId())).hasSize(1); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource-deprecated/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/deprecated/DeprecatedMgmtResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource-deprecated/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/deprecated/DeprecatedMgmtResource.java index 119b4f8c0..a3f1ab00e 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource-deprecated/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/deprecated/DeprecatedMgmtResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource-deprecated/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/deprecated/DeprecatedMgmtResource.java @@ -9,12 +9,12 @@ */ package org.eclipse.hawkbit.mgmt.rest.resource.deprecated; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.function.BiFunction; import java.util.function.Supplier; -import java.util.stream.Collectors; import jakarta.persistence.EntityManager; @@ -49,7 +49,6 @@ import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.utils.TenantConfigHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.web.bind.annotation.RestController; @@ -173,26 +172,24 @@ public class DeprecatedMgmtResource implements DeprecatedMgmtRestApi { .findByName(tagName) .orElseThrow(() -> new EntityNotFoundException(DistributionSetTag.class, tagName)), (allDs, distributionSetTag) -> { - final List toBeChangedDSs = allDs.stream().filter(set -> set.addTag(distributionSetTag)) - .collect(Collectors.toList()); + final List toBeChangedDSs = allDs.stream().filter(set -> set.addTag(distributionSetTag)).toList(); final DistributionSetTagAssignmentResult result; // un-assignment case if (toBeChangedDSs.isEmpty()) { + final List toRemoveSize = new ArrayList<>(); for (final JpaDistributionSet set : allDs) { if (set.removeTag(distributionSetTag)) { - toBeChangedDSs.add(set); + toRemoveSize.add(set); } } - result = new DistributionSetTagAssignmentResult(ids.size() - toBeChangedDSs.size(), + result = new DistributionSetTagAssignmentResult(ids.size() - toRemoveSize.size(), Collections.emptyList(), - Collections.unmodifiableList( - toBeChangedDSs.stream().map(distributionSetRepository::save).toList()), + toRemoveSize.stream().map(distributionSetRepository::save).map(DistributionSet.class::cast).toList(), distributionSetTag); } else { result = new DistributionSetTagAssignmentResult(ids.size() - toBeChangedDSs.size(), - Collections.unmodifiableList( - toBeChangedDSs.stream().map(distributionSetRepository::save).toList()), + toBeChangedDSs.stream().map(distributionSetRepository::save).map(DistributionSet.class::cast).toList(), Collections.emptyList(), distributionSetTag); } return result; diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResource.java index bb8e9300f..6f5828fc7 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResource.java @@ -323,7 +323,7 @@ public class MgmtTargetResource implements MgmtTargetRestApi { final String targetId, final MgmtDistributionSetAssignments dsAssignments, final Boolean offline) { if (offline != null && offline) { final List> offlineAssignments = dsAssignments.stream() - .map(dsAssignment -> new SimpleEntry(targetId, dsAssignment.getId())) + .map(dsAssignment -> new SimpleEntry<>(targetId, dsAssignment.getId())) .collect(Collectors.toList()); return ResponseEntity.ok(MgmtDistributionSetMapper .toResponse(deploymentManagement.offlineAssignedDistributionSets(offlineAssignments))); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtActionResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtActionResourceTest.java index df965f9c5..928467666 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtActionResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtActionResourceTest.java @@ -25,7 +25,6 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; import io.qameta.allure.Description; import io.qameta.allure.Feature; @@ -612,7 +611,7 @@ class MgmtActionResourceTest extends AbstractManagementApiIntegrationTest { // Update if (schedule == null) { final List updatedTargets = assignDistributionSet(one, Collections.singletonList(target)) - .getAssignedEntity().stream().map(Action::getTarget).collect(Collectors.toList()); + .getAssignedEntity().stream().map(Action::getTarget).toList(); // 2nd update // sleep 10ms to ensure that we can sort by reportedAt Awaitility.await().atMost(Duration.ofMillis(100)).atLeast(5, TimeUnit.MILLISECONDS) @@ -622,7 +621,7 @@ class MgmtActionResourceTest extends AbstractManagementApiIntegrationTest { } else { final List updatedTargets = assignDistributionSetWithMaintenanceWindow(one.getId(), target.getControllerId(), schedule, duration, timezone).getAssignedEntity().stream() - .map(Action::getTarget).collect(Collectors.toList()); + .map(Action::getTarget).toList(); // 2nd update // sleep 10ms to ensure that we can sort by reportedAt Awaitility.await().atMost(Duration.ofMillis(100)).atLeast(5, TimeUnit.MILLISECONDS) diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java index 2b032f0a8..57cbed70a 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetResourceTest.java @@ -32,7 +32,6 @@ import java.util.Iterator; import java.util.List; import java.util.Optional; import java.util.Set; -import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; @@ -82,14 +81,14 @@ import org.springframework.util.Assert; @Feature("Component Tests - Management API") @Story("Distribution Set Resource") -public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegrationTest { +class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegrationTest { @Autowired ActionRepository actionRepository; @Test @Description("This test verifies the call of all Software Modules that are assigned to a Distribution Set through the RESTful API.") - public void getSoftwareModules() throws Exception { + void getSoftwareModules() throws Exception { // Create DistributionSet with three software modules final DistributionSet set = testdataFactory.createDistributionSet("SMTest"); mvc.perform(get(MgmtRestConstants.DISTRIBUTIONSET_V1_REQUEST_MAPPING + "/" + set.getId() + "/assignedSM")) @@ -100,7 +99,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Handles the GET request of retrieving assigned software modules of a single distribution set within SP with given page size and offset including sorting by version descending and filter down to all sets which name starts with 'one'.") - public void getSoftwareModulesWithParameters() throws Exception { + void getSoftwareModulesWithParameters() throws Exception { final DistributionSet set = testdataFactory.createUpdatedDistributionSet(); // post assignment @@ -114,7 +113,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("This test verifies the deletion of a assigned Software Module of a Distribution Set can not be achieved when that Distribution Set has been assigned or installed to a target.") - public void deleteFailureWhenDistributionSetInUse() throws Exception { + void deleteFailureWhenDistributionSetInUse() throws Exception { // create DisSet final DistributionSet disSet = testdataFactory.createDistributionSetWithNoSoftwareModules("Eris", "560a"); final List smIDs = new ArrayList<>(); @@ -158,7 +157,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("This test verifies that the assignment of a Software Module to a Distribution Set can not be achieved when that Distribution Set has been assigned or installed to a target.") - public void assignmentFailureWhenAssigningToUsedDistributionSet() throws Exception { + void assignmentFailureWhenAssigningToUsedDistributionSet() throws Exception { // create DisSet final DistributionSet disSet = testdataFactory.createDistributionSetWithNoSoftwareModules("Mars", "686,980"); final List smIDs = new ArrayList<>(); @@ -201,7 +200,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("This test verifies the assignment of Software Modules to a Distribution Set through the RESTful API.") - public void assignSoftwareModuleToDistributionSet() throws Exception { + void assignSoftwareModuleToDistributionSet() throws Exception { // create DisSet final DistributionSet disSet = testdataFactory.createDistributionSetWithNoSoftwareModules("Jupiter", "398,88"); // Test if size is 0 @@ -272,7 +271,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("This test verifies the removal of Software Modules of a Distribution Set through the RESTful API.") - public void unassignSoftwareModuleFromDistributionSet() throws Exception { + void unassignSoftwareModuleFromDistributionSet() throws Exception { // Create DistributionSet with three software modules final DistributionSet set = testdataFactory.createDistributionSet("Venus"); int amountOfSM = set.getModules().size(); @@ -295,7 +294,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that multi target assignment through API is reflected by the repository.") - public void assignMultipleTargetsToDistributionSet() throws Exception { + void assignMultipleTargetsToDistributionSet() throws Exception { final DistributionSet createdDs = testdataFactory.createDistributionSet(); // prepare targets @@ -318,7 +317,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that targets can be assigned even if the specified controller IDs are in different case (e.g. 'TARGET1' instead of 'target1'.") - public void assignTargetsToDistributionSetIgnoreCase() throws Exception { + void assignTargetsToDistributionSetIgnoreCase() throws Exception { final DistributionSet createdDs = testdataFactory.createDistributionSet(); // prepare targets @@ -341,7 +340,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Trying to create a DS from already marked as deleted type - should get as response 400 Bad Request") - public void createDsFromAlreadyMarkedAsDeletedType() throws Exception { + void createDsFromAlreadyMarkedAsDeletedType() throws Exception { final SoftwareModule softwareModule = testdataFactory.createSoftwareModule("exampleKey"); final DistributionSetType type = testdataFactory.findOrCreateDistributionSetType( "testKey", "testType", Collections.singletonList(softwareModule.getType()), @@ -381,7 +380,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that multi target assignment is protected by our getMaxTargetDistributionSetAssignmentsPerManualAssignment quota.") - public void assignMultipleTargetsToDistributionSetUntilQuotaIsExceeded() throws Exception { + void assignMultipleTargetsToDistributionSetUntilQuotaIsExceeded() throws Exception { final int maxActions = quotaManagement.getMaxTargetDistributionSetAssignmentsPerManualAssignment(); final List targets = testdataFactory.createTargets(maxActions + 1); final DistributionSet ds = testdataFactory.createDistributionSet(); @@ -404,7 +403,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that the 'max actions per target' quota is enforced if the distribution set assignment of a target is changed permanently") - public void changeDistributionSetAssignmentForTargetUntilQuotaIsExceeded() throws Exception { + void changeDistributionSetAssignmentForTargetUntilQuotaIsExceeded() throws Exception { // create one target final Target testTarget = testdataFactory.createTarget("trg1"); @@ -430,7 +429,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that offline reported multi target assignment through API is reflected by the repository.") - public void offlineAssignmentOfMultipleTargetsToDistributionSet() throws Exception { + void offlineAssignmentOfMultipleTargetsToDistributionSet() throws Exception { final DistributionSet createdDs = testdataFactory.createDistributionSet(); final List targets = testdataFactory.createTargets(5); final JSONArray list = new JSONArray(); @@ -460,7 +459,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Assigns multiple targets to distribution set with only maintenance schedule.") - public void assignMultipleTargetsToDistributionSetWithMaintenanceWindowStartOnly() throws Exception { + void assignMultipleTargetsToDistributionSetWithMaintenanceWindowStartOnly() throws Exception { // prepare distribution set final DistributionSet createdDs = testdataFactory.createDistributionSet(); // prepare targets @@ -477,7 +476,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Assigns multiple targets to distribution set with only maintenance window duration.") - public void assignMultipleTargetsToDistributionSetWithMaintenanceWindowEndOnly() throws Exception { + void assignMultipleTargetsToDistributionSetWithMaintenanceWindowEndOnly() throws Exception { // prepare distribution set final DistributionSet createdDs = testdataFactory.createDistributionSet(); // prepare targets @@ -494,7 +493,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Assigns multiple targets to distribution set with valid maintenance window.") - public void assignMultipleTargetsToDistributionSetWithValidMaintenanceWindow() throws Exception { + void assignMultipleTargetsToDistributionSetWithValidMaintenanceWindow() throws Exception { // prepare distribution set final DistributionSet createdDs = testdataFactory.createDistributionSet(); // prepare targets @@ -512,7 +511,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Assigns multiple targets to distribution set with last maintenance window scheduled before current time.") - public void assignMultipleTargetsToDistributionSetWithMaintenanceWindowEndTimeBeforeStartTime() throws Exception { + void assignMultipleTargetsToDistributionSetWithMaintenanceWindowEndTimeBeforeStartTime() throws Exception { // prepare distribution set final DistributionSet createdDs = testdataFactory.createDistributionSet(); // prepare targets @@ -530,7 +529,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Assigns multiple targets to distribution set with and without maintenance window.") - public void assignMultipleTargetsToDistributionSetWithAndWithoutMaintenanceWindow() throws Exception { + void assignMultipleTargetsToDistributionSetWithAndWithoutMaintenanceWindow() throws Exception { // prepare distribution set final DistributionSet createdDs = testdataFactory.createDistributionSet(); // prepare targets @@ -557,7 +556,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Assigning distribution set to the list of targets with a non-existing one leads to successful assignment of valid targets, while not found targets are silently ignored.") - public void assignNotExistingTargetToDistributionSet() throws Exception { + void assignNotExistingTargetToDistributionSet() throws Exception { final DistributionSet createdDs = testdataFactory.createDistributionSet(); final String[] knownTargetIds = new String[] { "1", "2", "3" }; @@ -577,7 +576,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that assigned targets of DS are returned as reflected by the repository.") - public void getAssignedTargetsOfDistributionSet() throws Exception { + void getAssignedTargetsOfDistributionSet() throws Exception { // prepare distribution set final String knownTargetId = "knownTargetId1"; final DistributionSet createdDs = testdataFactory.createDistributionSet(); @@ -592,7 +591,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Handles the GET request for retrieving assigned targets of a single distribution set with a defined page size and offset, sorted by name in descending order and filtered down to all targets which controllerID starts with 'target'.") - public void getAssignedTargetsOfDistributionSetWithParameters() throws Exception { + void getAssignedTargetsOfDistributionSetWithParameters() throws Exception { final DistributionSet set = testdataFactory.createUpdatedDistributionSet(); assignDistributionSet(set, testdataFactory.createTargets(5, "targetMisc", "Test targets for query")) @@ -609,7 +608,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that assigned targets of DS are returned as persisted in the repository.") - public void getAssignedTargetsOfDistributionSetIsEmpty() throws Exception { + void getAssignedTargetsOfDistributionSetIsEmpty() throws Exception { final DistributionSet createdDs = testdataFactory.createDistributionSet(); mvc.perform(get( MgmtRestConstants.DISTRIBUTIONSET_V1_REQUEST_MAPPING + "/" + createdDs.getId() + "/assignedTargets")) @@ -620,7 +619,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that installed targets of DS are returned as persisted in the repository.") - public void getInstalledTargetsOfDistributionSet() throws Exception { + void getInstalledTargetsOfDistributionSet() throws Exception { // prepare distribution set final String knownTargetId = "knownTargetId1"; final DistributionSet createdDs = testdataFactory.createDistributionSet(); @@ -643,12 +642,12 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Handles the GET request for retrieving installed targets of a single distribution set with a defined page size and offset, sortet by name in descending order and filtered down to all targets which controllerID starts with 'target'.") - public void getInstalledTargetsOfDistributionSetWithParameters() throws Exception { + void getInstalledTargetsOfDistributionSetWithParameters() throws Exception { final DistributionSet set = testdataFactory.createUpdatedDistributionSet(); final List targets = assignDistributionSet(set, testdataFactory.createTargets(5, "targetMisc", "Test targets for query")).getAssignedEntity().stream() - .map(Action::getTarget).collect(Collectors.toList()); + .map(Action::getTarget).toList(); testdataFactory.sendUpdateActionStatusToTargets(targets, Status.FINISHED, "some message"); mvc.perform(get(MgmtRestConstants.DISTRIBUTIONSET_V1_REQUEST_MAPPING + "/" + set.getId() + "/installedTargets") @@ -661,7 +660,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that target filters with auto assign DS are returned as persisted in the repository.") - public void getAutoAssignTargetFiltersOfDistributionSet() throws Exception { + void getAutoAssignTargetFiltersOfDistributionSet() throws Exception { // prepare distribution set final String knownFilterName = "a"; final DistributionSet createdDs = testdataFactory.createDistributionSet(); @@ -682,7 +681,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Handles the GET request for retrieving assigned target filter queries of a single distribution set with a defined page size and offset, sorted by name in descending order and filtered down to all targets with a name that ends with '1'.") - public void ggetAutoAssignTargetFiltersOfDistributionSetWithParameters() throws Exception { + void ggetAutoAssignTargetFiltersOfDistributionSetWithParameters() throws Exception { final DistributionSet set = testdataFactory.createUpdatedDistributionSet(); targetFilterQueryManagement.create(entityFactory.targetFilterQuery().create().name("filter1").query("name==a") .autoAssignDistributionSet(set)); @@ -698,7 +697,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that an error is returned when the query is invalid.") - public void getAutoAssignTargetFiltersOfDSWithInvalidFilter() throws Exception { + void getAutoAssignTargetFiltersOfDSWithInvalidFilter() throws Exception { // prepare distribution set final DistributionSet createdDs = testdataFactory.createDistributionSet(); final String invalidQuery = "unknownField=le=42"; @@ -710,7 +709,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that target filters with auto assign DS are returned according to the query.") - public void getMultipleAutoAssignTargetFiltersOfDistributionSet() throws Exception { + void getMultipleAutoAssignTargetFiltersOfDistributionSet() throws Exception { final String filterNamePrefix = "filter-"; final DistributionSet createdDs = testdataFactory.createDistributionSet(); final String query = "name==" + filterNamePrefix + "*"; @@ -727,7 +726,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that no target filters are returned according to the non matching query.") - public void getEmptyAutoAssignTargetFiltersOfDistributionSet() throws Exception { + void getEmptyAutoAssignTargetFiltersOfDistributionSet() throws Exception { final String filterNamePrefix = "filter-"; final DistributionSet createdDs = testdataFactory.createDistributionSet(); final String query = "name==doesNotExist"; @@ -742,7 +741,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that DS in repository are listed with proper paging properties.") - public void getDistributionSetsWithoutAdditionalRequestParameters() throws Exception { + void getDistributionSetsWithoutAdditionalRequestParameters() throws Exception { final int sets = 5; createDistributionSetsAlphabetical(sets); mvc.perform(get(MgmtRestConstants.DISTRIBUTIONSET_V1_REQUEST_MAPPING)) @@ -755,7 +754,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that DS in repository are listed with proper paging results with paging limit parameter.") - public void getDistributionSetsWithPagingLimitRequestParameter() throws Exception { + void getDistributionSetsWithPagingLimitRequestParameter() throws Exception { final int sets = 5; final int limitSize = 1; createDistributionSetsAlphabetical(sets); @@ -770,7 +769,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that DS in repository are listed with proper paging results with paging limit and offset parameter.") - public void getDistributionSetsWithPagingLimitAndOffsetRequestParameter() throws Exception { + void getDistributionSetsWithPagingLimitAndOffsetRequestParameter() throws Exception { final int sets = 5; final int offsetParam = 2; final int expectedSize = sets - offsetParam; @@ -788,7 +787,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @WithUser(principal = "uploadTester", allSpPermissions = true) @Description("Ensures that multiple DS requested are listed with expected payload.") - public void getDistributionSets() throws Exception { + void getDistributionSets() throws Exception { // prepare test data assertThat(distributionSetManagement.findByCompleted(PAGE, true)).isEmpty(); @@ -830,7 +829,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @WithUser(principal = "uploadTester", allSpPermissions = true) @Description("Ensures that single DS requested by ID is listed with expected payload.") - public void getDistributionSet() throws Exception { + void getDistributionSet() throws Exception { final DistributionSet set = testdataFactory.createUpdatedDistributionSet(); // perform request @@ -864,7 +863,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @WithUser(principal = "uploadTester", allSpPermissions = true) @Description("Ensures that multipe DS posted to API are created in the repository.") - public void createDistributionSets() throws Exception { + void createDistributionSets() throws Exception { assertThat(distributionSetManagement.findByCompleted(PAGE, true)).isEmpty(); final SoftwareModule ah = testdataFactory.createSoftwareModule(TestdataFactory.SM_TYPE_APP); final SoftwareModule jvm = testdataFactory.createSoftwareModule(TestdataFactory.SM_TYPE_RT); @@ -920,7 +919,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that DS deletion request to API is reflected by the repository.") - public void deleteUnassignedistributionSet() throws Exception { + void deleteUnassignedistributionSet() throws Exception { // prepare test data assertThat(distributionSetManagement.findByCompleted(PAGE, true)).isEmpty(); @@ -940,7 +939,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that DS deletion request to API on an entity that does not exist results in NOT_FOUND.") - public void deleteDistributionSetThatDoesNotExistLeadsToNotFound() throws Exception { + void deleteDistributionSetThatDoesNotExistLeadsToNotFound() throws Exception { mvc.perform(delete("/rest/v1/distributionsets/1234")) .andDo(MockMvcResultPrinter.print()) .andExpect(status().isNotFound()); @@ -948,7 +947,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that assigned DS deletion request to API is reflected by the repository by means of deleted flag set.") - public void deleteAssignedDistributionSet() throws Exception { + void deleteAssignedDistributionSet() throws Exception { // prepare test data assertThat(distributionSetManagement.findByCompleted(PAGE, true)).isEmpty(); @@ -978,7 +977,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that DS property update request to API is reflected by the repository.") - public void updateDistributionSet() throws Exception { + void updateDistributionSet() throws Exception { // prepare test data assertThat(distributionSetManagement.findByCompleted(PAGE, true)).isEmpty(); @@ -1007,7 +1006,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that DS property update on requiredMigrationStep fails if DS is assigned to a target.") - public void updateRequiredMigrationStepFailsIfDistributionSetisInUse() throws Exception { + void updateRequiredMigrationStepFailsIfDistributionSetisInUse() throws Exception { // prepare test data assertThat(distributionSetManagement.findByCompleted(PAGE, true)).isEmpty(); @@ -1032,7 +1031,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that the server reacts properly to invalid requests (URI, Media Type, Methods) with correct reponses.") - public void invalidRequestsOnDistributionSetsResource() throws Exception { + void invalidRequestsOnDistributionSetsResource() throws Exception { final DistributionSet set = testdataFactory.createDistributionSet("one"); final List sets = new ArrayList<>(); @@ -1093,7 +1092,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that the metadata creation through API is reflected by the repository.") - public void createMetadata() throws Exception { + void createMetadata() throws Exception { final DistributionSet testDS = testdataFactory.createDistributionSet("one"); final String knownKey1 = "known.key.1.1"; @@ -1147,7 +1146,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that a metadata update through API is reflected by the repository.") - public void updateMetadata() throws Exception { + void updateMetadata() throws Exception { // prepare and create metadata for update final String knownKey = "knownKey"; final String knownValue = "knownValue"; @@ -1175,7 +1174,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that a metadata entry deletion through API is reflected by the repository.") - public void deleteMetadata() throws Exception { + void deleteMetadata() throws Exception { // prepare and create metadata for deletion final String knownKey = "knownKey"; final String knownValue = "knownValue"; @@ -1192,7 +1191,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that DS metadata deletion request to API on an entity that does not exist results in NOT_FOUND.") - public void deleteMetadataThatDoesNotExistLeadsToNotFound() throws Exception { + void deleteMetadataThatDoesNotExistLeadsToNotFound() throws Exception { // prepare and create metadata for deletion final String knownKey = "knownKey"; final String knownValue = "knownValue"; @@ -1213,7 +1212,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that a metadata entry selection through API reflects the repository content.") - public void geteMetadataKey() throws Exception { + void geteMetadataKey() throws Exception { // prepare and create metadata final String knownKey = "knownKey"; final String knownValue = "knownValue"; @@ -1229,7 +1228,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Get a paged list of meta data for a distribution set with standard page size.") - public void getMetadata() throws Exception { + void getMetadata() throws Exception { final int totalMetadata = 4; final String knownKeyPrefix = "knownKey"; final String knownValuePrefix = "knownValue"; @@ -1248,7 +1247,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that a metadata entry paged list selection through API reflectes the repository content.") - public void getPagedListOfMetadata() throws Exception { + void getPagedListOfMetadata() throws Exception { final int totalMetadata = 10; final int limitParam = 5; @@ -1274,7 +1273,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that a DS search with query parameters returns the expected result.") - public void searchDistributionSetRsql() throws Exception { + void searchDistributionSetRsql() throws Exception { final String dsSuffix = "test"; final int amount = 10; testdataFactory.createDistributionSets(dsSuffix, amount); @@ -1295,7 +1294,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that a DS search with complete==true parameter returns only DS that are actually completely filled with mandatory modules.") - public void filterDistributionSetComplete() throws Exception { + void filterDistributionSetComplete() throws Exception { final int amount = 10; testdataFactory.createDistributionSets(amount); distributionSetManagement @@ -1312,7 +1311,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that a DS assigned target search with controllerId==1 parameter returns only the target with the given ID.") - public void searchDistributionSetAssignedTargetsRsql() throws Exception { + void searchDistributionSetAssignedTargetsRsql() throws Exception { // prepare distribution set final Set createDistributionSetsAlphabetical = createDistributionSetsAlphabetical(1); final DistributionSet createdDs = createDistributionSetsAlphabetical.iterator().next(); @@ -1337,7 +1336,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that a DS metadata filtered query with value==knownValue1 parameter returns only the metadata entries with that value.") - public void searchDistributionSetMetadataRsql() throws Exception { + void searchDistributionSetMetadataRsql() throws Exception { final int totalMetadata = 10; final String knownKeyPrefix = "knownKey"; final String knownValuePrefix = "knownValue"; @@ -1361,7 +1360,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Ensures that multi target assignment through API is reflected by the repository in the case of " + "DOWNLOAD_ONLY.") - public void assignMultipleTargetsToDistributionSetAsDownloadOnly() throws Exception { + void assignMultipleTargetsToDistributionSetAsDownloadOnly() throws Exception { final DistributionSet createdDs = testdataFactory.createDistributionSet(); // prepare targets @@ -1384,7 +1383,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @ParameterizedTest @MethodSource("confirmationOptions") @Description("Ensures that confirmation option is considered in assignment request.") - public void assignTargetsToDistributionSetWithConfirmationOptions(final boolean confirmationFlowActive, + void assignTargetsToDistributionSetWithConfirmationOptions(final boolean confirmationFlowActive, final Boolean confirmationRequired) throws Exception { final DistributionSet createdDs = testdataFactory.createDistributionSet(); @@ -1418,7 +1417,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("A request for assigning a target multiple times results in a Bad Request when multiassignment is disabled.") - public void multiAssignmentRequestNotAllowedIfDisabled() throws Exception { + void multiAssignmentRequestNotAllowedIfDisabled() throws Exception { final String targetId = testdataFactory.createTarget().getControllerId(); final Long dsId = testdataFactory.createDistributionSet().getId(); @@ -1434,7 +1433,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Identical assignments in a single request are removed when multiassignment is disabled.") - public void identicalAssignmentInRequestAreRemovedIfMultiassignmentsDisabled() throws Exception { + void identicalAssignmentInRequestAreRemovedIfMultiassignmentsDisabled() throws Exception { final String targetId = testdataFactory.createTarget().getControllerId(); final Long dsId = testdataFactory.createDistributionSet().getId(); @@ -1451,9 +1450,9 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Assigning targets multiple times to a DS in one request works in multiassignment mode.") - public void multiAssignment() throws Exception { + void multiAssignment() throws Exception { final List targetIds = testdataFactory.createTargets(2).stream().map(Target::getControllerId) - .collect(Collectors.toList()); + .toList(); final Long dsId = testdataFactory.createDistributionSet().getId(); final JSONArray body = new JSONArray(); @@ -1472,7 +1471,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("An assignment request containing a weight is only accepted when weight is valide and multi assignment is on.") - public void weightValidation() throws Exception { + void weightValidation() throws Exception { final String targetId = testdataFactory.createTarget().getControllerId(); final Long dsId = testdataFactory.createDistributionSet().getId(); final int weight = 78; @@ -1496,14 +1495,14 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr .andDo(MockMvcResultPrinter.print()) .andExpect(status().isOk()); - final List actions = deploymentManagement.findActionsAll(PAGE).get().collect(Collectors.toList()); + final List actions = deploymentManagement.findActionsAll(PAGE).get().toList(); assertThat(actions).size().isEqualTo(2); assertThat(actions.get(0).getWeight()).get().isEqualTo(weight); } @Test @Description("Request to get the count of all Rollouts by status for specific Distribution set") - public void statisticsForRolloutsCountByStatus() throws Exception { + void statisticsForRolloutsCountByStatus() throws Exception { testdataFactory.createTargets("targets", 4); DistributionSet ds1 = testdataFactory.createDistributionSet("DS1"); DistributionSet ds2 = testdataFactory.createDistributionSet("DS2"); @@ -1536,7 +1535,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Request to get the count of all Actions by status for specific Distribution set") - public void statisticsForActionsCountByStatus() throws Exception { + void statisticsForActionsCountByStatus() throws Exception { testdataFactory.createTargets("targets", 4); DistributionSet ds1 = testdataFactory.createDistributionSet("DS1"); @@ -1567,7 +1566,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Request to get the count of all Auto Assignments for specific Distribution set") - public void statisticsForAutoAssignmentsCount() throws Exception { + void statisticsForAutoAssignmentsCount() throws Exception { testdataFactory.createTargets("targets", 4); DistributionSet ds1 = testdataFactory.createDistributionSet("DS1"); DistributionSet ds2 = testdataFactory.createDistributionSet("DS2"); @@ -1599,7 +1598,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Request to get full Statistics for specific Distribution set") - public void statisticsForDistributionSet() throws Exception { + void statisticsForDistributionSet() throws Exception { testdataFactory.createTargets("targets", 4); testdataFactory.createTargets("autoAssignments", 4); DistributionSet ds1 = testdataFactory.createDistributionSet("DS1"); @@ -1635,7 +1634,7 @@ public class MgmtDistributionSetResourceTest extends AbstractManagementApiIntegr @Test @Description("Verify invalidation of distribution sets that removes distribution sets from auto assignments, stops rollouts and cancels assignments") - public void invalidateDistributionSet() throws Exception { + void invalidateDistributionSet() throws Exception { final DistributionSet distributionSet = testdataFactory.createDistributionSet(); final List targets = testdataFactory.createTargets(5, "invalidateDistributionSet"); assignDistributionSet(distributionSet, targets); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java index 7cac12e78..96f740495 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeResourceTest.java @@ -477,8 +477,8 @@ class MgmtDistributionSetTypeResourceTest extends AbstractManagementApiIntegrati mvc .perform(put(MgmtRestConstants.DISTRIBUTIONSETTYPE_V1_REQUEST_MAPPING + "/{distributionSetTypeId}", testType.getId()).content(body).contentType(MediaType.APPLICATION_JSON)) - .andDo(MockMvcResultPrinter.print()); - + .andDo(MockMvcResultPrinter.print()) + .andExpect(status().isOk()); } @Test diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResourceTest.java index 25bff7f67..52dd45f09 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResourceTest.java @@ -31,7 +31,6 @@ import java.util.Arrays; import java.util.List; import java.util.NoSuchElementException; import java.util.Optional; -import java.util.stream.Collectors; import java.util.stream.Stream; import io.qameta.allure.Description; @@ -1574,7 +1573,7 @@ class MgmtRolloutResourceTest extends AbstractManagementApiIntegrationTest { .andExpect(status().isOk()); final List groupStatus = rolloutGroupManagement.findByRollout(rollout.getId(), PAGE) - .getContent().stream().map(RolloutGroup::getStatus).collect(Collectors.toList()); + .getContent().stream().map(RolloutGroup::getStatus).toList(); assertThat(groupStatus).containsExactly(RolloutGroupStatus.RUNNING, RolloutGroupStatus.RUNNING, RolloutGroupStatus.SCHEDULED, RolloutGroupStatus.SCHEDULED); } diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java index a09a1a0f4..d479bcfb2 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetResourceTest.java @@ -42,7 +42,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; import java.util.stream.Stream; import jakarta.validation.ConstraintViolationException; @@ -294,7 +293,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { final Action action = deploymentManagement.findActionsByTarget(knownTargetId, pageRequest).getContent().get(0); final ActionStatus status = deploymentManagement.findActionStatusByAction(PAGE, action.getId()).getContent() - .stream().sorted((e1, e2) -> Long.compare(e2.getId(), e1.getId())).collect(Collectors.toList()).get(0); + .stream().sorted((e1, e2) -> Long.compare(e2.getId(), e1.getId())).toList().get(0); mvc.perform(get(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownTargetId + "/" + MgmtRestConstants.TARGET_V1_ACTIONS + "/" + actions.get(0).getId() + "/status") @@ -445,7 +444,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { // find the current active action final List cancelActions = deploymentManagement.findActionsByTarget(tA.getControllerId(), PAGE) - .getContent().stream().filter(Action::isCancelingOrCanceled).collect(Collectors.toList()); + .getContent().stream().filter(Action::isCancelingOrCanceled).toList(); assertThat(cancelActions).hasSize(1); // test - cancel an cancel action returns forbidden @@ -467,7 +466,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { // find the current active action final List cancelActions = deploymentManagement.findActionsByTarget(tA.getControllerId(), PAGE) - .getContent().stream().filter(Action::isCancelingOrCanceled).collect(Collectors.toList()); + .getContent().stream().filter(Action::isCancelingOrCanceled).toList(); assertThat(cancelActions).hasSize(1); assertThat(cancelActions.get(0).isCancelingOrCanceled()).isTrue(); @@ -1256,7 +1255,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { // retrieve list in default descending order for actionstaus entries final List actionStatus = deploymentManagement.findActionStatusByAction(PAGE, action.getId()) .getContent().stream().sorted((e1, e2) -> Long.compare(e2.getId(), e1.getId())) - .collect(Collectors.toList()); + .toList(); // sort is default descending order, latest status first mvc.perform(get(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownTargetId + "/" @@ -1284,7 +1283,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { final Action action = generateTargetWithTwoUpdatesWithOneOverride(knownTargetId).get(0); final List actionStatus = deploymentManagement.findActionStatusByAction(PAGE, action.getId()) .getContent().stream().sorted(Comparator.comparingLong(Identifiable::getId)) - .collect(Collectors.toList()); + .toList(); // descending order mvc.perform(get(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownTargetId + "/" @@ -1333,7 +1332,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { final Action action = generateTargetWithTwoUpdatesWithOneOverride(knownTargetId).get(0); final List actionStatus = deploymentManagement.findActionStatusByAction(PAGE, action.getId()) .getContent().stream().sorted((e1, e2) -> Long.compare(e1.getId(), e2.getId())) - .collect(Collectors.toList()); + .toList(); // Page 1 mvc.perform(get(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + knownTargetId + "/" @@ -2078,7 +2077,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { void multiassignmentRequestNotAllowedIfDisabled() throws Exception { final String targetId = testdataFactory.createTarget().getControllerId(); final List dsIds = testdataFactory.createDistributionSets(2).stream().map(DistributionSet::getId) - .collect(Collectors.toList()); + .toList(); final JSONArray body = new JSONArray(); dsIds.forEach(id -> body.put(getAssignmentObject(id, MgmtActionType.FORCED, 67))); @@ -2123,7 +2122,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { void multiAssignment() throws Exception { final String targetId = testdataFactory.createTarget().getControllerId(); final List dsIds = testdataFactory.createDistributionSets(2).stream().map(DistributionSet::getId) - .collect(Collectors.toList()); + .toList(); final JSONArray body = new JSONArray(); dsIds.forEach(id -> body.put(getAssignmentObject(id, MgmtActionType.FORCED, 76))); @@ -2157,7 +2156,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { .andDo(MockMvcResultPrinter.print()) .andExpect(status().isOk()); - final List actions = deploymentManagement.findActionsAll(PAGE).get().collect(Collectors.toList()); + final List actions = deploymentManagement.findActionsAll(PAGE).get().toList(); assertThat(actions).size().isEqualTo(1); assertThat(actions.get(0).getWeight()).get().isEqualTo(weight); } @@ -2191,7 +2190,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { .andDo(MockMvcResultPrinter.print()) .andExpect(status().isOk()); - final List actions = deploymentManagement.findActionsAll(PAGE).get().collect(Collectors.toList()); + final List actions = deploymentManagement.findActionsAll(PAGE).get().toList(); assertThat(actions).size().isEqualTo(1); assertThat(actions.get(0).getWeight()).get().isEqualTo(weight); } @@ -2749,7 +2748,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { // Update if (schedule == null) { final List updatedTargets = assignDistributionSet(one, Collections.singletonList(target)) - .getAssignedEntity().stream().map(Action::getTarget).collect(Collectors.toList()); + .getAssignedEntity().stream().map(Action::getTarget).toList(); // 2nd update // sleep 10ms to ensure that we can sort by reportedAt Awaitility.await().atMost(Duration.ofMillis(100)).atLeast(5, TimeUnit.MILLISECONDS) @@ -2759,7 +2758,7 @@ class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest { } else { final List updatedTargets = assignDistributionSetWithMaintenanceWindow(one.getId(), target.getControllerId(), schedule, duration, timezone).getAssignedEntity().stream() - .map(Action::getTarget).collect(Collectors.toList()); + .map(Action::getTarget).toList(); // 2nd update // sleep 10ms to ensure that we can sort by reportedAt Awaitility.await().atMost(Duration.ofMillis(100)).atLeast(5, TimeUnit.MILLISECONDS) diff --git a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/Statistics.java b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/Statistics.java index 3b6cffa88..fb59e6d6a 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/Statistics.java +++ b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/Statistics.java @@ -151,32 +151,7 @@ public class Statistics { final Matcher matcher = PATTERN.matcher(k); if (matcher.matches()) { - final String type = matcher.group("type"); - final StringTokenizer stringTokenizer = new StringTokenizer(matcher.group("key"), ":"); - final String name = METER_PREFIX + stringTokenizer.nextToken(); - if (type.equals("Counter")) { - final double quantity = v instanceof Double d ? d : Double.parseDouble(v.toString()); - final Counter counter; - if (stringTokenizer.hasMoreTokens()) { - counter = meterRegistry.counter(name, "entity", stringTokenizer.nextToken()); - } else { - counter = meterRegistry.counter(name); - } - counter.increment(quantity - counter.count()); - } else { // Timer - final long quantity = v instanceof Long l ? l : (long) Double.parseDouble(v.toString()); - final Timer timer; - if (stringTokenizer.hasMoreTokens()) { - final String entity = stringTokenizer.nextToken(); - stringTokenizer.nextToken(); // skip, what is this? - final String subOp = stringTokenizer.hasMoreTokens() ? stringTokenizer.nextToken() : "n/a"; - timer = meterRegistry.timer(name, "entity", entity, "subOp", subOp); - } else { - timer = meterRegistry.timer(name); - } - timer.record(quantity - REPORTED_TIMER_VALUES.getOrDefault(name, 0L), TimeUnit.NANOSECONDS); - REPORTED_TIMER_VALUES.put(name, quantity); - } + recordMetric(v, matcher); } }); @@ -188,6 +163,35 @@ public class Statistics { } } + private void recordMetric(final Object v, final Matcher matcher) { + final String type = matcher.group("type"); + final StringTokenizer stringTokenizer = new StringTokenizer(matcher.group("key"), ":"); + final String name = METER_PREFIX + stringTokenizer.nextToken(); + if (type.equals("Counter")) { + final double quantity = v instanceof Double d ? d : Double.parseDouble(v.toString()); + final Counter counter; + if (stringTokenizer.hasMoreTokens()) { + counter = meterRegistry.counter(name, "entity", stringTokenizer.nextToken()); + } else { + counter = meterRegistry.counter(name); + } + counter.increment(quantity - counter.count()); + } else { // Timer + final long quantity = v instanceof Long l ? l : (long) Double.parseDouble(v.toString()); + final Timer timer; + if (stringTokenizer.hasMoreTokens()) { + final String entity = stringTokenizer.nextToken(); + stringTokenizer.nextToken(); // skip, what is this? + final String subOp = stringTokenizer.hasMoreTokens() ? stringTokenizer.nextToken() : "n/a"; + timer = meterRegistry.timer(name, "entity", entity, "subOp", subOp); + } else { + timer = meterRegistry.timer(name); + } + timer.record(quantity - REPORTED_TIMER_VALUES.getOrDefault(name, 0L), TimeUnit.NANOSECONDS); + REPORTED_TIMER_VALUES.put(name, quantity); + } + } + private static PerformanceMonitor getPerformanceMonitor(final EntityManagerFactory entityManagerFactory) { return (PerformanceMonitor) entityManagerFactory.unwrap(Session.class).getProfiler(); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/SystemManagementCacheKeyGenerator.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/SystemManagementCacheKeyGenerator.java index db4dd22cd..21fd99bae 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/SystemManagementCacheKeyGenerator.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/SystemManagementCacheKeyGenerator.java @@ -16,7 +16,6 @@ import java.util.Optional; import jakarta.validation.constraints.NotNull; import org.eclipse.hawkbit.tenancy.TenantAware; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.interceptor.KeyGenerator; import org.springframework.cache.interceptor.SimpleKeyGenerator; import org.springframework.context.annotation.Bean; diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java index fbf2d6b22..4e5881a95 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java @@ -101,7 +101,6 @@ import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.tenancy.TenantAware; import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties.TenantConfigurationKey; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.ConcurrencyFailureException; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java index 83f13f294..92d3fc436 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaRolloutManagement.java @@ -79,7 +79,6 @@ import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; import org.eclipse.hawkbit.repository.rsql.VirtualPropertyReplacer; import org.eclipse.hawkbit.security.SystemSecurityContext; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.ConcurrencyFailureException; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -668,7 +667,8 @@ public class JpaRolloutManagement implements RolloutManagement { // prepare the groups final List srcGroups = groupList.stream() .map(group -> prepareRolloutGroupWithDefaultConditions(group, conditions)) - .collect(Collectors.toList()); + .map(RolloutGroup.class::cast) + .toList(); srcGroups.forEach(RolloutHelper::verifyRolloutGroupHasConditions); RolloutHelper.verifyRemainingTargets(calculateRemainingTargets( diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTenantStatsManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTenantStatsManagement.java index f0cfd4dde..ca270de88 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTenantStatsManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTenantStatsManagement.java @@ -15,7 +15,6 @@ import org.eclipse.hawkbit.repository.jpa.repository.LocalArtifactRepository; import org.eclipse.hawkbit.repository.jpa.repository.TargetRepository; import org.eclipse.hawkbit.repository.report.model.TenantUsage; import org.eclipse.hawkbit.tenancy.TenantAware; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/AbstractRSQLVisitor.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/AbstractRSQLVisitor.java index c311d605d..9f8258898 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/AbstractRSQLVisitor.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/rsql/AbstractRSQLVisitor.java @@ -11,7 +11,7 @@ package org.eclipse.hawkbit.repository.jpa.rsql; import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; +import java.util.stream.Stream; import jakarta.validation.constraints.NotNull; @@ -105,7 +105,8 @@ public abstract class AbstractRSQLVisitor & RsqlQueryField> { } private List getExpectedFieldList() { - final List expectedFieldList = Arrays.stream(rsqlQueryFieldType.getEnumConstants()) + return Stream.concat( + Arrays.stream(rsqlQueryFieldType.getEnumConstants()) .filter(enumField -> enumField.getSubEntityAttributes().isEmpty()).map(enumField -> { final String enumFieldName = enumField.name().toLowerCase(); if (enumField.isMap()) { @@ -113,9 +114,8 @@ public abstract class AbstractRSQLVisitor & RsqlQueryField> { } else { return enumFieldName; } - }).collect(Collectors.toList()); - - final List expectedSubFieldList = Arrays.stream(rsqlQueryFieldType.getEnumConstants()) + }), + Arrays.stream(rsqlQueryFieldType.getEnumConstants()) .filter(enumField -> !enumField.getSubEntityAttributes().isEmpty()).flatMap(enumField -> { final List subEntity = enumField .getSubEntityAttributes().stream().map(fieldName -> enumField.name().toLowerCase() @@ -123,9 +123,8 @@ public abstract class AbstractRSQLVisitor & RsqlQueryField> { .toList(); return subEntity.stream(); - }).toList(); - expectedFieldList.addAll(expectedSubFieldList); - return expectedFieldList; + })) + .toList(); } @Value