The OutboxProducer restores the sequence-number from the wirtten topic
[demos/kafka/outbox] / delivery / src / main / java / de / juplo / kafka / outbox / delivery / Watermarks.java
1 package de.juplo.kafka.outbox.delivery;
2
3
4 public class Watermarks
5 {
6   private final long[] watermarks;
7
8
9   public Watermarks(int partitions)
10   {
11     watermarks = new long[partitions];
12   }
13
14
15   public synchronized void set(int partition, long watermark)
16   {
17     watermarks[partition] = watermark;
18   }
19
20   public synchronized long getLowest()
21   {
22     long lowest = Long.MAX_VALUE;
23
24     for (int i = 0; i < watermarks.length; i++)
25       if (watermarks[i] < lowest)
26         lowest = watermarks[i];
27
28     return lowest;
29   }
30
31   @Override
32   public String toString()
33   {
34     StringBuilder builder = new StringBuilder();
35     for (int i = 0; i < watermarks.length; i++)
36     {
37       builder.append("partition[");
38       builder.append(i);
39       builder.append("]=");
40       builder.append(watermarks[i]);
41       if (i != watermarks.length - 1)
42         builder.append(", ");
43     }
44     return builder.toString();
45   }
46 }