diff --git a/hawkbit-repository/hawkbit-repository-core/pom.xml b/hawkbit-repository/hawkbit-repository-core/pom.xml index b6d137540..2b6cf95bb 100644 --- a/hawkbit-repository/hawkbit-repository-core/pom.xml +++ b/hawkbit-repository/hawkbit-repository-core/pom.xml @@ -9,56 +9,57 @@ SPDX-License-Identifier: EPL-2.0 --> - - 4.0.0 - - org.eclipse.hawkbit - hawkbit-repository - ${revision} - - hawkbit-repository-core - hawkBit :: Repository :: Core Implementation Support + + 4.0.0 + + org.eclipse.hawkbit + hawkbit-repository + ${revision} + + hawkbit-repository-core + hawkBit :: Repository :: Core Implementation Support - - - org.eclipse.hawkbit - hawkbit-repository-api - ${project.version} - - - org.apache.commons - commons-lang3 - - - com.github.ben-manes.caffeine - caffeine - - - org.springframework - spring-context-support - - - io.protostuff - protostuff-core - true - - - io.protostuff - protostuff-runtime - true - + + + org.eclipse.hawkbit + hawkbit-repository-api + ${project.version} + + + org.apache.commons + commons-lang3 + + + com.github.ben-manes.caffeine + caffeine + + + org.springframework + spring-context-support + + + io.protostuff + protostuff-core + true + + + io.protostuff + protostuff-runtime + true + - - - org.springframework.boot - spring-boot-starter-test - test - - - io.qameta.allure - allure-junit5 - test - - + + + org.springframework.boot + spring-boot-starter-test + test + + + io.qameta.allure + allure-junit5 + test + + \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/BusProtoStuffMessageConverter.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/BusProtoStuffMessageConverter.java index 960e87e2c..3b65d75b8 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/BusProtoStuffMessageConverter.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/BusProtoStuffMessageConverter.java @@ -9,6 +9,10 @@ */ package org.eclipse.hawkbit.event; +import io.protostuff.LinkedBuffer; +import io.protostuff.ProtobufIOUtil; +import io.protostuff.Schema; +import io.protostuff.runtime.RuntimeSchema; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.bus.event.RemoteApplicationEvent; import org.springframework.messaging.Message; @@ -17,15 +21,10 @@ import org.springframework.messaging.converter.AbstractMessageConverter; import org.springframework.messaging.converter.MessageConversionException; import org.springframework.util.MimeType; -import io.protostuff.LinkedBuffer; -import io.protostuff.ProtobufIOUtil; -import io.protostuff.Schema; -import io.protostuff.runtime.RuntimeSchema; - /** * A customize message converter for the spring cloud events. The converter is * registered for the application/binary+protostuff type. - * + * * The clazz-type-information is encoded into the message payload infront with a * length of {@link #EVENT_TYPE_LENGTH}. This is necessary due in case of * rabbitMQ batching the message headers will be merged together and custom @@ -85,8 +84,7 @@ public class BusProtoStuffMessageConverter extends AbstractMessageConverter { log.error("Cannot read clazz header for given EventType value {}, missing mapping", eventType.getValue()); throw new MessageConversionException("Missing mapping of EventType for value " + eventType.getValue()); } - @SuppressWarnings("unchecked") - final Schema schema = (Schema) RuntimeSchema.getSchema(targetClass); + @SuppressWarnings("unchecked") final Schema schema = (Schema) RuntimeSchema.getSchema(targetClass); final Object deserializeEvent = schema.newMessage(); ProtobufIOUtil.mergeFrom(content, deserializeEvent, schema); return deserializeEvent; @@ -120,8 +118,7 @@ public class BusProtoStuffMessageConverter extends AbstractMessageConverter { private static byte[] writeContent(final Object payload) { final Class serializeClass = payload.getClass(); - @SuppressWarnings("unchecked") - final Schema schema = (Schema) RuntimeSchema.getSchema(serializeClass); + @SuppressWarnings("unchecked") final Schema schema = (Schema) RuntimeSchema.getSchema(serializeClass); final LinkedBuffer buffer = LinkedBuffer.allocate(); return ProtobufIOUtil.toByteArray(payload, schema, buffer); } @@ -132,8 +129,7 @@ public class BusProtoStuffMessageConverter extends AbstractMessageConverter { log.error("There is no mapping to EventType for the given class {}", clazz); throw new MessageConversionException("Missing EventType for given class : " + clazz); } - @SuppressWarnings("unchecked") - final Schema schema = (Schema) RuntimeSchema + @SuppressWarnings("unchecked") final Schema schema = (Schema) RuntimeSchema .getSchema((Class) EventType.class); final LinkedBuffer buffer = LinkedBuffer.allocate(); return ProtobufIOUtil.toByteArray(clazzEventType, schema, buffer); diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/EventType.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/EventType.java index 508600565..12b10db5f 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/EventType.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/event/EventType.java @@ -19,6 +19,7 @@ import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.ToString; +import org.eclipse.hawkbit.repository.event.remote.CancelTargetAssignmentEvent; import org.eclipse.hawkbit.repository.event.remote.DistributionSetDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.DistributionSetTagDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.DistributionSetTypeDeletedEvent; @@ -40,7 +41,6 @@ import org.eclipse.hawkbit.repository.event.remote.TargetTypeDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.TenantConfigurationDeletedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.ActionCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.ActionUpdatedEvent; -import org.eclipse.hawkbit.repository.event.remote.CancelTargetAssignmentEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetTagCreatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.DistributionSetTagUpdatedEvent; @@ -83,6 +83,7 @@ import org.eclipse.hawkbit.repository.event.remote.entity.TenantConfigurationUpd public class EventType { private static final Map> TYPES = new HashMap<>(); + private int value; /** * The associated event-type-value must remain the same as initially @@ -170,28 +171,20 @@ public class EventType { TYPES.put(46, TargetTypeDeletedEvent.class); } - private int value; - /** * Constructor. * - * @param value - * the value to initialize + * @param value the value to initialize */ public EventType(final int value) { this.value = value; } - public Class getTargetClass() { - return TYPES.get(value); - } - /** * Returns a {@link EventType} based on the given class type. * - * @param clazz - * the clazz type to retrieve the corresponding {@link EventType} - * . + * @param clazz the clazz type to retrieve the corresponding {@link EventType} + * . * @return the corresponding {@link EventType} or {@code null} if the clazz * does not have a {@link EventType}. */ @@ -201,4 +194,8 @@ public class EventType { return foundEventType.map(EventType::new).orElse(null); } + + public Class getTargetClass() { + return TYPES.get(value); + } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/PropertiesQuotaManagement.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/PropertiesQuotaManagement.java index 69c15fbf4..4e15559de 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/PropertiesQuotaManagement.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/PropertiesQuotaManagement.java @@ -15,15 +15,13 @@ import org.springframework.boot.context.properties.ConfigurationProperties; /** * {@link QuotaManagement} implementation based on spring boot * {@link ConfigurationProperties}. - * */ public class PropertiesQuotaManagement implements QuotaManagement { private final HawkbitSecurityProperties securityProperties; /** - * @param securityProperties - * that holds the quota definitions + * @param securityProperties that holds the quota definitions */ public PropertiesQuotaManagement(final HawkbitSecurityProperties securityProperties) { this.securityProperties = securityProperties; @@ -84,11 +82,6 @@ public class PropertiesQuotaManagement implements QuotaManagement { return securityProperties.getDos().getMaxTargetsPerRolloutGroup(); } - @Override - public int getMaxActionsPerTarget() { - return securityProperties.getDos().getMaxActionsPerTarget(); - } - @Override public int getMaxTargetDistributionSetAssignmentsPerManualAssignment() { return securityProperties.getDos().getMaxTargetDistributionSetAssignmentsPerManualAssignment(); @@ -99,6 +92,11 @@ public class PropertiesQuotaManagement implements QuotaManagement { return securityProperties.getDos().getMaxTargetsPerAutoAssignment(); } + @Override + public int getMaxActionsPerTarget() { + return securityProperties.getDos().getMaxActionsPerTarget(); + } + @Override public long getMaxArtifactSize() { return securityProperties.getDos().getMaxArtifactSize(); diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RepositoryDefaultConfiguration.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RepositoryDefaultConfiguration.java index 2e30b01c9..d31c19dfe 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RepositoryDefaultConfiguration.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RepositoryDefaultConfiguration.java @@ -17,7 +17,6 @@ import org.springframework.context.annotation.PropertySource; /** * Default configuration that is common to all repository implementations. - * */ @Configuration @EnableConfigurationProperties({ RepositoryProperties.class, ControllerPollProperties.class, diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutApprovalStrategy.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutApprovalStrategy.java index e030aea30..fbf667e6b 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutApprovalStrategy.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutApprovalStrategy.java @@ -22,8 +22,7 @@ public interface RolloutApprovalStrategy { * important according to the implementation, e.g. user roles of the rollout * creator, state of the system, .... * - * @param rollout - * rollout to decide for whether approval is needed. + * @param rollout rollout to decide for whether approval is needed. * @return true if the rollout according to this strategy needs approval. */ boolean isApprovalNeeded(Rollout rollout); @@ -34,8 +33,7 @@ public interface RolloutApprovalStrategy { * Implementations may also decide to provide an empty implementation for this * method. * - * @param rollout - * rollout to create approval task for. + * @param rollout rollout to create approval task for. */ void onApprovalRequired(Rollout rollout); @@ -43,9 +41,8 @@ public interface RolloutApprovalStrategy { * Returns the user that made a decision to approve or deny the given rollout. * Depending on the implementation this may be different to the current user eg. * when the decision is made in an external system. - * - * @param rollout - * target rollout + * + * @param rollout target rollout * @return identifier of the user that decided on approval */ String getApprovalUser(Rollout rollout); diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutHelper.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutHelper.java index 5ba110b1c..765fd1230 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutHelper.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutHelper.java @@ -33,7 +33,7 @@ public final class RolloutHelper { /** * Verifies that the required success condition and action are actually set. - * + * * @param conditions input conditions and actions */ public static void verifyRolloutGroupConditions(final RolloutGroupConditions conditions) { @@ -48,7 +48,7 @@ public final class RolloutHelper { /** * Verifies that the group has the required success condition and action and a * valid target percentage. - * + * * @param group the input group * @return the verified group */ @@ -68,7 +68,7 @@ public final class RolloutHelper { /** * Verify if the supplied amount of groups is in range - * + * * @param amountGroup amount of groups * @param quotaManagement to retrieve maximum number of groups allowed */ @@ -81,7 +81,7 @@ public final class RolloutHelper { /** * Verify that the supplied percentage is in range - * + * * @param percentage the percentage */ public static void verifyRolloutGroupTargetPercentage(final float percentage) { @@ -95,7 +95,7 @@ public final class RolloutHelper { /** * Modifies the target filter query to only match targets that were created * after the Rollout. - * + * * @param rollout Rollout to derive the filter from * @return resulting target filter query */ @@ -117,7 +117,7 @@ public final class RolloutHelper { /** * Verifies that the Rollout is in the required status. - * + * * @param rollout the Rollout * @param status the Status */ @@ -130,7 +130,7 @@ public final class RolloutHelper { /** * Filters the groups of a Rollout to match a specific status and adds a group * to the result. - * + * * @param status the required status for the groups * @param group the group to add * @return list of groups @@ -187,16 +187,6 @@ public final class RolloutHelper { return baseFilter; } - private static boolean isTargetFilterInGroups(final String groupFilter, final List groups) { - return !StringUtils.isEmpty(groupFilter) - && groups.stream().anyMatch(prevGroup -> !StringUtils.isEmpty(prevGroup.getTargetFilterQuery()) - && prevGroup.getTargetFilterQuery().equals(groupFilter)); - } - - private static String concatAndTargetFilters(final String... filters) { - return "(" + Arrays.stream(filters).collect(Collectors.joining(");(")) + ")"; - } - /** * @param baseFilter the base filter from the rollout * @param group group for which the filter string should be created @@ -211,7 +201,7 @@ public final class RolloutHelper { /** * Verifies that no targets are left - * + * * @param targetCount the count of left targets */ public static void verifyRemainingTargets(final long targetCount) { @@ -254,4 +244,14 @@ public final class RolloutHelper { public static String getIdFromRetriedTargetFilter(final String targetFilter) { return targetFilter.substring("failedrollout==".length()); } + + private static boolean isTargetFilterInGroups(final String groupFilter, final List groups) { + return !StringUtils.isEmpty(groupFilter) + && groups.stream().anyMatch(prevGroup -> !StringUtils.isEmpty(prevGroup.getTargetFilterQuery()) + && prevGroup.getTargetFilterQuery().equals(groupFilter)); + } + + private static String concatAndTargetFilters(final String... filters) { + return "(" + Arrays.stream(filters).collect(Collectors.joining(");(")) + ")"; + } } \ No newline at end of file diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutStatusCache.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutStatusCache.java index fd5b5f05e..fae592a9e 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutStatusCache.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/RolloutStatusCache.java @@ -17,6 +17,7 @@ import java.util.stream.Collectors; import jakarta.validation.constraints.NotNull; +import com.github.benmanes.caffeine.cache.Caffeine; import org.eclipse.hawkbit.cache.TenancyCacheManager; import org.eclipse.hawkbit.cache.TenantAwareCacheManager; import org.eclipse.hawkbit.repository.event.remote.RolloutDeletedEvent; @@ -31,26 +32,21 @@ import org.springframework.cache.Cache; import org.springframework.cache.caffeine.CaffeineCacheManager; import org.springframework.context.event.EventListener; -import com.github.benmanes.caffeine.cache.Caffeine; - /** * Internal cache for Rollout status. - * */ public class RolloutStatusCache { private static final String CACHE_RO_NAME = "RolloutStatus"; private static final String CACHE_GR_NAME = "RolloutGroupStatus"; private static final long DEFAULT_SIZE = 50_000; - + private final TenancyCacheManager cacheManager; private final TenantAware tenantAware; /** - * @param tenantAware - * to get current tenant - * @param size - * the maximum size of the cache + * @param tenantAware to get current tenant + * @param size the maximum size of the cache */ public RolloutStatusCache(final TenantAware tenantAware, final long size) { this.tenantAware = tenantAware; @@ -63,8 +59,7 @@ public class RolloutStatusCache { } /** - * @param tenantAware - * to get current tenant + * @param tenantAware to get current tenant */ public RolloutStatusCache(final TenantAware tenantAware) { this(tenantAware, DEFAULT_SIZE); @@ -74,8 +69,7 @@ public class RolloutStatusCache { * Retrieves cached list of {@link TotalTargetCountActionStatus} of * {@link Rollout}s. * - * @param rollouts - * rolloutIds to retrieve cache entries for + * @param rollouts rolloutIds to retrieve cache entries for * @return map of cached entries */ public Map> getRolloutStatus(final List rollouts) { @@ -86,8 +80,7 @@ public class RolloutStatusCache { * Retrieves cached list of {@link TotalTargetCountActionStatus} of * {@link Rollout}s. * - * @param rolloutId - * to retrieve cache entries for + * @param rolloutId to retrieve cache entries for * @return map of cached entries */ public List getRolloutStatus(final Long rolloutId) { @@ -98,8 +91,7 @@ public class RolloutStatusCache { * Retrieves cached list of {@link TotalTargetCountActionStatus} of * {@link RolloutGroup}s. * - * @param rolloutGroups - * rolloutGroupsIds to retrieve cache entries for + * @param rolloutGroups rolloutGroupsIds to retrieve cache entries for * @return map of cached entries */ public Map> getRolloutGroupStatus(final List rolloutGroups) { @@ -110,8 +102,7 @@ public class RolloutStatusCache { * Retrieves cached list of {@link TotalTargetCountActionStatus} of * {@link RolloutGroup}. * - * @param groupId - * to retrieve cache entries for + * @param groupId to retrieve cache entries for * @return map of cached entries */ public List getRolloutGroupStatus(final Long groupId) { @@ -122,8 +113,7 @@ public class RolloutStatusCache { * Put map of {@link TotalTargetCountActionStatus} for multiple * {@link Rollout}s into cache. * - * @param put - * map of cached entries + * @param put map of cached entries */ public void putRolloutStatus(final Map> put) { putIntoCache(put, getRolloutStatusCache()); @@ -133,23 +123,18 @@ public class RolloutStatusCache { * Put {@link TotalTargetCountActionStatus} for one {@link Rollout}s into * cache. * - * @param rolloutId - * the cache entries belong to - * @param status - * list to cache - * + * @param rolloutId the cache entries belong to + * @param status list to cache */ public void putRolloutStatus(final Long rolloutId, final List status) { putIntoCache(rolloutId, status, getRolloutStatusCache()); } - /** * Put {@link TotalTargetCountActionStatus} for multiple * {@link RolloutGroup}s into cache. * - * @param put - * map of cached entries + * @param put map of cached entries */ public void putRolloutGroupStatus(final Map> put) { putIntoCache(put, getGroupStatusCache()); @@ -159,41 +144,13 @@ public class RolloutStatusCache { * Put {@link TotalTargetCountActionStatus} for multiple * {@link RolloutGroup}s into cache. * - * @param groupId - * the cache entries belong to - * @param status - * list to cache + * @param groupId the cache entries belong to + * @param status list to cache */ public void putRolloutGroupStatus(final Long groupId, final List status) { putIntoCache(groupId, status, getGroupStatusCache()); } - private Map> retrieveFromCache(final List ids, - @NotNull final Cache cache) { - return ids.stream().map(id -> cache.get(id, CachedTotalTargetCountActionStatus.class)).filter(Objects::nonNull) - .collect(Collectors.toMap(CachedTotalTargetCountActionStatus::getId, - CachedTotalTargetCountActionStatus::getStatus)); - } - - private List retrieveFromCache(final Long id, @NotNull final Cache cache) { - final CachedTotalTargetCountActionStatus cacheItem = cache.get(id, CachedTotalTargetCountActionStatus.class); - - if (cacheItem == null) { - return Collections.emptyList(); - } - - return cacheItem.getStatus(); - } - - private void putIntoCache(final Long id, final List status, - @NotNull final Cache cache) { - cache.put(id, new CachedTotalTargetCountActionStatus(id, status)); - } - - private void putIntoCache(final Map> put, @NotNull final Cache cache) { - put.forEach((k, v) -> cache.put(k, new CachedTotalTargetCountActionStatus(k, v))); - } - @EventListener(classes = AbstractActionEvent.class) public void invalidateCachedTotalTargetCountActionStatus(final AbstractActionEvent event) { if (event.getRolloutId() != null) { @@ -235,13 +192,38 @@ public class RolloutStatusCache { * Evicts all caches for a given tenant. All caches under a certain tenant * gets evicted. * - * @param tenant - * the tenant to evict caches + * @param tenant the tenant to evict caches */ public void evictCaches(final String tenant) { cacheManager.evictCaches(tenant); } + private Map> retrieveFromCache(final List ids, + @NotNull final Cache cache) { + return ids.stream().map(id -> cache.get(id, CachedTotalTargetCountActionStatus.class)).filter(Objects::nonNull) + .collect(Collectors.toMap(CachedTotalTargetCountActionStatus::getId, + CachedTotalTargetCountActionStatus::getStatus)); + } + + private List retrieveFromCache(final Long id, @NotNull final Cache cache) { + final CachedTotalTargetCountActionStatus cacheItem = cache.get(id, CachedTotalTargetCountActionStatus.class); + + if (cacheItem == null) { + return Collections.emptyList(); + } + + return cacheItem.getStatus(); + } + + private void putIntoCache(final Long id, final List status, + @NotNull final Cache cache) { + cache.put(id, new CachedTotalTargetCountActionStatus(id, status)); + } + + private void putIntoCache(final Map> put, @NotNull final Cache cache) { + put.forEach((k, v) -> cache.put(k, new CachedTotalTargetCountActionStatus(k, v))); + } + private @NotNull Cache getRolloutStatusCache() { return Objects.requireNonNull(cacheManager.getCache(CACHE_RO_NAME), "Cache '" + CACHE_RO_NAME + "' is null!"); } @@ -251,6 +233,7 @@ public class RolloutStatusCache { } private static final class CachedTotalTargetCountActionStatus { + private final long id; private final List status; diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractActionStatusCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractActionStatusCreate.java index da1e56851..8f819b9a2 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractActionStatusCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractActionStatusCreate.java @@ -22,8 +22,7 @@ import org.springframework.util.StringUtils; /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public abstract class AbstractActionStatusCreate { diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractDistributionSetTypeUpdateCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractDistributionSetTypeUpdateCreate.java index fec821d24..d8c7d920e 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractDistributionSetTypeUpdateCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractDistributionSetTypeUpdateCreate.java @@ -12,14 +12,10 @@ package org.eclipse.hawkbit.repository.builder; import java.util.Collection; import java.util.Optional; -import org.eclipse.hawkbit.repository.ValidString; -import org.springframework.util.StringUtils; - /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public abstract class AbstractDistributionSetTypeUpdateCreate extends AbstractTypeUpdateCreate { diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractMetadataUpdateCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractMetadataUpdateCreate.java index 26af54642..6010d060c 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractMetadataUpdateCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractMetadataUpdateCreate.java @@ -17,10 +17,10 @@ import org.springframework.util.StringUtils; /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public abstract class AbstractMetadataUpdateCreate { + @ValidString protected String key; diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractNamedEntityBuilder.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractNamedEntityBuilder.java index 4b5d8f33e..8a7299531 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractNamedEntityBuilder.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractNamedEntityBuilder.java @@ -11,8 +11,6 @@ package org.eclipse.hawkbit.repository.builder; import java.util.Optional; -import jakarta.annotation.Nullable; -import jakarta.validation.constraints.Null; import org.eclipse.hawkbit.repository.ValidString; import org.springframework.util.StringUtils; diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractRolloutGroupCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractRolloutGroupCreate.java index b3ab2cbff..91ea1de82 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractRolloutGroupCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractRolloutGroupCreate.java @@ -16,10 +16,10 @@ import org.springframework.util.StringUtils; /** * Create builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public abstract class AbstractRolloutGroupCreate extends AbstractNamedEntityBuilder { + @ValidString protected String targetFilterQuery; protected Float targetPercentage; diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleMetadataUpdateCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleMetadataUpdateCreate.java index 8bad2ca50..e7ff5f4f0 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleMetadataUpdateCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleMetadataUpdateCreate.java @@ -14,10 +14,10 @@ import java.util.Optional; /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public abstract class AbstractSoftwareModuleMetadataUpdateCreate extends AbstractMetadataUpdateCreate { + protected Boolean targetVisible; protected long softwareModuleId; diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleTypeUpdateCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleTypeUpdateCreate.java index 4d2af6cf1..c77887242 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleTypeUpdateCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleTypeUpdateCreate.java @@ -12,8 +12,7 @@ package org.eclipse.hawkbit.repository.builder; /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public abstract class AbstractSoftwareModuleTypeUpdateCreate extends AbstractTypeUpdateCreate { diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleUpdateCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleUpdateCreate.java index 72e7f628a..598a8deff 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleUpdateCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractSoftwareModuleUpdateCreate.java @@ -17,10 +17,10 @@ import org.springframework.util.StringUtils; /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public abstract class AbstractSoftwareModuleUpdateCreate extends AbstractNamedEntityBuilder { + @ValidString protected String version; diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTagUpdateCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTagUpdateCreate.java index 07416e316..b29dbf7cf 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTagUpdateCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTagUpdateCreate.java @@ -17,10 +17,10 @@ import org.springframework.util.StringUtils; /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public class AbstractTagUpdateCreate extends AbstractNamedEntityBuilder { + @ValidString protected String colour; diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetFilterQueryUpdateCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetFilterQueryUpdateCreate.java index e54eb96dd..6ce3bcb2d 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetFilterQueryUpdateCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetFilterQueryUpdateCreate.java @@ -23,10 +23,10 @@ import org.springframework.util.StringUtils; /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public abstract class AbstractTargetFilterQueryUpdateCreate extends AbstractBaseEntityBuilder { + @ValidString protected String name; @@ -40,14 +40,13 @@ public abstract class AbstractTargetFilterQueryUpdateCreate extends AbstractB @Min(Action.WEIGHT_MIN) @Max(Action.WEIGHT_MAX) protected Integer weight; - + protected Boolean confirmationRequired; /** * Set DS ID of the {@link Action} created during auto assignment - * - * @param distributionSetId - * of the {@link TargetFilterQuery} + * + * @param distributionSetId of the {@link TargetFilterQuery} * @return this builder */ public T autoAssignDistributionSet(final Long distributionSetId) { @@ -62,9 +61,8 @@ public abstract class AbstractTargetFilterQueryUpdateCreate extends AbstractB /** * Set {@link ActionType} of the {@link Action} created during auto * assignment - * - * @param actionType - * of the {@link TargetFilterQuery} + * + * @param actionType of the {@link TargetFilterQuery} * @return this builder */ public T autoAssignActionType(final ActionType actionType) { @@ -74,9 +72,8 @@ public abstract class AbstractTargetFilterQueryUpdateCreate extends AbstractB /** * Set weight of the {@link Action} created during auto assignment - * - * @param weight - * of the {@link TargetFilterQuery} + * + * @param weight of the {@link TargetFilterQuery} * @return this builder */ public T autoAssignWeight(final Integer weight) { @@ -94,9 +91,8 @@ public abstract class AbstractTargetFilterQueryUpdateCreate extends AbstractB /** * Set name of the filter - * - * @param name - * of the {@link TargetFilterQuery} + * + * @param name of the {@link TargetFilterQuery} * @return this builder */ public T name(final String name) { @@ -110,9 +106,8 @@ public abstract class AbstractTargetFilterQueryUpdateCreate extends AbstractB /** * Set query used by the filter - * - * @param query - * of the {@link TargetFilterQuery} + * + * @param query of the {@link TargetFilterQuery} * @return this builder */ public T query(final String query) { @@ -125,9 +120,8 @@ public abstract class AbstractTargetFilterQueryUpdateCreate extends AbstractB } /** - * @param confirmationRequired - * if confirmation is required for configured auto assignment - * (considered with confirmation flow active) + * @param confirmationRequired if confirmation is required for configured auto assignment + * (considered with confirmation flow active) * @return updated builder instance */ public T confirmationRequired(final boolean confirmationRequired) { diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetTypeUpdateCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetTypeUpdateCreate.java index b000f7630..5501463d5 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetTypeUpdateCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetTypeUpdateCreate.java @@ -9,25 +9,20 @@ */ package org.eclipse.hawkbit.repository.builder; -import org.eclipse.hawkbit.repository.ValidString; -import org.springframework.util.StringUtils; - import java.util.Collection; import java.util.Optional; /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public abstract class AbstractTargetTypeUpdateCreate extends AbstractTypeUpdateCreate { protected Collection compatible; /** - * @param compatible - * list of ID + * @param compatible list of ID * @return generic type */ public T compatible(final Collection compatible) { @@ -36,7 +31,7 @@ public abstract class AbstractTargetTypeUpdateCreate extends AbstractTypeUpda } /** - * @return List of ID + * @return List of ID */ public Optional> getCompatible() { return Optional.ofNullable(compatible); diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetUpdateCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetUpdateCreate.java index f8d270076..c926b4865 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetUpdateCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTargetUpdateCreate.java @@ -21,10 +21,10 @@ import org.springframework.util.StringUtils; /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public class AbstractTargetUpdateCreate extends AbstractNamedEntityBuilder { + @ValidString protected String controllerId; @@ -37,7 +37,7 @@ public class AbstractTargetUpdateCreate extends AbstractNamedEntityBuilder protected Long lastTargetQuery; protected TargetUpdateStatus status; - protected Boolean requestAttributes; + protected Boolean requestAttributes; protected Long targetTypeId; diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTypeUpdateCreate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTypeUpdateCreate.java index e97c4b35f..a734b5ea5 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTypeUpdateCreate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/AbstractTypeUpdateCreate.java @@ -9,16 +9,15 @@ */ package org.eclipse.hawkbit.repository.builder; +import java.util.Optional; + import org.eclipse.hawkbit.repository.ValidString; import org.springframework.util.StringUtils; -import java.util.Optional; - /** * Create and update builder DTO. * - * @param - * update or create builder interface + * @param update or create builder interface */ public abstract class AbstractTypeUpdateCreate extends AbstractNamedEntityBuilder { diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericDistributionSetUpdate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericDistributionSetUpdate.java index 7fe8a40e6..be62fb0ab 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericDistributionSetUpdate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericDistributionSetUpdate.java @@ -10,13 +10,12 @@ package org.eclipse.hawkbit.repository.builder; import jakarta.annotation.Nullable; + import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import lombok.experimental.Accessors; -import java.util.Optional; - /** * Update implementation. */ diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericSoftwareModuleUpdate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericSoftwareModuleUpdate.java index c3f909d2e..cf9feb030 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericSoftwareModuleUpdate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericSoftwareModuleUpdate.java @@ -10,13 +10,12 @@ package org.eclipse.hawkbit.repository.builder; import jakarta.annotation.Nullable; + import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import lombok.experimental.Accessors; -import java.util.Optional; - /** * Update implementation. */ diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericTagUpdate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericTagUpdate.java index 8b3cc49c8..044cc4af2 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericTagUpdate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericTagUpdate.java @@ -13,6 +13,7 @@ package org.eclipse.hawkbit.repository.builder; * Update implementation. */ public class GenericTagUpdate extends AbstractTagUpdateCreate implements TagUpdate { + public GenericTagUpdate(final Long id) { super.id = id; } diff --git a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericTargetTypeUpdate.java b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericTargetTypeUpdate.java index 8802ca11e..1a67f17b7 100644 --- a/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericTargetTypeUpdate.java +++ b/hawkbit-repository/hawkbit-repository-core/src/main/java/org/eclipse/hawkbit/repository/builder/GenericTargetTypeUpdate.java @@ -16,8 +16,7 @@ public class GenericTargetTypeUpdate extends AbstractTargetTypeUpdateCreate