streams - Übungen - Microservices - Schritt 02
[demos/microservices] / details / src / main / java / de / trion / microservices / details / DetailsService.java
index a1f8dbd..a6f918f 100644 (file)
@@ -36,6 +36,8 @@ public class DetailsService
   private final int port;
   private final KafkaStreams streams;
 
+  private ReadOnlyKeyValueStore<String, Order> orders;
+
 
   public DetailsService(ApplicationProperties config)
   {
@@ -70,6 +72,11 @@ public class DetailsService
         LOG.error("Could not close KafkaStreams!", ex);
       }
     });
+    streams.setStateListener((newState, oldState) ->
+    {
+      if (newState == KafkaStreams.State.RUNNING)
+        orders = streams.store(topic, QueryableStoreTypes.keyValueStore());
+    });
   }
 
 
@@ -92,8 +99,6 @@ public class DetailsService
               .build();
     }
 
-    ReadOnlyKeyValueStore<String, Order> orders;
-    orders = streams.store(topic, QueryableStoreTypes.keyValueStore());
     Order order = orders.get(id);
     return order == null
         ? ResponseEntity.notFound().build()