Skip to content

Commit 0f2e800

Browse files
Accept URI
1 parent ce083dd commit 0f2e800

2 files changed

Lines changed: 26 additions & 4 deletions

File tree

consul-populate-core/src/main/java/com/frogdevelopment/consul/populate/config/ConsulFactory.java

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.frogdevelopment.consul.populate.config;
22

3+
import java.net.URI;
4+
35
import jakarta.inject.Singleton;
46

57
import io.micronaut.context.annotation.Bean;
@@ -17,6 +19,8 @@
1719
@Factory
1820
public class ConsulFactory {
1921

22+
static final int DEFAULT_HTTP_PORT = 80;
23+
2024
@Singleton
2125
@Bean(preDestroy = "close")
2226
Vertx vertx() {
@@ -26,13 +30,28 @@ Vertx vertx() {
2630
@Singleton
2731
@Bean(preDestroy = "close")
2832
ConsulClient consulClient(final Vertx vertx, final GlobalProperties properties) {
29-
final var consulClientOptions = new ConsulClientOptions()
30-
.setHost(properties.getHost())
31-
.setPort(properties.getPort())
32-
.setSsl(properties.isSecured());
33+
final ConsulClientOptions consulClientOptions;
34+
if (properties.getUri().isPresent()) {
35+
final var uri = URI.create(properties.getUri().get());
36+
consulClientOptions = new ConsulClientOptions()
37+
.setHost(uri.getHost())
38+
.setSsl("https".equalsIgnoreCase(uri.getScheme()));
39+
final var port = uri.getPort();
40+
if (port >= 0) {
41+
consulClientOptions.setPort(port);
42+
} else {
43+
consulClientOptions.setPort(DEFAULT_HTTP_PORT); // default port when providing a URI without port
44+
}
45+
} else {
46+
consulClientOptions = new ConsulClientOptions()
47+
.setHost(properties.getHost())
48+
.setPort(properties.getPort())
49+
.setSsl(properties.isSecured());
50+
}
3351
properties.getDc().ifPresent(consulClientOptions::setDc);
3452
properties.getAclToken().ifPresent(consulClientOptions::setAclToken);
3553
properties.getTimeout().ifPresent(consulClientOptions::setTimeout);
54+
// properties.getConnectTimeout().ifPresent(consulClientOptions::setConnectTimeout);
3655

3756
return ConsulClient.create(vertx, consulClientOptions);
3857
}

consul-populate-core/src/main/java/com/frogdevelopment/consul/populate/config/GlobalProperties.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import java.util.Optional;
77
import java.util.OptionalLong;
8+
89
import jakarta.validation.constraints.NotBlank;
910
import jakarta.validation.constraints.NotNull;
1011
import jakarta.validation.constraints.Pattern;
@@ -23,6 +24,8 @@
2324
@ConfigurationProperties("consul")
2425
public class GlobalProperties {
2526

27+
private Optional<String> uri = Optional.of("http://localhost:8500");
28+
2629
/**
2730
* Consul host. Defaults to {@code localhost}
2831
*/

0 commit comments

Comments
 (0)