diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java index cf7c8db3a..e717ff70a 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/ControllerManagement.java @@ -13,6 +13,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import javax.validation.ConstraintViolationException; import javax.validation.constraints.NotNull; import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions; @@ -55,6 +56,9 @@ public interface ControllerManagement { * per entry are inserted * @throws EntityNotFoundException * if given action does not exist + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link ActionStatusCreate} for field constraints. * */ @PreAuthorize(SpringEvalExpressions.IS_CONTROLLER) @@ -74,6 +78,9 @@ public interface ControllerManagement { * per entry are inserted * @throws EntityNotFoundException * if given action does not exist + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link ActionStatusCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.IS_CONTROLLER) ActionStatus addInformationalActionStatus(@NotNull ActionStatusCreate create); @@ -91,9 +98,11 @@ public interface ControllerManagement { * @throws QuotaExceededException * if more than the allowed number of status entries or messages * per entry are inserted - * * @throws EntityNotFoundException * if action status not exist + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link ActionStatusCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.IS_CONTROLLER) Action addUpdateActionStatus(@NotNull ActionStatusCreate create); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetManagement.java index 136673eb3..acc067ce8 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetManagement.java @@ -12,6 +12,7 @@ import java.util.Collection; import java.util.List; import java.util.Optional; +import javax.validation.ConstraintViolationException; import javax.validation.constraints.NotNull; import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions; @@ -111,6 +112,9 @@ public interface DistributionSetManagement { * @throws DistributionSetCreationFailedMissingMandatoryModuleException * is {@link DistributionSet} does not contain mandatory * {@link SoftwareModule}s. + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link DistributionSetCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) DistributionSet createDistributionSet(@NotNull DistributionSetCreate create); @@ -148,6 +152,9 @@ public interface DistributionSetManagement { * @throws DistributionSetCreationFailedMissingMandatoryModuleException * is {@link DistributionSet} does not contain mandatory * {@link SoftwareModule}s. + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link DistributionSetCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) List createDistributionSets(@NotNull Collection creates); @@ -529,6 +536,9 @@ public interface DistributionSetManagement { * @throws EntityReadOnlyException * if user tries to change requiredMigrationStep or type on a DS * that is already assigned to targets + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link DistributionSetUpdate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) DistributionSet updateDistributionSet(@NotNull DistributionSetUpdate update); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTypeManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTypeManagement.java index 376cbd477..6d48d23c2 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTypeManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/DistributionSetTypeManagement.java @@ -12,6 +12,7 @@ import java.util.Collection; import java.util.List; import java.util.Optional; +import javax.validation.ConstraintViolationException; import javax.validation.constraints.NotNull; import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions; @@ -46,6 +47,9 @@ public interface DistributionSetTypeManagement { * if a provided linked entity does not exists ( * {@link DistributionSetType#getMandatoryModuleTypes()} or * {@link DistributionSetType#getOptionalModuleTypes()} + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link DistributionSetTypeCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) DistributionSetType createDistributionSetType(@NotNull DistributionSetTypeCreate create); @@ -61,6 +65,9 @@ public interface DistributionSetTypeManagement { * if a provided linked entity does not exists ( * {@link DistributionSetType#getMandatoryModuleTypes()} or * {@link DistributionSetType#getOptionalModuleTypes()} + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link DistributionSetTypeCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) List createDistributionSetTypes(@NotNull Collection creates); @@ -161,6 +168,9 @@ public interface DistributionSetTypeManagement { * if the {@link DistributionSetType} is already in use by a * {@link DistributionSet} and user tries to change list of * {@link SoftwareModuleType}s + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link DistributionSetTypeUpdate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) DistributionSetType updateDistributionSetType(@NotNull DistributionSetTypeUpdate update); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RolloutManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RolloutManagement.java index 2e169eaea..d5a844b19 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RolloutManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/RolloutManagement.java @@ -121,7 +121,7 @@ public interface RolloutManagement { * @throws EntityNotFoundException * if given {@link DistributionSet} does not exist * @throws ConstraintViolationException - * if rollout or group parameters are invalid + * if rollout or group parameters are invalid. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_ROLLOUT_MANAGEMENT_WRITE) Rollout createRollout(@NotNull RolloutCreate create, int amountGroup, @NotNull RolloutGroupConditions conditions); @@ -174,6 +174,9 @@ public interface RolloutManagement { * @return the validation information * @throws RolloutIllegalStateException * thrown when no targets are targeted by the rollout + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link RolloutGroupCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_ROLLOUT_MANAGEMENT_READ_AND_TARGET_READ) ListenableFuture validateTargetsInGroups(List groups, diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleManagement.java index 61aba4a7d..57d5671a2 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleManagement.java @@ -12,6 +12,7 @@ import java.util.Collection; import java.util.List; import java.util.Optional; +import javax.validation.ConstraintViolationException; import javax.validation.constraints.NotNull; import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions; @@ -71,11 +72,14 @@ public interface SoftwareModuleManagement { * @param creates * {@link SoftwareModule}s to create * @return SoftwareModule + * * @throws EntityAlreadyExistsException * if a given entity already exists - * * @throws EntityNotFoundException * of given software module type does not exist + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link SoftwareModuleCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) List createSoftwareModule(@NotNull Collection creates); @@ -85,11 +89,14 @@ public interface SoftwareModuleManagement { * @param create * SoftwareModule to create * @return SoftwareModule + * * @throws EntityAlreadyExistsException * if a given entity already exists - * * @throws EntityNotFoundException * of given software module type does not exist + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link SoftwareModuleCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) SoftwareModule createSoftwareModule(@NotNull SoftwareModuleCreate create); @@ -407,7 +414,10 @@ public interface SoftwareModuleManagement { * @return the saved Entity. * * @throws EntityNotFoundException - * if fiven {@link SoftwareModule} does not exist + * if given {@link SoftwareModule} does not exist + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link SoftwareModuleUpdate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) SoftwareModule updateSoftwareModule(@NotNull SoftwareModuleUpdate update); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleTypeManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleTypeManagement.java index 1b202fa50..4ac48a82e 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleTypeManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/SoftwareModuleTypeManagement.java @@ -12,6 +12,7 @@ import java.util.Collection; import java.util.List; import java.util.Optional; +import javax.validation.ConstraintViolationException; import javax.validation.constraints.NotNull; import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions; @@ -44,6 +45,10 @@ public interface SoftwareModuleTypeManagement { * @param creates * to create * @return created Entity + * + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link SoftwareModuleTypeCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) List createSoftwareModuleType(@NotNull Collection creates); @@ -54,6 +59,10 @@ public interface SoftwareModuleTypeManagement { * @param create * to create * @return created Entity + * + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link SoftwareModuleTypeCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) SoftwareModuleType createSoftwareModuleType(@NotNull SoftwareModuleTypeCreate create); @@ -137,6 +146,9 @@ public interface SoftwareModuleTypeManagement { * @throws EntityNotFoundException * in case the {@link SoftwareModuleType} does not exists and * cannot be updated + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link SoftwareModuleTypeUpdate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) SoftwareModuleType updateSoftwareModuleType(@NotNull SoftwareModuleTypeUpdate update); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/TagManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/TagManagement.java index 515375af8..3c7f4424b 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/TagManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/TagManagement.java @@ -12,6 +12,7 @@ import java.util.Collection; import java.util.List; import java.util.Optional; +import javax.validation.ConstraintViolationException; import javax.validation.constraints.NotNull; import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions; @@ -51,8 +52,12 @@ public interface TagManagement { * @param create * to be created. * @return the new {@link DistributionSet} + * * @throws EntityAlreadyExistsException * if distributionSetTag already exists + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link TagCreate} for field constraints. * */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) @@ -64,8 +69,12 @@ public interface TagManagement { * @param creates * to be created * @return the new {@link DistributionSetTag} + * * @throws EntityAlreadyExistsException * if a given entity already exists + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link TagCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_REPOSITORY) List createDistributionSetTags(@NotNull Collection creates); @@ -80,6 +89,9 @@ public interface TagManagement { * * @throws EntityAlreadyExistsException * if given object already exists + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link TagCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_TARGET) TargetTag createTargetTag(@NotNull TagCreate create); @@ -93,6 +105,9 @@ public interface TagManagement { * * @throws EntityAlreadyExistsException * if given object has already an ID. + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link TagCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_TARGET) List createTargetTags(@NotNull Collection creates); @@ -261,6 +276,9 @@ public interface TagManagement { * @throws EntityNotFoundException * in case the {@link DistributionSetTag} does not exists and * cannot be updated + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link TagUpdate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_REPOSITORY) DistributionSetTag updateDistributionSetTag(@NotNull TagUpdate update); @@ -275,6 +293,9 @@ public interface TagManagement { * @throws EntityNotFoundException * in case the {@link TargetTag} does not exists and cannot be * updated + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link TagUpdate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET) TargetTag updateTargetTag(@NotNull TagUpdate update); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/TargetFilterQueryManagement.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/TargetFilterQueryManagement.java index d57e1a217..a8eda5de6 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/TargetFilterQueryManagement.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/TargetFilterQueryManagement.java @@ -10,6 +10,7 @@ package org.eclipse.hawkbit.repository; import java.util.Optional; +import javax.validation.ConstraintViolationException; import javax.validation.constraints.NotNull; import org.eclipse.hawkbit.im.authentication.SpPermission.SpringEvalExpressions; @@ -35,6 +36,9 @@ public interface TargetFilterQueryManagement { * @param create * to create * @return the created {@link TargetFilterQuery} + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link TargetFilterQueryCreate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_CREATE_TARGET) TargetFilterQuery createTargetFilterQuery(@NotNull TargetFilterQueryCreate create); @@ -188,6 +192,9 @@ public interface TargetFilterQueryManagement { * @throws EntityNotFoundException * if either {@link TargetFilterQuery} and/or autoAssignDs are * provided but not found + * @throws ConstraintViolationException + * if fields are not filled as specified. Check + * {@link TargetFilterQueryUpdate} for field constraints. */ @PreAuthorize(SpringEvalExpressions.HAS_AUTH_UPDATE_TARGET) TargetFilterQuery updateTargetFilterQuery(@NotNull TargetFilterQueryUpdate update); diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetCreate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetCreate.java index 4993527fc..e9e03016d 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetCreate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetCreate.java @@ -11,10 +11,14 @@ package org.eclipse.hawkbit.repository.builder; import java.util.Collection; import java.util.Optional; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + import org.eclipse.hawkbit.repository.model.BaseEntity; import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetType; -import org.hibernate.validator.constraints.NotEmpty; +import org.eclipse.hawkbit.repository.model.NamedEntity; +import org.eclipse.hawkbit.repository.model.NamedVersionedEntity; /** * Builder to create a new {@link DistributionSet} entry. Defines all fields @@ -29,28 +33,28 @@ public interface DistributionSetCreate { * for {@link DistributionSet#getName()} * @return updated builder instance */ - DistributionSetCreate name(@NotEmpty String name); + DistributionSetCreate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param version * for {@link DistributionSet#getVersion()} * @return updated builder instance */ - DistributionSetCreate version(@NotEmpty String version); + DistributionSetCreate version(@Size(min = 1, max = NamedVersionedEntity.VERSION_MAX_SIZE) @NotNull String version); /** * @param description * for {@link DistributionSet#getDescription()} * @return updated builder instance */ - DistributionSetCreate description(String description); + DistributionSetCreate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param typeKey * for {@link DistributionSet#getType()} * @return updated builder instance */ - DistributionSetCreate type(@NotEmpty String typeKey); + DistributionSetCreate type(@Size(min = 1, max = DistributionSetType.KEY_MAX_SIZE) @NotNull String typeKey); /** * @param type diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetTypeCreate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetTypeCreate.java index 6b02992ab..28cd7ff7c 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetTypeCreate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetTypeCreate.java @@ -12,10 +12,13 @@ import java.util.Arrays; import java.util.Collection; import java.util.Optional; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + import org.eclipse.hawkbit.repository.model.BaseEntity; import org.eclipse.hawkbit.repository.model.DistributionSetType; +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; -import org.hibernate.validator.constraints.NotEmpty; /** * Builder to create a new {@link DistributionSetType} entry. Defines all fields @@ -30,28 +33,28 @@ public interface DistributionSetTypeCreate { * for {@link DistributionSetType#getKey()} * @return updated builder instance */ - DistributionSetTypeCreate key(@NotEmpty String key); + DistributionSetTypeCreate key(@Size(min = 1, max = DistributionSetType.KEY_MAX_SIZE) @NotNull String key); /** * @param name * for {@link DistributionSetType#getName()} * @return updated builder instance */ - DistributionSetTypeCreate name(@NotEmpty String name); + DistributionSetTypeCreate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param description * for {@link DistributionSetType#getDescription()} * @return updated builder instance */ - DistributionSetTypeCreate description(String description); + DistributionSetTypeCreate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param colour * for {@link DistributionSetType#getColour()} * @return updated builder instance */ - DistributionSetTypeCreate colour(String colour); + DistributionSetTypeCreate colour(@Size(max = DistributionSetType.COLOUR_MAX_SIZE) String colour); /** * @param mandatory diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetTypeUpdate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetTypeUpdate.java index ae19c1f53..5f423e7e1 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetTypeUpdate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetTypeUpdate.java @@ -10,7 +10,10 @@ package org.eclipse.hawkbit.repository.builder; import java.util.Collection; +import javax.validation.constraints.Size; + import org.eclipse.hawkbit.repository.model.DistributionSetType; +import org.eclipse.hawkbit.repository.model.NamedEntity; /** * Builder to update an existing {@link DistributionSetType} entry. Defines all @@ -24,14 +27,14 @@ public interface DistributionSetTypeUpdate { * for {@link DistributionSetType#getDescription()} * @return updated builder instance */ - DistributionSetTypeUpdate description(String description); + DistributionSetTypeUpdate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param colour * for {@link DistributionSetType#getColour()} * @return updated builder instance */ - DistributionSetTypeUpdate colour(String colour); + DistributionSetTypeUpdate colour(@Size(max = DistributionSetType.COLOUR_MAX_SIZE) String colour); /** * @param mandatory diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetUpdate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetUpdate.java index 45a276946..39e2aa729 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetUpdate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/DistributionSetUpdate.java @@ -10,9 +10,13 @@ package org.eclipse.hawkbit.repository.builder; import java.util.Optional; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSetType; -import org.hibernate.validator.constraints.NotEmpty; +import org.eclipse.hawkbit.repository.model.NamedEntity; +import org.eclipse.hawkbit.repository.model.NamedVersionedEntity; /** * Builder to update an existing {@link DistributionSet} entry. Defines all @@ -25,28 +29,28 @@ public interface DistributionSetUpdate { * for {@link DistributionSet#getName()} * @return updated builder instance */ - DistributionSetUpdate name(@NotEmpty String name); + DistributionSetUpdate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param version * for {@link DistributionSet#getVersion()} * @return updated builder instance */ - DistributionSetUpdate version(@NotEmpty String version); + DistributionSetUpdate version(@Size(min = 1, max = NamedVersionedEntity.VERSION_MAX_SIZE) @NotNull String version); /** * @param description * for {@link DistributionSet#getDescription()} * @return updated builder instance */ - DistributionSetUpdate description(String description); + DistributionSetUpdate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param typeKey * for {@link DistributionSet#getType()} * @return updated builder instance */ - DistributionSetUpdate type(@NotEmpty String typeKey); + DistributionSetUpdate type(@Size(min = 1, max = DistributionSetType.KEY_MAX_SIZE) @NotNull String typeKey); /** * @param type diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutCreate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutCreate.java index 3ddde7ff7..42e76f73f 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutCreate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutCreate.java @@ -11,12 +11,14 @@ package org.eclipse.hawkbit.repository.builder; import java.util.Optional; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; import org.eclipse.hawkbit.repository.model.Action.ActionType; import org.eclipse.hawkbit.repository.model.BaseEntity; import org.eclipse.hawkbit.repository.model.DistributionSet; +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.Rollout; -import org.hibernate.validator.constraints.NotEmpty; +import org.eclipse.hawkbit.repository.model.TargetFilterQuery; /** * Builder to create a new {@link Rollout} entry. Defines all fields that can be @@ -30,14 +32,14 @@ public interface RolloutCreate { * for {@link Rollout#getName()} * @return updated builder instance */ - RolloutCreate name(@NotEmpty String name); + RolloutCreate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param description * for {@link Rollout#getDescription()} * @return updated builder instance */ - RolloutCreate description(String description); + RolloutCreate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param set @@ -60,7 +62,8 @@ public interface RolloutCreate { * for {@link Rollout#getTargetFilterQuery()} * @return updated builder instance */ - RolloutCreate targetFilterQuery(@NotEmpty String targetFilterQuery); + RolloutCreate targetFilterQuery( + @Size(min = 1, max = TargetFilterQuery.QUERY_MAX_SIZE) @NotNull String targetFilterQuery); /** * @param actionType diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutGroupCreate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutGroupCreate.java index be593d7e8..c8f5b2a39 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutGroupCreate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutGroupCreate.java @@ -8,12 +8,16 @@ */ package org.eclipse.hawkbit.repository.builder; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + import org.eclipse.hawkbit.repository.model.BaseEntity; +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.RolloutGroup; import org.eclipse.hawkbit.repository.model.RolloutGroupConditionBuilder; import org.eclipse.hawkbit.repository.model.RolloutGroupConditions; -import org.hibernate.validator.constraints.NotEmpty; +import org.eclipse.hawkbit.repository.model.TargetFilterQuery; /** * Builder to create a new {@link RolloutGroup} entry. Defines all fields that @@ -27,21 +31,22 @@ public interface RolloutGroupCreate { * for {@link Rollout#getName()} * @return updated builder instance */ - RolloutGroupCreate name(@NotEmpty String name); + RolloutGroupCreate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param description * for {@link Rollout#getDescription()} * @return updated builder instance */ - RolloutGroupCreate description(String description); + RolloutGroupCreate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param targetFilterQuery * for {@link Rollout#getTargetFilterQuery()} * @return updated builder instance */ - RolloutGroupCreate targetFilterQuery(@NotEmpty String targetFilterQuery); + RolloutGroupCreate targetFilterQuery( + @Size(min = 1, max = TargetFilterQuery.QUERY_MAX_SIZE) @NotNull String targetFilterQuery); /** * @param targetPercentage diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutUpdate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutUpdate.java index 4d3c00981..b9ecfee41 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutUpdate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/RolloutUpdate.java @@ -9,10 +9,11 @@ package org.eclipse.hawkbit.repository.builder; import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; import org.eclipse.hawkbit.repository.model.Action; +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.Rollout; -import org.hibernate.validator.constraints.NotEmpty; /** * Builder to update an existing {@link Rollout} entry. Defines all fields that @@ -25,14 +26,14 @@ public interface RolloutUpdate { * for {@link Rollout#getName()} * @return updated builder instance */ - RolloutUpdate name(@NotEmpty String name); + RolloutUpdate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param description * for {@link Rollout#getDescription()} * @return updated builder instance */ - RolloutUpdate description(String description); + RolloutUpdate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param setId diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleCreate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleCreate.java index 0f702ca07..edba33722 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleCreate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleCreate.java @@ -10,10 +10,14 @@ package org.eclipse.hawkbit.repository.builder; import java.util.Optional; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + import org.eclipse.hawkbit.repository.model.BaseEntity; +import org.eclipse.hawkbit.repository.model.NamedEntity; +import org.eclipse.hawkbit.repository.model.NamedVersionedEntity; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; -import org.hibernate.validator.constraints.NotEmpty; /** * Builder to create a new {@link SoftwareModule} entry. Defines all fields that @@ -27,35 +31,35 @@ public interface SoftwareModuleCreate { * for {@link SoftwareModule#getName()} * @return updated builder instance */ - SoftwareModuleCreate name(@NotEmpty String name); + SoftwareModuleCreate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param version * for {@link SoftwareModule#getVersion()} * @return updated builder instance */ - SoftwareModuleCreate version(@NotEmpty String version); + SoftwareModuleCreate version(@Size(min = 1, max = NamedVersionedEntity.VERSION_MAX_SIZE) @NotNull String version); /** * @param description * for {@link SoftwareModule#getDescription()} * @return updated builder instance */ - SoftwareModuleCreate description(String description); + SoftwareModuleCreate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param vendor * for {@link SoftwareModule#getVendor()} * @return updated builder instance */ - SoftwareModuleCreate vendor(String vendor); + SoftwareModuleCreate vendor(@Size(max = SoftwareModule.VENDOR_MAX_SIZE) String vendor); /** * @param typeKey * for {@link SoftwareModule#getType()} * @return updated builder instance */ - SoftwareModuleCreate type(@NotEmpty String typeKey); + SoftwareModuleCreate type(@Size(min = 1, max = SoftwareModuleType.KEY_MAX_SIZE) @NotNull String typeKey); /** * @param type diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleTypeCreate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleTypeCreate.java index a0ead3ddc..336e2de19 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleTypeCreate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleTypeCreate.java @@ -8,9 +8,12 @@ */ package org.eclipse.hawkbit.repository.builder; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + import org.eclipse.hawkbit.repository.model.BaseEntity; +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; -import org.hibernate.validator.constraints.NotEmpty; /** * Builder to create a new {@link SoftwareModuleType} entry. Defines all fields @@ -24,28 +27,28 @@ public interface SoftwareModuleTypeCreate { * for {@link SoftwareModuleType#getKey()} * @return updated builder instance */ - SoftwareModuleTypeCreate key(@NotEmpty String key); + SoftwareModuleTypeCreate key(@Size(min = 1, max = SoftwareModuleType.KEY_MAX_SIZE) @NotNull String key); /** * @param name * for {@link SoftwareModuleType#getName()} * @return updated builder instance */ - SoftwareModuleTypeCreate name(@NotEmpty String name); + SoftwareModuleTypeCreate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param description * for {@link SoftwareModuleType#getDescription()} * @return updated builder instance */ - SoftwareModuleTypeCreate description(String description); + SoftwareModuleTypeCreate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param colour * for {@link SoftwareModuleType#getColour()} * @return updated builder instance */ - SoftwareModuleTypeCreate colour(String colour); + SoftwareModuleTypeCreate colour(@Size(max = SoftwareModuleType.COLOUR_MAX_SIZE) String colour); /** * @param maxAssignments diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleTypeUpdate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleTypeUpdate.java index b3549cd3e..4fe6a4e21 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleTypeUpdate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleTypeUpdate.java @@ -8,6 +8,9 @@ */ package org.eclipse.hawkbit.repository.builder; +import javax.validation.constraints.Size; + +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; /** @@ -21,12 +24,12 @@ public interface SoftwareModuleTypeUpdate { * for {@link SoftwareModuleType#getDescription()} * @return updated builder instance */ - SoftwareModuleTypeUpdate description(String description); + SoftwareModuleTypeUpdate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param colour * for {@link SoftwareModuleType#getColour()} * @return updated builder instance */ - SoftwareModuleTypeUpdate colour(String colour); + SoftwareModuleTypeUpdate colour(@Size(max = SoftwareModuleType.COLOUR_MAX_SIZE) String colour); } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleUpdate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleUpdate.java index 6ab1e67ed..f0939036d 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleUpdate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/SoftwareModuleUpdate.java @@ -8,6 +8,9 @@ */ package org.eclipse.hawkbit.repository.builder; +import javax.validation.constraints.Size; + +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.SoftwareModule; /** @@ -22,12 +25,12 @@ public interface SoftwareModuleUpdate { * for {@link SoftwareModule#getDescription()} * @return updated builder instance */ - SoftwareModuleUpdate description(String description); + SoftwareModuleUpdate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param vendor * for {@link SoftwareModule#getVendor()} * @return updated builder instance */ - SoftwareModuleUpdate vendor(String vendor); + SoftwareModuleUpdate vendor(@Size(max = SoftwareModule.VENDOR_MAX_SIZE) String vendor); } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TagCreate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TagCreate.java index 8dd9a61c0..ac7ef521d 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TagCreate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TagCreate.java @@ -8,9 +8,12 @@ */ package org.eclipse.hawkbit.repository.builder; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + import org.eclipse.hawkbit.repository.model.BaseEntity; +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.Tag; -import org.hibernate.validator.constraints.NotEmpty; /** * Builder to create a new {@link Tag} entry. Defines all fields that can be set @@ -24,21 +27,21 @@ public interface TagCreate { * for {@link Tag#getName()} * @return updated builder instance */ - TagCreate name(@NotEmpty String name); + TagCreate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param description * for {@link Tag#getDescription()} * @return updated builder instance */ - TagCreate description(String description); + TagCreate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param colour * for {@link Tag#getColour()} * @return updated builder instance */ - TagCreate colour(String colour); + TagCreate colour(@Size(max = Tag.COLOUR_MAX_SIZE) String colour); /** * @return peek on current state of {@link Tag} in the builder diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TagUpdate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TagUpdate.java index 10335f602..1b01c1ac3 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TagUpdate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TagUpdate.java @@ -8,8 +8,11 @@ */ package org.eclipse.hawkbit.repository.builder; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.Tag; -import org.hibernate.validator.constraints.NotEmpty; /** * Builder to update an existing {@link Tag} entry. Defines all fields that can @@ -22,20 +25,20 @@ public interface TagUpdate { * for {@link Tag#getName()} * @return updated builder instance */ - TagUpdate name(@NotEmpty String name); + TagUpdate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param description * for {@link Tag#getDescription()} * @return updated builder instance */ - TagUpdate description(String description); + TagUpdate description(@Size(max = NamedEntity.DESCRIPTION_MAX_SIZE) String description); /** * @param colour * for {@link Tag#getColour()} * @return updated builder instance */ - TagUpdate colour(String colour); + TagUpdate colour(@Size(max = Tag.COLOUR_MAX_SIZE) String colour); } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TargetFilterQueryCreate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TargetFilterQueryCreate.java index 44ebbfe3f..93527350e 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TargetFilterQueryCreate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TargetFilterQueryCreate.java @@ -10,10 +10,13 @@ package org.eclipse.hawkbit.repository.builder; import java.util.Optional; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + import org.eclipse.hawkbit.repository.model.BaseEntity; import org.eclipse.hawkbit.repository.model.DistributionSet; +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.TargetFilterQuery; -import org.hibernate.validator.constraints.NotEmpty; /** * Builder to create a new {@link TargetFilterQuery} entry. Defines all fields @@ -27,14 +30,14 @@ public interface TargetFilterQueryCreate { * of {@link TargetFilterQuery#getName()} * @return updated builder instance */ - TargetFilterQueryCreate name(@NotEmpty String name); + TargetFilterQueryCreate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) @NotNull String name); /** * @param query * of {@link TargetFilterQuery#getQuery()} * @return updated builder instance */ - TargetFilterQueryCreate query(@NotEmpty String query); + TargetFilterQueryCreate query(@Size(min = 1, max = TargetFilterQuery.QUERY_MAX_SIZE) @NotNull String query); /** * @param set diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TargetFilterQueryUpdate.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TargetFilterQueryUpdate.java index 2ce2f37d1..15dbef687 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TargetFilterQueryUpdate.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/builder/TargetFilterQueryUpdate.java @@ -8,8 +8,10 @@ */ package org.eclipse.hawkbit.repository.builder; +import javax.validation.constraints.Size; + +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.TargetFilterQuery; -import org.hibernate.validator.constraints.NotEmpty; /** * Builder to update an existing {@link TargetFilterQuery} entry. Defines all @@ -22,13 +24,13 @@ public interface TargetFilterQueryUpdate { * of {@link TargetFilterQuery#getName()} * @return updated builder instance */ - TargetFilterQueryUpdate name(@NotEmpty String name); + TargetFilterQueryUpdate name(@Size(min = 1, max = NamedEntity.NAME_MAX_SIZE) String name); /** * @param query * of {@link TargetFilterQuery#getQuery()} * @return updated builder instance */ - TargetFilterQueryUpdate query(@NotEmpty String query); + TargetFilterQueryUpdate query(@Size(min = 1, max = TargetFilterQuery.QUERY_MAX_SIZE) String query); } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetType.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetType.java index b7aaddf85..6f011be68 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetType.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/DistributionSetType.java @@ -19,6 +19,15 @@ import java.util.Set; * */ public interface DistributionSetType extends NamedEntity { + /** + * Maximum length of key. + */ + int KEY_MAX_SIZE = 64; + + /** + * Maximum length of colour in Management UI. + */ + int COLOUR_MAX_SIZE = 16; /** * @return true if the type is deleted and only kept for diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/NamedEntity.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/NamedEntity.java index a5f986a00..127f3145f 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/NamedEntity.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/NamedEntity.java @@ -8,9 +8,6 @@ */ package org.eclipse.hawkbit.repository.model; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; - /** * Entities that have a name and description. * @@ -19,23 +16,20 @@ public interface NamedEntity extends TenantAwareBaseEntity { /** * Maximum length of name. */ - public static final int NAME_MAX_SIZE = 64; + int NAME_MAX_SIZE = 64; /** * Maximum length of description. */ - public static final int DESCRIPTION_MAX_SIZE = 512; + int DESCRIPTION_MAX_SIZE = 512; /** * @return the description of the entity. */ - @Size(max = DESCRIPTION_MAX_SIZE) String getDescription(); /** * @return the name of the entity. */ - @Size(min = 1, max = NAME_MAX_SIZE) - @NotNull String getName(); } diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/NamedVersionedEntity.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/NamedVersionedEntity.java index 74f9af44b..3072bafbe 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/NamedVersionedEntity.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/NamedVersionedEntity.java @@ -13,6 +13,11 @@ package org.eclipse.hawkbit.repository.model; * */ public interface NamedVersionedEntity extends NamedEntity { + /** + * Maximum length of version. + */ + int VERSION_MAX_SIZE = 64; + /** * @return the version of entity. */ diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java index b4c67e702..8ab2ecfa8 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModule.java @@ -16,6 +16,10 @@ import java.util.Optional; * */ public interface SoftwareModule extends NamedVersionedEntity { + /** + * Maximum length of software vendor. + */ + int VENDOR_MAX_SIZE = 256; /** * @param artifactId diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleType.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleType.java index 62d6173f3..a8ce522e1 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleType.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/SoftwareModuleType.java @@ -15,6 +15,15 @@ package org.eclipse.hawkbit.repository.model; * */ public interface SoftwareModuleType extends NamedEntity { + /** + * Maximum length of key. + */ + int KEY_MAX_SIZE = 64; + + /** + * Maximum length of colour in Management UI. + */ + int COLOUR_MAX_SIZE = 16; /** * @return business key of this {@link SoftwareModuleType}. diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Tag.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Tag.java index 00c053de2..9e6c0ac14 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Tag.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Tag.java @@ -13,6 +13,10 @@ package org.eclipse.hawkbit.repository.model; * */ public interface Tag extends NamedEntity { + /** + * Maximum length of colour in Management UI. + */ + int COLOUR_MAX_SIZE = 16; /** * @return colour code of the tag used in Management UI. diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Target.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Target.java index f52735c16..3b88d2e42 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Target.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/Target.java @@ -23,17 +23,17 @@ public interface Target extends NamedEntity { /** * Maximum length of controllerId. */ - public static final int CONTROLLER_ID_MAX_SIZE = 64; + int CONTROLLER_ID_MAX_SIZE = 64; /** * Maximum length of securityToken. */ - public static final int SECURITY_TOKEN_MAX_SIZE = 128; + int SECURITY_TOKEN_MAX_SIZE = 128; /** * Maximum length of address. */ - public static final int ADDRESS_MAX_SIZE = 512; + int ADDRESS_MAX_SIZE = 512; /** * @return business identifier of the {@link Target} diff --git a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/TargetFilterQuery.java b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/TargetFilterQuery.java index ffeccc07c..db7945be2 100644 --- a/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/TargetFilterQuery.java +++ b/hawkbit-repository/hawkbit-repository-api/src/main/java/org/eclipse/hawkbit/repository/model/TargetFilterQuery.java @@ -33,6 +33,10 @@ package org.eclipse.hawkbit.repository.model; * */ public interface TargetFilterQuery extends TenantAwareBaseEntity { + /** + * Maximum length of query filter string. + */ + int QUERY_MAX_SIZE = 1024; /** * @return name of the {@link TargetFilterQuery}. diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/AbstractJpaNamedVersionedEntity.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/AbstractJpaNamedVersionedEntity.java index 2ebc9f16d..de527e9e0 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/AbstractJpaNamedVersionedEntity.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/AbstractJpaNamedVersionedEntity.java @@ -10,11 +10,11 @@ package org.eclipse.hawkbit.repository.jpa.model; import javax.persistence.Column; import javax.persistence.MappedSuperclass; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.NamedVersionedEntity; -import org.hibernate.validator.constraints.NotEmpty; /** * Extension for {@link NamedEntity} that are versioned. @@ -27,9 +27,9 @@ import org.hibernate.validator.constraints.NotEmpty; public abstract class AbstractJpaNamedVersionedEntity extends AbstractJpaNamedEntity implements NamedVersionedEntity { private static final long serialVersionUID = 1L; - @Column(name = "version", nullable = false, length = 64) - @Size(max = 64) - @NotEmpty + @Column(name = "version", nullable = false, length = NamedVersionedEntity.VERSION_MAX_SIZE) + @Size(min = 1, max = NamedVersionedEntity.VERSION_MAX_SIZE) + @NotNull private String version; /** diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetType.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetType.java index b2acc5bcf..ce48f0c01 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetType.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaDistributionSetType.java @@ -22,6 +22,7 @@ import javax.persistence.Index; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.UniqueConstraint; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.eclipse.hawkbit.repository.model.DistributionSet; @@ -29,7 +30,6 @@ import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.SoftwareModule; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; import org.eclipse.persistence.annotations.CascadeOnDelete; -import org.hibernate.validator.constraints.NotEmpty; import org.springframework.util.CollectionUtils; /** @@ -54,13 +54,13 @@ public class JpaDistributionSetType extends AbstractJpaNamedEntity implements Di CascadeType.PERSIST }, fetch = FetchType.EAGER, orphanRemoval = true) private Set elements; - @Column(name = "type_key", nullable = false, updatable = false, length = 64) - @Size(max = 64) - @NotEmpty + @Column(name = "type_key", nullable = false, updatable = false, length = DistributionSetType.KEY_MAX_SIZE) + @Size(min = 1, max = DistributionSetType.KEY_MAX_SIZE) + @NotNull private String key; - @Column(name = "colour", nullable = true, length = 16) - @Size(max = 16) + @Column(name = "colour", nullable = true, length = DistributionSetType.COLOUR_MAX_SIZE) + @Size(max = DistributionSetType.COLOUR_MAX_SIZE) private String colour; @Column(name = "deleted") diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModule.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModule.java index 2f471c2f3..33622a14a 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModule.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModule.java @@ -77,8 +77,8 @@ public class JpaSoftwareModule extends AbstractJpaNamedVersionedEntity implement @Column(name = "deleted") private boolean deleted; - @Column(name = "vendor", nullable = true, length = 256) - @Size(max = 256) + @Column(name = "vendor", nullable = true, length = SoftwareModule.VENDOR_MAX_SIZE) + @Size(max = SoftwareModule.VENDOR_MAX_SIZE) private String vendor; @CascadeOnDelete diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModuleType.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModuleType.java index 9983e3438..0ebcdb3a9 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModuleType.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaSoftwareModuleType.java @@ -14,10 +14,10 @@ import javax.persistence.Index; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.eclipse.hawkbit.repository.model.SoftwareModuleType; -import org.hibernate.validator.constraints.NotEmpty; /** * Type of a software modules. @@ -35,17 +35,17 @@ import org.hibernate.validator.constraints.NotEmpty; public class JpaSoftwareModuleType extends AbstractJpaNamedEntity implements SoftwareModuleType { private static final long serialVersionUID = 1L; - @Column(name = "type_key", nullable = false, length = 64) - @Size(max = 64) - @NotEmpty + @Column(name = "type_key", nullable = false, length = SoftwareModuleType.KEY_MAX_SIZE) + @Size(min = 1, max = SoftwareModuleType.KEY_MAX_SIZE) + @NotNull private String key; @Column(name = "max_ds_assignments", nullable = false) @Min(1) private int maxAssignments; - @Column(name = "colour", nullable = true, length = 16) - @Size(max = 16) + @Column(name = "colour", nullable = true, length = SoftwareModuleType.COLOUR_MAX_SIZE) + @Size(max = SoftwareModuleType.COLOUR_MAX_SIZE) private String colour; @Column(name = "deleted") diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTag.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTag.java index 7e0070c9a..c888217a3 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTag.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTag.java @@ -26,8 +26,8 @@ import org.eclipse.hawkbit.repository.model.Tag; public class JpaTag extends AbstractJpaNamedEntity implements Tag { private static final long serialVersionUID = 1L; - @Column(name = "colour", nullable = true, length = 16) - @Size(max = 16) + @Column(name = "colour", nullable = true, length = Tag.COLOUR_MAX_SIZE) + @Size(max = Tag.COLOUR_MAX_SIZE) private String colour; protected JpaTag() { diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetFilterQuery.java b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetFilterQuery.java index 66b9d96f4..aa87e6c4d 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetFilterQuery.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/main/java/org/eclipse/hawkbit/repository/jpa/model/JpaTargetFilterQuery.java @@ -21,6 +21,7 @@ import javax.persistence.UniqueConstraint; import javax.validation.constraints.Size; import org.eclipse.hawkbit.repository.model.DistributionSet; +import org.eclipse.hawkbit.repository.model.NamedEntity; import org.eclipse.hawkbit.repository.model.TargetFilterQuery; import org.hibernate.validator.constraints.NotEmpty; @@ -38,13 +39,13 @@ import org.hibernate.validator.constraints.NotEmpty; public class JpaTargetFilterQuery extends AbstractJpaTenantAwareBaseEntity implements TargetFilterQuery { private static final long serialVersionUID = 7493966984413479089L; - @Column(name = "name", length = 64, nullable = false) - @Size(max = 64) + @Column(name = "name", length = NamedEntity.NAME_MAX_SIZE, nullable = false) + @Size(max = NamedEntity.NAME_MAX_SIZE) @NotEmpty private String name; - @Column(name = "query", length = 1024, nullable = false) - @Size(max = 1024) + @Column(name = "query", length = TargetFilterQuery.QUERY_MAX_SIZE, nullable = false) + @Size(max = TargetFilterQuery.QUERY_MAX_SIZE) @NotEmpty private String query; diff --git a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/DistributionSetManagementTest.java b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/DistributionSetManagementTest.java index 1c264cc86..2c843061f 100644 --- a/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/DistributionSetManagementTest.java +++ b/hawkbit-repository/hawkbit-repository-jpa/src/test/java/org/eclipse/hawkbit/repository/jpa/DistributionSetManagementTest.java @@ -19,11 +19,15 @@ import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; +import javax.validation.ConstraintViolationException; + +import org.apache.commons.lang3.RandomStringUtils; import org.assertj.core.api.Condition; import org.eclipse.hawkbit.repository.DistributionSetManagement; import org.eclipse.hawkbit.repository.builder.DistributionSetCreate; 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.DistributionSetUpdatedEvent; import org.eclipse.hawkbit.repository.event.remote.entity.SoftwareModuleCreatedEvent; import org.eclipse.hawkbit.repository.exception.EntityAlreadyExistsException; import org.eclipse.hawkbit.repository.exception.EntityNotFoundException; @@ -52,6 +56,7 @@ import com.google.common.collect.Sets; import ru.yandex.qatools.allure.annotations.Description; import ru.yandex.qatools.allure.annotations.Features; +import ru.yandex.qatools.allure.annotations.Step; import ru.yandex.qatools.allure.annotations.Stories; /** @@ -170,6 +175,84 @@ public class DistributionSetManagementTest extends AbstractJpaIntegrationTest { entityFactory.generateMetadata(NOT_EXIST_ID, "xxx")), "DistributionSetMetadata"); } + @Test + @Description("Verify that a DistributionSet with invalid properties cannot be created or updated") + @ExpectEvents({ @Expect(type = DistributionSetCreatedEvent.class, count = 1), + @Expect(type = SoftwareModuleCreatedEvent.class, count = 3), + @Expect(type = DistributionSetUpdatedEvent.class, count = 0) }) + public void createAndUpdateDistributionSetWithInvalidFields() { + final DistributionSet set = testdataFactory.createDistributionSet(); + + createAndUpdateDistributionSetWithInvalidDescription(set); + createAndUpdateDistributionSetWithInvalidName(set); + createAndUpdateDistributionSetWithInvalidVersion(set); + } + + @Step + private void createAndUpdateDistributionSetWithInvalidDescription(final DistributionSet set) { + + assertThatExceptionOfType(ConstraintViolationException.class) + .isThrownBy(() -> distributionSetManagement.createDistributionSet(entityFactory.distributionSet() + .create().name("a").version("a").description(RandomStringUtils.randomAlphanumeric(513)))) + .as("entity with too long description should not be created"); + + assertThatExceptionOfType(ConstraintViolationException.class) + .isThrownBy(() -> distributionSetManagement.updateDistributionSet(entityFactory.distributionSet() + .update(set.getId()).description(RandomStringUtils.randomAlphanumeric(513)))) + .as("entity with too long description should not be updated"); + + } + + @Step + private void createAndUpdateDistributionSetWithInvalidName(final DistributionSet set) { + + assertThatExceptionOfType(ConstraintViolationException.class) + .isThrownBy(() -> distributionSetManagement.createDistributionSet(entityFactory.distributionSet() + .create().version("a").name(RandomStringUtils.randomAlphanumeric(65)))) + .as("entity with too long name should not be created"); + + assertThatExceptionOfType(ConstraintViolationException.class) + .isThrownBy(() -> distributionSetManagement + .createDistributionSet(entityFactory.distributionSet().create().version("a").name(""))) + .as("entity with too long name should not be created"); + + assertThatExceptionOfType(ConstraintViolationException.class) + .isThrownBy(() -> distributionSetManagement.updateDistributionSet(entityFactory.distributionSet() + .update(set.getId()).name(RandomStringUtils.randomAlphanumeric(65)))) + .as("entity with too long name should not be updated"); + + assertThatExceptionOfType(ConstraintViolationException.class) + .isThrownBy(() -> distributionSetManagement + .updateDistributionSet(entityFactory.distributionSet().update(set.getId()).name(""))) + .as("entity with too short name should not be updated"); + + } + + @Step + private void createAndUpdateDistributionSetWithInvalidVersion(final DistributionSet set) { + + assertThatExceptionOfType(ConstraintViolationException.class) + .isThrownBy(() -> distributionSetManagement.createDistributionSet(entityFactory.distributionSet() + .create().name("a").version(RandomStringUtils.randomAlphanumeric(65)))) + .as("entity with too long name should not be created"); + + assertThatExceptionOfType(ConstraintViolationException.class) + .isThrownBy(() -> distributionSetManagement + .createDistributionSet(entityFactory.distributionSet().create().name("a").version(""))) + .as("entity with too long name should not be created"); + + assertThatExceptionOfType(ConstraintViolationException.class) + .isThrownBy(() -> distributionSetManagement.updateDistributionSet(entityFactory.distributionSet() + .update(set.getId()).version(RandomStringUtils.randomAlphanumeric(65)))) + .as("entity with too long name should not be updated"); + + assertThatExceptionOfType(ConstraintViolationException.class) + .isThrownBy(() -> distributionSetManagement + .updateDistributionSet(entityFactory.distributionSet().update(set.getId()).version(""))) + .as("entity with too short name should not be updated"); + + } + @Test @Description("Ensures that it is not possible to create a DS that already exists (unique constraint is on name,version for DS).") public void createDuplicateDistributionSetsFailsWithException() {