Skip to content

Commit dfd3d9c

Browse files
author
yannick
committed
improve default protocol handling
1 parent a87dc0b commit dfd3d9c

File tree

3 files changed

+9
-13
lines changed

3 files changed

+9
-13
lines changed

src/main/java/com/hivemq/extensions/influxdb/InfluxDbExtensionMain.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ private InfluxDbSender setupSender(@NotNull final InfluxDbConfiguration configur
116116

117117
final String host = configuration.getHost();
118118
final int port = configuration.getPort();
119-
final String protocol = configuration.getProtocol();
120119
final String database = configuration.getDatabase();
121120
final String auth = configuration.getAuth();
122121
final int connectTimeout = configuration.getConnectTimeout();
@@ -132,7 +131,7 @@ private InfluxDbSender setupSender(@NotNull final InfluxDbConfiguration configur
132131
switch (configuration.getMode()) {
133132
case "http":
134133
log.info("Creating InfluxDB HTTP sender for server {}:{} and database {}", host, port, database);
135-
sender = new InfluxDbHttpSender(protocol, host, port, database, auth, TimeUnit.SECONDS, connectTimeout, connectTimeout, prefix);
134+
sender = new InfluxDbHttpSender(configuration.getProtocolOrDefault("http"), host, port, database, auth, TimeUnit.SECONDS, connectTimeout, connectTimeout, prefix);
136135
break;
137136
case "tcp":
138137
log.info("Creating InfluxDB TCP sender for server {}:{} and database {}", host, port, database);
@@ -146,7 +145,7 @@ private InfluxDbSender setupSender(@NotNull final InfluxDbConfiguration configur
146145
log.info("Creating InfluxDB Cloud sender for endpoint {}, bucket {}, organization {}", host, bucket, organization);
147146
checkNotNull(bucket, "Bucket name must be defined in cloud mode");
148147
checkNotNull(organization, "Organization must be defined in cloud mode");
149-
sender = new InfluxDbCloudSender(protocol, host, port, auth, TimeUnit.SECONDS, connectTimeout, connectTimeout, prefix, organization, bucket);
148+
sender = new InfluxDbCloudSender(configuration.getProtocolOrDefault("https"), host, port, auth, TimeUnit.SECONDS, connectTimeout, connectTimeout, prefix, organization, bucket);
150149
break;
151150

152151
}

src/main/java/com/hivemq/extensions/influxdb/configuration/InfluxDbConfiguration.java

+4-7
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ public class InfluxDbConfiguration extends PropertiesReader {
4444
private static final String MODE = "mode";
4545
private static final String MODE_DEFAULT = "http";
4646
private static final String PROTOCOL = "protocol";
47-
private static final String PROTOCOL_DEFAULT = "http";
4847
private static final String REPORTING_INTERVAL = "reportingInterval";
4948
private static final int REPORTING_INTERVAL_DEFAULT = 1;
5049
private static final String PREFIX = "prefix";
@@ -77,7 +76,7 @@ public boolean validateConfiguration() {
7776
countError += checkMandatoryProperty(HOST);
7877
countError += checkMandatoryProperty(PORT);
7978

80-
if (countError != 0){
79+
if (countError != 0) {
8180
return false;
8281
}
8382

@@ -164,13 +163,11 @@ public int getConnectTimeout() {
164163
}
165164

166165
@NotNull
167-
public String getProtocol() {
166+
public String getProtocolOrDefault(final @NotNull String defaultProtocol) {
168167
final String protocol = getProperty(PROTOCOL);
169168
if (protocol == null) {
170-
if (getMode().equals("http")) {
171-
log.warn("No protocol configured for InfluxDb, using default: {}", PROTOCOL_DEFAULT);
172-
return PROTOCOL_DEFAULT;
173-
}
169+
log.warn("No protocol configured for InfluxDb in mode '{}', using default: '{}'", getMode(), defaultProtocol);
170+
return defaultProtocol;
174171
}
175172
return protocol;
176173
}

src/test/java/com/hivemq/extensions/influxdb/configuration/InfluxDbConfigurationTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ void all_properties_empty() throws IOException {
111111
assertEquals("http", influxDbConfiguration.getMode());
112112
assertTrue(influxDbConfiguration.getTags().isEmpty());
113113
assertEquals("", influxDbConfiguration.getPrefix());
114-
assertEquals("http", influxDbConfiguration.getProtocol());
114+
assertEquals("http", influxDbConfiguration.getProtocolOrDefault("http"));
115115
assertEquals("hivemq", influxDbConfiguration.getDatabase());
116116
assertEquals(5000, influxDbConfiguration.getConnectTimeout());
117117
assertEquals(1, influxDbConfiguration.getReportingInterval());
@@ -130,7 +130,7 @@ void all_properties_null() throws IOException {
130130
assertEquals("http", influxDbConfiguration.getMode());
131131
assertTrue(influxDbConfiguration.getTags().isEmpty());
132132
assertEquals("", influxDbConfiguration.getPrefix());
133-
assertEquals("http", influxDbConfiguration.getProtocol());
133+
assertEquals("http", influxDbConfiguration.getProtocolOrDefault("http"));
134134
assertEquals("hivemq", influxDbConfiguration.getDatabase());
135135
assertEquals(5000, influxDbConfiguration.getConnectTimeout());
136136
assertEquals(1, influxDbConfiguration.getReportingInterval());
@@ -162,7 +162,7 @@ void all_properties_have_correct_values() throws IOException {
162162
assertEquals("hivemq1", tags.get("host"));
163163
assertEquals("3.4.1", tags.get("version"));
164164
assertEquals("node1", influxDbConfiguration.getPrefix());
165-
assertEquals("tcp", influxDbConfiguration.getProtocol());
165+
assertEquals("tcp", influxDbConfiguration.getProtocolOrDefault("default"));
166166
assertEquals("test-hivemq", influxDbConfiguration.getDatabase());
167167
assertEquals(10000, influxDbConfiguration.getConnectTimeout());
168168
assertEquals(5, influxDbConfiguration.getReportingInterval());

0 commit comments

Comments
 (0)