88import java .util .LinkedHashMap ;
99import java .util .LinkedList ;
1010import java .util .Map ;
11+ import java .util .StringJoiner ;
1112
1213/**
1314 * Represents settings of config registry.
@@ -21,24 +22,24 @@ public final class ConfigRegistrySettings {
2122 public static final boolean DEFAULT_JMX_ENABLED = true ;
2223 public static final String DEFAULT_JMX_MBEAN_NAME = "io.scalecube.config:name=ConfigRegistry" ;
2324
25+ private final Map <String , ConfigSource > sources ;
26+ private final String host ;
2427 private final int reloadIntervalSec ;
2528 private final int recentConfigEventsNum ;
2629 private final Map <String , ConfigEventListener > listeners ;
27- private final Map <String , ConfigSource > sources ;
28- private final String host ;
2930 private final boolean jmxEnabled ;
3031 private final String jmxMBeanName ;
3132
3233 private ConfigRegistrySettings (Builder builder ) {
33- this .reloadIntervalSec = builder .reloadIntervalSec ;
34- this .recentConfigEventsNum = builder .recentConfigEventsNum ;
35- this .listeners = Collections .unmodifiableMap (new HashMap <>(builder .listeners ));
3634 Map <String , ConfigSource > sourcesTmp = new LinkedHashMap <>(builder .sources .size ());
3735 for (String name : builder .sourceOrder ) {
3836 sourcesTmp .put (name , builder .sources .get (name ));
3937 }
4038 this .sources = Collections .unmodifiableMap (sourcesTmp );
4139 this .host = builder .host != null ? builder .host : resolveLocalHost ();
40+ this .reloadIntervalSec = builder .reloadIntervalSec ;
41+ this .recentConfigEventsNum = builder .recentConfigEventsNum ;
42+ this .listeners = Collections .unmodifiableMap (new HashMap <>(builder .listeners ));
4243 this .jmxEnabled = builder .jmxEnabled ;
4344 this .jmxMBeanName = builder .jmxMBeanName ;
4445 }
@@ -59,6 +60,10 @@ public int getReloadIntervalSec() {
5960 return reloadIntervalSec ;
6061 }
6162
63+ public boolean isReloadEnabled () {
64+ return reloadIntervalSec != Integer .MAX_VALUE ;
65+ }
66+
6267 public int getRecentConfigEventsNum () {
6368 return recentConfigEventsNum ;
6469 }
@@ -85,35 +90,34 @@ public String getJmxMBeanName() {
8590
8691 @ Override
8792 public String toString () {
88- return "{\" reloadIntervalSec\" :\" "
89- + reloadIntervalSec
90- + "\" ,\" recentConfigEventsNum\" :\" "
91- + recentConfigEventsNum
92- + "\" ,\" host\" :\" "
93- + host
94- + "\" ,\" jmxEnabled\" :\" "
95- + jmxEnabled
96- + "\" ,\" jmxMBeanName\" :\" "
97- + jmxMBeanName
98- + "\" ,\" listeners\" :\" "
99- + listeners
100- + "\" ,\" sources\" :\" "
101- + sources
102- + "\" }" ;
93+ return new StringJoiner (", " , ConfigRegistrySettings .class .getSimpleName () + "[" , "]" )
94+ .add ("sources=" + sources )
95+ .add ("host='" + host + "'" )
96+ .add ("reloadIntervalSec=" + reloadIntervalSec )
97+ .add ("recentConfigEventsNum=" + recentConfigEventsNum )
98+ .add ("listeners=" + listeners )
99+ .add ("jmxEnabled=" + jmxEnabled )
100+ .add ("jmxMBeanName='" + jmxMBeanName + "'" )
101+ .toString ();
103102 }
104103
105104 public static class Builder {
105+ private final LinkedList <String > sourceOrder = new LinkedList <>();
106+ private final Map <String , ConfigSource > sources = new HashMap <>();
107+ private final String host = null ;
106108 private int reloadIntervalSec = DEFAULT_RELOAD_PERIOD_SEC ;
107109 private int recentConfigEventsNum = DEFAULT_RECENT_EVENTS_NUM ;
108- private Map <String , ConfigEventListener > listeners = new HashMap <>();
109- private LinkedList <String > sourceOrder = new LinkedList <>();
110- private Map <String , ConfigSource > sources = new HashMap <>();
111- private String host = null ;
110+ private final Map <String , ConfigEventListener > listeners = new HashMap <>();
112111 private boolean jmxEnabled = DEFAULT_JMX_ENABLED ;
113112 private String jmxMBeanName = DEFAULT_JMX_MBEAN_NAME ;
114113
115114 private Builder () {}
116115
116+ public Builder noReload () {
117+ this .reloadIntervalSec = Integer .MAX_VALUE ;
118+ return this ;
119+ }
120+
117121 public Builder reloadIntervalSec (int reloadPeriodSec ) {
118122 this .reloadIntervalSec = reloadPeriodSec ;
119123 return this ;
0 commit comments