diff --git a/hawkbit-artifact/hawkbit-artifact-api/src/main/java/org/eclipse/hawkbit/artifact/repository/urlhandler/PropertyBasedArtifactUrlHandler.java b/hawkbit-artifact/hawkbit-artifact-api/src/main/java/org/eclipse/hawkbit/artifact/repository/urlhandler/PropertyBasedArtifactUrlHandler.java index dfe3c77f9a..80a9d9e6f9 100644 --- a/hawkbit-artifact/hawkbit-artifact-api/src/main/java/org/eclipse/hawkbit/artifact/repository/urlhandler/PropertyBasedArtifactUrlHandler.java +++ b/hawkbit-artifact/hawkbit-artifact-api/src/main/java/org/eclipse/hawkbit/artifact/repository/urlhandler/PropertyBasedArtifactUrlHandler.java @@ -19,7 +19,6 @@ import java.util.Map.Entry; import java.util.Optional; import java.util.Set; -import java.util.stream.Collectors; import org.eclipse.hawkbit.artifact.repository.urlhandler.ArtifactUrlHandlerProperties.UrlProtocol; import org.springframework.util.ObjectUtils; @@ -87,7 +86,7 @@ public List getUrls(final URLPlaceholder placeholder, final ApiType .filter(urlProtocol -> urlProtocol.getSupports().contains(api) && urlProtocol.isEnabled()) .map(urlProtocol -> new ArtifactUrl(urlProtocol.getProtocol().toUpperCase(), urlProtocol.getRel(), generateUrl(urlProtocol, placeholder, requestUri))) - .collect(Collectors.toList()); + .toList(); } diff --git a/hawkbit-artifact/hawkbit-artifact-api/src/test/java/org/eclipse/hawkbit/artifact/repository/urlhandler/PropertyBasedArtifactUrlHandlerTest.java b/hawkbit-artifact/hawkbit-artifact-api/src/test/java/org/eclipse/hawkbit/artifact/repository/urlhandler/PropertyBasedArtifactUrlHandlerTest.java index fbcb5bacd0..053fb8960f 100644 --- a/hawkbit-artifact/hawkbit-artifact-api/src/test/java/org/eclipse/hawkbit/artifact/repository/urlhandler/PropertyBasedArtifactUrlHandlerTest.java +++ b/hawkbit-artifact/hawkbit-artifact-api/src/test/java/org/eclipse/hawkbit/artifact/repository/urlhandler/PropertyBasedArtifactUrlHandlerTest.java @@ -71,9 +71,8 @@ void urlGenerationWithDefaultConfiguration() { new ArtifactUrl( "http".toUpperCase(), "download-http", HTTP_LOCALHOST + TENANT + "/controller/v1/" + - CONTROLLER_ID + "/softwaremodules/" + SOFTWARE_MODULE_ID + "/artifacts/" + FILENAME_ENCODE)); - - assertThat(ddiUrls).isEqualTo(urlHandlerUnderTest.getUrls(placeHolder, ApiType.DMF)); + CONTROLLER_ID + "/softwaremodules/" + SOFTWARE_MODULE_ID + "/artifacts/" + FILENAME_ENCODE)) + .isEqualTo(urlHandlerUnderTest.getUrls(placeHolder, ApiType.DMF)); } @Test diff --git a/hawkbit-ddi/hawkbit-ddi-server/src/test/java/org/eclipse/hawkbit/app/ddi/PreAuthorizeEnabledTest.java b/hawkbit-ddi/hawkbit-ddi-server/src/test/java/org/eclipse/hawkbit/app/ddi/PreAuthorizeEnabledTest.java index e9f5a8829a..d68472ba33 100644 --- a/hawkbit-ddi/hawkbit-ddi-server/src/test/java/org/eclipse/hawkbit/app/ddi/PreAuthorizeEnabledTest.java +++ b/hawkbit-ddi/hawkbit-ddi-server/src/test/java/org/eclipse/hawkbit/app/ddi/PreAuthorizeEnabledTest.java @@ -24,12 +24,12 @@ @Feature("Integration Test - Security") @Story("PreAuthorized enabled") @TestPropertySource(properties = { "spring.flyway.enabled=true" }) -public class PreAuthorizeEnabledTest extends AbstractSecurityTest { +class PreAuthorizeEnabledTest extends AbstractSecurityTest { @Test @Description("Tests whether request fail if a role is forbidden for the user") @WithUser(authorities = { SpPermission.READ_TARGET }, autoCreateTenant = false) - public void failIfNoRole() throws Exception { + void failIfNoRole() throws Exception { mvc.perform(get("/DEFAULT/controller/v1/controllerId")) .andExpect(result -> assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.FORBIDDEN.value())); } @@ -37,7 +37,7 @@ public void failIfNoRole() throws Exception { @Test @Description("Tests whether request succeed if a role is granted for the user") @WithUser(authorities = { SpPermission.SpringEvalExpressions.CONTROLLER_ROLE }, autoCreateTenant = false) - public void successIfHasRole() throws Exception { + void successIfHasRole() throws Exception { mvc.perform(get("/DEFAULT/controller/v1/controllerId")) .andExpect(result -> assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.OK.value())); } diff --git a/hawkbit-ddi/hawkbit-ddi-starter/src/test/java/org/eclipse/hawkbit/autoconfigure/ddi/security/PreAuthTokenSourceTrustAuthenticationProviderTest.java b/hawkbit-ddi/hawkbit-ddi-starter/src/test/java/org/eclipse/hawkbit/autoconfigure/ddi/security/PreAuthTokenSourceTrustAuthenticationProviderTest.java index 357417092c..8a3f17199f 100644 --- a/hawkbit-ddi/hawkbit-ddi-starter/src/test/java/org/eclipse/hawkbit/autoconfigure/ddi/security/PreAuthTokenSourceTrustAuthenticationProviderTest.java +++ b/hawkbit-ddi/hawkbit-ddi-starter/src/test/java/org/eclipse/hawkbit/autoconfigure/ddi/security/PreAuthTokenSourceTrustAuthenticationProviderTest.java @@ -32,7 +32,7 @@ @Feature("Unit Tests - Security") @Story("PreAuthToken Source TrustAuthentication Provider Test") @ExtendWith(MockitoExtension.class) -public class PreAuthTokenSourceTrustAuthenticationProviderTest { +class PreAuthTokenSourceTrustAuthenticationProviderTest { private static final String REQUEST_SOURCE_IP = "127.0.0.1"; @@ -46,7 +46,7 @@ public class PreAuthTokenSourceTrustAuthenticationProviderTest { @Test @Description("Testing in case the containing controllerId in the URI request path does not accord with the controllerId in the request header.") - public void principalAndCredentialsNotTheSameThrowsAuthenticationException() { + void principalAndCredentialsNotTheSameThrowsAuthenticationException() { final String principal = "controllerIdURL"; final String credentials = "controllerIdHeader"; final PreAuthenticatedAuthenticationToken token = new PreAuthenticatedAuthenticationToken(principal, @@ -59,7 +59,7 @@ public void principalAndCredentialsNotTheSameThrowsAuthenticationException() { @Test @Description("Testing that the controllerId within the URI request path is the same with the controllerId within the request header and no source IP check is in place.") - public void principalAndCredentialsAreTheSameWithNoSourceIpCheckIsSuccessful() { + void principalAndCredentialsAreTheSameWithNoSourceIpCheckIsSuccessful() { final String principal = "controllerId"; final String credentials = "controllerId"; final PreAuthenticatedAuthenticationToken token = new PreAuthenticatedAuthenticationToken(principal, @@ -72,7 +72,7 @@ public void principalAndCredentialsAreTheSameWithNoSourceIpCheckIsSuccessful() { @Test @Description("Testing that the controllerId in the URI request match with the controllerId in the request header but the request are not coming from a trustful source.") - public void principalAndCredentialsAreTheSameButSourceIpRequestNotMatching2() { + void principalAndCredentialsAreTheSameButSourceIpRequestNotMatching2() { final String remoteAddress = "192.168.1.1"; final String principal = "controllerId"; final String credentials = "controllerId"; @@ -88,7 +88,7 @@ public void principalAndCredentialsAreTheSameButSourceIpRequestNotMatching2() { @Test @Description("Testing that the controllerId in the URI request match with the controllerId in the request header and the source IP is matching the allowed remote IP address.") - public void principalAndCredentialsAreTheSameAndSourceIpIsTrusted() { + void principalAndCredentialsAreTheSameAndSourceIpIsTrusted() { final String principal = "controllerId"; final String credentials = "controllerId"; final PreAuthenticatedAuthenticationToken token = new PreAuthenticatedAuthenticationToken(principal, @@ -104,7 +104,7 @@ public void principalAndCredentialsAreTheSameAndSourceIpIsTrusted() { @Test @Description("Testing that the controllerId in the URI request match with the controllerId in the request header and the source IP matches one of the allowed remote IP addresses.") - public void principalAndCredentialsAreTheSameAndSourceIpIsWithinList() { + void principalAndCredentialsAreTheSameAndSourceIpIsWithinList() { final String[] trustedIPAddresses = new String[] { "192.168.1.1", "192.168.1.2", REQUEST_SOURCE_IP, "192.168.1.3" }; final String principal = "controllerId"; @@ -125,7 +125,7 @@ public void principalAndCredentialsAreTheSameAndSourceIpIsWithinList() { @Test @Description("Testing that the controllerId in the URI request match with the controllerId in the request header and the source IP does not match any of the allowed remote IP addresses.") - public void principalAndCredentialsAreTheSameSourceIpListNotMatches() { + void principalAndCredentialsAreTheSameSourceIpListNotMatches() { final String[] trustedIPAddresses = new String[] { "192.168.1.1", "192.168.1.2", "192.168.1.3" }; final String principal = "controllerId"; final String credentials = "controllerId"; diff --git a/hawkbit-mgmt/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetTagRestApi.java b/hawkbit-mgmt/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetTagRestApi.java index 60121e8cda..d64ab8f42a 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetTagRestApi.java +++ b/hawkbit-mgmt/hawkbit-mgmt-api/src/main/java/org/eclipse/hawkbit/mgmt/rest/api/MgmtTargetTagRestApi.java @@ -387,8 +387,11 @@ ResponseEntity unassignTargets( @RequestBody List controllerId); enum OnNotFoundPolicy { + // if it has not found - operation fail FAIL, // default + // if it has not found - do operation on found operation and fail indicating that not all are found ON_WHAT_FOUND_AND_FAIL, + // if it has not found - do operation on found operation and success, silently ON_WHAT_FOUND_AND_SUCCESS } } \ No newline at end of file diff --git a/hawkbit-mgmt/hawkbit-mgmt-api/src/test/java/org/eclipse/hawkbit/mgmt/json/model/PagedListTest.java b/hawkbit-mgmt/hawkbit-mgmt-api/src/test/java/org/eclipse/hawkbit/mgmt/json/model/PagedListTest.java index 35f453f370..a9d074ecbf 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-api/src/test/java/org/eclipse/hawkbit/mgmt/json/model/PagedListTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-api/src/test/java/org/eclipse/hawkbit/mgmt/json/model/PagedListTest.java @@ -22,18 +22,18 @@ @Feature("Unit Tests - Management API") @Story("Paged List Handling") -public class PagedListTest { +class PagedListTest { @Test @Description("Ensures that a null payload entity throws an exception.") - public void createListWithNullContentThrowsException() { + void createListWithNullContentThrowsException() { assertThatThrownBy(() -> new PagedList<>(null, 0)) .isInstanceOf(NullPointerException.class); } @Test @Description("Create list with payload and verify content.") - public void createListWithContent() { + void createListWithContent() { final long knownTotal = 2; final List knownContentList = new ArrayList<>(); knownContentList.add("content1"); @@ -44,7 +44,7 @@ public void createListWithContent() { @Test @Description("Create list with payload and verify size values.") - public void createListWithSmallerTotalThanContentSizeIsOk() { + void createListWithSmallerTotalThanContentSizeIsOk() { final long knownTotal = 0; final List knownContentList = new ArrayList<>(); knownContentList.add("content1"); diff --git a/hawkbit-mgmt/hawkbit-mgmt-api/src/test/java/org/eclipse/hawkbit/mgmt/json/model/distributionset/MgmtTargetAssignmentResponseBodyTest.java b/hawkbit-mgmt/hawkbit-mgmt-api/src/test/java/org/eclipse/hawkbit/mgmt/json/model/distributionset/MgmtTargetAssignmentResponseBodyTest.java index df3ca4f08e..9eec3bbef7 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-api/src/test/java/org/eclipse/hawkbit/mgmt/json/model/distributionset/MgmtTargetAssignmentResponseBodyTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-api/src/test/java/org/eclipse/hawkbit/mgmt/json/model/distributionset/MgmtTargetAssignmentResponseBodyTest.java @@ -14,7 +14,6 @@ import java.io.IOException; import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -24,7 +23,7 @@ @Story("Retrieve all open action ids") @Description("Tests for the MgmtTargetAssignmentResponseBody") -public class MgmtTargetAssignmentResponseBodyTest { +class MgmtTargetAssignmentResponseBodyTest { private static final List ASSIGNED_ACTIONS = Arrays.asList(4L, 5L, 6L); private static final int ALREADY_ASSIGNED_COUNT = 3; @@ -32,7 +31,7 @@ public class MgmtTargetAssignmentResponseBodyTest { @Test @Description("Tests that the ActionIds are serialized correctly in MgmtTargetAssignmentResponseBody") - public void testActionIdsSerialization() throws IOException { + void testActionIdsSerialization() throws IOException { final MgmtTargetAssignmentResponseBody responseBody = generateResponseBody(); final ObjectMapper objectMapper = new ObjectMapper(); final String responseBodyAsString = objectMapper.writeValueAsString(responseBody); @@ -70,9 +69,8 @@ public void testActionIdsSerialization() throws IOException { } private static MgmtTargetAssignmentResponseBody generateResponseBody() { - MgmtTargetAssignmentResponseBody response = new MgmtTargetAssignmentResponseBody(); - response.setAssignedActions( - ASSIGNED_ACTIONS.stream().map(id -> new MgmtActionId(CONTROLLER_ID, id)).collect(Collectors.toList())); + final MgmtTargetAssignmentResponseBody response = new MgmtTargetAssignmentResponseBody(); + response.setAssignedActions(ASSIGNED_ACTIONS.stream().map(id -> new MgmtActionId(CONTROLLER_ID, id)).toList()); response.setAlreadyAssigned(ALREADY_ASSIGNED_COUNT); return response; } diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource-deprecated/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/deprecated/json/model/MgmtTargetTagAssigmentResult.java b/hawkbit-mgmt/hawkbit-mgmt-resource-deprecated/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/deprecated/json/model/MgmtTargetTagAssigmentResult.java index 57722cf592..c0f0a4f4df 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource-deprecated/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/deprecated/json/model/MgmtTargetTagAssigmentResult.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource-deprecated/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/deprecated/json/model/MgmtTargetTagAssigmentResult.java @@ -32,6 +32,7 @@ @JsonInclude(Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) @Deprecated(forRemoval = true, since = "0.6.0") +@SuppressWarnings("java:S1133") // will be removed at some point public class MgmtTargetTagAssigmentResult { @JsonProperty diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeMapper.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeMapper.java index 6ffb62dedb..22e10ffdb2 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeMapper.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDistributionSetTypeMapper.java @@ -16,7 +16,6 @@ import java.util.Collections; import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; import org.eclipse.hawkbit.mgmt.json.model.distributionsettype.MgmtDistributionSetType; import org.eclipse.hawkbit.mgmt.json.model.distributionsettype.MgmtDistributionSetTypeRequestBodyPost; diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDownloadArtifactResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDownloadArtifactResource.java index 8e664946ea..3083239ce2 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDownloadArtifactResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtDownloadArtifactResource.java @@ -37,10 +37,13 @@ @Scope(value = WebApplicationContext.SCOPE_REQUEST) public class MgmtDownloadArtifactResource implements MgmtDownloadArtifactRestApi { - @Autowired - private SoftwareModuleManagement softwareModuleManagement; - @Autowired - private ArtifactManagement artifactManagement; + private final SoftwareModuleManagement softwareModuleManagement; + private final ArtifactManagement artifactManagement; + + public MgmtDownloadArtifactResource(final SoftwareModuleManagement softwareModuleManagement, final ArtifactManagement artifactManagement) { + this.softwareModuleManagement = softwareModuleManagement; + this.artifactManagement = artifactManagement; + } /** * Handles the GET request for downloading an artifact. diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutMapper.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutMapper.java index be190717f5..a894ff4f7d 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutMapper.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutMapper.java @@ -15,7 +15,6 @@ import java.util.Collections; import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -68,7 +67,7 @@ static List toResponseRollout(final List rollo return Collections.emptyList(); } - return rollouts.stream().map(rollout -> toResponseRollout(rollout, withDetails)).collect(Collectors.toList()); + return rollouts.stream().map(rollout -> toResponseRollout(rollout, withDetails)).toList(); } static MgmtRolloutResponseBody toResponseRollout(final Rollout rollout, final boolean withDetails) { @@ -200,14 +199,13 @@ static RolloutGroupConditions fromRequest(final AbstractMgmtRolloutConditionsEnt return conditions.build(); } - static List toResponseRolloutGroup(final List rollouts, - final boolean confirmationFlowEnabled, final boolean withDetails) { + static List toResponseRolloutGroup( + final List rollouts, final boolean confirmationFlowEnabled, final boolean withDetails) { if (rollouts == null) { return Collections.emptyList(); } - return rollouts.stream().map(group -> toResponseRolloutGroup(group, withDetails, confirmationFlowEnabled)) - .collect(Collectors.toList()); + return rollouts.stream().map(group -> toResponseRolloutGroup(group, withDetails, confirmationFlowEnabled)).toList(); } static MgmtRolloutGroupResponseBody toResponseRolloutGroup(final RolloutGroup rolloutGroup, diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResource.java index ba9a00fb37..998e0898c2 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtRolloutResource.java @@ -12,7 +12,6 @@ import java.util.List; import java.util.Objects; import java.util.Optional; -import java.util.stream.Collectors; import jakarta.validation.ValidationException; @@ -147,7 +146,7 @@ public ResponseEntity create(final MgmtRolloutRestReque rolloutRequestBody).orElse(confirmationFlowActive); return MgmtRolloutMapper.fromRequest(entityFactory, mgmtRolloutGroup) .confirmationRequired(confirmationRequired); - }).collect(Collectors.toList()); + }).toList(); rollout = rolloutManagement.create(create, rolloutGroups, rolloutGroupConditions); } else if (rolloutRequestBody.getAmountGroups() != null) { final boolean confirmationRequired = rolloutRequestBody.getConfirmationRequired() == null diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleMapper.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleMapper.java index 67a6a05c60..00f9d5b324 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleMapper.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleMapper.java @@ -15,7 +15,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -57,7 +56,7 @@ static List fromRequestSwMetadata(final EntityFact .map(metadataRest -> entityFactory.softwareModuleMetadata().create(softwareModuleId) .key(metadataRest.getKey()).value(metadataRest.getValue()) .targetVisible(metadataRest.isTargetVisible())) - .collect(Collectors.toList()); + .toList(); } static List smFromRequest(final EntityFactory entityFactory, @@ -66,7 +65,7 @@ static List smFromRequest(final EntityFactory entityFactor return Collections.emptyList(); } - return smsRest.stream().map(smRest -> fromRequest(entityFactory, smRest)).collect(Collectors.toList()); + return smsRest.stream().map(smRest -> fromRequest(entityFactory, smRest)).toList(); } static List toResponse(final Collection softwareModules) { @@ -74,8 +73,7 @@ static List toResponse(final Collection soft return Collections.emptyList(); } - return new ResponseList<>( - softwareModules.stream().map(MgmtSoftwareModuleMapper::toResponse).collect(Collectors.toList())); + return new ResponseList<>(softwareModules.stream().map(MgmtSoftwareModuleMapper::toResponse).toList()); } static List toResponseSwMetadata(final Collection metadata) { @@ -83,7 +81,7 @@ static List toResponseSwMetadata(final Collection smFromRequest(final EntityFactory entityFa return Collections.emptyList(); } - return smTypesRest.stream().map(smRest -> fromRequest(entityFactory, smRest)).collect(Collectors.toList()); + return smTypesRest.stream().map(smRest -> fromRequest(entityFactory, smRest)).toList(); } static List toTypesResponse(final Collection types) { @@ -47,7 +46,7 @@ static List toTypesResponse(final Collection(types.stream().map(MgmtSoftwareModuleTypeMapper::toResponse).collect(Collectors.toList())); + return new ResponseList<>(types.stream().map(MgmtSoftwareModuleTypeMapper::toResponse).toList()); } static MgmtSoftwareModuleType toResponse(final SoftwareModuleType type) { diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSystemManagementResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSystemManagementResource.java index 8eb73d5c41..ffd99dd053 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSystemManagementResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSystemManagementResource.java @@ -70,8 +70,7 @@ public ResponseEntity getSystemUsageStats() { .setOverallArtifactVolumeInBytes(report.getOverallArtifactVolumeInBytes()) .setOverallTargets(report.getOverallTargets()).setOverallTenants(report.getTenants().size()); - result.setTenantStats(report.getTenants().stream().map(MgmtSystemManagementResource::convertTenant) - .collect(Collectors.toList())); + result.setTenantStats(report.getTenants().stream().map(MgmtSystemManagementResource::convertTenant).toList()); return ResponseEntity.ok(result); } @@ -89,7 +88,7 @@ public ResponseEntity> getCaches() { .ok(cacheNames.stream().map(cacheManager::getCache) .filter(Objects::nonNull) .map(cache -> new MgmtSystemCache(cache.getName(), Collections.emptyList())) - .collect(Collectors.toList())); + .toList()); } /** diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTagMapper.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTagMapper.java index f20c05314a..d8e6e9f207 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTagMapper.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTagMapper.java @@ -15,7 +15,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.stream.Collectors; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -111,7 +110,7 @@ static List mapTagFromRequest(final EntityFactory entityFactory, fina return tags.stream() .map(tagRest -> entityFactory.tag().create().name(tagRest.getName()) .description(tagRest.getDescription()).colour(tagRest.getColour())) - .collect(Collectors.toList()); + .toList(); } private static void mapTag(final MgmtTag response, final Tag tag) { diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryMapper.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryMapper.java index 65632d55c3..efc26fe117 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryMapper.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryMapper.java @@ -38,12 +38,12 @@ @NoArgsConstructor(access = AccessLevel.PRIVATE) public final class MgmtTargetFilterQueryMapper { - static List toResponse(final List filters, - final boolean confirmationFlowEnabled, final boolean isRepresentationFull) { + static List toResponse( + final List filters, final boolean confirmationFlowEnabled, final boolean isRepresentationFull) { if (CollectionUtils.isEmpty(filters)) { return Collections.emptyList(); } - return filters.stream().map(filter -> toResponse(filter, confirmationFlowEnabled, isRepresentationFull)).collect(Collectors.toList()); + return filters.stream().map(filter -> toResponse(filter, confirmationFlowEnabled, isRepresentationFull)).toList(); } static MgmtTargetFilterQuery toResponse(final TargetFilterQuery filter, final boolean confirmationFlowEnabled, diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetMapper.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetMapper.java index 2adf3eaab3..ed16487948 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetMapper.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetMapper.java @@ -19,7 +19,6 @@ import java.util.Date; import java.util.List; import java.util.function.Function; -import java.util.stream.Collectors; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -124,7 +123,7 @@ public static List toResponse(final Collection targets, fina final Function pollStatusResolver = configHelper.pollStatusResolver(); return new ResponseList<>( - targets.stream().map(target -> toResponse(target, configHelper, pollStatusResolver)).collect(Collectors.toList())); + targets.stream().map(target -> toResponse(target, configHelper, pollStatusResolver)).toList()); } /** @@ -194,7 +193,7 @@ static List fromRequest(final EntityFactory entityFactory, } return targetsRest.stream().map(targetRest -> fromRequest(entityFactory, targetRest)) - .collect(Collectors.toList()); + .toList(); } static List fromRequestTargetMetadata(final List metadata, @@ -205,7 +204,7 @@ static List fromRequestTargetMetadata(final List metadat return metadata.stream().map( metadataRest -> entityFactory.generateTargetMetadata(metadataRest.getKey(), metadataRest.getValue())) - .collect(Collectors.toList()); + .toList(); } static List toActionStatusRestResponse(final Collection actionStatus, @@ -219,7 +218,7 @@ static List toActionStatusRestResponse(final Collection toResponseTargetMetadata(final List metadata) { - return metadata.stream().map(MgmtTargetMapper::toResponseTargetMetadata).collect(Collectors.toList()); + return metadata.stream().map(MgmtTargetMapper::toResponseTargetMetadata).toList(); } private static void addPollStatus(final Target target, final MgmtTarget targetRest, final Function pollStatusResolver) { 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 bee192c565..bb8e9300fe 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 @@ -137,7 +137,7 @@ public ResponseEntity> createTargets(final List updateTarget(final String targetId, final MgmtTargetRequestBody targetRest) { if (targetRest.getRequestAttributes() != null) { - if (targetRest.getRequestAttributes()) { + if (Boolean.TRUE.equals(targetRest.getRequestAttributes())) { targetManagement.requestControllerAttributes(targetId); } else { return ResponseEntity.badRequest().build(); @@ -336,7 +336,7 @@ public ResponseEntity postAssignedDistribution : dsAssignment.getConfirmationRequired(); return MgmtDeploymentRequestMapper.createAssignmentRequestBuilder(dsAssignment, targetId) .setConfirmationRequired(isConfirmationRequired).build(); - }).collect(Collectors.toList()); + }).toList(); final List assignmentResults = deploymentManagement .assignDistributionSets(deploymentRequests); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTagResource.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTagResource.java index 0c0e1a41b4..077dd25af9 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTagResource.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTagResource.java @@ -157,11 +157,9 @@ public ResponseEntity assignTargets( } else { final AtomicReference> notFound = new AtomicReference<>(); this.targetManagement.assignTag(controllerIds, targetTagId, notFound::set); - if (notFound.get() != null) { - // has not found - if (onNotFoundPolicy == OnNotFoundPolicy.ON_WHAT_FOUND_AND_FAIL) { - throw new EntityNotFoundException(Target.class, notFound.get()); - } // else - success + if (notFound.get() != null && onNotFoundPolicy == OnNotFoundPolicy.ON_WHAT_FOUND_AND_FAIL) { + // has not found and ON_WHAT_FOUND_AND_FAIL + throw new EntityNotFoundException(Target.class, notFound.get()); } } return ResponseEntity.ok().build(); @@ -183,11 +181,9 @@ public ResponseEntity unassignTargets( } else { final AtomicReference> notFound = new AtomicReference<>(); this.targetManagement.unassignTag(controllerIds, targetTagId, notFound::set); - if (notFound.get() != null) { - // has not found - if (onNotFoundPolicy == OnNotFoundPolicy.ON_WHAT_FOUND_AND_FAIL) { - throw new EntityNotFoundException(Target.class, notFound.get()); - } // else - success + if (notFound.get() != null && onNotFoundPolicy == OnNotFoundPolicy.ON_WHAT_FOUND_AND_FAIL) { + // has not found and ON_WHAT_FOUND_AND_FAIL + throw new EntityNotFoundException(Target.class, notFound.get()); } } return ResponseEntity.ok().build(); diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeMapper.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeMapper.java index 57016b9e64..be29efcd4f 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeMapper.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeMapper.java @@ -16,7 +16,6 @@ import java.util.Collections; import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -43,14 +42,14 @@ static List targetFromRequest( } return targetTypesRest.stream() .map(targetRest -> fromRequest(entityFactory, targetRest)) - .collect(Collectors.toList()); + .toList(); } static List toListResponse(final List types) { if (types == null) { return Collections.emptyList(); } - return new ResponseList<>(types.stream().map(MgmtTargetTypeMapper::toResponse).collect(Collectors.toList())); + return new ResponseList<>(types.stream().map(MgmtTargetTypeMapper::toResponse).toList()); } static MgmtTargetType toResponse(final TargetType type) { @@ -78,7 +77,7 @@ private static TargetTypeCreate fromRequest(final EntityFactory entityFactory, private static Collection getDistributionSets(final MgmtTargetTypeRequestBodyPost targetTypesRest) { return Optional.ofNullable(targetTypesRest.getCompatibledistributionsettypes()) - .map(ds -> ds.stream().map(MgmtDistributionSetTypeAssignment::getId).collect(Collectors.toList())) + .map(ds -> ds.stream().map(MgmtDistributionSetTypeAssignment::getId).toList()) .orElse(Collections.emptyList()); } -} +} \ No newline at end of file diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTenantManagementMapper.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTenantManagementMapper.java index f44b88c330..3b03de51ed 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTenantManagementMapper.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/main/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTenantManagementMapper.java @@ -23,7 +23,7 @@ @NoArgsConstructor(access = AccessLevel.PRIVATE) public final class MgmtTenantManagementMapper { - public static String DEFAULT_DISTRIBUTION_SET_TYPE_KEY = "default.ds.type"; + public static final String DEFAULT_DISTRIBUTION_SET_TYPE_KEY = "default.ds.type"; public static MgmtSystemTenantConfigurationValue toResponseTenantConfigurationValue( final String key, final TenantConfigurationValue repoConfValue) { 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 8dd3ed8e3a..2b032f0a84 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 @@ -891,23 +891,20 @@ public void createDistributionSets() throws Exception { .getWithDetails(distributionSetManagement.findByRsql("name==three", PAGE).getContent().get(0).getId()) .get(); - assertThat( - JsonPath.compile("[0]_links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) + assertThat((Object)JsonPath.compile("[0]_links.self.href").read(mvcResult.getResponse().getContentAsString())) .hasToString("http://localhost/rest/v1/distributionsets/" + one.getId()); - assertThat(JsonPath.compile("[0]id").read(mvcResult.getResponse().getContentAsString()).toString()) + assertThat((Object)JsonPath.compile("[0]id").read(mvcResult.getResponse().getContentAsString())) .hasToString(String.valueOf(one.getId())); - assertThat( - JsonPath.compile("[1]_links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) + assertThat((Object)JsonPath.compile("[1]_links.self.href").read(mvcResult.getResponse().getContentAsString())) .hasToString("http://localhost/rest/v1/distributionsets/" + two.getId()); - assertThat(JsonPath.compile("[1]id").read(mvcResult.getResponse().getContentAsString()).toString()) + assertThat((Object)JsonPath.compile("[1]id").read(mvcResult.getResponse().getContentAsString())) .hasToString(String.valueOf(two.getId())); - assertThat( - JsonPath.compile("[2]_links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) + assertThat((Object)JsonPath.compile("[2]_links.self.href").read(mvcResult.getResponse().getContentAsString())) .hasToString("http://localhost/rest/v1/distributionsets/" + three.getId()); - assertThat(JsonPath.compile("[2]id").read(mvcResult.getResponse().getContentAsString()).toString()) + assertThat((Object)JsonPath.compile("[2]id").read(mvcResult.getResponse().getContentAsString())) .hasToString(String.valueOf(three.getId())); // check in database 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 8a13cc67fb..7cac12e782 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 @@ -685,14 +685,11 @@ private void verifyCreatedDistributionSetTypes(final MvcResult mvcResult) throws assertThat(created2.getOptionalModuleTypes()).containsOnly(osType, runtimeType, appType); assertThat(created3.getMandatoryModuleTypes()).containsOnly(osType, runtimeType); - assertThat( - JsonPath.compile("[0]_links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) + assertThat((Object)JsonPath.compile("[0]_links.self.href").read(mvcResult.getResponse().getContentAsString())) .hasToString("http://localhost/rest/v1/distributionsettypes/" + created1.getId()); - assertThat( - JsonPath.compile("[1]_links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) + assertThat((Object)JsonPath.compile("[1]_links.self.href").read(mvcResult.getResponse().getContentAsString())) .hasToString("http://localhost/rest/v1/distributionsettypes/" + created2.getId()); - assertThat( - JsonPath.compile("[2]_links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) + assertThat((Object)JsonPath.compile("[2]_links.self.href").read(mvcResult.getResponse().getContentAsString())) .hasToString("http://localhost/rest/v1/distributionsettypes/" + created3.getId()); assertThat(distributionSetTypeManagement.count()).isEqualTo(7); 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 77a6a75da1..25bff7f67e 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 @@ -188,7 +188,7 @@ public void validateIfApprovalFieldsArePresentAfterApproval() throws Exception { approvalStrategy.setApproveDecidedBy("testUser"); final int amountTargets = 2; final String remark = "Some remark"; - final List targets = testdataFactory.createTargets(amountTargets, "rollout"); + testdataFactory.createTargets(amountTargets, "rollout"); final DistributionSet dsA = testdataFactory.createDistributionSet(""); final Rollout rollout = createRollout("rollout1", 3, dsA.getId(), "controllerId==rollout*", false); @@ -1927,10 +1927,6 @@ private void retrieveAndCompareRolloutsContent(final DistributionSet dsA, final retrieveAndCompareRolloutsContent(dsA, urlTemplate, isFullRepresentation, false, null, null); } - private Rollout getRollout(final long rolloutId) { - return rolloutManagement.get(rolloutId).orElseThrow(NoSuchElementException::new); - } - private void retrieveAndCompareRolloutsContent(final DistributionSet dsA, final String urlTemplate, final boolean isFullRepresentation, final boolean isStartTypeScheduled, final Long startAt, final Long forcetime) throws Exception { diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java index 76b4ed4294..1671ef6338 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleResourceTest.java @@ -104,7 +104,7 @@ public void assertPreparationOfRepo() { public void createSMFromAlreadyMarkedAsDeletedType() throws Exception { final String SM_TYPE = "someSmType"; final SoftwareModule sm = testdataFactory.createSoftwareModule(SM_TYPE); - final DistributionSetType t = testdataFactory.findOrCreateDistributionSetType( + testdataFactory.findOrCreateDistributionSetType( "testKey", "testType", Collections.singletonList(sm.getType()), Collections.singletonList(sm.getType())); final DistributionSetType type = testdataFactory.findOrCreateDistributionSetType("testKey", "testType"); @@ -295,7 +295,7 @@ void updateSoftwareModuleDeletedFlag() throws Exception { .andExpect(jsonPath("$.lastModifiedAt", equalTo(sm.getLastModifiedAt()))) .andExpect(jsonPath("$.deleted", equalTo(false))); - final SoftwareModule updatedSm = softwareModuleManagement.get(sm.getId()).get(); + softwareModuleManagement.get(sm.getId()); assertThat(sm.getLastModifiedBy()).isEqualTo("smUpdateTester"); assertThat(sm.getLastModifiedAt()).isEqualTo(sm.getLastModifiedAt()); assertThat(sm.isDeleted()).isFalse(); @@ -400,15 +400,12 @@ void uploadArtifact() throws Exception { mvcResult.getResponse().getContentAsString()); final Long artId = softwareModuleManagement.get(sm.getId()).get().getArtifacts().get(0).getId(); assertThat(artResult.getArtifactId()).as("Wrong artifact id").isEqualTo(artId); - assertThat(JsonPath.compile("$._links.self.href") - .read(mvcResult.getResponse().getContentAsString()) - .toString()).as("Link contains no self url") - .isEqualTo("http://localhost/rest/v1/softwaremodules/" + sm.getId() + "/artifacts/" + artId); - assertThat(JsonPath.compile("$._links.download.href") - .read(mvcResult.getResponse().getContentAsString()) - .toString()).as("response contains no download url ") - .isEqualTo( - "http://localhost/rest/v1/softwaremodules/" + sm.getId() + "/artifacts/" + artId + "/download"); + assertThat((Object)JsonPath.compile("$._links.self.href").read(mvcResult.getResponse().getContentAsString())) + .as("Link contains no self url") + .hasToString("http://localhost/rest/v1/softwaremodules/" + sm.getId() + "/artifacts/" + artId); + assertThat((Object)JsonPath.compile("$._links.download.href").read(mvcResult.getResponse().getContentAsString())) + .as("response contains no download url ") + .hasToString("http://localhost/rest/v1/softwaremodules/" + sm.getId() + "/artifacts/" + artId + "/download"); assertArtifact(sm, random); } diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java index 975d6599e8..e8fdaa6c7a 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtSoftwareModuleTypeResourceTest.java @@ -213,15 +213,12 @@ public void createSoftwareModuleTypes() throws Exception { final SoftwareModuleType created2 = softwareModuleTypeManagement.findByKey("test2").get(); final SoftwareModuleType created3 = softwareModuleTypeManagement.findByKey("test3").get(); - assertThat( - JsonPath.compile("[0]_links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) - .isEqualTo("http://localhost/rest/v1/softwaremoduletypes/" + created1.getId()); - assertThat( - JsonPath.compile("[1]_links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) - .isEqualTo("http://localhost/rest/v1/softwaremoduletypes/" + created2.getId()); - assertThat( - JsonPath.compile("[2]_links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) - .isEqualTo("http://localhost/rest/v1/softwaremoduletypes/" + created3.getId()); + assertThat((Object) JsonPath.compile("[0]_links.self.href").read(mvcResult.getResponse().getContentAsString())) + .hasToString("http://localhost/rest/v1/softwaremoduletypes/" + created1.getId()); + assertThat((Object)JsonPath.compile("[1]_links.self.href").read(mvcResult.getResponse().getContentAsString())) + .hasToString("http://localhost/rest/v1/softwaremoduletypes/" + created2.getId()); + assertThat((Object)JsonPath.compile("[2]_links.self.href").read(mvcResult.getResponse().getContentAsString())) + .hasToString("http://localhost/rest/v1/softwaremoduletypes/" + created3.getId()); assertThat(softwareModuleTypeManagement.count()).isEqualTo(6); } @@ -334,7 +331,7 @@ public void updateSoftwareModuleTypeDeletedFlag() throws Exception { testType = softwareModuleTypeManagement.get(testType.getId()).get(); assertThat(testType.getLastModifiedAt()).isEqualTo(testType.getLastModifiedAt()); - assertThat(testType.isDeleted()).isEqualTo(false); + assertThat(testType.isDeleted()).isFalse(); } @Test @@ -466,15 +463,4 @@ private SoftwareModuleType createTestType() { .update(entityFactory.softwareModuleType().update(testType.getId()).description("Desc1234")); return testType; } - - private void createSoftwareModulesAlphabetical(final int amount) { - char character = 'a'; - for (int index = 0; index < amount; index++) { - final String str = String.valueOf(character); - softwareModuleManagement.create(entityFactory.softwareModule().create().type(osType).name(str) - .description(str).vendor(str).version(str)); - character++; - } - } - -} +} \ No newline at end of file diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryResourceTest.java index d2d4a852df..2c0504e9df 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetFilterQueryResourceTest.java @@ -97,8 +97,7 @@ public class MgmtTargetFilterQueryResourceTest extends AbstractManagementApiInte @Description("Handles the GET request of retrieving all target filter queries within SP.") public void getTargetFilterQueries() throws Exception { final String filterName = "filter_01"; - final TargetFilterQuery filterQuery = createSingleTargetFilterQuery(filterName, "name==test_01"); - + createSingleTargetFilterQuery(filterName, "name==test_01"); mvc.perform(get(MgmtRestConstants.TARGET_FILTER_V1_REQUEST_MAPPING)) .andExpect(status().isOk()) .andDo(MockMvcResultPrinter.print()); @@ -393,7 +392,7 @@ public void createTargetFilterQueryWithBadPayloadBadRequest() throws Exception { .andExpect(status().isBadRequest()) .andReturn(); - assertThat(targetFilterQueryManagement.count()).isEqualTo(0); + assertThat(targetFilterQueryManagement.count()).isZero(); // verify response json exception message final ExceptionInfo exceptionInfo = ResourceUtility @@ -414,7 +413,7 @@ public void createTargetFilterWithInvalidQuery() throws Exception { .andExpect(status().isBadRequest()) .andReturn(); - assertThat(targetFilterQueryManagement.count()).isEqualTo(0); + assertThat(targetFilterQueryManagement.count()).isZero(); } @Test @@ -613,7 +612,7 @@ public void weightValidation() throws Exception { final List filters = targetFilterQueryManagement.findAll(PAGE).getContent(); assertThat(filters).hasSize(1); - assertThat(filters.get(0).getAutoAssignWeight().get()).isEqualTo(45); + assertThat(filters.get(0).getAutoAssignWeight()).contains(45); } @ParameterizedTest 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 11fb2942b3..a09a1a0f46 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 @@ -1006,15 +1006,12 @@ void createTargetsListReturnsSuccessful() throws Exception { .andExpect(jsonPath("[2].createdBy", equalTo("bumlux"))) .andReturn(); - assertThat( - JsonPath.compile("[0]._links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) - .isEqualTo("http://localhost/rest/v1/targets/id1"); - assertThat( - JsonPath.compile("[1]._links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) - .isEqualTo("http://localhost/rest/v1/targets/id2"); - assertThat( - JsonPath.compile("[2]._links.self.href").read(mvcResult.getResponse().getContentAsString()).toString()) - .isEqualTo("http://localhost/rest/v1/targets/id3"); + assertThat((Object) JsonPath.compile("[0]._links.self.href").read(mvcResult.getResponse().getContentAsString())) + .hasToString("http://localhost/rest/v1/targets/id1"); + assertThat((Object)JsonPath.compile("[1]._links.self.href").read(mvcResult.getResponse().getContentAsString())) + .hasToString("http://localhost/rest/v1/targets/id2"); + assertThat((Object)JsonPath.compile("[2]._links.self.href").read(mvcResult.getResponse().getContentAsString())) + .hasToString("http://localhost/rest/v1/targets/id3"); final Target t1 = assertTarget("id1", "testname1", "testid1"); assertThat(t1.getSecurityToken()).isEqualTo("token"); @@ -2275,7 +2272,7 @@ void createTargetsWithTargetType() throws Exception { final List targets = Arrays.asList(test1, test2, test3); - final MvcResult mvcPostResult = mvc + mvc .perform(post("/rest/v1/targets").content(JsonBuilder.targets(targets, true)) .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andDo(MockMvcResultPrinter.print()) diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTagResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTagResourceTest.java index f54ed57cc2..9d6a1fe890 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTagResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTagResourceTest.java @@ -91,9 +91,7 @@ public void getTargetTags() throws Exception { @Test @Description("Handles the GET request of retrieving all targets tags within SP based by parameter") public void getTargetTagsWithParameters() throws Exception { - final List tags = testdataFactory.createTargetTags(2, ""); - final TargetTag assigned = tags.get(0); - final TargetTag unassigned = tags.get(1); + testdataFactory.createTargetTags(2, ""); mvc.perform(get(MgmtRestConstants.TARGET_TAG_V1_REQUEST_MAPPING + "?limit=10&sort=name:ASC&offset=0&q=name==targetTag")) .andExpect(status().isOk()) .andDo(MockMvcResultPrinter.print()); @@ -233,7 +231,7 @@ public void getAssignedTargets() throws Exception { final TargetTag tag = testdataFactory.createTargetTags(1, "").get(0); final int targetsAssigned = 5; final List targets = testdataFactory.createTargets(targetsAssigned); - targetManagement.assignTag(targets.stream().map(Target::getControllerId).collect(Collectors.toList()), tag.getId()); + targetManagement.assignTag(targets.stream().map(Target::getControllerId).toList(), tag.getId()); mvc.perform(get(MgmtRestConstants.TARGET_TAG_V1_REQUEST_MAPPING + "/" + tag.getId() + "/assigned")) .andDo(MockMvcResultPrinter.print()) @@ -254,7 +252,7 @@ public void getAssignedTargetsWithPagingLimitRequestParameter() throws Exception final int targetsAssigned = 5; final int limitSize = 1; final List targets = testdataFactory.createTargets(targetsAssigned); - targetManagement.assignTag(targets.stream().map(Target::getControllerId).collect(Collectors.toList()), tag.getId()); + targetManagement.assignTag(targets.stream().map(Target::getControllerId).toList(), tag.getId()); mvc.perform(get(MgmtRestConstants.TARGET_TAG_V1_REQUEST_MAPPING + "/" + tag.getId() + "/assigned") .param(MgmtRestConstants.REQUEST_PARAMETER_PAGING_LIMIT, String.valueOf(limitSize))) @@ -278,7 +276,7 @@ public void getAssignedTargetsWithPagingLimitAndOffsetRequestParameter() throws final int expectedSize = targetsAssigned - offsetParam; final List targets = testdataFactory.createTargets(targetsAssigned); - targetManagement.assignTag(targets.stream().map(Target::getControllerId).collect(Collectors.toList()), tag.getId()); + targetManagement.assignTag(targets.stream().map(Target::getControllerId).toList(), tag.getId()); mvc.perform(get(MgmtRestConstants.TARGET_TAG_V1_REQUEST_MAPPING + "/" + tag.getId() + "/assigned") .param(MgmtRestConstants.REQUEST_PARAMETER_PAGING_OFFSET, String.valueOf(offsetParam)) @@ -306,8 +304,7 @@ public void assignTarget() throws Exception { .andExpect(status().isOk()); final List updated = targetManagement.findByTag(PAGE, tag.getId()).getContent(); - assertThat(updated.stream().map(Target::getControllerId).collect(Collectors.toList())) - .containsOnly(assigned.getControllerId()); + assertThat(updated.stream().map(Target::getControllerId).toList()).containsOnly(assigned.getControllerId()); } @Test @@ -329,7 +326,7 @@ public void assignTargets() throws Exception { .andExpect(status().isOk()); final List updated = targetManagement.findByTag(PAGE, tag.getId()).getContent(); - assertThat(updated.stream().map(Target::getControllerId).collect(Collectors.toList())) + assertThat(updated.stream().map(Target::getControllerId).toList()) .containsOnly(assigned0.getControllerId(), assigned1.getControllerId()); } @@ -459,7 +456,7 @@ public void unassignTarget() throws Exception { final Target assigned = targets.get(0); final Target unassigned = targets.get(1); - targetManagement.assignTag(targets.stream().map(Target::getControllerId).collect(Collectors.toList()), tag.getId()); + targetManagement.assignTag(targets.stream().map(Target::getControllerId).toList(), tag.getId()); mvc.perform(delete(MgmtRestConstants.TARGET_TAG_V1_REQUEST_MAPPING + "/" + tag.getId() + "/assigned/" + unassigned.getControllerId())) @@ -467,7 +464,7 @@ public void unassignTarget() throws Exception { .andExpect(status().isOk()); final List updated = targetManagement.findByTag(PAGE, tag.getId()).getContent(); - assertThat(updated.stream().map(Target::getControllerId).collect(Collectors.toList())) + assertThat(updated.stream().map(Target::getControllerId).toList()) .containsOnly(assigned.getControllerId()); } @@ -484,7 +481,7 @@ public void unassignTargets() throws Exception { final Target unassigned0 = targets.get(1); final Target unassigned1 = targets.get(2); - targetManagement.assignTag(targets.stream().map(Target::getControllerId).collect(Collectors.toList()), tag.getId()); + targetManagement.assignTag(targets.stream().map(Target::getControllerId).toList(), tag.getId()); mvc.perform(delete(MgmtRestConstants.TARGET_TAG_V1_REQUEST_MAPPING + "/" + tag.getId() + "/assigned") .content(JsonBuilder.toArray(Arrays.asList(unassigned0.getControllerId(), unassigned1.getControllerId()))) @@ -493,7 +490,7 @@ public void unassignTargets() throws Exception { .andExpect(status().isOk()); final List updated = targetManagement.findByTag(PAGE, tag.getId()).getContent(); - assertThat(updated.stream().map(Target::getControllerId).collect(Collectors.toList())) + assertThat(updated.stream().map(Target::getControllerId).toList()) .containsOnly(assigned.getControllerId()); } diff --git a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeResourceTest.java b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeResourceTest.java index 4adad0e7b7..f23bb6f511 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeResourceTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-resource/src/test/java/org/eclipse/hawkbit/mgmt/rest/resource/MgmtTargetTypeResourceTest.java @@ -164,7 +164,7 @@ void getTargetTypesSortedByName() throws Exception { String typeNameA = "ATestTypeGETsorted"; String typeNameB = "BTestTypeGETsorted"; String typeNameC = "CTestTypeGETsorted"; - TargetType testTypeB = createTestTargetTypeInDB(typeNameB); + createTestTargetTypeInDB(typeNameB); TargetType testTypeC = createTestTargetTypeInDB(typeNameC); TargetType testTypeA = createTestTargetTypeInDB(typeNameA); diff --git a/hawkbit-mgmt/hawkbit-mgmt-server/src/test/java/org/eclipse/hawkbit/app/mgmt/PreAuthorizeEnabledTest.java b/hawkbit-mgmt/hawkbit-mgmt-server/src/test/java/org/eclipse/hawkbit/app/mgmt/PreAuthorizeEnabledTest.java index 9d08452cc6..e63677fcc0 100644 --- a/hawkbit-mgmt/hawkbit-mgmt-server/src/test/java/org/eclipse/hawkbit/app/mgmt/PreAuthorizeEnabledTest.java +++ b/hawkbit-mgmt/hawkbit-mgmt-server/src/test/java/org/eclipse/hawkbit/app/mgmt/PreAuthorizeEnabledTest.java @@ -26,12 +26,12 @@ @Feature("Integration Test - Security") @Story("PreAuthorized enabled") -public class PreAuthorizeEnabledTest extends AbstractSecurityTest { +class PreAuthorizeEnabledTest extends AbstractSecurityTest { @Test @Description("Tests whether request fail if a role is forbidden for the user") @WithUser(authorities = { SpPermission.READ_TARGET }, autoCreateTenant = false) - public void failIfNoRole() throws Exception { + void failIfNoRole() throws Exception { mvc.perform(get("/rest/v1/distributionsets")).andExpect(result -> assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.FORBIDDEN.value())); } @@ -39,7 +39,7 @@ public void failIfNoRole() throws Exception { @Test @Description("Tests whether request succeed if a role is granted for the user") @WithUser(authorities = { SpPermission.READ_REPOSITORY }, autoCreateTenant = false) - public void successIfHasRole() throws Exception { + void successIfHasRole() throws Exception { mvc.perform(get("/rest/v1/distributionsets")).andExpect(result -> assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.OK.value())); } @@ -47,7 +47,7 @@ public void successIfHasRole() throws Exception { @Test @Description("Tests whether request succeed if a role is granted for the user") @WithUser(authorities = { SpRole.TENANT_ADMIN }, autoCreateTenant = false) - public void successIfHasTenantAdminRole() throws Exception { + void successIfHasTenantAdminRole() throws Exception { mvc.perform(get("/rest/v1/distributionsets")).andExpect(result -> assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.OK.value())); } @@ -55,20 +55,19 @@ public void successIfHasTenantAdminRole() throws Exception { @Test @Description("Tests whether read tenant config request fail if a tenant config (or read read) is not granted for the user") @WithUser(authorities = { SpPermission.READ_TARGET }, autoCreateTenant = false) - public void onlyDSIfNoTenantConfig() throws Exception { + void onlyDSIfNoTenantConfig() throws Exception { mvc.perform(get("/rest/v1/system/configs")).andExpect(result -> { // returns default DS type because of READ_TARGET assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.OK.value()); - assertThat( - new ObjectMapper().reader().readValue(result.getResponse().getContentAsString(), HashMap.class).size()) - .isEqualTo(1); + assertThat(new ObjectMapper().reader().readValue(result.getResponse().getContentAsString(), HashMap.class)) + .hasSize(1); }); } @Test @Description("Tests whether read tenant config request succeed if a tenant config (not read explicitly) is granted for the user") @WithUser(authorities = { SpPermission.TENANT_CONFIGURATION }, autoCreateTenant = false) - public void successIfHasTenantConfig() throws Exception { + void successIfHasTenantConfig() throws Exception { mvc.perform(get("/rest/v1/system/configs")).andExpect(result -> assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.OK.value())); } diff --git a/hawkbit-monolith/hawkbit-update-server/src/test/java/org/eclipse/hawkbit/app/PreAuthorizeEnabledTest.java b/hawkbit-monolith/hawkbit-update-server/src/test/java/org/eclipse/hawkbit/app/PreAuthorizeEnabledTest.java index d658d27eeb..6228635e1e 100644 --- a/hawkbit-monolith/hawkbit-update-server/src/test/java/org/eclipse/hawkbit/app/PreAuthorizeEnabledTest.java +++ b/hawkbit-monolith/hawkbit-update-server/src/test/java/org/eclipse/hawkbit/app/PreAuthorizeEnabledTest.java @@ -26,12 +26,12 @@ @Feature("Integration Test - Security") @Story("PreAuthorized enabled") -public class PreAuthorizeEnabledTest extends AbstractSecurityTest { +class PreAuthorizeEnabledTest extends AbstractSecurityTest { @Test @Description("Tests whether request fail if a role is forbidden for the user") @WithUser(authorities = { SpPermission.READ_TARGET }, autoCreateTenant = false) - public void failIfNoRole() throws Exception { + void failIfNoRole() throws Exception { mvc.perform(get("/rest/v1/distributionsets")) .andExpect(result -> assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.FORBIDDEN.value())); } @@ -39,7 +39,7 @@ public void failIfNoRole() throws Exception { @Test @Description("Tests whether request succeed if a role is granted for the user") @WithUser(authorities = { SpPermission.READ_REPOSITORY }, autoCreateTenant = false) - public void successIfHasRole() throws Exception { + void successIfHasRole() throws Exception { mvc.perform(get("/rest/v1/distributionsets")) .andExpect(result -> assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.OK.value())); } @@ -47,7 +47,7 @@ public void successIfHasRole() throws Exception { @Test @Description("Tests whether request succeed if a role is granted for the user") @WithUser(authorities = { SpRole.TENANT_ADMIN }, autoCreateTenant = false) - public void successIfHasTenantAdminRole() throws Exception { + void successIfHasTenantAdminRole() throws Exception { mvc.perform(get("/rest/v1/distributionsets")) .andExpect(result -> assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.OK.value())); } @@ -55,20 +55,20 @@ public void successIfHasTenantAdminRole() throws Exception { @Test @Description("Tests whether read tenant config request fail if a tenant config (or read read) is not granted for the user") @WithUser(authorities = { SpPermission.READ_TARGET }, autoCreateTenant = false) - public void onlyDSIfNoTenantConfig() throws Exception { + void onlyDSIfNoTenantConfig() throws Exception { mvc.perform(get("/rest/v1/system/configs")) .andExpect(result -> { // returns default DS type because of READ_TARGET assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.OK.value()); - assertThat(new ObjectMapper().reader().readValue(result.getResponse().getContentAsString(), HashMap.class).size()) - .isEqualTo(1); + assertThat(new ObjectMapper().reader().readValue(result.getResponse().getContentAsString(), HashMap.class)) + .hasSize(1); }); } @Test @Description("Tests whether read tenant config request succeed if a tenant config (not read explicitly) is granted for the user") @WithUser(authorities = { SpPermission.TENANT_CONFIGURATION }, autoCreateTenant = false) - public void successIfHasTenantConfig() throws Exception { + void successIfHasTenantConfig() throws Exception { mvc.perform(get("/rest/v1/system/configs")) .andExpect(result -> assertThat(result.getResponse().getStatus()).isEqualTo(HttpStatus.OK.value())); } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionEvent.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionEvent.java index a56a2c20ea..48b34fcdc9 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionEvent.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/event/remote/MultiActionEvent.java @@ -13,7 +13,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import java.util.stream.Collectors; import lombok.AccessLevel; import lombok.Data; @@ -25,10 +24,8 @@ import org.eclipse.hawkbit.repository.model.Target; /** - * Generic deployment event for the Multi-Assignments feature. The event payload - * holds a list of controller IDs identifying the targets which are affected by - * a deployment action (e.g. a software assignment (update) or a cancellation of - * an update). + * Generic deployment event for the Multi-Assignments feature. The event payload holds a list of controller IDs identifying the targets which + * are affected by a deployment action (e.g. a software assignment (update) or a cancellation of an update). */ @Data @EqualsAndHashCode(callSuper = true) @@ -61,11 +58,10 @@ public Iterator iterator() { } private static List getControllerIdsFromActions(final List actions) { - return actions.stream().map(Action::getTarget).map(Target::getControllerId).distinct() - .collect(Collectors.toList()); + return actions.stream().map(Action::getTarget).map(Target::getControllerId).distinct().toList(); } private static List getIdsFromActions(final List actions) { - return actions.stream().map(Identifiable::getId).collect(Collectors.toList()); + return actions.stream().map(Identifiable::getId).toList(); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/EventPublisherConfiguration.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/EventPublisherConfiguration.java index 0ea26d31f6..e64c83bd75 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/EventPublisherConfiguration.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/EventPublisherConfiguration.java @@ -54,8 +54,8 @@ public class EventPublisherConfiguration { ApplicationEventMulticaster applicationEventMulticaster( @Qualifier("asyncExecutor") final Executor executor, final SystemSecurityContext systemSecurityContext, final ApplicationEventFilter applicationEventFilter) { - final SimpleApplicationEventMulticaster simpleApplicationEventMulticaster = new TenantAwareApplicationEventPublisher( - systemSecurityContext, applicationEventFilter); + final SimpleApplicationEventMulticaster simpleApplicationEventMulticaster = + new TenantAwareApplicationEventPublisher(systemSecurityContext, applicationEventFilter); simpleApplicationEventMulticaster.setTaskExecutor(executor); return simpleApplicationEventMulticaster; } @@ -85,7 +85,6 @@ private static class TenantAwareApplicationEventPublisher extends SimpleApplicat private final SystemSecurityContext systemSecurityContext; private final ApplicationEventFilter applicationEventFilter; - @Autowired(required = false) private ServiceMatcher serviceMatcher; protected TenantAwareApplicationEventPublisher( @@ -94,6 +93,11 @@ protected TenantAwareApplicationEventPublisher( this.applicationEventFilter = applicationEventFilter; } + @Autowired(required = false) + public void setServiceMatcher(final ServiceMatcher serviceMatcher) { + this.serviceMatcher = serviceMatcher; + } + /** * Was overridden that not every event has to run within an own tenantAware. */ diff --git a/hawkbit-repository/hawkbit-repository-jpa-api/src/main/java/org/eclipse/hawkbit/repository/jpa/utils/MapAttributeConverter.java b/hawkbit-repository/hawkbit-repository-jpa-api/src/main/java/org/eclipse/hawkbit/repository/jpa/utils/MapAttributeConverter.java index 863f0c88db..6003105408 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-api/src/main/java/org/eclipse/hawkbit/repository/jpa/utils/MapAttributeConverter.java +++ b/hawkbit-repository/hawkbit-repository-jpa-api/src/main/java/org/eclipse/hawkbit/repository/jpa/utils/MapAttributeConverter.java @@ -15,6 +15,7 @@ import jakarta.persistence.AttributeConverter; +@SuppressWarnings("java:S119") // better readability public class MapAttributeConverter, DB_TYPE> implements AttributeConverter { private final Map javaToDbMap; diff --git a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/Jpa.java b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/Jpa.java index da4909827a..06eb2a5fad 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/Jpa.java +++ b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/Jpa.java @@ -33,6 +33,8 @@ public enum JpaVendor { log.info("JPA vendor: {}", JPA_VENDOR); } + // intentional, if it is a constant the compiler will inline it, we want to be changed with changing the JPA vendor lib + @SuppressWarnings("java:S3400") public static char nativeQueryParamPrefix() { return '?'; } diff --git a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaConfiguration.java b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaConfiguration.java index ecb91ff2f3..d2d2de3049 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaConfiguration.java +++ b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/JpaConfiguration.java @@ -14,6 +14,7 @@ import javax.sql.DataSource; +import org.eclipse.hawkbit.tenancy.TenantAware; import org.eclipse.persistence.config.PersistenceUnitProperties; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration; @@ -33,10 +34,14 @@ @Configuration public class JpaConfiguration extends JpaBaseConfiguration { + private final TenantAware tenantAware; + protected JpaConfiguration( final DataSource dataSource, final JpaProperties properties, - final ObjectProvider jtaTransactionManagerProvider) { + final ObjectProvider jtaTransactionManagerProvider, + final TenantAware tenantAware) { super(dataSource, properties, jtaTransactionManagerProvider); + this.tenantAware = tenantAware; } /** @@ -48,7 +53,7 @@ protected JpaConfiguration( @Override @Bean public PlatformTransactionManager transactionManager(final ObjectProvider transactionManagerCustomizers) { - return new MultiTenantJpaTransactionManager(); + return new MultiTenantJpaTransactionManager(tenantAware); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/MultiTenantJpaTransactionManager.java b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/MultiTenantJpaTransactionManager.java index 0370b58ef6..5215dc4054 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/MultiTenantJpaTransactionManager.java +++ b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/MultiTenantJpaTransactionManager.java @@ -38,7 +38,6 @@ class MultiTenantJpaTransactionManager extends JpaTransactionManager { @Serial private static final long serialVersionUID = 1L; - @Autowired private transient TenantAware tenantAware; private static final Class JPA_TARGET; @@ -53,6 +52,10 @@ class MultiTenantJpaTransactionManager extends JpaTransactionManager { } } + MultiTenantJpaTransactionManager(final TenantAware tenantAware) { + this.tenantAware = tenantAware; + } + private static final EntityPropertyChangeListener ENTITY_PROPERTY_CHANGE_LISTENER = new EntityPropertyChangeListener(); @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa-hibernate/src/main/java/org/eclipse/hawkbit/repository/jpa/Jpa.java b/hawkbit-repository/hawkbit-repository-jpa-hibernate/src/main/java/org/eclipse/hawkbit/repository/jpa/Jpa.java index f6f4138040..aca3dcd140 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-hibernate/src/main/java/org/eclipse/hawkbit/repository/jpa/Jpa.java +++ b/hawkbit-repository/hawkbit-repository-jpa-hibernate/src/main/java/org/eclipse/hawkbit/repository/jpa/Jpa.java @@ -31,10 +31,13 @@ public enum JpaVendor { log.info("JPA Vendor: {}", JPA_VENDOR); } + // intentional, if it is a constant the compiler will inline it, we want to be changed with changing the JPA vendor lib + @SuppressWarnings("java:S3400") public static char nativeQueryParamPrefix() { return ':'; } + @SuppressWarnings("java:S1172") // intentionally - it shall follow the common "interface"/signature of the method for all JPA providers public static String formatNativeQueryInClause(final String name, final Collection collection) { return ":" + name; } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java index 854ddaf3ef..6b341e5c0e 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/RepositoryApplicationConfiguration.java @@ -18,6 +18,7 @@ import org.eclipse.hawkbit.ContextAware; import org.eclipse.hawkbit.artifact.repository.ArtifactRepository; +import org.eclipse.hawkbit.cache.TenancyCacheManager; import org.eclipse.hawkbit.repository.ArtifactEncryption; import org.eclipse.hawkbit.repository.ArtifactEncryptionSecretsStore; import org.eclipse.hawkbit.repository.ArtifactEncryptionService; @@ -130,6 +131,8 @@ import org.eclipse.hawkbit.repository.jpa.repository.TargetRepository; import org.eclipse.hawkbit.repository.jpa.repository.TargetTagRepository; import org.eclipse.hawkbit.repository.jpa.repository.TargetTypeRepository; +import org.eclipse.hawkbit.repository.jpa.repository.TenantConfigurationRepository; +import org.eclipse.hawkbit.repository.jpa.repository.TenantMetaDataRepository; import org.eclipse.hawkbit.repository.jpa.rollout.RolloutScheduler; import org.eclipse.hawkbit.repository.jpa.rollout.condition.PauseRolloutGroupAction; import org.eclipse.hawkbit.repository.jpa.rollout.condition.RolloutGroupActionEvaluator; @@ -160,6 +163,7 @@ import org.eclipse.hawkbit.security.SystemSecurityContext; import org.eclipse.hawkbit.tenancy.TenantAware; import org.eclipse.hawkbit.tenancy.UserAuthoritiesResolver; +import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties; import org.eclipse.hawkbit.utils.TenantConfigHelper; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; @@ -170,6 +174,8 @@ import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties; +import org.springframework.cache.CacheManager; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; @@ -476,8 +482,23 @@ ExceptionMappingAspectHandler createRepositoryExceptionHandlerAdvice() { */ @Bean @ConditionalOnMissingBean - SystemManagement systemManagement(final JpaProperties properties) { - return new JpaSystemManagement(properties); + SystemManagement systemManagement( + final TargetRepository targetRepository, final TargetTypeRepository targetTypeRepository, + final TargetTagRepository targetTagRepository, final TargetFilterQueryRepository targetFilterQueryRepository, + final SoftwareModuleRepository softwareModuleRepository, final SoftwareModuleTypeRepository softwareModuleTypeRepository, + final DistributionSetRepository distributionSetRepository, final DistributionSetTypeRepository distributionSetTypeRepository, + final DistributionSetTagRepository distributionSetTagRepository, final RolloutRepository rolloutRepository, + final TenantConfigurationRepository tenantConfigurationRepository, final TenantMetaDataRepository tenantMetaDataRepository, + final TenantStatsManagement systemStatsManagement, final SystemManagementCacheKeyGenerator currentTenantCacheKeyGenerator, + final SystemSecurityContext systemSecurityContext, final TenantAware tenantAware, final PlatformTransactionManager txManager, + final TenancyCacheManager cacheManager, final RolloutStatusCache rolloutStatusCache, + final EntityManager entityManager, final RepositoryProperties repositoryProperties, + final JpaProperties properties) { + return new JpaSystemManagement(targetRepository, targetTypeRepository, targetTagRepository, + targetFilterQueryRepository, softwareModuleRepository, softwareModuleTypeRepository, distributionSetRepository, + distributionSetTypeRepository, distributionSetTagRepository, rolloutRepository, tenantConfigurationRepository, + tenantMetaDataRepository, systemStatsManagement, currentTenantCacheKeyGenerator, systemSecurityContext, + tenantAware, txManager, cacheManager, rolloutStatusCache, entityManager, repositoryProperties, properties); } /** @@ -547,8 +568,10 @@ TargetTypeManagement targetTypeManagement(final TargetTypeRepository targetTypeR */ @Bean @ConditionalOnMissingBean - TenantStatsManagement tenantStatsManagement() { - return new JpaTenantStatsManagement(); + TenantStatsManagement tenantStatsManagement( + final TargetRepository targetRepository, final LocalArtifactRepository artifactRepository, final ActionRepository actionRepository, + final TenantAware tenantAware) { + return new JpaTenantStatsManagement(targetRepository, artifactRepository, actionRepository, tenantAware); } /** @@ -558,8 +581,13 @@ TenantStatsManagement tenantStatsManagement() { */ @Bean @ConditionalOnMissingBean - TenantConfigurationManagement tenantConfigurationManagement() { - return new JpaTenantConfigurationManagement(); + TenantConfigurationManagement tenantConfigurationManagement( + final TenantConfigurationRepository tenantConfigurationRepository, + final TenantConfigurationProperties tenantConfigurationProperties, + final CacheManager cacheManager, final AfterTransactionCommitExecutor afterCommitExecutor, + final ApplicationContext applicationContext) { + return new JpaTenantConfigurationManagement(tenantConfigurationRepository, tenantConfigurationProperties, + cacheManager, afterCommitExecutor, applicationContext); } /** 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 d5d7f686e4..83f13f2940 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 @@ -587,6 +587,7 @@ private JpaRollout createRollout(final JpaRollout rollout, final boolean pureDyn return rollout; } + @SuppressWarnings("java:S2259") // java:S2259 - false positive, see the java:S2259 comment in code private Rollout createRolloutGroups( final int amountOfGroups, final RolloutGroupConditions conditions, final JpaRollout rollout, final boolean isConfirmationRequired, final DynamicRolloutGroupTemplate dynamicRolloutGroupTemplate) { @@ -651,7 +652,7 @@ private Rollout createRolloutGroups( publishRolloutGroupCreatedEventAfterCommit(lastGroup, rollout); } - // lastSavedGroup is never null! amountOfGroups > 0 (and has static groups) or dynamicRolloutGroupTemplate is + // java:S2259 - lastSavedGroup is never null! amountOfGroups > 0 (and has static groups) or dynamicRolloutGroupTemplate is // not null (validated) and (validated) the rollout is dynamic, so has dynamic group rollout.setRolloutGroupsCreated(lastGroup.isDynamic() ? amountOfGroups + 1 : amountOfGroups); final JpaRollout savedRollout = rolloutRepository.save(rollout); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSystemManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSystemManagement.java index 5dc4810ea6..d9efc9b847 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSystemManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaSystemManagement.java @@ -54,6 +54,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; +import org.springframework.lang.Nullable; import org.springframework.orm.jpa.vendor.Database; import org.springframework.retry.annotation.Backoff; import org.springframework.retry.annotation.Retryable; @@ -75,62 +76,76 @@ public class JpaSystemManagement implements CurrentTenantCacheKeyGenerator, Syst private final String countArtifactQuery; private final String countSoftwareModulesQuery; - @Autowired - private EntityManager entityManager; - @Autowired - private TargetRepository targetRepository; - @Autowired - private TargetFilterQueryRepository targetFilterQueryRepository; - @Autowired - private DistributionSetRepository distributionSetRepository; - @Autowired - private SoftwareModuleRepository softwareModuleRepository; - @Autowired - private TenantMetaDataRepository tenantMetaDataRepository; - @Autowired - private DistributionSetTypeRepository distributionSetTypeRepository; - @Autowired - private SoftwareModuleTypeRepository softwareModuleTypeRepository; - @Autowired - private TargetTagRepository targetTagRepository; - @Autowired - private TargetTypeRepository targetTypeRepository; - @Autowired - private DistributionSetTagRepository distributionSetTagRepository; - @Autowired - private TenantConfigurationRepository tenantConfigurationRepository; - @Autowired - private RolloutRepository rolloutRepository; - @Autowired - private TenantAware tenantAware; - @Autowired - private TenantStatsManagement systemStatsManagement; - @Autowired - private TenancyCacheManager cacheManager; - @Autowired - private SystemManagementCacheKeyGenerator currentTenantCacheKeyGenerator; - @Autowired - private SystemSecurityContext systemSecurityContext; - @Autowired - private PlatformTransactionManager txManager; - @Autowired - private RolloutStatusCache rolloutStatusCache; - @Autowired(required = false) // it's not required on dmf/ddi only instances + private final TargetRepository targetRepository; + private final TargetTypeRepository targetTypeRepository; + private final TargetTagRepository targetTagRepository; + private final TargetFilterQueryRepository targetFilterQueryRepository; + private final SoftwareModuleRepository softwareModuleRepository; + private final SoftwareModuleTypeRepository softwareModuleTypeRepository; + private final DistributionSetRepository distributionSetRepository; + private final DistributionSetTypeRepository distributionSetTypeRepository; + private final DistributionSetTagRepository distributionSetTagRepository; + private final RolloutRepository rolloutRepository; + private final TenantConfigurationRepository tenantConfigurationRepository; + private final TenantMetaDataRepository tenantMetaDataRepository; + private final TenantStatsManagement systemStatsManagement; + private final SystemManagementCacheKeyGenerator currentTenantCacheKeyGenerator; + private final SystemSecurityContext systemSecurityContext; + private final TenantAware tenantAware; + private final PlatformTransactionManager txManager; + private final TenancyCacheManager cacheManager; + private final RolloutStatusCache rolloutStatusCache; + private final EntityManager entityManager; + private final RepositoryProperties repositoryProperties; + + @Nullable private ArtifactRepository artifactRepository; - @Autowired - private RepositoryProperties repositoryProperties; - /** - * Constructor. - * - * @param properties properties to get the underlying database - */ - public JpaSystemManagement(final JpaProperties properties) { + @SuppressWarnings("squid:S00107") + public JpaSystemManagement( + final TargetRepository targetRepository, final TargetTypeRepository targetTypeRepository, + final TargetTagRepository targetTagRepository, final TargetFilterQueryRepository targetFilterQueryRepository, + final SoftwareModuleRepository softwareModuleRepository, final SoftwareModuleTypeRepository softwareModuleTypeRepository, + final DistributionSetRepository distributionSetRepository, final DistributionSetTypeRepository distributionSetTypeRepository, + final DistributionSetTagRepository distributionSetTagRepository, final RolloutRepository rolloutRepository, + final TenantConfigurationRepository tenantConfigurationRepository, final TenantMetaDataRepository tenantMetaDataRepository, + final TenantStatsManagement systemStatsManagement, final SystemManagementCacheKeyGenerator currentTenantCacheKeyGenerator, + final SystemSecurityContext systemSecurityContext, final TenantAware tenantAware, final PlatformTransactionManager txManager, + final TenancyCacheManager cacheManager, final RolloutStatusCache rolloutStatusCache, + final EntityManager entityManager, final RepositoryProperties repositoryProperties, + final JpaProperties properties) { + this.targetRepository = targetRepository; + this.targetTypeRepository = targetTypeRepository; + this.targetTagRepository = targetTagRepository; + this.targetFilterQueryRepository = targetFilterQueryRepository; + this.softwareModuleRepository = softwareModuleRepository; + this.softwareModuleTypeRepository = softwareModuleTypeRepository; + this.distributionSetRepository = distributionSetRepository; + this.distributionSetTypeRepository = distributionSetTypeRepository; + this.distributionSetTagRepository = distributionSetTagRepository; + this.rolloutRepository = rolloutRepository; + this.tenantConfigurationRepository = tenantConfigurationRepository; + this.tenantMetaDataRepository = tenantMetaDataRepository; + this.systemStatsManagement = systemStatsManagement; + this.currentTenantCacheKeyGenerator = currentTenantCacheKeyGenerator; + this.systemSecurityContext = systemSecurityContext; + this.tenantAware = tenantAware; + this.txManager = txManager; + this.cacheManager = cacheManager; + this.rolloutStatusCache = rolloutStatusCache; + this.entityManager = entityManager; + this.repositoryProperties = repositoryProperties; + final String isDeleted = isPostgreSql(properties) ? "false" : "0"; countArtifactQuery = "SELECT COUNT(a.id) FROM sp_artifact a INNER JOIN sp_base_software_module sm ON a.software_module = sm.id WHERE sm.deleted = " + isDeleted; countSoftwareModulesQuery = "select SUM(file_size) from sp_artifact a INNER JOIN sp_base_software_module sm ON a.software_module = sm.id WHERE sm.deleted = " + isDeleted; } + @Autowired(required = false) // it's not required on dmf/ddi only instances + public void setArtifactRepository(ArtifactRepository artifactRepository) { + this.artifactRepository = artifactRepository; + } + @Override @Transactional(propagation = Propagation.SUPPORTS) public KeyGenerator currentTenantKeyGenerator() { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTenantConfigurationManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTenantConfigurationManagement.java index 3d3d37fd94..11c72de0d2 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTenantConfigurationManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaTenantConfigurationManagement.java @@ -44,7 +44,6 @@ import org.eclipse.hawkbit.tenancy.configuration.DurationHelper; import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties; import org.eclipse.hawkbit.tenancy.configuration.TenantConfigurationProperties.TenantConfigurationKey; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.CacheEvict; @@ -68,16 +67,23 @@ public class JpaTenantConfigurationManagement implements TenantConfigurationMana private static final ConfigurableConversionService CONVERSION_SERVICE = new DefaultConversionService(); - @Autowired - private TenantConfigurationRepository tenantConfigurationRepository; - @Autowired - private TenantConfigurationProperties tenantConfigurationProperties; - @Autowired - private ApplicationContext applicationContext; - @Autowired - private CacheManager cacheManager; - @Autowired - private AfterTransactionCommitExecutor afterCommitExecutor; + private final TenantConfigurationRepository tenantConfigurationRepository; + private final TenantConfigurationProperties tenantConfigurationProperties; + private final ApplicationContext applicationContext; + private final CacheManager cacheManager; + private final AfterTransactionCommitExecutor afterCommitExecutor; + + public JpaTenantConfigurationManagement( + final TenantConfigurationRepository tenantConfigurationRepository, + final TenantConfigurationProperties tenantConfigurationProperties, + final CacheManager cacheManager, final AfterTransactionCommitExecutor afterCommitExecutor, + final ApplicationContext applicationContext) { + this.tenantConfigurationRepository = tenantConfigurationRepository; + this.tenantConfigurationProperties = tenantConfigurationProperties; + this.cacheManager = cacheManager; + this.afterCommitExecutor = afterCommitExecutor; + this.applicationContext = applicationContext; + } @Override @CacheEvict(value = "tenantConfiguration", key = "#configurationKeyName") 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 a18e1d8700..f0cfd4ddeb 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 @@ -26,14 +26,19 @@ @Validated public class JpaTenantStatsManagement implements TenantStatsManagement { - @Autowired - private TargetRepository targetRepository; - @Autowired - private LocalArtifactRepository artifactRepository; - @Autowired - private ActionRepository actionRepository; - @Autowired - private TenantAware tenantAware; + private final TargetRepository targetRepository; + private final LocalArtifactRepository artifactRepository; + private final ActionRepository actionRepository; + private final TenantAware tenantAware; + + public JpaTenantStatsManagement( + final TargetRepository targetRepository, final LocalArtifactRepository artifactRepository, final ActionRepository actionRepository, + final TenantAware tenantAware) { + this.targetRepository = targetRepository; + this.artifactRepository = artifactRepository; + this.actionRepository = actionRepository; + this.tenantAware = tenantAware; + } @Override @Transactional(propagation = Propagation.REQUIRES_NEW) diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java index 66e76efba9..d0862fd79d 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OfflineDsAssignmentStrategy.java @@ -15,7 +15,6 @@ import java.util.Set; import java.util.function.BooleanSupplier; import java.util.function.Function; -import java.util.stream.Collectors; import org.apache.commons.collections4.ListUtils; import org.eclipse.hawkbit.repository.QuotaManagement; @@ -87,7 +86,7 @@ public List findTargetsForAssignment(final List controllerIDs TargetSpecifications.notEqualToTargetUpdateStatus(TargetUpdateStatus.PENDING)))); } return ListUtils.partition(controllerIDs, Constants.MAX_ENTRIES_IN_STATEMENT).stream().map(mapper) - .flatMap(List::stream).collect(Collectors.toList()); + .flatMap(List::stream).toList(); } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java index b4c9fd6c9d..9b90855602 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/OnlineDsAssignmentStrategy.java @@ -112,7 +112,7 @@ public List findTargetsForAssignment(final List controllerIDs .findAll(TargetSpecifications.hasControllerIdAndAssignedDistributionSetIdNot(ids, setId)); } return ListUtils.partition(controllerIDs, Constants.MAX_ENTRIES_IN_STATEMENT).stream().map(mapper) - .flatMap(List::stream).collect(Collectors.toList()); + .flatMap(List::stream).toList(); } @Override @@ -170,8 +170,7 @@ public void sendDeploymentEvents(final DistributionSetAssignmentResult assignmen @Override public void sendDeploymentEvents(final List assignmentResults) { if (isMultiAssignmentsEnabled()) { - sendDeploymentEvent(assignmentResults.stream().flatMap(result -> result.getAssignedEntity().stream()) - .collect(Collectors.toList())); + sendDeploymentEvent(assignmentResults.stream().flatMap(result -> result.getAssignedEntity().stream()).toList()); } else { assignmentResults.forEach(this::sendDistributionSetAssignedEvent); } @@ -196,7 +195,7 @@ private static List getActionsWithoutCancellations(final List ac if (actions == null || actions.isEmpty()) { return Collections.emptyList(); } - return filterCancellations(actions).collect(Collectors.toList()); + return filterCancellations(actions).toList(); } private void sendMultiActionCancelEvent(final Action action) { @@ -214,8 +213,7 @@ private void sendDeploymentEvent(final List actions) { private DistributionSetAssignmentResult sendDistributionSetAssignedEvent( final DistributionSetAssignmentResult assignmentResult) { - final List filteredActions = filterCancellations(assignmentResult.getAssignedEntity()) - .collect(Collectors.toList()); + final List filteredActions = filterCancellations(assignmentResult.getAssignedEntity()).toList(); final DistributionSet set = assignmentResult.getDistributionSet(); sendTargetAssignDistributionSetEvent(set.getTenant(), set.getId(), filteredActions); return assignmentResult; diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java index f845ebfc20..ade94b05e7 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTarget.java @@ -96,7 +96,8 @@ @NamedEntityGraph(name = "Target.actions", attributeNodes = { @NamedAttributeNode("actions") }), }) // exception squid:S2160 - BaseEntity equals/hashcode is handling correctly for sub entities -@SuppressWarnings("squid:S2160") +// java:S1710 - not possible to use without group annotation +@SuppressWarnings({ "squid:S2160", "java:S1710" }) public class JpaTarget extends AbstractJpaNamedEntity implements Target, EventAwareEntity { @Serial diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/model/ModelEqualsHashcodeTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/model/ModelEqualsHashcodeTest.java index 05fa2cc243..6ef7b6c5dd 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/model/ModelEqualsHashcodeTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/model/ModelEqualsHashcodeTest.java @@ -20,12 +20,11 @@ @Feature("Unit Tests - Repository") @Story("Repository Model") -public class ModelEqualsHashcodeTest extends AbstractJpaIntegrationTest { +class ModelEqualsHashcodeTest extends AbstractJpaIntegrationTest { @Test - @Description("Verifies that different objects even with identical primary key, version and tenant " - + "return different hash codes.") - public void differentEntitiesReturnDifferentHashCodes() { + @Description("Verifies that different objects even with identical primary key, version and tenant return different hash codes.") + void differentEntitiesReturnDifferentHashCodes() { assertThat(new JpaAction().hashCode()).as("action should have different hashcode than action status") .isNotEqualTo(new JpaActionStatus().hashCode()); assertThat(new JpaDistributionSet().hashCode()) @@ -40,9 +39,8 @@ public void differentEntitiesReturnDifferentHashCodes() { } @Test - @Description("Verifies that different object even with identical primary key, version and tenant " - + "are not equal.") - public void differentEntitiesAreNotEqual() { + @Description("Verifies that different object even with identical primary key, version and tenant are not equal.") + void differentEntitiesAreNotEqual() { assertThat(new JpaAction().equals(new JpaActionStatus())).as("action equals action status").isFalse(); assertThat(new JpaDistributionSet().equals(new JpaSoftwareModule())) .as("Distribution set equals software module").isFalse(); @@ -54,7 +52,7 @@ public void differentEntitiesAreNotEqual() { @Test @Description("Verifies that updated entities are not equal.") - public void changedEntitiesAreNotEqual() { + void changedEntitiesAreNotEqual() { final SoftwareModuleType type = softwareModuleTypeManagement .create(entityFactory.softwareModuleType().create().key("test").name("test")); assertThat(type).as("persited entity is not equal to regular object") @@ -67,7 +65,7 @@ public void changedEntitiesAreNotEqual() { @Test @Description("Verify that no proxy of the entity manager has an influence on the equals or hashcode result.") - public void managedEntityIsEqualToUnamangedObjectWithSameKey() { + void managedEntityIsEqualToUnamangedObjectWithSameKey() { final SoftwareModuleType type = softwareModuleTypeManagement.create( entityFactory.softwareModuleType().create().key("test").name("test").description("test")); @@ -77,8 +75,9 @@ public void managedEntityIsEqualToUnamangedObjectWithSameKey() { mock.setTenant(type.getTenant()); assertThat(type).as("managed entity is equal to regular object with same content").isEqualTo(mock); - assertThat(type.hashCode()).as("managed entity has same hash code as regular object with same content") - .isEqualTo(mock.hashCode()); + assertThat(type) + .as("managed entity has same hash code as regular object with same content") + .hasSameHashCodeAs(mock.hashCode()); } } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLActionFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLActionFieldsTest.java index dc2234dd83..450924cb54 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLActionFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLActionFieldsTest.java @@ -10,7 +10,7 @@ package org.eclipse.hawkbit.repository.jpa.rsql; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.fail; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import io.qameta.allure.Description; import io.qameta.allure.Feature; @@ -32,13 +32,13 @@ @Feature("Component Tests - Repository") @Story("RSQL filter actions") -public class RSQLActionFieldsTest extends AbstractJpaIntegrationTest { +class RSQLActionFieldsTest extends AbstractJpaIntegrationTest { private JpaTarget target; private JpaAction action; @BeforeEach - public void setupBeforeTest() { + void setupBeforeTest() { final DistributionSet dsA = testdataFactory.createDistributionSet("daA"); target = (JpaTarget) targetManagement .create(entityFactory.target().create().controllerId("targetId123").description("targetId123")); @@ -51,7 +51,7 @@ public void setupBeforeTest() { @Test @Description("Test filter action by id") - public void testFilterByParameterId() { + void testFilterByParameterId() { assertRSQLQuery(ActionFields.ID.name() + "==" + action.getId(), 1); assertRSQLQuery(ActionFields.ID.name() + "!=" + action.getId(), 10); assertRSQLQuery(ActionFields.ID.name() + "==" + -1, 0); @@ -68,23 +68,21 @@ public void testFilterByParameterId() { @Test @Description("Test action by status") - public void testFilterByParameterStatus() { + void testFilterByParameterStatus() { assertRSQLQuery(ActionFields.STATUS.name() + "==pending", 5); assertRSQLQuery(ActionFields.STATUS.name() + "!=pending", 6); assertRSQLQuery(ActionFields.STATUS.name() + "=in=(pending)", 5); assertRSQLQuery(ActionFields.STATUS.name() + "=out=(pending)", 6); - try { - assertRSQLQuery(ActionFields.STATUS.name() + "==true", 5); - fail("Missing expected RSQLParameterUnsupportedFieldException because status cannot be compared with 'true'"); - } catch (final RSQLParameterUnsupportedFieldException e) { - } - + final String rsql = ActionFields.STATUS.name() + "==true"; + assertThatExceptionOfType(RSQLParameterUnsupportedFieldException.class) + .as("RSQLParameterUnsupportedFieldException because status cannot be compared with 'true'") + .isThrownBy(() -> assertRSQLQuery(rsql, 5)); } @Test @Description("Test action by status") - public void testFilterByParameterExtRef() { + void testFilterByParameterExtRef() { assertRSQLQuery(ActionFields.EXTERNALREF.name() + "==extRef", 5); assertRSQLQuery(ActionFields.EXTERNALREF.name() + "!=extRef", 6); assertRSQLQuery(ActionFields.EXTERNALREF.name() + "==extRef*", 10); @@ -114,7 +112,7 @@ private void assertRSQLQuery(final String rsqlParam, final long expectedEntities PageRequest.of(0, 100)); final long countAllEntities = deploymentManagement.countActionsByTarget(rsqlParam, target.getControllerId()); assertThat(findEntity).isNotNull(); - assertThat(findEntity.getContent().size()).isEqualTo(expectedEntities); + assertThat(findEntity.getContent()).hasSize((int)expectedEntities); assertThat(countAllEntities).isEqualTo(expectedEntities); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetFieldTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetFieldTest.java index a4c69a0e47..b0bae4fb20 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetFieldTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetFieldTest.java @@ -11,7 +11,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; -import static org.junit.jupiter.api.Assertions.fail; import java.util.Arrays; import java.util.Collections; @@ -134,11 +133,9 @@ void testFilterByParameterVersion() { @Description("Test filter distribution set by complete property") void testFilterByAttributeComplete() { assertRSQLQuery(DistributionSetFields.COMPLETE.name() + "==true", 3); - try { - assertRSQLQuery(DistributionSetFields.COMPLETE.name() + "==noExist*", 0); - fail("Expected RSQLParameterSyntaxException"); - } catch (final RSQLParameterSyntaxException e) { - } + final String noExistStar = DistributionSetFields.COMPLETE.name() + "==noExist*"; + assertThatExceptionOfType(RSQLParameterSyntaxException.class) + .isThrownBy(() -> assertRSQLQuery(noExistStar, 0)); assertRSQLQuery(DistributionSetFields.COMPLETE.name() + "=in=(true)", 3); assertRSQLQuery(DistributionSetFields.COMPLETE.name() + "=out=(true)", 2); } @@ -148,8 +145,9 @@ void testFilterByAttributeComplete() { void testFilterByAttributeValid() { assertRSQLQuery(DistributionSetFields.VALID.name() + "==true", 4); assertRSQLQuery(DistributionSetFields.VALID.name() + "==false", 1); + final String rsqlNoExistStar = DistributionSetFields.VALID.name() + "==noExist*"; assertThatExceptionOfType(RSQLParameterSyntaxException.class) - .isThrownBy(() -> assertRSQLQuery(DistributionSetFields.VALID.name() + "==noExist*", 0)); + .isThrownBy(() -> assertRSQLQuery(rsqlNoExistStar, 0)); assertRSQLQuery(DistributionSetFields.VALID.name() + "=in=(true)", 4); assertRSQLQuery(DistributionSetFields.VALID.name() + "=out=(true)", 1); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetMetadataFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetMetadataFieldsTest.java index 47a44f9207..a71e1856af 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetMetadataFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLDistributionSetMetadataFieldsTest.java @@ -30,12 +30,12 @@ @Feature("Component Tests - Repository") @Story("RSQL filter distribution set metadata") -public class RSQLDistributionSetMetadataFieldsTest extends AbstractJpaIntegrationTest { +class RSQLDistributionSetMetadataFieldsTest extends AbstractJpaIntegrationTest { private Long distributionSetId; @BeforeEach - public void setupBeforeTest() { + void setupBeforeTest() { final DistributionSet distributionSet = testdataFactory.createDistributionSet("DS"); distributionSetId = distributionSet.getId(); @@ -52,7 +52,7 @@ public void setupBeforeTest() { @Test @Description("Test filter distribution set metadata by key") - public void testFilterByParameterKey() { + void testFilterByParameterKey() { assertRSQLQuery(DistributionSetMetadataFields.KEY.name() + "==1", 1); assertRSQLQuery(DistributionSetMetadataFields.KEY.name() + "!=1", 5); assertRSQLQuery(DistributionSetMetadataFields.KEY.name() + "=in=(1,2)", 2); @@ -61,7 +61,7 @@ public void testFilterByParameterKey() { @Test @Description("Test filter distribution set metadata by value") - public void testFilterByParameterValue() { + void testFilterByParameterValue() { assertRSQLQuery(DistributionSetMetadataFields.VALUE.name() + "==''", 1); assertRSQLQuery(DistributionSetMetadataFields.VALUE.name() + "!=''", 5); assertRSQLQuery(DistributionSetMetadataFields.VALUE.name() + "==1", 1); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLParserValidationOracleTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLParserValidationOracleTest.java index 48fa846ff8..dd25db974e 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLParserValidationOracleTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLParserValidationOracleTest.java @@ -13,7 +13,6 @@ import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; import io.qameta.allure.Description; import io.qameta.allure.Feature; @@ -28,7 +27,7 @@ @Feature("Component Tests - Repository") @Story("RSQL filter suggestion") @SuppressWarnings("java:S6813") // constructor injects are not possible for test classes -public class RSQLParserValidationOracleTest extends AbstractJpaIntegrationTest { +class RSQLParserValidationOracleTest extends AbstractJpaIntegrationTest { private static final String[] OP_SUGGESTIONS = new String[] { "==", "!=", "=ge=", "=le=", "=gt=", "=lt=", "=in=", "=out=" }; @@ -42,7 +41,7 @@ public class RSQLParserValidationOracleTest extends AbstractJpaIntegrationTest { @Test @Description("Verifies that suggestions contains all possible field names") - public void suggestionContainsAllFieldNames() { + void suggestionContainsAllFieldNames() { final String rsqlQuery = "na"; final List currentSuggestions = getSuggestions(rsqlQuery); assertThat(currentSuggestions).containsOnly(FIELD_SUGGESTIONS); @@ -50,7 +49,7 @@ public void suggestionContainsAllFieldNames() { @Test @Description("Verifies that suggestions only contains the allowed operators") - public void suggestionContainsOnlyOperators() { + void suggestionContainsOnlyOperators() { final String rsqlQuery = "name"; final List currentSuggestions = getSuggestions(rsqlQuery); assertThat(currentSuggestions).containsOnly(OP_SUGGESTIONS); @@ -58,7 +57,7 @@ public void suggestionContainsOnlyOperators() { @Test @Description("Verifies that suggestions only contains operator to combine RSQL filters (and, or)") - public void suggestionContainsOnlyAndOrOperator() { + void suggestionContainsOnlyAndOrOperator() { final String rsqlQuery = "name==a "; final List currentSuggestions = getSuggestions(rsqlQuery); assertThat(currentSuggestions).containsOnly(AND_OR_SUGGESTIONS); @@ -66,7 +65,7 @@ public void suggestionContainsOnlyAndOrOperator() { @Test @Description("Verifies that sub suggestions are shown") - public void suggestionContainsSubFieldSuggestions() { + void suggestionContainsSubFieldSuggestions() { final String rsqlQuery = "assignedds."; final List currentSuggestions = getSuggestions(rsqlQuery); assertThat(currentSuggestions).containsOnly(NAME_VERSION_SUGGESTIONS); @@ -76,6 +75,6 @@ private List getSuggestions(final String rsqlQuery) { return rsqlValidationOracle .suggest(rsqlQuery, -1).getSuggestionContext().getSuggestions().stream() .map(SuggestToken::getSuggestion) - .collect(Collectors.toList()); + .toList(); } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLRolloutGroupFieldTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLRolloutGroupFieldTest.java index 9fadd0cbd4..abed72d887 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLRolloutGroupFieldTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLRolloutGroupFieldTest.java @@ -29,13 +29,13 @@ @Feature("Component Tests - Repository") @Story("RSQL filter rollout group") -public class RSQLRolloutGroupFieldTest extends AbstractJpaIntegrationTest { +class RSQLRolloutGroupFieldTest extends AbstractJpaIntegrationTest { private Long rolloutGroupId; private Rollout rollout; @BeforeEach - public void setupBeforeTest() { + void setupBeforeTest() { final int amountTargets = 20; testdataFactory.createTargets(amountTargets, "rollout", "rollout"); final DistributionSet dsA = testdataFactory.createDistributionSet(""); @@ -47,7 +47,7 @@ public void setupBeforeTest() { @Test @Description("Test filter rollout group by id") - public void testFilterByParameterId() { + void testFilterByParameterId() { assertRSQLQuery(RolloutGroupFields.ID.name() + "==" + rolloutGroupId, 1); assertRSQLQuery(RolloutGroupFields.ID.name() + "!=" + rolloutGroupId, 3); assertRSQLQuery(RolloutGroupFields.ID.name() + "==" + -1, 0); @@ -64,7 +64,7 @@ public void testFilterByParameterId() { @Test @Description("Test filter rollout group by name") - public void testFilterByParameterName() { + void testFilterByParameterName() { assertRSQLQuery(RolloutGroupFields.NAME.name() + "==group-1", 1); assertRSQLQuery(RolloutGroupFields.NAME.name() + "!=group-1", 3); assertRSQLQuery(RolloutGroupFields.NAME.name() + "==*", 4); @@ -75,7 +75,7 @@ public void testFilterByParameterName() { @Test @Description("Test filter rollout group by description") - public void testFilterByParameterDescription() { + void testFilterByParameterDescription() { assertRSQLQuery(RolloutGroupFields.DESCRIPTION.name() + "==group-1", 1); assertRSQLQuery(RolloutGroupFields.DESCRIPTION.name() + "!=group-1", 3); assertRSQLQuery(RolloutGroupFields.DESCRIPTION.name() + "==group*", 4); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleFieldTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleFieldTest.java index 344e5edc63..a9a6ab0187 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleFieldTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleFieldTest.java @@ -28,12 +28,12 @@ @Feature("Component Tests - Repository") @Story("RSQL filter software module") -public class RSQLSoftwareModuleFieldTest extends AbstractJpaIntegrationTest { +class RSQLSoftwareModuleFieldTest extends AbstractJpaIntegrationTest { private SoftwareModule ah; @BeforeEach - public void setupBeforeTest() { + void setupBeforeTest() { ah = softwareModuleManagement.create(entityFactory.softwareModule().create().type(appType).name("agent-hub") .version("1.0.1").description("agent-hub")); softwareModuleManagement.create(entityFactory.softwareModule().create().type(runtimeType).name("oracle-jre") @@ -60,7 +60,7 @@ public void setupBeforeTest() { @Test @Description("Test filter software module by id") - public void testFilterByParameterId() { + void testFilterByParameterId() { assertRSQLQuery(SoftwareModuleFields.ID.name() + "==" + ah.getId(), 1); assertRSQLQuery(SoftwareModuleFields.ID.name() + "!=" + ah.getId(), 5); assertRSQLQuery(SoftwareModuleFields.ID.name() + "==" + -1, 0); @@ -77,7 +77,7 @@ public void testFilterByParameterId() { @Test @Description("Test filter software module by name") - public void testFilterByParameterName() { + void testFilterByParameterName() { assertRSQLQuery(SoftwareModuleFields.NAME.name() + "==agent-hub", 1); assertRSQLQuery(SoftwareModuleFields.NAME.name() + "!=agent-hub", 5); assertRSQLQuery(SoftwareModuleFields.NAME.name() + "==agent-hub*", 2); @@ -98,7 +98,7 @@ public void testFilterByParameterName() { @Test @Description("Test filter software module by name which contain mutated vowels ") - public void testFilterByParameterNameWithUmlaut() { + void testFilterByParameterNameWithUmlaut() { assertRSQLQuery(SoftwareModuleFields.NAME.name() + "==*Ö*", 1); assertRSQLQuery(SoftwareModuleFields.NAME.name() + "==*Ä*", 1); assertRSQLQuery(SoftwareModuleFields.NAME.name() + "==*Ü*", 1); @@ -106,7 +106,7 @@ public void testFilterByParameterNameWithUmlaut() { @Test @Description("Test filter software module by description") - public void testFilterByParameterDescription() { + void testFilterByParameterDescription() { assertRSQLQuery(SoftwareModuleFields.DESCRIPTION.name() + "==''", 1); assertRSQLQuery(SoftwareModuleFields.DESCRIPTION.name() + "!=''", 5); assertRSQLQuery(SoftwareModuleFields.DESCRIPTION.name() + "==agent-hub", 1); @@ -118,7 +118,7 @@ public void testFilterByParameterDescription() { @Test @Description("Test filter software module by version") - public void testFilterByParameterVersion() { + void testFilterByParameterVersion() { assertRSQLQuery(SoftwareModuleFields.VERSION.name() + "==1.0.1", 2); assertRSQLQuery(SoftwareModuleFields.VERSION.name() + "!=v1.0", 6); assertRSQLQuery(SoftwareModuleFields.VERSION.name() + "=in=(1.0.1,1.0.2)", 2); @@ -127,7 +127,7 @@ public void testFilterByParameterVersion() { @Test @Description("Test filter software module by type key") - public void testFilterByType() { + void testFilterByType() { assertRSQLQuery(SoftwareModuleFields.TYPE.name() + "==" + TestdataFactory.SM_TYPE_APP, 2); assertRSQLQuery(SoftwareModuleFields.TYPE.name() + "!=" + TestdataFactory.SM_TYPE_APP, 4); assertRSQLQuery(SoftwareModuleFields.TYPE.name() + "==noExist*", 0); @@ -137,7 +137,7 @@ public void testFilterByType() { @Test @Description("Test filter software module by metadata") - public void testFilterByMetadata() { + void testFilterByMetadata() { assertRSQLQuery(SoftwareModuleFields.METADATA.name() + ".metaKey==metaValue", 1); assertRSQLQuery(SoftwareModuleFields.METADATA.name() + ".metaKey!=metaValue", 1); assertRSQLQuery(SoftwareModuleFields.METADATA.name() + ".metaKey!=notexist", 2); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java index b237a9d733..6a0df1c081 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleMetadataFieldsTest.java @@ -30,12 +30,12 @@ @Feature("Component Tests - Repository") @Story("RSQL filter software module metadata") -public class RSQLSoftwareModuleMetadataFieldsTest extends AbstractJpaIntegrationTest { +class RSQLSoftwareModuleMetadataFieldsTest extends AbstractJpaIntegrationTest { private Long softwareModuleId; @BeforeEach - public void setupBeforeTest() { + void setupBeforeTest() { final SoftwareModule softwareModule = testdataFactory.createSoftwareModule(TestdataFactory.SM_TYPE_APP); softwareModuleId = softwareModule.getId(); @@ -57,7 +57,7 @@ public void setupBeforeTest() { @Test @Description("Test filter software module metadata by key") - public void testFilterByParameterKey() { + void testFilterByParameterKey() { assertRSQLQuery(SoftwareModuleMetadataFields.KEY.name() + "==1", 1); assertRSQLQuery(SoftwareModuleMetadataFields.KEY.name() + "!=1", 6); assertRSQLQuery(SoftwareModuleMetadataFields.KEY.name() + "=in=(1,2)", 2); @@ -66,7 +66,7 @@ public void testFilterByParameterKey() { @Test @Description("Test fitler software module metadata by value") - public void testFilterByParameterValue() { + void testFilterByParameterValue() { assertRSQLQuery(SoftwareModuleMetadataFields.VALUE.name() + "==''", 1); assertRSQLQuery(SoftwareModuleMetadataFields.VALUE.name() + "!=''", 6); assertRSQLQuery(SoftwareModuleMetadataFields.VALUE.name() + "==1", 1); @@ -77,7 +77,7 @@ public void testFilterByParameterValue() { @Test @Description("Test fitler software module metadata by target visible") - public void testFilterByParameterTargetVisible() { + void testFilterByParameterTargetVisible() { assertRSQLQuery(SoftwareModuleMetadataFields.TARGETVISIBLE.name() + "==true", 2); assertRSQLQuery(SoftwareModuleMetadataFields.TARGETVISIBLE.name() + "==false", 5); assertRSQLQuery(SoftwareModuleMetadataFields.TARGETVISIBLE.name() + "!=false", 2); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleTypeFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleTypeFieldsTest.java index 611717cf57..b334eb9dac 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleTypeFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLSoftwareModuleTypeFieldsTest.java @@ -25,11 +25,11 @@ @Feature("Component Tests - Repository") @Story("RSQL filter software module test type") -public class RSQLSoftwareModuleTypeFieldsTest extends AbstractJpaIntegrationTest { +class RSQLSoftwareModuleTypeFieldsTest extends AbstractJpaIntegrationTest { @Test @Description("Test filter software module test type by id") - public void testFilterByParameterId() { + void testFilterByParameterId() { assertRSQLQuery(SoftwareModuleTypeFields.ID.name() + "==" + osType.getId(), 1); assertRSQLQuery(SoftwareModuleTypeFields.ID.name() + "!=" + osType.getId(), 2); assertRSQLQuery(SoftwareModuleTypeFields.ID.name() + "==" + -1, 0); @@ -46,14 +46,14 @@ public void testFilterByParameterId() { @Test @Description("Test filter software module test type by name") - public void testFilterByParameterName() { + void testFilterByParameterName() { assertRSQLQuery(SoftwareModuleTypeFields.NAME.name() + "==" + Constants.SMT_DEFAULT_OS_NAME, 1); assertRSQLQuery(SoftwareModuleTypeFields.NAME.name() + "!=" + Constants.SMT_DEFAULT_OS_NAME, 2); } @Test @Description("Test filter software module test type by description") - public void testFilterByParameterDescription() { + void testFilterByParameterDescription() { assertRSQLQuery(SoftwareModuleTypeFields.DESCRIPTION.name() + "==''", 0); assertRSQLQuery(SoftwareModuleTypeFields.DESCRIPTION.name() + "!=''", 3); assertRSQLQuery(SoftwareModuleTypeFields.DESCRIPTION.name() + "==Updated*", 3); @@ -63,7 +63,7 @@ public void testFilterByParameterDescription() { @Test @Description("Test filter software module test type by key") - public void testFilterByParameterKey() { + void testFilterByParameterKey() { assertRSQLQuery(SoftwareModuleTypeFields.KEY.name() + "==os", 1); assertRSQLQuery(SoftwareModuleTypeFields.KEY.name() + "!=os", 2); assertRSQLQuery(SoftwareModuleTypeFields.KEY.name() + "=in=(os)", 1); @@ -72,7 +72,7 @@ public void testFilterByParameterKey() { @Test @Description("Test filter software module test type by max") - public void testFilterByMaxAssignment() { + void testFilterByMaxAssignment() { assertRSQLQuery(SoftwareModuleTypeFields.MAXASSIGNMENTS.name() + "==1", 2); assertRSQLQuery(SoftwareModuleTypeFields.MAXASSIGNMENTS.name() + "!=1", 1); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTagFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTagFieldsTest.java index de20e68d81..9b6c0bbbef 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTagFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTagFieldsTest.java @@ -26,14 +26,14 @@ @Feature("Component Tests - Repository") @Story("RSQL filter target and distribution set tags") -public class RSQLTagFieldsTest extends AbstractJpaIntegrationTest { +class RSQLTagFieldsTest extends AbstractJpaIntegrationTest { @BeforeEach - public void seuptBeforeTest() { + void seuptBeforeTest() { for (int i = 0; i < 5; i++) { - final TagCreate targetTag = entityFactory.tag().create().name(Integer.toString(i)) - .description(Integer.toString(i)).colour(i % 2 == 0 ? "red" : "blue"); + final TagCreate targetTag = entityFactory.tag().create() + .name(Integer.toString(i)).description(Integer.toString(i)).colour(i % 2 == 0 ? "red" : "blue"); targetTagManagement.create(targetTag); distributionSetTagManagement.create(targetTag); } @@ -41,7 +41,7 @@ public void seuptBeforeTest() { @Test @Description("Test filter target tag by name") - public void testFilterTargetTagByParameterName() { + void testFilterTargetTagByParameterName() { assertRSQLQueryTarget(TagFields.NAME.name() + "==''", 0); assertRSQLQueryTarget(TagFields.NAME.name() + "!=''", 5); assertRSQLQueryTarget(TagFields.NAME.name() + "==1", 1); @@ -54,7 +54,7 @@ public void testFilterTargetTagByParameterName() { @Test @Description("Test filter target tag by description") - public void testFilterTargetTagByParameterDescription() { + void testFilterTargetTagByParameterDescription() { assertRSQLQueryTarget(TagFields.DESCRIPTION.name() + "==''", 0); assertRSQLQueryTarget(TagFields.DESCRIPTION.name() + "!=''", 5); assertRSQLQueryTarget(TagFields.DESCRIPTION.name() + "==1", 1); @@ -67,7 +67,7 @@ public void testFilterTargetTagByParameterDescription() { @Test @Description("Test filter target tag by colour") - public void testFilterTargetTagByParameterColour() { + void testFilterTargetTagByParameterColour() { assertRSQLQueryTarget(TagFields.COLOUR.name() + "==''", 0); assertRSQLQueryTarget(TagFields.COLOUR.name() + "!=''", 5); assertRSQLQueryTarget(TagFields.COLOUR.name() + "==red", 3); @@ -80,7 +80,7 @@ public void testFilterTargetTagByParameterColour() { @Test @Description("Test filter distribution set tag by name") - public void testFilterDistributionSetTagByParameterName() { + void testFilterDistributionSetTagByParameterName() { assertRSQLQueryDistributionSet(TagFields.NAME.name() + "==''", 0); assertRSQLQueryDistributionSet(TagFields.NAME.name() + "!=''", 5); assertRSQLQueryDistributionSet(TagFields.NAME.name() + "==1", 1); @@ -93,7 +93,7 @@ public void testFilterDistributionSetTagByParameterName() { @Test @Description("Test filter distribution set by description") - public void testFilterDistributionSetTagByParameterDescription() { + void testFilterDistributionSetTagByParameterDescription() { assertRSQLQueryDistributionSet(TagFields.DESCRIPTION.name() + "==''", 0); assertRSQLQueryDistributionSet(TagFields.DESCRIPTION.name() + "!=''", 5); assertRSQLQueryDistributionSet(TagFields.DESCRIPTION.name() + "==1", 1); @@ -106,7 +106,7 @@ public void testFilterDistributionSetTagByParameterDescription() { @Test @Description("Test filter distribution set by colour") - public void testFilterDistributionSetTagByParameterColour() { + void testFilterDistributionSetTagByParameterColour() { assertRSQLQueryDistributionSet(TagFields.COLOUR.name() + "==''", 0); assertRSQLQueryDistributionSet(TagFields.COLOUR.name() + "!=''", 5); assertRSQLQueryDistributionSet(TagFields.COLOUR.name() + "==red", 3); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetFieldTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetFieldTest.java index dd2cceac5d..7c63da2938 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetFieldTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetFieldTest.java @@ -149,12 +149,10 @@ void testFilterByParameterControllerId() { void testFilterByParameterUpdateStatus() { assertRSQLQuery(TargetFields.UPDATESTATUS.name() + "==pending", 1); assertRSQLQuery(TargetFields.UPDATESTATUS.name() + "!=pending", 4); - try { - assertRSQLQuery(TargetFields.UPDATESTATUS.name() + "==noExist*", 0); - fail("RSQLParameterUnsupportedFieldException was expected since update status unknown"); - } catch (final RSQLParameterUnsupportedFieldException e) { - // test ok - exception was excepted - } + final String rsqlNoExistStar = TargetFields.UPDATESTATUS.name() + "==noExist*"; + assertThatExceptionOfType(RSQLParameterUnsupportedFieldException.class) + .as("update status unknown") + .isThrownBy(() -> assertRSQLQuery(rsqlNoExistStar, 0)); assertRSQLQuery(TargetFields.UPDATESTATUS.name() + "=in=(pending,error)", 1); assertRSQLQuery(TargetFields.UPDATESTATUS.name() + "=out=(pending,error)", 4); } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetFilterQueryFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetFilterQueryFieldsTest.java index dfb71bb20f..d631939132 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetFilterQueryFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetFilterQueryFieldsTest.java @@ -28,13 +28,13 @@ @Feature("Component Tests - Repository") @Story("RSQL filter target filter query") -public class RSQLTargetFilterQueryFieldsTest extends AbstractJpaIntegrationTest { +class RSQLTargetFilterQueryFieldsTest extends AbstractJpaIntegrationTest { private TargetFilterQuery filter1; private TargetFilterQuery filter2; @BeforeEach - public void setupBeforeTest() { + void setupBeforeTest() { final String filterName1 = "filter_a"; final String filterName2 = "filter_b"; final String filterName3 = "filter_c"; @@ -54,7 +54,7 @@ public void setupBeforeTest() { @Test @Description("Test filter target filter query by id") - public void testFilterByParameterId() { + void testFilterByParameterId() { assertRSQLQuery(TargetFilterQueryFields.ID.name() + "==" + filter1.getId(), 1); assertRSQLQuery(TargetFilterQueryFields.ID.name() + "!=" + filter1.getId(), 2); assertRSQLQuery(TargetFilterQueryFields.ID.name() + "==" + -1, 0); @@ -72,7 +72,7 @@ public void testFilterByParameterId() { @Test @Description("Test filter target filter query by name") - public void testFilterByParameterName() { + void testFilterByParameterName() { assertRSQLQuery(TargetFilterQueryFields.NAME.name() + "==" + filter1.getName(), 1); assertRSQLQuery(TargetFilterQueryFields.NAME.name() + "==" + filter2.getName(), 1); assertRSQLQuery(TargetFilterQueryFields.NAME.name() + "==filter_*", 3); @@ -83,7 +83,7 @@ public void testFilterByParameterName() { @Test @Description("Test filter target filter query by auto assigned ds name") - public void testFilterByAutoAssignedDsName() { + void testFilterByAutoAssignedDsName() { assertRSQLQuery(TargetFilterQueryFields.AUTOASSIGNDISTRIBUTIONSET.name() + ".name==" + filter1.getAutoAssignDistributionSet().getName(), 1); assertRSQLQuery(TargetFilterQueryFields.AUTOASSIGNDISTRIBUTIONSET.name() + ".name==" @@ -98,7 +98,7 @@ public void testFilterByAutoAssignedDsName() { @Test @Description("Test filter target filter query by auto assigned ds version") - public void testFilterByAutoAssignedDsVersion() { + void testFilterByAutoAssignedDsVersion() { assertRSQLQuery(TargetFilterQueryFields.AUTOASSIGNDISTRIBUTIONSET.name() + ".version==" + TestdataFactory.DEFAULT_VERSION, 2); assertRSQLQuery(TargetFilterQueryFields.AUTOASSIGNDISTRIBUTIONSET.name() + ".version==*1*", 2); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetMetadataFieldsTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetMetadataFieldsTest.java index 4b18899d99..b4545fef66 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetMetadataFieldsTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLTargetMetadataFieldsTest.java @@ -30,12 +30,12 @@ @Feature("Component Tests - Repository") @Story("RSQL filter target metadata") -public class RSQLTargetMetadataFieldsTest extends AbstractJpaIntegrationTest { +class RSQLTargetMetadataFieldsTest extends AbstractJpaIntegrationTest { private String controllerId; @BeforeEach - public void setupBeforeTest() { + void setupBeforeTest() { final Target target = testdataFactory.createTarget("target"); controllerId = target.getControllerId(); @@ -52,7 +52,7 @@ public void setupBeforeTest() { @Test @Description("Test filter target metadata by key") - public void testFilterByParameterKey() { + void testFilterByParameterKey() { assertRSQLQuery(TargetMetadataFields.KEY.name() + "==1", 1); assertRSQLQuery(TargetMetadataFields.KEY.name() + "!=1", 5); assertRSQLQuery(TargetMetadataFields.KEY.name() + "=in=(1,2)", 2); @@ -61,7 +61,7 @@ public void testFilterByParameterKey() { @Test @Description("Test filter target metadata by value") - public void testFilterByParameterValue() { + void testFilterByParameterValue() { assertRSQLQuery(TargetMetadataFields.VALUE.name() + "==''", 1); assertRSQLQuery(TargetMetadataFields.VALUE.name() + "!=''", 5); assertRSQLQuery(TargetMetadataFields.VALUE.name() + "==1", 1); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLToSQLTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLToSQLTest.java index 64d08f6822..fd094e2807 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLToSQLTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/rsql/RSQLToSQLTest.java @@ -36,6 +36,7 @@ @ContextConfiguration(classes = { RepositoryApplicationConfiguration.class, TestConfiguration.class }) @Import(TestChannelBinderConfiguration.class) @Disabled("For manual run only, while playing around with RSQL to SQL") +@SuppressWarnings("java:S2699") // java:S2699 - manual test, don't actually does assertions class RSQLToSQLTest { private RSQLToSQL rsqlToSQL; diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/tenancy/MultiTenancyEntityTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/tenancy/MultiTenancyEntityTest.java index 201154cacc..bb50421bde 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/tenancy/MultiTenancyEntityTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/tenancy/MultiTenancyEntityTest.java @@ -12,8 +12,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; -import java.util.Arrays; import java.util.Collection; +import java.util.List; import java.util.concurrent.Callable; import io.qameta.allure.Description; @@ -75,7 +75,7 @@ void queryTargetFromDifferentTenantIsNotVisible() throws Exception { // find all targets for current tenant "mytenant" final Slice findTargetsAll = targetManagement.findAll(PAGE); // no target has been created for "mytenant" - assertThat(findTargetsAll).hasSize(0); + assertThat(findTargetsAll).isEmpty(); // find all targets for anotherTenant final Slice findTargetsForTenant = findTargetsForTenant(anotherTenant); @@ -126,11 +126,11 @@ void deleteTargetFromOtherTenantIsNotPossible() throws Exception { // create target for another tenant final String anotherTenant = "anotherTenant"; final String controllerAnotherTenant = "anotherController"; - final Target createTargetForTenant = createTargetForTenant(controllerAnotherTenant, anotherTenant); + final List createTargetForTenant = List.of(createTargetForTenant(controllerAnotherTenant, anotherTenant).getId()); // ensure target cannot be deleted by 'mytenant' try { - targetManagement.delete(Arrays.asList(createTargetForTenant.getId())); + targetManagement.delete(createTargetForTenant); fail("mytenant should not have been able to delete target of anotherTenant"); } catch (final EntityNotFoundException ex) { // ok @@ -140,9 +140,9 @@ void deleteTargetFromOtherTenantIsNotPossible() throws Exception { assertThat(targetsForAnotherTenant).hasSize(1); // ensure another tenant can delete the target - deleteTargetsForTenant(anotherTenant, Arrays.asList(createTargetForTenant.getId())); + deleteTargetsForTenant(anotherTenant, createTargetForTenant); targetsForAnotherTenant = findTargetsForTenant(anotherTenant); - assertThat(targetsForAnotherTenant).hasSize(0); + assertThat(targetsForAnotherTenant).isEmpty(); } @Test diff --git a/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/json/model/ExceptionInfo.java b/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/json/model/ExceptionInfo.java index 4edc0498b5..1f3f047abe 100644 --- a/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/json/model/ExceptionInfo.java +++ b/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/json/model/ExceptionInfo.java @@ -16,8 +16,7 @@ import lombok.Data; /** - * A exception model rest representation with JSON annotations for response - * bodies in case of RESTful exception occurrence. + * An exception model rest representation with JSON annotations for response bodies in case of RESTful exception occurrence. */ @Data @JsonInclude(Include.NON_EMPTY) @@ -26,5 +25,5 @@ public class ExceptionInfo { private String exceptionClass; private String errorCode; private String message; - private transient Map info; + private Map info; } diff --git a/hawkbit-security/hawkbit-security-controller/src/main/java/org/eclipse/hawkbit/security/controller/PreAuthTokenSourceTrustAuthenticationProvider.java b/hawkbit-security/hawkbit-security-controller/src/main/java/org/eclipse/hawkbit/security/controller/PreAuthTokenSourceTrustAuthenticationProvider.java index e2ea049deb..d71ad6c82d 100644 --- a/hawkbit-security/hawkbit-security-controller/src/main/java/org/eclipse/hawkbit/security/controller/PreAuthTokenSourceTrustAuthenticationProvider.java +++ b/hawkbit-security/hawkbit-security-controller/src/main/java/org/eclipse/hawkbit/security/controller/PreAuthTokenSourceTrustAuthenticationProvider.java @@ -145,19 +145,19 @@ private boolean checkSourceIPAddressIfNeccessary(final Object tokenDetails) { // request coming // from a trustful source, like the reverse proxy. if (authorizedSourceIps != null) { - if (!(tokenDetails instanceof TenantAwareWebAuthenticationDetails)) { + if (tokenDetails instanceof TenantAwareWebAuthenticationDetails tenantAwareWebAuthenticationDetails) { + remoteAddress = tenantAwareWebAuthenticationDetails.getRemoteAddress(); + if (authorizedSourceIps.contains(remoteAddress)) { + // source ip matches the given pattern -> authenticated + success = true; + } + } else { // is not of type WebAuthenticationDetails, then we cannot // determine the remote address! log.error( "Cannot determine the controller remote-ip-address based on the given authentication token - {} , token details are not TenantAwareWebAuthenticationDetails! ", tokenDetails); success = false; - } else { - remoteAddress = ((TenantAwareWebAuthenticationDetails) tokenDetails).getRemoteAddress(); - if (authorizedSourceIps.contains(remoteAddress)) { - // source ip matches the given pattern -> authenticated - success = true; - } } } diff --git a/hawkbit-security/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/MdcHandler.java b/hawkbit-security/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/MdcHandler.java index 25ed8d93fb..d0b2065f48 100644 --- a/hawkbit-security/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/MdcHandler.java +++ b/hawkbit-security/hawkbit-security-core/src/main/java/org/eclipse/hawkbit/security/MdcHandler.java @@ -31,7 +31,9 @@ import org.springframework.web.filter.OncePerRequestFilter; @NoArgsConstructor(access = AccessLevel.PRIVATE) -@SuppressWarnings("java:S6548") // java:S6548 - singleton holder ensures static access to spring resources in some places +// java:S6548 - singleton holder ensures static access to spring resources in some places +// java:S112 - it is generic class so a generic exception is fine +@SuppressWarnings({ "java:S6548", "java:S112" }) public class MdcHandler { public static final String MDC_KEY_TENANT = "tenant";