diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/event/EventPublisherAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/event/EventPublisherAutoConfiguration.java index 9df8621f45..6a4e982422 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/event/EventPublisherAutoConfiguration.java +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/repository/event/EventPublisherAutoConfiguration.java @@ -9,35 +9,10 @@ */ package org.eclipse.hawkbit.autoconfigure.repository.event; -import java.util.concurrent.Executor; -import io.protostuff.ProtostuffIOUtil; -import io.protostuff.Schema; -import org.eclipse.hawkbit.event.BusProtoStuffMessageConverter; import org.eclipse.hawkbit.event.EventPublisherConfiguration; -import org.eclipse.hawkbit.repository.event.ApplicationEventFilter; -import org.eclipse.hawkbit.repository.event.remote.RemoteTenantAwareEvent; -import org.eclipse.hawkbit.repository.model.helper.EventPublisherHolder; -import org.eclipse.hawkbit.security.SystemSecurityContext; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.cloud.bus.BusProperties; -import org.springframework.cloud.bus.ConditionalOnBusEnabled; -import org.springframework.cloud.bus.ServiceMatcher; -import org.springframework.cloud.bus.jackson.RemoteApplicationEventScan; -import org.springframework.context.ApplicationEvent; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; -import org.springframework.context.annotation.PropertySource; -import org.springframework.context.event.ApplicationEventMulticaster; -import org.springframework.context.event.SimpleApplicationEventMulticaster; -import org.springframework.context.support.AbstractApplicationContext; -import org.springframework.core.ResolvableType; -import org.springframework.messaging.converter.MessageConverter; /** * Autoconfiguration for the event bus. diff --git a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/scheduling/ExecutorAutoConfiguration.java b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/scheduling/ExecutorAutoConfiguration.java index 9665cef391..ab4809b059 100644 --- a/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/scheduling/ExecutorAutoConfiguration.java +++ b/hawkbit-autoconfigure/src/main/java/org/eclipse/hawkbit/autoconfigure/scheduling/ExecutorAutoConfiguration.java @@ -86,7 +86,7 @@ public TaskScheduler taskScheduler() { private static ThreadFactory threadFactory(final String format) { final AtomicLong count = new AtomicLong(0); - return (runnable) -> { + return runnable -> { final Thread thread = Executors.defaultThreadFactory().newThread(runnable); thread.setName(String.format(Locale.ROOT, format, count.getAndIncrement())); return thread; diff --git a/hawkbit-core/src/test/java/org/eclipse/hawkbit/repository/FileNameFieldsTest.java b/hawkbit-core/src/test/java/org/eclipse/hawkbit/repository/FileNameFieldsTest.java index defbe68c2b..bb93cd6477 100644 --- a/hawkbit-core/src/test/java/org/eclipse/hawkbit/repository/FileNameFieldsTest.java +++ b/hawkbit-core/src/test/java/org/eclipse/hawkbit/repository/FileNameFieldsTest.java @@ -19,12 +19,12 @@ import io.qameta.allure.Description; import org.junit.jupiter.api.Test; -public class FileNameFieldsTest { +class FileNameFieldsTest { @Test @Description("Verifies that fields classes are correctly implemented") @SuppressWarnings("unchecked") - public void repositoryManagementMethodsArePreAuthorizedAnnotated() { + void repositoryManagementMethodsArePreAuthorizedAnnotated() { final String packageName = getClass().getPackage().getName(); try (final ScanResult scanResult = new ClassGraph().acceptPackages(packageName).scan()) { final List> matchingClasses = scanResult.getAllClasses() diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/FileSizeQuotaExceededException.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/FileSizeQuotaExceededException.java index 553c65ce08..41b0ae7923 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/FileSizeQuotaExceededException.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/FileSizeQuotaExceededException.java @@ -11,12 +11,14 @@ import static org.eclipse.hawkbit.repository.SizeConversionHelper.byteValueToReadableString; +import lombok.EqualsAndHashCode; import org.eclipse.hawkbit.exception.AbstractServerRtException; import org.eclipse.hawkbit.exception.SpServerError; /** * Thrown if file size quota is exceeded */ +@EqualsAndHashCode(callSuper = true) public class FileSizeQuotaExceededException extends AbstractServerRtException { private static final String MAX_ARTIFACT_SIZE_EXCEEDED = "Maximum artifact size (%s) exceeded."; diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/IncompatibleTargetTypeException.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/IncompatibleTargetTypeException.java index 1104551041..4455413340 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/IncompatibleTargetTypeException.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/IncompatibleTargetTypeException.java @@ -13,6 +13,7 @@ import java.util.Collection; import java.util.Collections; +import lombok.EqualsAndHashCode; import org.eclipse.hawkbit.exception.AbstractServerRtException; import org.eclipse.hawkbit.exception.SpServerError; import org.eclipse.hawkbit.repository.model.DistributionSet; @@ -20,9 +21,9 @@ import org.eclipse.hawkbit.repository.model.TargetType; /** - * Thrown if user tries to assign a {@link DistributionSet} to a {@link Target} - * that has an incompatible {@link TargetType} + * Thrown if user tries to assign a {@link DistributionSet} to a {@link Target} that has an incompatible {@link TargetType} */ +@EqualsAndHashCode(callSuper = true) public class IncompatibleTargetTypeException extends AbstractServerRtException { @Serial diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/InvalidConfirmationFeedbackException.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/InvalidConfirmationFeedbackException.java index 3bce10279e..d966202d03 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/InvalidConfirmationFeedbackException.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/InvalidConfirmationFeedbackException.java @@ -11,14 +11,15 @@ import java.io.Serial; +import lombok.EqualsAndHashCode; import org.eclipse.hawkbit.exception.AbstractServerRtException; import org.eclipse.hawkbit.exception.SpServerError; /** - * This exception is indicating that the confirmation feedback cannot be - * processed for a specific actions for different reasons which are listed as - * enum {@link Reason}. + * This exception is indicating that the confirmation feedback cannot be processed for a specific actions for different reasons which are + * listed as enum {@link Reason}. */ +@EqualsAndHashCode(callSuper = true) public class InvalidConfirmationFeedbackException extends AbstractServerRtException { @Serial diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/InvalidMaintenanceScheduleException.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/InvalidMaintenanceScheduleException.java index 0e57368f1c..2295ab3e21 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/InvalidMaintenanceScheduleException.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/exception/InvalidMaintenanceScheduleException.java @@ -11,15 +11,16 @@ import java.io.Serial; +import lombok.EqualsAndHashCode; import org.eclipse.hawkbit.exception.AbstractServerRtException; import org.eclipse.hawkbit.exception.SpServerError; /** - * This exception is thrown if trying to set a maintenance schedule that is - * invalid. A maintenance schedule is considered to be valid only if schedule, - * duration and timezone are all null, or are all valid; in which case there - * should be at least one valid window after the current time. + * This exception is thrown if trying to set a maintenance schedule that is invalid. A maintenance schedule is considered to be valid only if + * schedule, duration and timezone are all null, or are all valid; in which case there should be at least one valid window after the current + * time. */ +@EqualsAndHashCode(callSuper = true) public class InvalidMaintenanceScheduleException extends AbstractServerRtException { @Serial diff --git a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/HawkbitEclipseLinkJpaDialect.java b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/HawkbitEclipseLinkJpaDialect.java index 0562a17816..397df02cf3 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/HawkbitEclipseLinkJpaDialect.java +++ b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/HawkbitEclipseLinkJpaDialect.java @@ -91,8 +91,8 @@ private static SQLException findSqlException(final RuntimeException jpaSystemExc Throwable exception = jpaSystemException; do { final Throwable cause = exception.getCause(); - if (cause instanceof SQLException) { - return (SQLException) cause; + if (cause instanceof SQLException sqlException) { + return sqlException; } exception = cause; } while (exception != null); diff --git a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/model/EntityPropertyChangeListener.java b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/model/EntityPropertyChangeListener.java index bfc62575ac..28d7ea03b0 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/model/EntityPropertyChangeListener.java +++ b/hawkbit-repository/hawkbit-repository-jpa-eclipselink/src/main/java/org/eclipse/hawkbit/repository/jpa/model/EntityPropertyChangeListener.java @@ -31,7 +31,7 @@ public void postUpdate(final DescriptorEvent event) { final Object object = event.getObject(); if (((UpdateObjectQuery) event.getQuery()).getObjectChangeSet().getChangedAttributeNames().stream() .anyMatch(field -> !TARGET_UPDATE_EVENT_IGNORE_FIELDS.contains(field))) { - AbstractJpaBaseEntity.doNotify(() -> ((EventAwareEntity) object).fireUpdateEvent()); + AbstractBaseEntity.doNotify(((EventAwareEntity) object)::fireUpdateEvent); } } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa-hibernate/src/main/java/org/eclipse/hawkbit/repository/jpa/model/EntityPropertyChangeListener.java b/hawkbit-repository/hawkbit-repository-jpa-hibernate/src/main/java/org/eclipse/hawkbit/repository/jpa/model/EntityPropertyChangeListener.java index 3daf5cba77..b7e4b7a46d 100644 --- a/hawkbit-repository/hawkbit-repository-jpa-hibernate/src/main/java/org/eclipse/hawkbit/repository/jpa/model/EntityPropertyChangeListener.java +++ b/hawkbit-repository/hawkbit-repository-jpa-hibernate/src/main/java/org/eclipse/hawkbit/repository/jpa/model/EntityPropertyChangeListener.java @@ -57,7 +57,7 @@ public void onPostUpdate(final PostUpdateEvent event) { } if (hasNonIgnoredChanges || !lastTargetQueryChanged) { - AbstractJpaBaseEntity.doNotify(() -> ((EventAwareEntity) event.getEntity()).fireUpdateEvent()); + AbstractBaseEntity.doNotify(((EventAwareEntity) event.getEntity())::fireUpdateEvent); } } diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaConfirmationManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaConfirmationManagement.java index 7a801847ad..aa44fa4fc7 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaConfirmationManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaConfirmationManagement.java @@ -200,7 +200,7 @@ private ActionStatusCreate createConfirmationActionStatus(final long actionId, f private List giveConfirmationForActiveActions(final AutoConfirmationStatus autoConfirmationStatus) { return findActiveActionsHavingStatus(autoConfirmationStatus.getTarget().getControllerId(), Status.WAIT_FOR_CONFIRMATION).stream() .map(action -> autoConfirmAction(action, autoConfirmationStatus)) - .collect(Collectors.toList()); + .toList(); } private Action autoConfirmAction(final JpaAction action, final AutoConfirmationStatus autoConfirmationStatus) { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java index 7937293afc..4c59ef3383 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/management/JpaControllerManagement.java @@ -321,13 +321,16 @@ public Page findActionStatusByAction(final Pageable pageReq, final @Transactional(isolation = Isolation.READ_COMMITTED) @Retryable(retryFor = ConcurrencyFailureException.class, noRetryFor = EntityAlreadyExistsException.class, maxAttempts = Constants.TX_RT_MAX, backoff = @Backoff(delay = Constants.TX_RT_DELAY)) public Target findOrRegisterTargetIfItDoesNotExist(final String controllerId, final URI address) { - return findOrRegisterTargetIfItDoesNotExist(controllerId, address, null, null); + return findOrRegisterTargetIfItDoesNotExist0(controllerId, address, null, null); } @Override @Transactional(isolation = Isolation.READ_COMMITTED) @Retryable(retryFor = ConcurrencyFailureException.class, noRetryFor = EntityAlreadyExistsException.class, maxAttempts = Constants.TX_RT_MAX, backoff = @Backoff(delay = Constants.TX_RT_DELAY)) public Target findOrRegisterTargetIfItDoesNotExist(final String controllerId, final URI address, final String name, final String type) { + return findOrRegisterTargetIfItDoesNotExist0(controllerId, address, name, type); + } + private Target findOrRegisterTargetIfItDoesNotExist0(final String controllerId, final URI address, final String name, final String type) { final Specification spec = (targetRoot, query, cb) -> cb.equal(targetRoot.get(JpaTarget_.controllerId), controllerId); return targetRepository.findOne(spec).map(target -> updateTarget(target, address, name, type)) .orElseGet(() -> createTarget(controllerId, address, name, type)); diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java index 69b74c75b2..0278006103 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAction.java @@ -14,6 +14,7 @@ import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Collections; +import java.util.EnumMap; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -375,7 +376,7 @@ public ActionTypeConverter() { public static class StatusConverter extends MapAttributeConverter { public StatusConverter() { - super(new HashMap<>() {{ + super(new EnumMap<>(new HashMap<>() {{ put(Status.FINISHED, 0); put(Status.ERROR, 1); put(Status.WARNING, 2); @@ -388,7 +389,7 @@ public StatusConverter() { put(Status.CANCEL_REJECTED, 9); put(Status.DOWNLOADED, 10); put(Status.WAIT_FOR_CONFIRMATION, 11); - }}, null); + }}), null); } } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAutoConfirmationStatus.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAutoConfirmationStatus.java index d44142e240..13354bdbc2 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAutoConfirmationStatus.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaAutoConfirmationStatus.java @@ -19,15 +19,17 @@ import jakarta.persistence.Table; import jakarta.validation.constraints.Size; -import lombok.AccessLevel; +import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.NoArgsConstructor; import org.eclipse.hawkbit.repository.model.AutoConfirmationStatus; import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.Target; +import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; @NoArgsConstructor // Default constructor needed for JPA entities. +@EqualsAndHashCode(callSuper = true) @Getter @Entity @Table(name = "sp_target_conf_status") @@ -48,8 +50,8 @@ public class JpaAutoConfirmationStatus extends AbstractJpaTenantAwareBaseEntity public JpaAutoConfirmationStatus(final String initiator, final String remark, final Target target) { this.target = (JpaTarget) target; - this.initiator = StringUtils.isEmpty(initiator) ? null : initiator; - this.remark = StringUtils.isEmpty(remark) ? null : remark; + this.initiator = ObjectUtils.isEmpty(initiator) ? null : initiator; + this.remark = ObjectUtils.isEmpty(remark) ? null : remark; } @Override diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/model/EntityInterceptorListenerTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/model/EntityInterceptorListenerTest.java index b06a1abf98..e26cae6806 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/model/EntityInterceptorListenerTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/model/EntityInterceptorListenerTest.java @@ -27,28 +27,28 @@ */ @Feature("Component Tests - Repository") @Story("Entity Listener Interceptor") -public class EntityInterceptorListenerTest extends AbstractJpaIntegrationTest { +class EntityInterceptorListenerTest extends AbstractJpaIntegrationTest { @AfterEach - public void tearDown() { + void tearDown() { EntityInterceptorHolder.getInstance().getEntityInterceptors().clear(); } @Test @Description("Verifies that the pre persist is called after a entity creation.") - public void prePersistIsCalledWhenPersistingATarget() { + void prePersistIsCalledWhenPersistingATarget() { executePersistAndAssertCallbackResult(new PrePersistEntityListener()); } @Test @Description("Verifies that the post persist is called after a entity creation.") - public void postPersistIsCalledWhenPersistingATarget() { + void postPersistIsCalledWhenPersistingATarget() { executePersistAndAssertCallbackResult(new PostPersistEntityListener()); } @Test @Description("Verifies that the post load is called after a entity is loaded.") - public void postLoadIsCalledWhenLoadATarget() { + void postLoadIsCalledWhenLoadATarget() { final PostLoadEntityListener postLoadEntityListener = new PostLoadEntityListener(); EntityInterceptorHolder.getInstance().getEntityInterceptors().add(postLoadEntityListener); @@ -61,25 +61,25 @@ public void postLoadIsCalledWhenLoadATarget() { @Test @Description("Verifies that the pre update is called after a entity update.") - public void preUpdateIsCalledWhenUpdateATarget() { + void preUpdateIsCalledWhenUpdateATarget() { executeUpdateAndAssertCallbackResult(new PreUpdateEntityListener()); } @Test @Description("Verifies that the post update is called after a entity update.") - public void postUpdateIsCalledWhenUpdateATarget() { + void postUpdateIsCalledWhenUpdateATarget() { executeUpdateAndAssertCallbackResult(new PostUpdateEntityListener()); } @Test @Description("Verifies that the pre remove is called after a entity deletion.") - public void preRemoveIsCalledWhenDeletingATarget() { + void preRemoveIsCalledWhenDeletingATarget() { executeDeleteAndAssertCallbackResult(new PreRemoveEntityListener()); } @Test @Description("Verifies that the post remove is called after a entity deletion.") - public void postRemoveIsCalledWhenDeletingATarget() { + void postRemoveIsCalledWhenDeletingATarget() { executeDeleteAndAssertCallbackResult(new PostRemoveEntityListener()); } @@ -91,10 +91,10 @@ private void executePersistAndAssertCallbackResult(final AbstractEntityListener } private void executeUpdateAndAssertCallbackResult(final AbstractEntityListener entityInterceptor) { - Target updateTarget = addListenerAndCreateTarget(entityInterceptor, "targetToBeCreated"); - - updateTarget = targetManagement - .update(entityFactory.target().update(updateTarget.getControllerId()).name("New")); + final Target updateTarget = targetManagement.update( + entityFactory.target() + .update(addListenerAndCreateTarget(entityInterceptor, "targetToBeCreated").getControllerId()) + .name("New")); assertThat(entityInterceptor.getEntity()).isNotNull(); assertThat(entityInterceptor.getEntity()).isEqualTo(updateTarget); diff --git a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/matcher/EventVerifier.java b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/matcher/EventVerifier.java index 9bc89cb543..d2ce2a893f 100644 --- a/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/matcher/EventVerifier.java +++ b/hawkbit-repository/hawkbit-repository-test/src/main/java/org/eclipse/hawkbit/repository/test/matcher/EventVerifier.java @@ -144,17 +144,17 @@ public void onApplicationEvent(final RemoteApplicationEvent event) { return; } - if (event instanceof RemoteTenantAwareEvent) { - assertThat(((RemoteTenantAwareEvent) event).getTenant()).isNotEmpty(); + if (event instanceof RemoteTenantAwareEvent remoteTenantAwareEvent) { + assertThat(remoteTenantAwareEvent.getTenant()).isNotEmpty(); } - if (event instanceof RemoteIdEvent) { - assertThat(((RemoteIdEvent) event).getEntityId()).isNotNull(); + if (event instanceof RemoteIdEvent remoteIdEvent) { + assertThat(remoteIdEvent.getEntityId()).isNotNull(); } - if (event instanceof TargetAssignDistributionSetEvent) { - assertThat(((TargetAssignDistributionSetEvent) event).getActions()).isNotEmpty(); - assertThat(((TargetAssignDistributionSetEvent) event).getDistributionSetId()).isNotNull(); + if (event instanceof TargetAssignDistributionSetEvent targetAssignDistributionSetEvent) { + assertThat(targetAssignDistributionSetEvent.getActions()).isNotEmpty(); + assertThat(targetAssignDistributionSetEvent.getDistributionSetId()).isNotNull(); } capturedEvents.compute(event.getClass(), (k, v) -> v == null ? 1 : v + 1); @@ -177,7 +177,7 @@ private static final class ResetCounterMarkerEvent extends RemoteApplicationEven private static final long serialVersionUID = 1L; private ResetCounterMarkerEvent() { - super(new Object(), "resetcounter"); + super(new Object(), "resetcounter", DEFAULT_DESTINATION_FACTORY.getDestination(null)); } } } \ No newline at end of file diff --git a/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/util/FileStreamingUtil.java b/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/util/FileStreamingUtil.java index 0b555679c2..4694123de0 100644 --- a/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/util/FileStreamingUtil.java +++ b/hawkbit-rest-core/src/main/java/org/eclipse/hawkbit/rest/util/FileStreamingUtil.java @@ -196,7 +196,7 @@ private static ResponseEntity extractRange(final HttpServletRespons private static long sublong(final String value, final int beginIndex, final int endIndex) { final String substring = value.substring(beginIndex, endIndex); - return substring.length() > 0 ? Long.parseLong(substring) : -1; + return substring.isEmpty() ? -1 : Long.parseLong(substring); } private static void checkForShortcut(final HttpServletRequest request, final String etag, final long lastModified, diff --git a/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/ExcludePathAwareShallowETagFilterTest.java b/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/ExcludePathAwareShallowETagFilterTest.java index 15d9459804..7170e87a0f 100644 --- a/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/ExcludePathAwareShallowETagFilterTest.java +++ b/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/ExcludePathAwareShallowETagFilterTest.java @@ -34,7 +34,7 @@ @Feature("Unit Tests - Security") @Story("Exclude path aware shallow ETag filter") @ExtendWith(MockitoExtension.class) -public class ExcludePathAwareShallowETagFilterTest { +class ExcludePathAwareShallowETagFilterTest { @Mock private HttpServletRequest servletRequestMock; @@ -46,7 +46,7 @@ public class ExcludePathAwareShallowETagFilterTest { private FilterChain filterChainMock; @Test - public void excludePathDoesNotCalculateETag() throws ServletException, IOException { + void excludePathDoesNotCalculateETag() throws ServletException, IOException { final String knownContextPath = "/bumlux/test"; final String knownUri = knownContextPath + "/exclude/download"; final String antPathExclusion = "/exclude/**"; @@ -68,7 +68,7 @@ public void excludePathDoesNotCalculateETag() throws ServletException, IOExcepti } @Test - public void pathNotExcludedETagIsCalculated() throws ServletException, IOException { + void pathNotExcludedETagIsCalculated() throws ServletException, IOException { final String knownContextPath = "/bumlux/test"; final String knownUri = knownContextPath + "/include/download"; final String antPathExclusion = "/exclude/**"; diff --git a/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/json/model/ExceptionInfoTest.java b/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/json/model/ExceptionInfoTest.java index 8b1bc0db33..964e5f178f 100644 --- a/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/json/model/ExceptionInfoTest.java +++ b/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/json/model/ExceptionInfoTest.java @@ -21,11 +21,11 @@ @Feature("Unit Tests - Management API") @Story("Error Handling") -public class ExceptionInfoTest { +class ExceptionInfoTest { @Test @Description("Ensures that setters and getters match on teh payload.") - public void setterAndGetterOnExceptionInfo() { + void setterAndGetterOnExceptionInfo() { final String knownExceptionClass = "hawkbit.test.exception.Class"; final String knownErrorCode = "hawkbit.error.code.Known"; final String knownMessage = "a known message"; diff --git a/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/util/FileStreamingUtilTest.java b/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/util/FileStreamingUtilTest.java index ee39cf2d31..16b4f9f530 100644 --- a/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/util/FileStreamingUtilTest.java +++ b/hawkbit-rest-core/src/test/java/org/eclipse/hawkbit/rest/util/FileStreamingUtilTest.java @@ -40,8 +40,8 @@ @Story("File streaming") class FileStreamingUtilTest { - private final static String CONTENT = "This is some very long string which is intended to test"; - private final static byte[] CONTENT_BYTES = CONTENT.getBytes(StandardCharsets.UTF_8); + private static final String CONTENT = "This is some very long string which is intended to test"; + private static final byte[] CONTENT_BYTES = CONTENT.getBytes(StandardCharsets.UTF_8); private static final DbArtifact TEST_ARTIFACT = new DbArtifact() { diff --git a/hawkbit-sdk/hawkbit-sdk-commons/src/main/java/org/eclipse/hawkbit/sdk/HawkbitClient.java b/hawkbit-sdk/hawkbit-sdk-commons/src/main/java/org/eclipse/hawkbit/sdk/HawkbitClient.java index 3964a261cb..efded9543e 100644 --- a/hawkbit-sdk/hawkbit-sdk-commons/src/main/java/org/eclipse/hawkbit/sdk/HawkbitClient.java +++ b/hawkbit-sdk/hawkbit-sdk-commons/src/main/java/org/eclipse/hawkbit/sdk/HawkbitClient.java @@ -32,29 +32,29 @@ public class HawkbitClient { private static final String AUTHORIZATION = "Authorization"; public static final BiFunction DEFAULT_REQUEST_INTERCEPTOR_FN = (tenant, controller) -> - controller == null ? - template -> { - template.header( - AUTHORIZATION, + controller == null + ? template -> + template.header( + AUTHORIZATION, - "Basic " + - Base64.getEncoder() - .encodeToString( - (Objects.requireNonNull(tenant.getUsername(), "User is null!") + - ":" + - Objects.requireNonNull(tenant.getPassword(), - "Password is not available!")) - .getBytes(StandardCharsets.ISO_8859_1))); - } : - template -> { - if (ObjectUtils.isEmpty(tenant.getGatewayToken())) { - if (!ObjectUtils.isEmpty(controller.getSecurityToken())) { - template.header(AUTHORIZATION, "TargetToken " + controller.getSecurityToken()); - } // else do not sent authentication - } else { - template.header(AUTHORIZATION, "GatewayToken " + tenant.getGatewayToken()); - } - }; + "Basic " + + Base64.getEncoder() + .encodeToString( + (Objects.requireNonNull(tenant.getUsername(), "User is null!") + + ":" + + Objects.requireNonNull(tenant.getPassword(), + "Password is not available!")) + .getBytes(StandardCharsets.ISO_8859_1))) + : + template -> { + if (ObjectUtils.isEmpty(tenant.getGatewayToken())) { + if (!ObjectUtils.isEmpty(controller.getSecurityToken())) { + template.header(AUTHORIZATION, "TargetToken " + controller.getSecurityToken()); + } // else do not sent authentication + } else { + template.header(AUTHORIZATION, "GatewayToken " + tenant.getGatewayToken()); + } + }; private static final ErrorDecoder DEFAULT_ERROR_DECODER_0 = new ErrorDecoder.Default(); public static final ErrorDecoder DEFAULT_ERROR_DECODER = (methodKey, response) -> { final Exception e = DEFAULT_ERROR_DECODER_0.decode(methodKey, response); diff --git a/hawkbit-security/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java b/hawkbit-security/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java index 4162007d37..071c180a93 100644 --- a/hawkbit-security/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java +++ b/hawkbit-security/hawkbit-security-core/src/test/java/org/eclipse/hawkbit/util/IpUtilTest.java @@ -33,7 +33,7 @@ @ExtendWith(MockitoExtension.class) @Feature("Unit Tests - Security") @Story("IP Util Test") -public class IpUtilTest { +class IpUtilTest { private static final String X_FORWARDED_FOR = HawkbitSecurityProperties.Clients.X_FORWARDED_FOR; private static final String KNOWN_REQUEST_HEADER = "bumlux"; @@ -49,7 +49,7 @@ public class IpUtilTest { @Test @Description("Tests create uri from request") - public void getRemoteAddrFromRequestIfForwardedHeaderNotPresent() { + void getRemoteAddrFromRequestIfForwardedHeaderNotPresent() { final URI knownRemoteClientIP = IpUtil.createHttpUri("127.0.0.1"); when(requestMock.getRemoteAddr()).thenReturn(knownRemoteClientIP.getHost()); @@ -64,7 +64,7 @@ public void getRemoteAddrFromRequestIfForwardedHeaderNotPresent() { @Test @Description("Tests create uri from request with masked IP when IP tracking is disabled") - public void maskRemoteAddrIfDisabled() { + void maskRemoteAddrIfDisabled() { final URI knownRemoteClientIP = IpUtil.createHttpUri("***"); when(securityPropertyMock.getClients()).thenReturn(clientMock); when(clientMock.getRemoteIpHeader()).thenReturn(KNOWN_REQUEST_HEADER); @@ -80,7 +80,7 @@ public void maskRemoteAddrIfDisabled() { @Test @Description("Tests create uri from x forward header") - public void getRemoteAddrFromXForwardedForHeader() { + void getRemoteAddrFromXForwardedForHeader() { final URI knownRemoteClientIP = IpUtil.createHttpUri("10.99.99.1"); when(requestMock.getHeader(X_FORWARDED_FOR)).thenReturn(knownRemoteClientIP.getHost()); @@ -94,7 +94,7 @@ public void getRemoteAddrFromXForwardedForHeader() { @Test @Description("Tests client uri from request") - public void testCreateClientHttpUri() { + void testCreateClientHttpUri() { checkHostInfoResolution("0:0:0:0:0:0:0:1", "[0:0:0:0:0:0:0:1]", true); checkHostInfoResolution("127.0.0.1", "127.0.0.1", true); checkHostInfoResolution("127.0.0.1:93493", "127.0.0.1", true); @@ -107,7 +107,7 @@ public void testCreateClientHttpUri() { @Test @Description("Tests client uri from request") - public void testResolveClientIpFromHeader() { + void testResolveClientIpFromHeader() { checkHostInfoResolution("0:0:0:0:0:0:0:1", "[0:0:0:0:0:0:0:1]", false); checkHostInfoResolution("127.0.0.1", "127.0.0.1", false); checkHostInfoResolution("127.0.0.1:93493", "127.0.0.1", false); @@ -117,7 +117,7 @@ public void testResolveClientIpFromHeader() { @Test @Description("Tests create http uri ipv4 and ipv6") - public void testCreateHttpUri() { + void testCreateHttpUri() { final String ipv4 = "10.99.99.1"; URI httpUri = IpUtil.createHttpUri(ipv4); assertHttpUri(ipv4, httpUri); @@ -133,7 +133,7 @@ public void testCreateHttpUri() { @Test @Description("Tests create amqp uri ipv4 and ipv6") - public void testCreateAmqpUri() { + void testCreateAmqpUri() { final String ipv4 = "10.99.99.1"; URI amqpUri = IpUtil.createAmqpUri(ipv4, "path"); assertAmqpUri(ipv4, amqpUri); @@ -160,7 +160,7 @@ public void testCreateAmqpUri() { @Test @Description("Tests create invalid uri") - public void testCreateInvalidUri() { + void testCreateInvalidUri() { final String host = "10.99.99.1"; final URI testUri = IpUtil.createUri("test", host); diff --git a/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/util/Filter.java b/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/util/Filter.java index ed75b13b09..bf83db474b 100644 --- a/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/util/Filter.java +++ b/hawkbit-simple-ui/src/main/java/org/eclipse/hawkbit/ui/simple/view/util/Filter.java @@ -96,7 +96,7 @@ public static String filter(final Map keyToValues) { } }) .filter(e -> !(e.getValue() instanceof Collection coll && coll.isEmpty())) - .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue())); + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); if (normalized.isEmpty()) { return null; } else if (normalized.size() == 1) {