From 24b981ead88678f4c39ea5d826bfe436b40dc822 Mon Sep 17 00:00:00 2001
From: Kai Moritz <kai@juplo.de>
Date: Sat, 9 Apr 2022 09:52:59 +0200
Subject: [PATCH] =?utf8?q?Validierung=20erfolgt=20=C3=BCber=20spring-boot-?=
 =?utf8?q?starter-validation?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

---
 pom.xml                                           |  4 ++++
 src/main/java/de/juplo/kafka/Application.java     |  6 ------
 .../de/juplo/kafka/ApplicationProperties.java     | 15 +++++++++++++++
 3 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/pom.xml b/pom.xml
index b7b0b8d6..d9b70f96 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,6 +21,10 @@
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-validation</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-actuator</artifactId>
diff --git a/src/main/java/de/juplo/kafka/Application.java b/src/main/java/de/juplo/kafka/Application.java
index dd4b20a0..de4b66d7 100644
--- a/src/main/java/de/juplo/kafka/Application.java
+++ b/src/main/java/de/juplo/kafka/Application.java
@@ -5,7 +5,6 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import org.springframework.context.annotation.Bean;
-import org.springframework.util.Assert;
 
 import java.util.concurrent.Executors;
 
@@ -21,11 +20,6 @@ public class Application
   @Bean
   public EndlessConsumer consumer()
   {
-    Assert.hasText(properties.getBootstrapServer(), "consumer.bootstrap-server must be set");
-    Assert.hasText(properties.getGroupId(), "consumer.group-id must be set");
-    Assert.hasText(properties.getClientId(), "consumer.client-id must be set");
-    Assert.hasText(properties.getTopic(), "consumer.topic must be set");
-
     EndlessConsumer consumer =
         new EndlessConsumer(
             Executors.newFixedThreadPool(1),
diff --git a/src/main/java/de/juplo/kafka/ApplicationProperties.java b/src/main/java/de/juplo/kafka/ApplicationProperties.java
index dab33801..fa731c53 100644
--- a/src/main/java/de/juplo/kafka/ApplicationProperties.java
+++ b/src/main/java/de/juplo/kafka/ApplicationProperties.java
@@ -3,16 +3,31 @@ package de.juplo.kafka;
 import lombok.Getter;
 import lombok.Setter;
 import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 
 
 @ConfigurationProperties(prefix = "consumer")
+@Validated
 @Getter
 @Setter
 public class ApplicationProperties
 {
+  @NotNull
+  @NotEmpty
   private String bootstrapServer;
+  @NotNull
+  @NotEmpty
   private String groupId;
+  @NotNull
+  @NotEmpty
   private String clientId;
+  @NotNull
+  @NotEmpty
   private String topic;
+  @NotNull
+  @NotEmpty
   private String autoOffsetReset;
 }
-- 
2.20.1