@@ -0,0 +1,1578 @@
+package com.netflix.conductor.common.constraints;%0A%0Aimport javax.validation.Constraint;%0Aimport javax.validation.ConstraintValidator;%0Aimport javax.validation.ConstraintValidatorContext;%0Aimport javax.validation.Payload;%0Aimport javax.validation.constraintvalidation.SupportedValidationTarget;%0Aimport javax.validation.constraintvalidation.ValidationTarget;%0Aimport java.lang.annotation.Documented;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0Aimport java.lang.annotation.Target;%0A%0Aimport static java.lang.annotation.ElementType.FIELD;%0Aimport static java.lang.annotation.ElementType.PARAMETER;%0A%0A@Target(%7BFIELD, PARAMETER%7D)%0A@Retention(RetentionPolicy.RUNTIME)%0A@Documented%0A@Constraint(validatedBy = NullOrNotBlank.NullOrNotBlankValidator.class)%0Apublic @interface NullOrNotBlank %7B%0A    String message() default %22%7Bjavax.validation.constraints.Pattern.message%7D%22;%0A    Class%3C?%3E%5B%5D groups() default %7B %7D;%0A    Class%3C? extends Payload%3E%5B%5D payload() default %7B%7D;%0A%0A    @SupportedValidationTarget(ValidationTarget.PARAMETERS)%0A    class NullOrNotBlankValidator implements ConstraintValidator%3CNullOrNotBlank, String%3E %7B%0A%0A        public void initialize(NullOrNotBlank parameters) %7B%0A        %7D%0A%0A        public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) %7B%0A            if (value == null) %7B%0A                return true;%0A            %7D%0A            if (value.length() == 0) %7B%0A                return false;%0A            %7D%0A%0A            boolean allWhitespace = value.matches(%22%5E%5C%5Cs*$%22);%0A            return !allWhitespace;%0A        %7D%0A    %7D%0A%7D%0A

Add nullorblank constraint