1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.linecorp.centraldogma.server;
17
18 import static com.google.common.base.Preconditions.checkArgument;
19
20 import com.fasterxml.jackson.annotation.JsonProperty;
21 import com.google.common.base.MoreObjects;
22
23
24
25
26 public final class GracefulShutdownTimeout {
27 private final long quietPeriodMillis;
28 private final long timeoutMillis;
29
30
31
32
33
34
35
36
37
38
39 public GracefulShutdownTimeout(
40 @JsonProperty(value = "quietPeriodMillis", required = true) long quietPeriodMillis,
41 @JsonProperty(value = "timeoutMillis", required = true) long timeoutMillis) {
42 checkArgument(quietPeriodMillis >= 0,
43 "quietPeriodMillis: %s (expected: >= 0)", quietPeriodMillis);
44 checkArgument(timeoutMillis >= 0,
45 "timeoutMillis: %s (expected: >= 0)", timeoutMillis);
46 this.quietPeriodMillis = quietPeriodMillis;
47 this.timeoutMillis = timeoutMillis;
48 }
49
50
51
52
53 @JsonProperty("quietPeriodMillis")
54 public long quietPeriodMillis() {
55 return quietPeriodMillis;
56 }
57
58
59
60
61 @JsonProperty("timeoutMillis")
62 public long timeoutMillis() {
63 return timeoutMillis;
64 }
65
66 @Override
67 public String toString() {
68 return MoreObjects.toStringHelper(this)
69 .add("quietPeriodMillis", quietPeriodMillis)
70 .add("timeoutMillis", timeoutMillis).toString();
71 }
72 }