2323import java .util .logging .Level ;
2424
2525import io .helidon .common .config .Config ;
26+ import io .helidon .config .metadata .Configured ;
27+ import io .helidon .config .metadata .ConfiguredOption ;
2628
2729import org .neo4j .driver .AuthToken ;
2830import org .neo4j .driver .AuthTokens ;
@@ -75,6 +77,7 @@ public Driver driver() {
7577 /**
7678 * Fluent API builder for Neo4j.
7779 */
80+ @ Configured
7881 public static final class Builder implements io .helidon .common .Builder <Builder , Neo4j > {
7982 private boolean encrypted ;
8083 private boolean authenticationEnabled = true ;
@@ -148,6 +151,7 @@ public Builder config(Config config) {
148151 * @param username parameter
149152 * @return Builder
150153 */
154+ @ ConfiguredOption
151155 public Builder username (String username ) {
152156 Objects .requireNonNull (username );
153157 this .username = username ;
@@ -162,6 +166,7 @@ public Builder username(String username) {
162166 * @param password parameter
163167 * @return Builder
164168 */
169+ @ ConfiguredOption
165170 public Builder password (String password ) {
166171 Objects .requireNonNull (password );
167172 this .password = password ;
@@ -174,18 +179,20 @@ public Builder password(String password) {
174179 * @param uri parameter
175180 * @return Builder
176181 */
182+ @ ConfiguredOption
177183 public Builder uri (String uri ) {
178184 Objects .requireNonNull (uri );
179185 this .uri = uri ;
180186 return this ;
181187 }
182188
183189 /**
184- * Enable ecrypted field.
190+ * Enable encrypted field.
185191 *
186192 * @param encrypted parameter
187193 * @return Builder
188194 */
195+ @ ConfiguredOption
189196 public Builder encrypted (boolean encrypted ) {
190197 this .encrypted = encrypted ;
191198 return this ;
@@ -197,28 +204,32 @@ public Builder encrypted(boolean encrypted) {
197204 * @param authenticationEnabled parameter
198205 * @return Builder
199206 */
207+ @ ConfiguredOption ("true" )
200208 public Builder authenticationEnabled (boolean authenticationEnabled ) {
201209 this .authenticationEnabled = authenticationEnabled ;
202210 return this ;
203211 }
204212
205213 /**
206- * Enagle metrics.
214+ * Enable metrics.
207215 *
208216 * @param metricsEnabled parameter
209217 * @return Builder
210218 */
219+ @ ConfiguredOption
220+
211221 public Builder metricsEnabled (boolean metricsEnabled ) {
212222 this .metricsEnabled = metricsEnabled ;
213223 return this ;
214224 }
215225
216226 /**
217- * Eable log leaked sessions.
227+ * Enable log leaked sessions.
218228 *
219229 * @param logLeakedSessions parameter
220230 * @return Builder
221231 */
232+ @ ConfiguredOption
222233 public Builder logLeakedSessions (boolean logLeakedSessions ) {
223234 this .logLeakedSessions = logLeakedSessions ;
224235 return this ;
@@ -230,6 +241,7 @@ public Builder logLeakedSessions(boolean logLeakedSessions) {
230241 * @param maxConnectionPoolSize parameter
231242 * @return Builder
232243 */
244+ @ ConfiguredOption ("100" )
233245 public Builder maxConnectionPoolSize (int maxConnectionPoolSize ) {
234246 this .maxConnectionPoolSize = maxConnectionPoolSize ;
235247 return this ;
@@ -241,6 +253,7 @@ public Builder maxConnectionPoolSize(int maxConnectionPoolSize) {
241253 * @param idleTimeBeforeConnectionTest parameter
242254 * @return Builder
243255 */
256+ @ ConfiguredOption ("PT1MS" )
244257 public Builder idleTimeBeforeConnectionTest (Duration idleTimeBeforeConnectionTest ) {
245258 Objects .requireNonNull (idleTimeBeforeConnectionTest );
246259 this .idleTimeBeforeConnectionTest = idleTimeBeforeConnectionTest ;
@@ -253,6 +266,7 @@ public Builder idleTimeBeforeConnectionTest(Duration idleTimeBeforeConnectionTes
253266 * @param maxConnectionLifetime parameter
254267 * @return Builder
255268 */
269+ @ ConfiguredOption ("PT5H" )
256270 public Builder maxConnectionLifetime (Duration maxConnectionLifetime ) {
257271 Objects .requireNonNull (maxConnectionLifetime );
258272 this .maxConnectionLifetime = maxConnectionLifetime ;
@@ -265,6 +279,7 @@ public Builder maxConnectionLifetime(Duration maxConnectionLifetime) {
265279 * @param connectionAcquisitionTimeout parameter
266280 * @return Builder
267281 */
282+ @ ConfiguredOption ("PT1M" )
268283 public Builder connectionAcquisitionTimeout (Duration connectionAcquisitionTimeout ) {
269284 Objects .requireNonNull (connectionAcquisitionTimeout );
270285 this .connectionAcquisitionTimeout = connectionAcquisitionTimeout ;
@@ -277,6 +292,7 @@ public Builder connectionAcquisitionTimeout(Duration connectionAcquisitionTimeou
277292 * @param strategy parameter
278293 * @return Builder
279294 */
295+ @ ConfiguredOption (type = TrustStrategy .class )
280296 public Builder trustStrategy (TrustStrategy strategy ) {
281297 this .trustStrategy = strategy ;
282298 return this ;
@@ -288,6 +304,7 @@ public Builder trustStrategy(TrustStrategy strategy) {
288304 * @param certFile parameter
289305 * @return Builder
290306 */
307+ @ ConfiguredOption
291308 public Builder certificate (Path certFile ) {
292309 this .certFile = certFile ;
293310 return this ;
@@ -299,6 +316,7 @@ public Builder certificate(Path certFile) {
299316 * @param hostnameVerificationEnabled parameter
300317 * @return Builder
301318 */
319+ @ ConfiguredOption
302320 public Builder hostnameVerificationEnabled (boolean hostnameVerificationEnabled ) {
303321 this .hostnameVerificationEnabled = hostnameVerificationEnabled ;
304322 return this ;
0 commit comments